{"id":"2de03b9a-5f3a-42c9-8120-4d63810ed43f","entityType":"agent","slug":"clawhub-dataify-server-dataify-booking-hotellist","name":"Dataify Booking Hotel Info","canonicalUrl":"https://www.xpersona.co/agent/clawhub-dataify-server-dataify-booking-hotellist","canonicalPath":"/agent/clawhub-dataify-server-dataify-booking-hotellist","generatedAt":"2026-10-11T22:47:41.088Z","source":"CLAWHUB","claimStatus":"UNCLAIMED","verificationTier":"NONE","summary":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-11T18:58:29.016Z","emptyReason":null},"description":"Collect Booking Hotel Info data and return results","descriptionLabel":"Source description","evidenceSummary":"Capability contract not published. No trust telemetry is available yet. 1K downloads reported by the source. Last updated 10/11/2026.","installCommand":"clawhub skill install s17feed8b2qc486skqmjapxmjs86bd4f:dataify-booking-hotellist","sourceUrl":"https://clawhub.ai/dataify-server/dataify-booking-hotellist","homepage":"https://clawhub.ai/dataify-server/skills/dataify-booking-hotellist","primaryLinks":[{"label":"View on ClawHub","url":"https://clawhub.ai/dataify-server/dataify-booking-hotellist","kind":"source"},{"label":"Homepage","url":"https://clawhub.ai/dataify-server/skills/dataify-booking-hotellist","kind":"homepage"}],"safetyScore":84,"overallRank":62,"popularityScore":60,"trustScore":null,"claimedByName":null,"isOwner":false,"seoDescription":"Dataify Booking Hotel Info technical dossier on Xpersona with agent coverage, OPENCLEW support, and live trust metadata."},"coverage":{"evidence":{"source":"public-profile","verified":false,"confidence":"medium","updatedAt":"2026-10-11T18:58:29.016Z","emptyReason":null},"protocols":[{"protocol":"OPENCLEW","label":"OpenClaw","status":"self-declared","notes":"Declared in the public agent profile."}],"capabilities":[],"verifiedCount":0,"selfDeclaredCount":1,"capabilityMatrix":{"rows":[{"key":"OPENCLEW","type":"protocol","support":"unknown","confidenceSource":"profile","notes":"Listed on profile"}],"flattenedTokens":"protocol:OPENCLEW|unknown|profile"}},"adoption":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-11T18:58:29.016Z","emptyReason":null},"stars":null,"forks":null,"downloads":1006,"likes":null,"task":null,"library":null,"packageName":null,"latestVersion":"1.3.0","tractionLabel":"1K downloads"},"release":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-11T18:58:28.955Z","emptyReason":null},"lastUpdatedAt":"2026-10-11T18:58:29.016Z","lastCrawledAt":"2026-10-11T18:58:28.955Z","lastIndexedAt":null,"nextCrawlAt":"2026-10-12T18:58:28.955Z","lastVerifiedAt":null,"highlights":[{"version":"1.3.0","createdAt":"2026-09-01T09:12:34.739Z","changelog":"默认返回最终采集结果，完善异步等待下载与安全恢复；修复空目标误执行、Quick Start、Token 配置和触发路由冲突，并补齐发布前自动化测试","fileCount":7,"zipByteSize":11700},{"version":"1.2.0","createdAt":"2026-07-16T08:35:52.195Z","changelog":"新增能力路由与异步任务闭环，修复失效引用、Token 泄漏和 Skill 元数据兼容性","fileCount":7,"zipByteSize":9109},{"version":"1.1.0","createdAt":"2026-06-08T02:05:42.068Z","changelog":"补全中文文档，更新目录结构","fileCount":7,"zipByteSize":9140},{"version":"1.0.0","createdAt":"2026-05-28T08:10:34.278Z","changelog":"- Initial release of the dataify-booking-hotellist skill. - Enables collection of Booking.com hotel information using the Dataify Scraper API. - Supports creating tasks for hotel info extraction from one or multiple Booking URLs. - Guides users through parameter setup and task confirmation in Markdown tables before each API call. - Handles API token management, including user input and safe storage options. - Provides clear feedback after task creation, including task ID, status, and dashboard instructions.","fileCount":6,"zipByteSize":7577}]},"execution":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No published capability contract is available yet."},"installCommand":"clawhub skill install s17feed8b2qc486skqmjapxmjs86bd4f:dataify-booking-hotellist","setupComplexity":"low","setupSteps":["Install using `clawhub skill install s17feed8b2qc486skqmjapxmjs86bd4f:dataify-booking-hotellist` in an isolated environment before connecting it to live workloads.","No published capability contract is available yet, so validate auth and request/response behavior manually.","Review the upstream CLAWHUB listing at https://clawhub.ai/dataify-server/dataify-booking-hotellist before using production credentials."],"contract":{"contractStatus":"missing","authModes":[],"requires":[],"forbidden":[],"supportsMcp":false,"supportsA2a":false,"supportsStreaming":false,"inputSchemaRef":null,"outputSchemaRef":null,"dataRegion":null,"contractUpdatedAt":null,"sourceUpdatedAt":null,"freshnessSeconds":null},"invocationGuide":{"preferredApi":{"snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-dataify-server-dataify-booking-hotellist/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-dataify-server-dataify-booking-hotellist/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-dataify-server-dataify-booking-hotellist/trust"},"curlExamples":["curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-dataify-server-dataify-booking-hotellist/snapshot\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-dataify-server-dataify-booking-hotellist/contract\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-dataify-server-dataify-booking-hotellist/trust\""],"jsonRequestTemplate":{"query":"summarize this repo","constraints":{"maxLatencyMs":2000,"protocolPreference":["OPENCLEW"]}},"jsonResponseTemplate":{"ok":true,"result":{"summary":"...","confidence":0.9},"meta":{"source":"CLAWHUB","generatedAt":"2026-10-11T22:47:41.087Z"}},"retryPolicy":{"maxAttempts":3,"backoffMs":[500,1500,3500],"retryableConditions":["HTTP_429","HTTP_503","NETWORK_TIMEOUT"]}},"endpoints":{"dossierUrl":"https://www.xpersona.co/api/v1/agents/clawhub-dataify-server-dataify-booking-hotellist/dossier","snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-dataify-server-dataify-booking-hotellist/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-dataify-server-dataify-booking-hotellist/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-dataify-server-dataify-booking-hotellist/trust"}},"reliability":{"evidence":{"source":"runtime-metrics","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No trust, reliability, or runtime telemetry is available."},"trust":{"status":"unavailable","handshakeStatus":"UNKNOWN","verificationFreshnessHours":null,"reputationScore":null,"p95LatencyMs":null,"successRate30d":null,"fallbackRate":null,"attempts30d":null,"trustUpdatedAt":null,"trustConfidence":"unknown","sourceUpdatedAt":null,"freshnessSeconds":null},"decisionGuardrails":{"doNotUseIf":["Contract metadata is missing or unavailable for deterministic execution."],"safeUseWhen":[],"riskFlags":["missing_or_unavailable_contract","trust_data_unavailable","schema_references_missing"],"operationalConfidence":"low"},"executionMetrics":{"observedLatencyMsP50":null,"observedLatencyMsP95":null,"estimatedCostUsd":null,"uptime30d":null,"rateLimitRpm":null,"rateLimitBurst":null,"lastVerifiedAt":null,"verificationSource":null},"runtimeMetrics":{"successRate":null,"avgLatencyMs":null,"avgCostUsd":null,"hallucinationRate":null,"retryRate":null,"disputeRate":null,"p50Latency":null,"p95Latency":null,"lastUpdated":null}},"benchmarks":{"evidence":{"source":"no-benchmark-data","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No benchmark suites or observed failure patterns are available."},"suites":[],"failurePatterns":[]},"artifacts":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-11T18:58:29.016Z","emptyReason":null},"readme":"Skill: Dataify Booking Hotel Info\n\nOwner: dataify-server\n\nSummary: Collect Booking Hotel Info data and return results\n\nTags: latest:1.3.0\n\nVersion history:\n\nv1.3.0 | 2026-09-01T09:12:34.739Z | user\n\n默认返回最终采集结果，完善异步等待下载与安全恢复；修复空目标误执行、Quick Start、Token 配置和触发路由冲突，并补齐发布前自动化测试\n\nv1.2.0 | 2026-07-16T08:35:52.195Z | user\n\n新增能力路由与异步任务闭环，修复失效引用、Token 泄漏和 Skill 元数据兼容性\n\nv1.1.0 | 2026-06-08T02:05:42.068Z | user\n\n补全中文文档，更新目录结构\n\nv1.0.0 | 2026-05-28T08:10:34.278Z | auto\n\n- Initial release of the dataify-booking-hotellist skill.\n- Enables collection of Booking.com hotel information using the Dataify Scraper API.\n- Supports creating tasks for hotel info extraction from one or multiple Booking URLs.\n- Guides users through parameter setup and task confirmation in Markdown tables before each API call.\n- Handles API token management, including user input and safe storage options.\n- Provides clear feedback after task creation, including task ID, status, and dashboard instructions.\n\nArchive index:\n\nArchive v1.3.0: 7 files, 11700 bytes\n\nFiles: agents/openai.yaml (371b), scripts/booking_hotellist.py (6535b), scripts/preview_params.py (3977b), skill-card.md (2196b), SKILL.md (6103b), SKILL.zh-CN.md (5336b), _meta.json (144b)\n\nFile v1.3.0:SKILL.md\n\n---\nname: dataify-booking-hotellist\ndescription: \"Collect structured Booking.com hotel records from a known Booking hotel or listing URL. Use for Booking hotel details or listings. Do not use for general hotel price discovery through Google Hotels.\"\n---\n\n# Dataify Booking Hotel Info\n\nUse this skill to create Booking hotel information collection tasks through Dataify's builder endpoint.\n\n\n## Quick Start\n\n**Input:** a Booking.com hotel URL.\n\n```bash\npython3 scripts/booking_hotellist.py --url \"https://www.booking.com/hotel/gb/westlands-of-pitlochry.en-gb.html\"\n```\n\nThe command waits up to 10 minutes and prints the final JSON result. Add `--no-wait` only for submission-only behavior.\n\nIf `DATAIFY_API_TOKEN` is missing, log in or register at https://dashboard.dataify.com/login?utm_source=skill. New accounts receive 50 free credits.\n\n## Required Workflow\n\n1. Use the `booking_hotellist_by-url` spider when the user wants to collect Booking hotel information from one or more Booking URLs.\n2. Check the local Python runtime before calling scripts. Prefer `python`; use `python3` if that is the available Python command. Require Python 3 or newer. Do not use version-specific commands such as `py -3.10`.\n3. Tell the user which parameters are required and what the defaults are. Ask whether any values should be changed.\n6. If any dropdown fields are added in the future, show all available dropdown values in Markdown tables with exactly these columns: `Label`, `Value`. This tool currently has no dropdown fields.\n## API Call\n\n\n```bash\npython scripts/booking_hotellist.py --url \"https://www.booking.com/hotel/gb/westlands-of-pitlochry.en-gb.html#tab-main\"\npython scripts/booking_hotellist.py --parameters-json '[{\"url\":\"https://www.booking.com/hotel/gb/westlands-of-pitlochry.en-gb.html#tab-main\"},{\"url\":\"https://www.booking.com/hotel/us/example.en-gb.html\"}]'\n```\n\n\n```bash\n```\n\n## Tool\n\n| Mode | Spider ID | Required parameters | Default spider_parameters |\n|---|---|---|---|\n| `by-url` | `booking_hotellist_by-url` | `url` | `[{\"url\":\"https://www.booking.com/hotel/gb/westlands-of-pitlochry.en-gb.html#tab-main\"}]` |\n\nEvery request also accepts `file_name`. If omitted, use `{{TasksID}}`.\n\n## Fixed Request Fields\n\nAlways submit to `https://scraperapi.dataify.com/builder?platform=1` with:\n\n| Field | Value |\n|---|---|\n| `spider_name` | `booking.com` |\n| `spider_id` | `booking_hotellist_by-url` |\n| `spider_parameters` | JSON array of one or more parameter objects |\n| `spider_errors` | `true` |\n| `file_name` | User value, otherwise `{{TasksID}}` |\n\nSend parameters as form data. Keep `spider_parameters` as a JSON string inside the form body.\n\n## Default completion behavior\n\nThe default deliverable is the collected result, not only a `task_id`.\n\n1. Submit the Builder task once and capture its `task_id`.\n2. Immediately continue with `$dataify-task-operations` and monitor the same task ID.\n   - Use the default 600-second wait for ordinary collections.\n   - Use `--timeout 1800` for media downloads or clearly high-volume, multi-page, or multi-input collections.\n3. When the task succeeds, download and return the final JSON result. Summarize large payloads while preserving access to the raw result.\n4. If monitoring times out or is interrupted, return the task ID and a resume command. Do not resubmit the paid task.\n5. Stop after submission only when the user explicitly asks for submission only, a task ID, or `--no-wait` behavior.\n\n## Parameter interaction policy\n\n- For a clear, low-risk, read-only, and low-cost request, apply safe defaults and execute immediately. A short execution summary is optional; do not pause for confirmation.\n- Ask only for a missing required input, a material ambiguity, a high-volume or multi-page scope, a media download, a choice that materially changes credit usage, an irreversible action, or an explicit user request to review parameters.\n- When confirmation is required, show only user-facing values that affect the target, scope, output, or cost. Prefer one concise sentence; use a compact table only when three or more consequential values are easier to compare.\n- Never show fixed fields, empty optional fields, unchanged defaults, credentials, or internal implementation parameters such as engine selectors, response-format flags, offsets, spider IDs, and file-name templates.\n- Keep advanced filters hidden unless the user asks for them or they are needed to resolve ambiguity. Never substitute documentation example values for missing required user input.\n- After returning results, offer relevant refinements instead of forcing all optional decisions before the first result.\n\n## Account CTA policy\n\n- Show a prominent Dataify account CTA only when the API token is missing, rejected/invalid, or the account has insufficient credits.\n- For a missing token, offer https://dashboard.dataify.com/login?utm_source=skill and state: New accounts receive 50 free credits. Never ask the user to paste the token into chat.\n- Detect the current operating system and shell. Show only the matching session-scoped setup command first (`export` for macOS/Linux shells, `$env:` for Windows PowerShell, or `set` for Windows Command Prompt). Show other platforms or persistent setup only when detection is ambiguous or the user asks.\n- After the user says the token is configured, verify only whether `DATAIFY_API_TOKEN` is present; never print its value. If verification succeeds, continue the original task without asking the user to repeat it.\n- Explain that persistent shell changes may require a new terminal or restarting the agent application. Do not recommend a project `.env` unless the execution path explicitly loads it, and ensure `.env` is ignored by version control.\n- For an invalid token, direct the user to API-key management without implying that a new registration is required. For insufficient credits, direct the user to balance or recharge management.\n- During normal submission, processing, and successful completion, do not promote registration or the Dashboard. Never expose the token or include it in CTA attribution parameters.\n\nFile v1.3.0:_meta.json\n\n{\n  \"ownerId\": \"kn74z5hmmwk21kw8tpphd9w21x86bkdf\",\n  \"slug\": \"dataify-booking-hotellist\",\n  \"version\": \"1.3.0\",\n  \"publishedAt\": 1788253954739\n}\n\nFile v1.3.0:skill-card.md\n\n## Description:\n\nCollect structured Booking.com hotel records from a known Booking hotel or listing URL and return the collected results.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[dataify-server](https://clawhub.ai/user/dataify-server)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nExternal users and developers use this skill to submit known Booking.com hotel or listing URLs to Dataify, monitor the collection task, and return final structured JSON results.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: The skill sends target Booking.com URLs and a Dataify API token to Dataify.\n\nMitigation: Use it only when that data sharing is acceptable, keep tokens out of chat and command arguments, and prefer session-scoped environment variables.\n\nRisk: The Chinese localized instructions do not match the primary workflow for returning collected results.\n\nMitigation: Review localized instructions before use and follow the primary workflow that waits for completion and returns the final result unless no-wait behavior is explicitly requested.\n\nRisk: The security verdict is suspicious because of credential-handling and workflow risks.\n\nMitigation: Review and scan the skill before installing or deploying it.\n\n## Reference(s):\n\n- [ClawHub skill page](https://clawhub.ai/dataify-server/skills/dataify-booking-hotellist)\n- [ClawHub publisher profile](https://clawhub.ai/user/dataify-server)\n\n## Skill Output:\n\n**Output Type(s):** [Text, Markdown, Shell commands, Configuration guidance, JSON]\n\n**Output Format:** [Markdown guidance with shell commands and final JSON collection results]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Default behavior waits for the asynchronous task and returns the final result; no-wait behavior returns the submission response or task ID.]\n\n## Skill Version(s):\n\n1.3.0 (source: server release evidence)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nFile v1.3.0:SKILL.zh-CN.md\n\n---\nname: dataify-booking-hotellist\ndescription: \"通过 Dataify Scraper API 采集 Booking 酒店信息。当用户请求 gather/scrape/crawl/fetch/extract/collect Booking hotel information、hotel details、hotel listings、hotel URLs，或从 Booking URL 提取数据时使用；也覆盖 Booking 酒店信息采集/抓取/爬取/获取、Booking URL 提取，以及使用 spider ID booking_hotellist_by-url 的请求。\"\n---\n\n# Dataify Booking Hotel Info 中文版\n\n## 采集模式\n\n| Mode | Spider ID | Required parameters | Default spider_parameters |\n|---|---|---|---|\n| `by-url` | `booking_hotellist_by-url` | `url` | `[{\"url\":\"https://www.booking.com/hotel/gb/westlands-of-pitlochry.en-gb.html#tab-main\"}]` |\n\n## API TOKEN 处理\n\n使用 `DATAIFY_API_TOKEN` 作为长期保存的 token 名称。\n\n- 如果用户在请求中提供了 token，则使用该 token。\n- 如果未提供 token，先检查环境变量中是否已保存 `DATAIFY_API_TOKEN`。\n- 如果本地已保存 `DATAIFY_API_TOKEN`，则直接使用。\n- 如果没有可用的 token，提示用户前往 [Dataify](https://dashboard.dataify.com?utm_source=skill) 获取 API TOKEN。\n- 没有 token 不要调用 Builder 接口。\n\n## 设置 DATAIFY_API_TOKEN\n\n推荐使用永久环境变量，而不是只在当前终端临时设置。\n\nWindows PowerShell，当前用户永久设置：\n\n```powershell\n[Environment]::SetEnvironmentVariable(\"DATAIFY_API_TOKEN\", \"your_token_here\", \"User\")\n```\n\n然后重新打开 PowerShell。如果当前会话也要立即生效，再执行：\n\n```powershell\n$env:DATAIFY_API_TOKEN = \"your_token_here\"\n```\n\nmacOS 或 Linux，bash 永久设置：\n\n```bash\necho 'export DATAIFY_API_TOKEN=\"your_token_here\"' >> ~/.bashrc\nsource ~/.bashrc\n```\n\nmacOS 或 Linux，zsh 永久设置：\n\n```bash\necho 'export DATAIFY_API_TOKEN=\"your_token_here\"' >> ~/.zshrc\nsource ~/.zshrc\n```\n## 核心工作流程\n\n1. 从用户请求中识别采集模式。\n2. 提交前，以 Markdown 表格展示必填参数、可选参数和默认值。\n4. 规范化并验证最终参数值。\n5. 获取 Dataify token（用户提供或已保存的 `DATAIFY_API_TOKEN`）。\n6. 如果没有 token，提示用户前往 [Dataify](https://dashboard.dataify.com?utm_source=skill) 获取。\n7. 提交 Builder 请求创建任务。\n8. 从响应中读取 `data.task_id`。\n9. 提交成功后停止，告诉用户前往 [Dataify](https://dashboard.dataify.com?utm_source=skill) 查看或管理结果。\n\n## 脚本用法\n\n使用 Python 运行：\n\n```bash\npython3 scripts/booking_hotellist.py --help\n```\n\n## 注意事项\n\n- 提交成功后不要下载结果文件，告诉用户前往 [Dataify](https://dashboard.dataify.com?utm_source=skill) 查看。\n- 如果用户已经提供了部分参数，在表格中显示这些值，只询问是否修改剩余参数。\n\n## 参数交互策略\n\n- 当请求意图明确、只读、低风险且成本较低时，使用安全默认值直接执行。可以用一句话说明执行内容，但不要暂停等待确认。\n- 只在缺少必填输入、存在会明显改变结果的歧义、大批量或多页采集、媒体下载、会明显增加积分消耗、不可逆操作，或用户明确要求查看参数时询问。\n- 必须确认时，只展示会影响目标、范围、输出或成本的用户参数。优先使用一句简短说明；只有三个及以上关键值确实需要比较时才使用精简表格。\n- 不要展示固定字段、空的可选字段、未修改的默认值、凭据或内部实现参数，例如引擎选择、响应格式开关、偏移量、spider ID 和文件名模板。\n- 默认隐藏高级筛选项，除非用户主动询问或需要它们消除歧义。不得用文档示例值代替用户缺失的必填输入。\n- 先返回首个结果，再提供相关的细化选项，不要在首次执行前强迫用户决定所有可选项。\n\n## Account CTA policy\n\n- Show a prominent Dataify account CTA only when the API token is missing, rejected/invalid, or the account has insufficient credits.\n- For a missing token, offer https://dashboard.dataify.com/login?utm_source=skill and state: New accounts receive 50 free credits. Never ask the user to paste the token into chat.\n- Detect the current operating system and shell. Show only the matching session-scoped setup command first (`export` for macOS/Linux shells, `$env:` for Windows PowerShell, or `set` for Windows Command Prompt). Show other platforms or persistent setup only when detection is ambiguous or the user asks.\n- After the user says the token is configured, verify only whether `DATAIFY_API_TOKEN` is present; never print its value. If verification succeeds, continue the original task without asking the user to repeat it.\n- Explain that persistent shell changes may require a new terminal or restarting the agent application. Do not recommend a project `.env` unless the execution path explicitly loads it, and ensure `.env` is ignored by version control.\n- For an invalid token, direct the user to API-key management without implying that a new registration is required. For insufficient credits, direct the user to balance or recharge management.\n- During normal submission, processing, and successful completion, do not promote registration or the Dashboard. Never expose the token or include it in CTA attribution parameters.\n\nFile v1.3.0:agents/openai.yaml\n\ninterface:\n  display_name: \"Dataify Booking Hotel Info\"\n  short_description: \"Collect Booking Hotel Info data and return results\"\n  default_prompt: \"Use $dataify-booking-hotellist to complete the requested Dataify collection, wait for the asynchronous task, and return the final collected result. Stop at task submission only when I explicitly request no-wait behavior.\"\n\nArchive v1.2.0: 7 files, 9109 bytes\n\nFiles: agents/openai.yaml (234b), scripts/booking_hotellist.py (5493b), scripts/preview_params.py (4027b), skill-card.md (1977b), SKILL.md (5053b), SKILL.zh-CN.md (2951b), _meta.json (144b)\n\nFile v1.2.0:SKILL.md\n\n---\nname: dataify-booking-hotellist\ndescription: Collect Booking hotel information through Dataify Scraper API. Use when the user asks to gather, scrape, crawl, fetch, extract, or collect Booking hotel information, Booking hotel details, Booking hotel listings, Booking hotel URLs, or data from a Booking URL, including noun-plus-verb combinations such as Booking hotel information plus collect/scrape/crawl/fetch/extract, \"Booking hotel info scrape\", \"Booking hotel URL collect\", \"Booking hotel information extract\", \"Booking 酒店信息采集\", \"Booking 酒店信息抓取\", \"Booking 酒店信息爬取\", \"Booking 酒店信息获取\", \"Booking URL 提取\", or requests using spider ID booking_hotellist_by-url.\n---\n\n# Dataify Booking Hotel Info\n\nUse this skill to create Booking hotel information collection tasks through Dataify's builder endpoint.\n\n## Required Workflow\n\n1. Use the `booking_hotellist_by-url` spider when the user wants to collect Booking hotel information from one or more Booking URLs.\n2. Check the local Python runtime before calling scripts. Prefer `python`; use `python3` if that is the available Python command. Require Python 3 or newer. Do not use version-specific commands such as `py -3.10`.\n3. Tell the user which parameters are required and what the defaults are. Ask whether any values should be changed.\n4. Ask whether the user wants to collect multiple parameter sets. If yes, collect multiple `spider_parameters` objects for the same spider ID. If the user already supplied multiple Booking URLs, treat that as a multiple-set request.\n5. Before every real API call, show a Markdown confirmation table with the exact parameters that will be submitted. The table must use these columns: `Parameter`, `Current value`, `Default value`, `Required`, `Description`.\n6. If any dropdown fields are added in the future, show all available dropdown values in Markdown tables with exactly these columns: `Label`, `Value`. This tool currently has no dropdown fields.\n7. Ask the user whether any value should be changed. Do not call the API until the user explicitly confirms the table.\n8. Check for the Dataify API token only after parameter confirmation. Prefer a token explicitly provided by the user, then `DATAIFY_API_TOKEN` from the environment.\n9. If no token is available, tell the user: `Missing Dataify API token. Provide a token, or log in/register at` [Dataify](https://dashboard.dataify.com/login?utm_source=skill) `If you already have one, open` [Dataify](https://dashboard.dataify.com?utm_source=skill) `and copy the API TOKEN from the top-right area.`\n10. If the user provides a token and `DATAIFY_API_TOKEN` is not already saved locally, ask whether to save it as `DATAIFY_API_TOKEN`. Save it only after explicit consent and never echo the token back.\n11. After the API call, report the collection task ID and status. Look for common response fields such as `task_id`, `taskId`, `id`, `status`, `data.task_id`, `data.id`, or `data.status`. Then remind the user to view task details in the official dashboard: [Dataify](https://dashboard.dataify.com?utm_source=skill)\n\n## Parameter Preview\n\nUse the preview helper whenever possible:\n\n```bash\npython scripts/preview_params.py --url \"https://www.booking.com/hotel/gb/westlands-of-pitlochry.en-gb.html#tab-main\"\n```\n\nFor multiple parameter sets, pass the exact JSON array:\n\n```bash\npython scripts/preview_params.py --parameters-json '[{\"url\":\"https://www.booking.com/hotel/gb/westlands-of-pitlochry.en-gb.html#tab-main\"},{\"url\":\"https://www.booking.com/hotel/us/example.en-gb.html\"}]'\n```\n\n## API Call\n\nUse the call helper after confirmation and token handling:\n\n```bash\npython scripts/booking_hotellist.py --url \"https://www.booking.com/hotel/gb/westlands-of-pitlochry.en-gb.html#tab-main\"\npython scripts/booking_hotellist.py --parameters-json '[{\"url\":\"https://www.booking.com/hotel/gb/westlands-of-pitlochry.en-gb.html#tab-main\"},{\"url\":\"https://www.booking.com/hotel/us/example.en-gb.html\"}]'\n```\n\nIf the token was provided in the conversation instead of the environment, pass it with `--token` and do not expose it in user-facing output:\n\n```bash\npython scripts/booking_hotellist.py --token \"USER_TOKEN\" --url \"https://www.booking.com/hotel/gb/westlands-of-pitlochry.en-gb.html#tab-main\"\n```\n\n## Tool\n\n| Mode | Spider ID | Required parameters | Default spider_parameters |\n|---|---|---|---|\n| `by-url` | `booking_hotellist_by-url` | `url` | `[{\"url\":\"https://www.booking.com/hotel/gb/westlands-of-pitlochry.en-gb.html#tab-main\"}]` |\n\nEvery request also accepts `file_name`. If omitted, use `{{TasksID}}`.\n\n## Fixed Request Fields\n\nAlways submit to `https://scraperapi.dataify.com/builder?platform=1` with:\n\n| Field | Value |\n|---|---|\n| `spider_name` | `booking.com` |\n| `spider_id` | `booking_hotellist_by-url` |\n| `spider_parameters` | JSON array of one or more parameter objects |\n| `spider_errors` | `true` |\n| `file_name` | User value, otherwise `{{TasksID}}` |\n\nSend parameters as form data. Keep `spider_parameters` as a JSON string inside the form body.\n\nFile v1.2.0:_meta.json\n\n{\n  \"ownerId\": \"kn74z5hmmwk21kw8tpphd9w21x86bkdf\",\n  \"slug\": \"dataify-booking-hotellist\",\n  \"version\": \"1.2.0\",\n  \"publishedAt\": 1784190952195\n}\n\nFile v1.2.0:skill-card.md\n\n## Description: <br>\nCollect Booking hotel information through Dataify Scraper API. <br>\n\nThis skill is ready for commercial/non-commercial use. <br>\n\n## Publisher: <br>\n[dataify-server](https://clawhub.ai/user/dataify-server) <br>\n\n### License/Terms of Use: <br>\nMIT-0 <br>\n\n\n## Use Case: <br>\nExternal users and developers use this skill to preview parameters, confirm required Booking URLs, and create Dataify collection tasks for Booking hotel listings. <br>\n\n### Deployment Geography for Use: <br>\nGlobal <br>\n\n## Known Risks and Mitigations: <br>\nRisk: The skill uses a Dataify API token and may save DATAIFY_API_TOKEN in the local environment. <br>\nMitigation: Confirm token handling before each run, never echo the token, and save it persistently only after explicit user consent. <br>\nRisk: The skill creates Booking hotel collection tasks through Dataify after parameter confirmation. <br>\nMitigation: Review the Markdown confirmation table and verify all Booking URLs and task parameters before making the API call. <br>\n\n\n## Reference(s): <br>\n- [Dataify Dashboard](https://dashboard.dataify.com?utm_source=skill) <br>\n- [ClawHub skill page](https://clawhub.ai/dataify-server/skills/dataify-booking-hotellist) <br>\n\n\n## Skill Output: <br>\n**Output Type(s):** [Text, Markdown, Shell commands, Configuration guidance] <br>\n**Output Format:** [Markdown confirmation tables with inline shell commands and task status text] <br>\n**Output Parameters:** [1D] <br>\n**Other Properties Related to Output:** [Requires a Booking URL and a Dataify API token; can submit one or more spider parameter sets after confirmation.] <br>\n\n## Skill Version(s): <br>\n1.2.0 (source: server release metadata) <br>\n\n## Ethical Considerations: <br>\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment. <br>\n\nFile v1.2.0:SKILL.zh-CN.md\n\n---\nname: dataify-booking-hotellist\ndescription: \"通过 Dataify Scraper API 采集 Booking 酒店信息。当用户请求 gather/scrape/crawl/fetch/extract/collect Booking hotel information、hotel details、hotel listings、hotel URLs，或从 Booking URL 提取数据时使用；也覆盖 Booking 酒店信息采集/抓取/爬取/获取、Booking URL 提取，以及使用 spider ID booking_hotellist_by-url 的请求。\"\n---\n\n# Dataify Booking Hotel Info 中文版\n\n## 采集模式\n\n| Mode | Spider ID | Required parameters | Default spider_parameters |\n|---|---|---|---|\n| `by-url` | `booking_hotellist_by-url` | `url` | `[{\"url\":\"https://www.booking.com/hotel/gb/westlands-of-pitlochry.en-gb.html#tab-main\"}]` |\n\n## API TOKEN 处理\n\n使用 `DATAIFY_API_TOKEN` 作为长期保存的 token 名称。\n\n- 如果用户在请求中提供了 token，则使用该 token。\n- 如果未提供 token，先检查环境变量中是否已保存 `DATAIFY_API_TOKEN`。\n- 如果本地已保存 `DATAIFY_API_TOKEN`，则直接使用。\n- 如果没有可用的 token，提示用户前往 [Dataify](https://dashboard.dataify.com?utm_source=skill) 获取 API TOKEN。\n- 没有 token 不要调用 Builder 接口。\n\n## 设置 DATAIFY_API_TOKEN\n\n推荐使用永久环境变量，而不是只在当前终端临时设置。\n\nWindows PowerShell，当前用户永久设置：\n\n```powershell\n[Environment]::SetEnvironmentVariable(\"DATAIFY_API_TOKEN\", \"your_token_here\", \"User\")\n```\n\n然后重新打开 PowerShell。如果当前会话也要立即生效，再执行：\n\n```powershell\n$env:DATAIFY_API_TOKEN = \"your_token_here\"\n```\n\nmacOS 或 Linux，bash 永久设置：\n\n```bash\necho 'export DATAIFY_API_TOKEN=\"your_token_here\"' >> ~/.bashrc\nsource ~/.bashrc\n```\n\nmacOS 或 Linux，zsh 永久设置：\n\n```bash\necho 'export DATAIFY_API_TOKEN=\"your_token_here\"' >> ~/.zshrc\nsource ~/.zshrc\n```\n## 核心工作流程\n\n1. 从用户请求中识别采集模式。\n2. 提交前，以 Markdown 表格展示必填参数、可选参数和默认值。\n3. 询问用户是否需要修改参数。\n4. 规范化并验证最终参数值。\n5. 获取 Dataify token（用户提供或已保存的 `DATAIFY_API_TOKEN`）。\n6. 如果没有 token，提示用户前往 [Dataify](https://dashboard.dataify.com?utm_source=skill) 获取。\n7. 提交 Builder 请求创建任务。\n8. 从响应中读取 `data.task_id`。\n9. 提交成功后停止，告诉用户前往 [Dataify](https://dashboard.dataify.com?utm_source=skill) 查看或管理结果。\n\n## 脚本用法\n\n使用 Python 运行：\n\n```bash\npython3 scripts/booking_hotellist.py --help\n```\n\n## 注意事项\n\n- 提交成功后不要下载结果文件，告诉用户前往 [Dataify](https://dashboard.dataify.com?utm_source=skill) 查看。\n- 始终以 Markdown 表格展示参数确认，不要使用纯文本或项目列表。\n- 如果用户已经提供了部分参数，在表格中显示这些值，只询问是否修改剩余参数。\n\nFile v1.2.0:agents/openai.yaml\n\ninterface:\n  display_name: \"Dataify Booking Hotel Info\"\n  short_description: \"Collect Booking hotel information through Dataify.\"\n  default_prompt: \"Use $dataify-booking-hotellist to collect Booking hotel information by Booking URL.\"\n\nArchive v1.1.0: 7 files, 9140 bytes\n\nFiles: agents/openai.yaml (234b), scripts/booking_hotellist.py (5493b), scripts/preview_params.py (4027b), skill-card.md (2012b), SKILL.md (5053b), SKILL.zh-CN.md (2951b), _meta.json (144b)\n\nFile v1.1.0:SKILL.md\n\n---\nname: dataify-booking-hotellist\ndescription: Collect Booking hotel information through Dataify Scraper API. Use when the user asks to gather, scrape, crawl, fetch, extract, or collect Booking hotel information, Booking hotel details, Booking hotel listings, Booking hotel URLs, or data from a Booking URL, including noun-plus-verb combinations such as Booking hotel information plus collect/scrape/crawl/fetch/extract, \"Booking hotel info scrape\", \"Booking hotel URL collect\", \"Booking hotel information extract\", \"Booking 酒店信息采集\", \"Booking 酒店信息抓取\", \"Booking 酒店信息爬取\", \"Booking 酒店信息获取\", \"Booking URL 提取\", or requests using spider ID booking_hotellist_by-url.\n---\n\n# Dataify Booking Hotel Info\n\nUse this skill to create Booking hotel information collection tasks through Dataify's builder endpoint.\n\n## Required Workflow\n\n1. Use the `booking_hotellist_by-url` spider when the user wants to collect Booking hotel information from one or more Booking URLs.\n2. Check the local Python runtime before calling scripts. Prefer `python`; use `python3` if that is the available Python command. Require Python 3 or newer. Do not use version-specific commands such as `py -3.10`.\n3. Tell the user which parameters are required and what the defaults are. Ask whether any values should be changed.\n4. Ask whether the user wants to collect multiple parameter sets. If yes, collect multiple `spider_parameters` objects for the same spider ID. If the user already supplied multiple Booking URLs, treat that as a multiple-set request.\n5. Before every real API call, show a Markdown confirmation table with the exact parameters that will be submitted. The table must use these columns: `Parameter`, `Current value`, `Default value`, `Required`, `Description`.\n6. If any dropdown fields are added in the future, show all available dropdown values in Markdown tables with exactly these columns: `Label`, `Value`. This tool currently has no dropdown fields.\n7. Ask the user whether any value should be changed. Do not call the API until the user explicitly confirms the table.\n8. Check for the Dataify API token only after parameter confirmation. Prefer a token explicitly provided by the user, then `DATAIFY_API_TOKEN` from the environment.\n9. If no token is available, tell the user: `Missing Dataify API token. Provide a token, or log in/register at` [Dataify](https://dashboard.dataify.com/login?utm_source=skill) `If you already have one, open` [Dataify](https://dashboard.dataify.com?utm_source=skill) `and copy the API TOKEN from the top-right area.`\n10. If the user provides a token and `DATAIFY_API_TOKEN` is not already saved locally, ask whether to save it as `DATAIFY_API_TOKEN`. Save it only after explicit consent and never echo the token back.\n11. After the API call, report the collection task ID and status. Look for common response fields such as `task_id`, `taskId`, `id`, `status`, `data.task_id`, `data.id`, or `data.status`. Then remind the user to view task details in the official dashboard: [Dataify](https://dashboard.dataify.com?utm_source=skill)\n\n## Parameter Preview\n\nUse the preview helper whenever possible:\n\n```bash\npython scripts/preview_params.py --url \"https://www.booking.com/hotel/gb/westlands-of-pitlochry.en-gb.html#tab-main\"\n```\n\nFor multiple parameter sets, pass the exact JSON array:\n\n```bash\npython scripts/preview_params.py --parameters-json '[{\"url\":\"https://www.booking.com/hotel/gb/westlands-of-pitlochry.en-gb.html#tab-main\"},{\"url\":\"https://www.booking.com/hotel/us/example.en-gb.html\"}]'\n```\n\n## API Call\n\nUse the call helper after confirmation and token handling:\n\n```bash\npython scripts/booking_hotellist.py --url \"https://www.booking.com/hotel/gb/westlands-of-pitlochry.en-gb.html#tab-main\"\npython scripts/booking_hotellist.py --parameters-json '[{\"url\":\"https://www.booking.com/hotel/gb/westlands-of-pitlochry.en-gb.html#tab-main\"},{\"url\":\"https://www.booking.com/hotel/us/example.en-gb.html\"}]'\n```\n\nIf the token was provided in the conversation instead of the environment, pass it with `--token` and do not expose it in user-facing output:\n\n```bash\npython scripts/booking_hotellist.py --token \"USER_TOKEN\" --url \"https://www.booking.com/hotel/gb/westlands-of-pitlochry.en-gb.html#tab-main\"\n```\n\n## Tool\n\n| Mode | Spider ID | Required parameters | Default spider_parameters |\n|---|---|---|---|\n| `by-url` | `booking_hotellist_by-url` | `url` | `[{\"url\":\"https://www.booking.com/hotel/gb/westlands-of-pitlochry.en-gb.html#tab-main\"}]` |\n\nEvery request also accepts `file_name`. If omitted, use `{{TasksID}}`.\n\n## Fixed Request Fields\n\nAlways submit to `https://scraperapi.dataify.com/builder?platform=1` with:\n\n| Field | Value |\n|---|---|\n| `spider_name` | `booking.com` |\n| `spider_id` | `booking_hotellist_by-url` |\n| `spider_parameters` | JSON array of one or more parameter objects |\n| `spider_errors` | `true` |\n| `file_name` | User value, otherwise `{{TasksID}}` |\n\nSend parameters as form data. Keep `spider_parameters` as a JSON string inside the form body.\n\nFile v1.1.0:_meta.json\n\n{\n  \"ownerId\": \"kn74z5hmmwk21kw8tpphd9w21x86bkdf\",\n  \"slug\": \"dataify-booking-hotellist\",\n  \"version\": \"1.1.0\",\n  \"publishedAt\": 1780884342068\n}\n\nFile v1.1.0:skill-card.md\n\n## Description: <br>\nCollects Booking hotel information through the Dataify Scraper API by creating Dataify Booking URL collection tasks. <br>\n\nThis skill is ready for commercial/non-commercial use. <br>\n\n## Publisher: <br>\n[dataify-server](https://clawhub.ai/user/dataify-server) <br>\n\n### License/Terms of Use: <br>\nMIT-0 <br>\n\n\n## Use Case: <br>\nExternal users and agents use this skill to prepare and confirm Booking URL scraping parameters, handle a Dataify API token, submit a Dataify collection task, and report the resulting task status. <br>\n\n### Deployment Geography for Use: <br>\nGlobal <br>\n\n## Known Risks and Mitigations: <br>\nRisk: The skill uses a persistent Dataify API token and may receive user-supplied Booking URLs or scraping inputs. <br>\nMitigation: Use a dedicated Dataify token where possible, do not paste or log the token, and confirm parameters before any API call. <br>\nRisk: Submitted scraping jobs are processed by Dataify. <br>\nMitigation: Do not submit private URLs, account data, cookies, or other sensitive inputs unless the user intends Dataify to process them. <br>\n\n\n## Reference(s): <br>\n- [ClawHub skill page](https://clawhub.ai/dataify-server/dataify-booking-hotellist) <br>\n- [Dataify dashboard](https://dashboard.dataify.com?utm_source=skill) <br>\n\n\n## Skill Output: <br>\n**Output Type(s):** [text, markdown, shell commands, configuration, guidance] <br>\n**Output Format:** [Markdown confirmation tables, text status summaries, and shell command examples] <br>\n**Output Parameters:** [1D] <br>\n**Other Properties Related to Output:** [May create Dataify collection tasks after user confirmation and token handling.] <br>\n\n## Skill Version(s): <br>\n1.1.0 (source: server release evidence) <br>\n\n## Ethical Considerations: <br>\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment. <br>\n\nFile v1.1.0:SKILL.zh-CN.md\n\n---\nname: dataify-booking-hotellist\ndescription: \"通过 Dataify Scraper API 采集 Booking 酒店信息。当用户请求 gather/scrape/crawl/fetch/extract/collect Booking hotel information、hotel details、hotel listings、hotel URLs，或从 Booking URL 提取数据时使用；也覆盖 Booking 酒店信息采集/抓取/爬取/获取、Booking URL 提取，以及使用 spider ID booking_hotellist_by-url 的请求。\"\n---\n\n# Dataify Booking Hotel Info 中文版\n\n## 采集模式\n\n| Mode | Spider ID | Required parameters | Default spider_parameters |\n|---|---|---|---|\n| `by-url` | `booking_hotellist_by-url` | `url` | `[{\"url\":\"https://www.booking.com/hotel/gb/westlands-of-pitlochry.en-gb.html#tab-main\"}]` |\n\n## API TOKEN 处理\n\n使用 `DATAIFY_API_TOKEN` 作为长期保存的 token 名称。\n\n- 如果用户在请求中提供了 token，则使用该 token。\n- 如果未提供 token，先检查环境变量中是否已保存 `DATAIFY_API_TOKEN`。\n- 如果本地已保存 `DATAIFY_API_TOKEN`，则直接使用。\n- 如果没有可用的 token，提示用户前往 [Dataify](https://dashboard.dataify.com?utm_source=skill) 获取 API TOKEN。\n- 没有 token 不要调用 Builder 接口。\n\n## 设置 DATAIFY_API_TOKEN\n\n推荐使用永久环境变量，而不是只在当前终端临时设置。\n\nWindows PowerShell，当前用户永久设置：\n\n```powershell\n[Environment]::SetEnvironmentVariable(\"DATAIFY_API_TOKEN\", \"your_token_here\", \"User\")\n```\n\n然后重新打开 PowerShell。如果当前会话也要立即生效，再执行：\n\n```powershell\n$env:DATAIFY_API_TOKEN = \"your_token_here\"\n```\n\nmacOS 或 Linux，bash 永久设置：\n\n```bash\necho 'export DATAIFY_API_TOKEN=\"your_token_here\"' >> ~/.bashrc\nsource ~/.bashrc\n```\n\nmacOS 或 Linux，zsh 永久设置：\n\n```bash\necho 'export DATAIFY_API_TOKEN=\"your_token_here\"' >> ~/.zshrc\nsource ~/.zshrc\n```\n## 核心工作流程\n\n1. 从用户请求中识别采集模式。\n2. 提交前，以 Markdown 表格展示必填参数、可选参数和默认值。\n3. 询问用户是否需要修改参数。\n4. 规范化并验证最终参数值。\n5. 获取 Dataify token（用户提供或已保存的 `DATAIFY_API_TOKEN`）。\n6. 如果没有 token，提示用户前往 [Dataify](https://dashboard.dataify.com?utm_source=skill) 获取。\n7. 提交 Builder 请求创建任务。\n8. 从响应中读取 `data.task_id`。\n9. 提交成功后停止，告诉用户前往 [Dataify](https://dashboard.dataify.com?utm_source=skill) 查看或管理结果。\n\n## 脚本用法\n\n使用 Python 运行：\n\n```bash\npython3 scripts/booking_hotellist.py --help\n```\n\n## 注意事项\n\n- 提交成功后不要下载结果文件，告诉用户前往 [Dataify](https://dashboard.dataify.com?utm_source=skill) 查看。\n- 始终以 Markdown 表格展示参数确认，不要使用纯文本或项目列表。\n- 如果用户已经提供了部分参数，在表格中显示这些值，只询问是否修改剩余参数。\n\nFile v1.1.0:agents/openai.yaml\n\ninterface:\n  display_name: \"Dataify Booking Hotel Info\"\n  short_description: \"Collect Booking hotel information through Dataify.\"\n  default_prompt: \"Use $dataify-booking-hotellist to collect Booking hotel information by Booking URL.\"\n\nArchive v1.0.0: 6 files, 7577 bytes\n\nFiles: agents/openai.yaml (234b), scripts/booking_hotellist.py (5450b), scripts/preview_params.py (4027b), skill-card.md (2226b), SKILL.md (4958b), _meta.json (144b)\n\nFile v1.0.0:SKILL.md\n\n---\nname: dataify-booking-hotellist\ndescription: Collect Booking hotel information through Dataify Scraper API. Use when the user asks to gather, scrape, crawl, fetch, extract, or collect Booking hotel information, Booking hotel details, Booking hotel listings, Booking hotel URLs, or data from a Booking URL, including noun-plus-verb combinations such as Booking hotel information plus collect/scrape/crawl/fetch/extract, \"Booking hotel info scrape\", \"Booking hotel URL collect\", \"Booking hotel information extract\", \"Booking 酒店信息采集\", \"Booking 酒店信息抓取\", \"Booking 酒店信息爬取\", \"Booking 酒店信息获取\", \"Booking URL 提取\", or requests using spider ID booking_hotellist_by-url.\n---\n\n# Dataify Booking Hotel Info\n\nUse this skill to create Booking hotel information collection tasks through Dataify's builder endpoint.\n\n## Required Workflow\n\n1. Use the `booking_hotellist_by-url` spider when the user wants to collect Booking hotel information from one or more Booking URLs.\n2. Check the local Python runtime before calling scripts. Prefer `python`; use `python3` if that is the available Python command. Require Python 3 or newer. Do not use version-specific commands such as `py -3.10`.\n3. Tell the user which parameters are required and what the defaults are. Ask whether any values should be changed.\n4. Ask whether the user wants to collect multiple parameter sets. If yes, collect multiple `spider_parameters` objects for the same spider ID. If the user already supplied multiple Booking URLs, treat that as a multiple-set request.\n5. Before every real API call, show a Markdown confirmation table with the exact parameters that will be submitted. The table must use these columns: `Parameter`, `Current value`, `Default value`, `Required`, `Description`.\n6. If any dropdown fields are added in the future, show all available dropdown values in Markdown tables with exactly these columns: `Label`, `Value`. This tool currently has no dropdown fields.\n7. Ask the user whether any value should be changed. Do not call the API until the user explicitly confirms the table.\n8. Check for the Dataify API token only after parameter confirmation. Prefer a token explicitly provided by the user, then `DATAIFY_API_TOKEN` from the environment.\n9. If no token is available, tell the user: `Missing Dataify API token. Provide a token, or log in/register at https://dataify.com/login. If you already have one, open https://dataify.com/dashboard/ and copy the API TOKEN from the top-right area.`\n10. If the user provides a token and `DATAIFY_API_TOKEN` is not already saved locally, ask whether to save it as `DATAIFY_API_TOKEN`. Save it only after explicit consent and never echo the token back.\n11. After the API call, report the collection task ID and status. Look for common response fields such as `task_id`, `taskId`, `id`, `status`, `data.task_id`, `data.id`, or `data.status`. Then remind the user to view task details in the official dashboard: https://dataify.com/dashboard/\n\n## Parameter Preview\n\nUse the preview helper whenever possible:\n\n```bash\npython scripts/preview_params.py --url \"https://www.booking.com/hotel/gb/westlands-of-pitlochry.en-gb.html#tab-main\"\n```\n\nFor multiple parameter sets, pass the exact JSON array:\n\n```bash\npython scripts/preview_params.py --parameters-json '[{\"url\":\"https://www.booking.com/hotel/gb/westlands-of-pitlochry.en-gb.html#tab-main\"},{\"url\":\"https://www.booking.com/hotel/us/example.en-gb.html\"}]'\n```\n\n## API Call\n\nUse the call helper after confirmation and token handling:\n\n```bash\npython scripts/booking_hotellist.py --url \"https://www.booking.com/hotel/gb/westlands-of-pitlochry.en-gb.html#tab-main\"\npython scripts/booking_hotellist.py --parameters-json '[{\"url\":\"https://www.booking.com/hotel/gb/westlands-of-pitlochry.en-gb.html#tab-main\"},{\"url\":\"https://www.booking.com/hotel/us/example.en-gb.html\"}]'\n```\n\nIf the token was provided in the conversation instead of the environment, pass it with `--token` and do not expose it in user-facing output:\n\n```bash\npython scripts/booking_hotellist.py --token \"USER_TOKEN\" --url \"https://www.booking.com/hotel/gb/westlands-of-pitlochry.en-gb.html#tab-main\"\n```\n\n## Tool\n\n| Mode | Spider ID | Required parameters | Default spider_parameters |\n|---|---|---|---|\n| `by-url` | `booking_hotellist_by-url` | `url` | `[{\"url\":\"https://www.booking.com/hotel/gb/westlands-of-pitlochry.en-gb.html#tab-main\"}]` |\n\nEvery request also accepts `file_name`. If omitted, use `{{TasksID}}`.\n\n## Fixed Request Fields\n\nAlways submit to `https://scraperapi.dataify.com/builder?platform=1` with:\n\n| Field | Value |\n|---|---|\n| `spider_name` | `booking.com` |\n| `spider_id` | `booking_hotellist_by-url` |\n| `spider_parameters` | JSON array of one or more parameter objects |\n| `spider_errors` | `true` |\n| `file_name` | User value, otherwise `{{TasksID}}` |\n\nSend parameters as form data. Keep `spider_parameters` as a JSON string inside the form body.\n\nFile v1.0.0:_meta.json\n\n{\n  \"ownerId\": \"kn74z5hmmwk21kw8tpphd9w21x86bkdf\",\n  \"slug\": \"dataify-booking-hotellist\",\n  \"version\": \"1.0.0\",\n  \"publishedAt\": 1779955834278\n}\n\nFile v1.0.0:skill-card.md\n\n## Description: <br>\nCollect Booking hotel information through the Dataify Scraper API from one or more Booking URLs. <br>\n\nThis skill is ready for commercial/non-commercial use. <br>\n\n## Publisher: <br>\n[dataify-server](https://clawhub.ai/user/dataify-server) <br>\n\n### License/Terms of Use: <br>\nMIT-0 <br>\n\n\n## Use Case: <br>\nExternal users and developers use this skill to prepare, confirm, and create Dataify collection tasks for Booking hotel information by URL. It supports one or multiple Booking URL parameter sets and reports task identifiers and status after creation. <br>\n\n### Deployment Geography for Use: <br>\nGlobal <br>\n\n## Known Risks and Mitigations: <br>\nRisk: Dataify API tokens can be exposed or persisted if passed directly in shell commands or saved without a clearly scoped storage method. <br>\nMitigation: Prefer DATAIFY_API_TOKEN from a controlled environment or another non-argv secret mechanism, and only allow token persistence after explicit user consent and a clear removal path. <br>\nRisk: A real API call creates a Dataify collection task using the submitted Booking URL parameters. <br>\nMitigation: Show the exact parameter confirmation table and require explicit user confirmation before calling the API. <br>\n\n\n## Reference(s): <br>\n- [ClawHub skill page](https://clawhub.ai/dataify-server/dataify-booking-hotellist) <br>\n- [Dataify dashboard](https://dataify.com/dashboard/) <br>\n- [Dataify Scraper API builder endpoint](https://scraperapi.dataify.com/builder?platform=1) <br>\n\n\n## Skill Output: <br>\n**Output Type(s):** [Markdown, Shell commands, API Calls, Guidance] <br>\n**Output Format:** [Markdown confirmation tables with shell commands and JSON API responses] <br>\n**Output Parameters:** [1D] <br>\n**Other Properties Related to Output:** [Uses Booking URL parameter sets; real API calls may return Dataify task IDs and status.] <br>\n\n## Skill Version(s): <br>\n1.0.0 (source: server release metadata) <br>\n\n## Ethical Considerations: <br>\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment. <br>\n\nFile v1.0.0:agents/openai.yaml\n\ninterface:\n  display_name: \"Dataify Booking Hotel Info\"\n  short_description: \"Collect Booking hotel information through Dataify.\"\n  default_prompt: \"Use $dataify-booking-hotellist to collect Booking hotel information by Booking URL.\"","readmeExcerpt":"Skill: Dataify Booking Hotel Info Owner: dataify-server Summary: Collect Booking Hotel Info data and return results Tags: latest:1.3.0 Version history: v1.3.0 | 2026-09-01T09:12:34.739Z | user 默认返回最终采集结果，完善异步等待下载与安全恢复；修复空目标误执行、Quick Start、Token 配置和触发路由冲突，并补齐发布前自动化测试 v1.2.0 | 2026-07-16T08:35:52.195Z | user 新增能力路由与异步任务闭环，修复失效引用、Token 泄漏和 Skill 元数据兼容性 v1.1.0 | 2026-06-08T02:05:42.068Z | user 补全中文文档，更新目录结构 v1.0.0 | 2026","codeSnippets":[],"executableExamples":[{"language":"bash","snippet":"python3 scripts/booking_hotellist.py --url \"https://www.booking.com/hotel/gb/westlands-of-pitlochry.en-gb.html\""},{"language":"bash","snippet":"python scripts/booking_hotellist.py --url \"https://www.booking.com/hotel/gb/westlands-of-pitlochry.en-gb.html#tab-main\"\npython scripts/booking_hotellist.py --parameters-json '[{\"url\":\"https://www.booking.com/hotel/gb/westlands-of-pitlochry.en-gb.html#tab-main\"},{\"url\":\"https://www.booking.com/hotel/us/example.en-gb.html\"}]'"},{"language":"powershell","snippet":"[Environment]::SetEnvironmentVariable(\"DATAIFY_API_TOKEN\", \"your_token_here\", \"User\")"},{"language":"powershell","snippet":"$env:DATAIFY_API_TOKEN = \"your_token_here\""},{"language":"bash","snippet":"echo 'export DATAIFY_API_TOKEN=\"your_token_here\"' >> ~/.bashrc\nsource ~/.bashrc"},{"language":"bash","snippet":"echo 'export DATAIFY_API_TOKEN=\"your_token_here\"' >> ~/.zshrc\nsource ~/.zshrc"}],"parameters":null,"dependencies":[],"permissions":[],"extractedFiles":[{"path":"SKILL.md","content":"---\nname: dataify-booking-hotellist\ndescription: \"Collect structured Booking.com hotel records from a known Booking hotel or listing URL. Use for Booking hotel details or listings. Do not use for general hotel price discovery through Google Hotels.\"\n---\n\n# Dataify Booking Hotel Info\n\nUse this skill to create Booking hotel information collection tasks through Dataify's builder endpoint.\n\n\n## Quick Start\n\n**Input:** a Booking.com hotel URL.\n\n```bash\npython3 scripts/booking_hotellist.py --url \"https://www.booking.com/hotel/gb/westlands-of-pitlochry.en-gb.html\"\n```\n\nThe command waits up to 10 minutes and prints the final JSON result. Add `--no-wait` only for submission-only behavior.\n\nIf `DATAIFY_API_TOKEN` is missing, log in or register at https://dashboard.dataify.com/login?utm_source=skill. New accounts receive 50 free credits.\n\n## Required Workflow\n\n1. Use the `booking_hotellist_by-url` spider when the user wants to collect Booking hotel information from one or more Booking URLs.\n2. Check the local Python runtime before calling scripts. Prefer `python`; use `python3` if that is the available Python command. Require Python 3 or newer. Do not use version-specific commands such as `py -3.10`.\n3. Tell the user which parameters are required and what the defaults are. Ask whether any values should be changed.\n6. If any dropdown fields are added in the future, show all available dropdown values in Markdown tables with exactly these columns: `Label`, `Value`. This tool currently has no dropdown fields.\n## API Call\n\n\n```bash\npython scripts/booking_hotellist.py --url \"https://www.booking.com/hotel/gb/westlands-of-pitlochry.en-gb.html#tab-main\"\npython scripts/booking_hotellist.py --parameters-json '[{\"url\":\"https://www.booking.com/hotel/gb/westlands-of-pitlochry.en-gb.html#tab-main\"},{\"url\":\"https://www.booking.com/hotel/us/example.en-gb.html\"}]'\n```\n\n\n```bash\n```\n\n## Tool\n\n| Mode | Spider ID | Required parameters | Default spider_parameters |\n|---|---|---|---|\n| `by-url` | `booking_hotellist_by-url` | `url` | `[{\"url\":\"https://www.booking.com/hotel/gb/westlands-of-pitlochry.en-gb.html#tab-main\"}]` |\n\nEvery request also accepts `file_name`. If omitted, use `{{TasksID}}`.\n\n## Fixed Request Fields\n\nAlways submit to `https://scraperapi.dataify.com/builder?platform=1` with:\n\n| Field | Value |\n|---|---|\n| `spider_name` | `booking.com` |\n| `spider_id` | `booking_hotellist_by-url` |\n| `spider_parameters` | JSON array of one or more parameter objects |\n| `spider_errors` | `true` |\n| `file_name` | User value, otherwise `{{TasksID}}` |\n\nSend parameters as form data. Keep `spider_parameters` as a JSON string inside the form body.\n\n## Default completion behavior\n\nThe default deliverable is the collected result, not only a `task_id`.\n\n1. Submit the Builder task once and capture its `task_id`.\n2. Immediately continue with `$dataify-task-operations` and monitor the same task ID.\n   - Use the default 600-second wait for ordinary collections.\n   - Use `--timeout 1800` for m"},{"path":"_meta.json","content":"{\n  \"ownerId\": \"kn74z5hmmwk21kw8tpphd9w21x86bkdf\",\n  \"slug\": \"dataify-booking-hotellist\",\n  \"version\": \"1.3.0\",\n  \"publishedAt\": 1788253954739\n}"},{"path":"skill-card.md","content":"## Description:\n\nCollect structured Booking.com hotel records from a known Booking hotel or listing URL and return the collected results.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[dataify-server](https://clawhub.ai/user/dataify-server)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nExternal users and developers use this skill to submit known Booking.com hotel or listing URLs to Dataify, monitor the collection task, and return final structured JSON results.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: The skill sends target Booking.com URLs and a Dataify API token to Dataify.\n\nMitigation: Use it only when that data sharing is acceptable, keep tokens out of chat and command arguments, and prefer session-scoped environment variables.\n\nRisk: The Chinese localized instructions do not match the primary workflow for returning collected results.\n\nMitigation: Review localized instructions before use and follow the primary workflow that waits for completion and returns the final result unless no-wait behavior is explicitly requested.\n\nRisk: The security verdict is suspicious because of credential-handling and workflow risks.\n\nMitigation: Review and scan the skill before installing or deploying it.\n\n## Reference(s):\n\n- [ClawHub skill page](https://clawhub.ai/dataify-server/skills/dataify-booking-hotellist)\n- [ClawHub publisher profile](https://clawhub.ai/user/dataify-server)\n\n## Skill Output:\n\n**Output Type(s):** [Text, Markdown, Shell commands, Configuration guidance, JSON]\n\n**Output Format:** [Markdown guidance with shell commands and final JSON collection results]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Default behavior waits for the asynchronous task and returns the final result; no-wait behavior returns the submission response or task ID.]\n\n## Skill Version(s):\n\n1.3.0 (source: server release evidence)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment."},{"path":"SKILL.zh-CN.md","content":"---\nname: dataify-booking-hotellist\ndescription: \"通过 Dataify Scraper API 采集 Booking 酒店信息。当用户请求 gather/scrape/crawl/fetch/extract/collect Booking hotel information、hotel details、hotel listings、hotel URLs，或从 Booking URL 提取数据时使用；也覆盖 Booking 酒店信息采集/抓取/爬取/获取、Booking URL 提取，以及使用 spider ID booking_hotellist_by-url 的请求。\"\n---\n\n# Dataify Booking Hotel Info 中文版\n\n## 采集模式\n\n| Mode | Spider ID | Required parameters | Default spider_parameters |\n|---|---|---|---|\n| `by-url` | `booking_hotellist_by-url` | `url` | `[{\"url\":\"https://www.booking.com/hotel/gb/westlands-of-pitlochry.en-gb.html#tab-main\"}]` |\n\n## API TOKEN 处理\n\n使用 `DATAIFY_API_TOKEN` 作为长期保存的 token 名称。\n\n- 如果用户在请求中提供了 token，则使用该 token。\n- 如果未提供 token，先检查环境变量中是否已保存 `DATAIFY_API_TOKEN`。\n- 如果本地已保存 `DATAIFY_API_TOKEN`，则直接使用。\n- 如果没有可用的 token，提示用户前往 [Dataify](https://dashboard.dataify.com?utm_source=skill) 获取 API TOKEN。\n- 没有 token 不要调用 Builder 接口。\n\n## 设置 DATAIFY_API_TOKEN\n\n推荐使用永久环境变量，而不是只在当前终端临时设置。\n\nWindows PowerShell，当前用户永久设置：\n\n```powershell\n[Environment]::SetEnvironmentVariable(\"DATAIFY_API_TOKEN\", \"your_token_here\", \"User\")\n```\n\n然后重新打开 PowerShell。如果当前会话也要立即生效，再执行：\n\n```powershell\n$env:DATAIFY_API_TOKEN = \"your_token_here\"\n```\n\nmacOS 或 Linux，bash 永久设置：\n\n```bash\necho 'export DATAIFY_API_TOKEN=\"your_token_here\"' >> ~/.bashrc\nsource ~/.bashrc\n```\n\nmacOS 或 Linux，zsh 永久设置：\n\n```bash\necho 'export DATAIFY_API_TOKEN=\"your_token_here\"' >> ~/.zshrc\nsource ~/.zshrc\n```\n## 核心工作流程\n\n1. 从用户请求中识别采集模式。\n2. 提交前，以 Markdown 表格展示必填参数、可选参数和默认值。\n4. 规范化并验证最终参数值。\n5. 获取 Dataify token（用户提供或已保存的 `DATAIFY_API_TOKEN`）。\n6. 如果没有 token，提示用户前往 [Dataify](https://dashboard.dataify.com?utm_source=skill) 获取。\n7. 提交 Builder 请求创建任务。\n8. 从响应中读取 `data.task_id`。\n9. 提交成功后停止，告诉用户前往 [Dataify](https://dashboard.dataify.com?utm_source=skill) 查看或管理结果。\n\n## 脚本用法\n\n使用 Python 运行：\n\n```bash\npython3 scripts/booking_hotellist.py --help\n```\n\n## 注意事项\n\n- 提交成功后不要下载结果文件，告诉用户前往 [Dataify](https://dashboard.dataify.com?utm_source=skill) 查看。\n- 如果用户已经提供了部分参数，在表格中显示这些值，只询问是否修改剩余参数。\n\n## 参数交互策略\n\n- 当请求意图明确、只读、低风险且成本较低时，使用安全默认值直接执行。可以用一句话说明执行内容，但不要暂停等待确认。\n- 只在缺少必填输入、存在会明显改变结果的歧义、大批量或多页采集、媒体下载、会明显增加积分消耗、不可逆操作，或用户明确要求查看参数时询问。\n- 必须确认时，只展示会影响目标、范围、输出或成本的用户参数。优先使用一句简短说明；只有三个及以上关键值确实需要比较时才使用精简表格。\n- 不要展示固定字段、空的可选字段、未修改的默认值、凭据或内部实现参数，例如引擎选择、响应格式开关、偏移量、spider ID 和文件名模板。\n- 默认隐藏高级筛选项，除非用户主动询问或需要它们消除歧义。不得用文档示例值代替用户缺失的必填输入。\n- 先返回首个结果，再提供相关的细化选项，不要在首次执行前强迫用户决定所有可选项。\n\n## Account CTA policy\n\n- Show a prominent Dataify account CTA only when the API token is missing, rejected/invalid, or the account has insufficient credits.\n- For a missing token, offer https://dashboard.dataify.com/login?utm_source=skill and state: New accounts receive 50 free credits. Never ask the user to paste the token into chat.\n- Detect the current operating system and shell. Show only the matching session-scoped setup command first (`export` for macOS/Linux shells, `$env:` for Windows PowerShell, or `set` for Windows Command Prompt). Show other platforms or persistent setup only when detection is ambiguous or the user asks.\n- Aft"},{"path":"agents/openai.yaml","content":"interface:\n  display_name: \"Dataify Booking Hotel Info\"\n  short_description: \"Collect Booking Hotel Info data and return results\"\n  default_prompt: \"Use $dataify-booking-hotellist to complete the requested Dataify collection, wait for the asynchronous task, and return the final collected result. Stop at task submission only when I explicitly request no-wait behavior.\""}],"languages":[],"docsSourceLabel":"CLAWHUB","editorialOverview":null,"editorialQuality":{"score":100,"threshold":65,"status":"thin","wordCount":1385,"uniquenessScore":43,"reasons":["uniqueness-below-45"]}},"media":{"evidence":{"source":"no-media","verified":false,"confidence":"low","updatedAt":"2026-10-11T18:58:29.016Z","emptyReason":"No screenshots, media assets, or demo links are available."},"primaryImageUrl":null,"mediaAssetCount":0,"assets":[],"demoUrl":null},"ownerResources":{"evidence":{"source":"unclaimed","verified":false,"confidence":"low","updatedAt":"2026-10-11T18:58:29.016Z","emptyReason":"This page has not been claimed by the agent owner."},"hasCustomPage":false,"customPageUpdatedAt":null,"customLinks":[],"structuredLinks":{"docsUrl":null,"demoUrl":null,"supportUrl":null,"pricingUrl":null,"statusUrl":null},"customPage":null},"relatedAgents":{"evidence":{"source":"protocol-neighbors","verified":false,"confidence":"medium","updatedAt":"2026-10-11T22:47:41.088Z","emptyReason":null},"items":[{"id":"8ebccd8e-3863-4187-8355-c3f14e1f9edf","entityType":"agent","canonicalPath":"/agent/iofficeai-aionui","slug":"iofficeai-aionui","name":"AionUi","description":"Free, local, open-source 24/7 Cowork app and OpenClaw for Gemini CLI, Claude Code, Codex, OpenCode, Qwen Code, Goose CLI, Auggie, and more | 🌟 Star if you like it!","url":"https://github.com/iOfficeAI/AionUi","homepage":"https://www.aionui.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-10-09T19:11:12.944Z","createdAt":"2026-02-25T03:38:16.584Z","downloads":null},{"id":"b917f68a-ebff-438e-84f8-3f4b2494c0bc","entityType":"agent","canonicalPath":"/agent/activepieces-activepieces","slug":"activepieces-activepieces","name":"activepieces","description":"AI Agents & MCPs & AI Workflow Automation • (~400 MCP servers for AI agents) • AI Automation / AI Agent with MCPs • AI Workflows & AI Agents • MCPs for AI Agents","url":"https://github.com/activepieces/activepieces","homepage":"https://www.activepieces.com","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-15T02:22:12.426Z","createdAt":"2026-02-25T03:38:12.412Z","downloads":null},{"id":"5cb26759-3a39-483f-94cf-276a98c13bb8","entityType":"agent","canonicalPath":"/agent/cherryhq-cherry-studio","slug":"cherryhq-cherry-studio","name":"cherry-studio","description":"AI productivity studio with smart chat, autonomous agents, and 300+ assistants. Unified access to frontier LLMs","url":"https://github.com/CherryHQ/cherry-studio","homepage":"https://cherry-ai.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-11T14:38:40.986Z","createdAt":"2026-02-25T03:38:19.379Z","downloads":null},{"id":"6f6582d0-5d76-4f0f-b81d-86520247950b","entityType":"agent","canonicalPath":"/agent/copilotkit-copilotkit","slug":"copilotkit-copilotkit","name":"CopilotKit","description":"The Frontend for Agents & Generative UI. React + Angular","url":"https://github.com/CopilotKit/CopilotKit","homepage":"https://docs.copilotkit.ai","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-03-25T09:50:57.846Z","createdAt":"2026-02-25T03:39:14.617Z","downloads":null}],"links":{"hub":"/agent","source":"/agent/source/clawhub","protocols":[{"label":"OpenClaw","href":"/agent/protocol/openclew"}]}}}