{"id":"177cbbbd-6616-4afa-93cc-4c32f5d025b3","entityType":"agent","slug":"clawhub-dataify-server-dataify-amazon-product","name":"Dataify Amazon Product","canonicalUrl":"https://www.xpersona.co/agent/clawhub-dataify-server-dataify-amazon-product","canonicalPath":"/agent/clawhub-dataify-server-dataify-amazon-product","generatedAt":"2026-10-11T17:41:14.459Z","source":"CLAWHUB","claimStatus":"UNCLAIMED","verificationTier":"NONE","summary":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-11T13:58:30.000Z","emptyReason":null},"description":"Collect Amazon Product data and return results","descriptionLabel":"Source description","evidenceSummary":"Capability contract not published. No trust telemetry is available yet. 1.1K downloads reported by the source. Last updated 10/11/2026.","installCommand":"clawhub skill install s17feed8b2qc486skqmjapxmjs86bd4f:dataify-amazon-product","sourceUrl":"https://clawhub.ai/dataify-server/dataify-amazon-product","homepage":"https://clawhub.ai/dataify-server/skills/dataify-amazon-product","primaryLinks":[{"label":"View on ClawHub","url":"https://clawhub.ai/dataify-server/dataify-amazon-product","kind":"source"},{"label":"Homepage","url":"https://clawhub.ai/dataify-server/skills/dataify-amazon-product","kind":"homepage"}],"safetyScore":84,"overallRank":62,"popularityScore":60,"trustScore":null,"claimedByName":null,"isOwner":false,"seoDescription":"Dataify Amazon Product 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-11T13:58:30.000Z","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-11T13:58:30.000Z","emptyReason":null},"stars":null,"forks":null,"downloads":1053,"packageName":null,"latestVersion":"1.3.0","tractionLabel":"1.1K downloads"},"release":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-11T13:58:29.987Z","emptyReason":null},"lastUpdatedAt":"2026-10-11T13:58:30.000Z","lastCrawledAt":"2026-10-11T13:58:29.987Z","lastIndexedAt":null,"nextCrawlAt":"2026-10-12T13:58:29.987Z","lastVerifiedAt":null,"highlights":[{"version":"1.3.0","createdAt":"2026-09-01T09:12:20.163Z","changelog":"默认返回最终采集结果，完善异步等待下载与安全恢复；修复空目标误执行、Quick Start、Token 配置和触发路由冲突，并补齐发布前自动化测试","fileCount":7,"zipByteSize":15472},{"version":"1.2.0","createdAt":"2026-07-16T08:35:20.322Z","changelog":"新增能力路由与异步任务闭环，修复失效引用、Token 泄漏和 Skill 元数据兼容性","fileCount":6,"zipByteSize":12061},{"version":"1.1.0","createdAt":"2026-06-08T02:05:31.897Z","changelog":"补全中文文档，更新目录结构","fileCount":6,"zipByteSize":12286},{"version":"1.0.0","createdAt":"2026-05-28T06:30:17.985Z","changelog":"Initial release of dataify-amazon-product skill. - Enables creation of Amazon product collection tasks via Dataify Builder. - Supports five collection modes: by ASIN, product URL, keyword, category URL, and Best Sellers URL. - Handles API TOKEN discovery, configuration, and user prompts for missing tokens. - Guides users through required and optional parameters for each mode, confirming with a Markdown table before submission. - Returns the Dataify `task_id` upon successful request and instructs users to view results on the Dataify dashboard. - Includes clear workflow for validating input, normalizing parameters, and troubleshooting request issues.","fileCount":5,"zipByteSize":8421}]},"execution":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No published capability contract is available yet."},"installCommand":"clawhub skill install s17feed8b2qc486skqmjapxmjs86bd4f:dataify-amazon-product","setupComplexity":"low","setupSteps":["Install using `clawhub skill install s17feed8b2qc486skqmjapxmjs86bd4f:dataify-amazon-product` 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-amazon-product 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-amazon-product/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-dataify-server-dataify-amazon-product/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-dataify-server-dataify-amazon-product/trust"},"curlExamples":["curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-dataify-server-dataify-amazon-product/snapshot\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-dataify-server-dataify-amazon-product/contract\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-dataify-server-dataify-amazon-product/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-11T17:41:14.455Z"}},"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-amazon-product/dossier","snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-dataify-server-dataify-amazon-product/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-dataify-server-dataify-amazon-product/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-dataify-server-dataify-amazon-product/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-11T13:58:30.000Z","emptyReason":null},"readme":"Skill: Dataify Amazon Product\n\nOwner: dataify-server\n\nSummary: Collect Amazon Product data and return results\n\nTags: latest:1.3.0\n\nVersion history:\n\nv1.3.0 | 2026-09-01T09:12:20.163Z | user\n\n默认返回最终采集结果，完善异步等待下载与安全恢复；修复空目标误执行、Quick Start、Token 配置和触发路由冲突，并补齐发布前自动化测试\n\nv1.2.0 | 2026-07-16T08:35:20.322Z | user\n\n新增能力路由与异步任务闭环，修复失效引用、Token 泄漏和 Skill 元数据兼容性\n\nv1.1.0 | 2026-06-08T02:05:31.897Z | user\n\n补全中文文档，更新目录结构\n\nv1.0.0 | 2026-05-28T06:30:17.985Z | auto\n\nInitial release of dataify-amazon-product skill.\n\n- Enables creation of Amazon product collection tasks via Dataify Builder.\n- Supports five collection modes: by ASIN, product URL, keyword, category URL, and Best Sellers URL.\n- Handles API TOKEN discovery, configuration, and user prompts for missing tokens.\n- Guides users through required and optional parameters for each mode, confirming with a Markdown table before submission.\n- Returns the Dataify `task_id` upon successful request and instructs users to view results on the Dataify dashboard.\n- Includes clear workflow for validating input, normalizing parameters, and troubleshooting request issues.\n\nArchive index:\n\nArchive v1.3.0: 7 files, 15472 bytes\n\nFiles: agents/openai.yaml (403b), references/modes-and-parameters.md (2816b), scripts/submit_amazon_product.py (11794b), skill-card.md (2428b), SKILL.md (9621b), SKILL.zh-CN.md (11852b), _meta.json (141b)\n\nFile v1.3.0:SKILL.md\n\n---\nname: dataify-amazon-product\ndescription: \"Collect Amazon product details by ASIN or URL, or collect standard product results by keyword, category URL, or Best Sellers URL. Do not use for reviews, seller profiles, global-marketplace collection, or keyword-and-domain product lists.\"\n---\n\n# Dataify Amazon Product\n\nSubmit Amazon product collection jobs through Dataify Builder and continue through final-result retrieval. After submission, continue monitoring the returned `task_id` and return the final result by default.\n\nThis skill covers five Amazon product collection modes:\n\n| Mode | Use for | Builder `spider_id` |\n| --- | --- | --- |\n| `asin` | Collect product details by ASIN. Amazon product URLs can be accepted and converted to ASINs. | `amazon_product_by-asin` |\n| `url` | Collect product details by one or more Amazon product URLs and a zip code. | `amazon_product_by-url` |\n| `keyword` | Collect Amazon keyword search results. | `amazon_product_by-keywords` |\n| `category-url` | Collect Amazon category listing results from a category URL. | `amazon_product_by-category-url` |\n| `best-sellers-url` | Collect Amazon Best Sellers listing results from a Best Sellers URL. | `amazon_product_by-best-sellers` |\n\n## Quick Start\n\n**Input:** an ASIN.\n\n```bash\npython3 scripts/submit_amazon_product.py asin B0BZYCJK89\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## API TOKEN Handling\n\nUse `DATAIFY_API_TOKEN` as the long-term saved token name.\n\n- If `DATAIFY_API_TOKEN` is saved locally, use it.\n- Do not call the Builder endpoint without a token.\n- Always call it `API TOKEN` in user-facing instructions. Prefer the environment variable name `DATAIFY_API_TOKEN` for saved local use.\n\nPowerShell examples for saving the token for the current session:\n\n```powershell\n$env:DATAIFY_API_TOKEN = \"YOUR_DATAIFY_API_TOKEN\"\n```\n\nFor a persistent user-level variable on Windows:\n\n```powershell\n[Environment]::SetEnvironmentVariable(\"DATAIFY_API_TOKEN\", \"YOUR_DATAIFY_API_TOKEN\", \"User\")\n```\n\n## Core Workflow\n\n1. Identify the collection mode from the user's request: `asin`, `url`, `keyword`, `category-url`, or `best-sellers-url`.\n4. Ask: \"Do you want to change any of these values before I submit the task?\"\n5. Normalize and validate the final values for the chosen mode.\n8. Submit a Builder request to create the task.\n9. Read `data.task_id` from the Builder response.\nIf the user has already provided some values, show those values in place of the defaults and only ask whether the remaining/defaulted values should be changed.\n\nFor detailed mode schemas and advanced fields, read [references/modes-and-parameters.md](references/modes-and-parameters.md) only when needed.\n\n## Dataify Builder Request\n\nUse form fields rather than hand-built URL-encoded strings.\n\n- URL: `https://scraperapi.dataify.com/builder`\n- Method: `POST`\n- Authorization header: `Bearer DATAIFY_API_TOKEN`\n- Content type: `application/x-www-form-urlencoded`\n- Fixed fields:\n  - `spider_name=amazon.com`\n  - `spider_errors=true`\n- Dynamic fields:\n  - `spider_id` must match the chosen mode.\n  - `spider_parameters` must be a JSON string, not a raw object.\n  - `file_name` defaults to `{{TasksID}}` and can be changed by the user.\n- Send `file_name` as the Builder form field, not as a downloaded output name.\n\n## Script\n\nFor stable execution, prefer `scripts/submit_amazon_product.py` with Python 3.6 or newer instead of rewriting the Builder flow. The script writes and reads UTF-8 text.\n\n```powershell\npython3 \".\\scripts\\submit_amazon_product.py\" asin B0BZYCJK89\npython3 \".\\scripts\\submit_amazon_product.py\" url --zip-code \"94107\" \"https://www.amazon.com/HISDERN-Checkered-Handkerchief-Classic-Necktie/dp/B0BRXPR726\"\npython3 \".\\scripts\\submit_amazon_product.py\" keyword --keyword \"coffee\"\npython3 \".\\scripts\\submit_amazon_product.py\" category-url --url \"https://www.amazon.com/s?i=fashion\" --page-turning 2 --sort-by \"Best Sellers\"\npython3 \".\\scripts\\submit_amazon_product.py\" best-sellers-url --url \"https://www.amazon.com/Best-Sellers-Tools-Home-Improvement-Kitchen-Bath-Fixtures/zgbs/hi/3754161/ref=zg_bs_unv_hi_2_680350011_1\" --page-turning 1\n```\n\nIf `python3` is not available, use the local Python 3 command for that machine, such as `python`. The script checks the runtime version and tells the user to use Python 3.6 or newer if the active interpreter is too old.\n\nTo override the saved environment token or default file name for one run:\n\n```powershell\npython3 \".\\scripts\\submit_amazon_product.py\" keyword --keyword \"coffee\" --file-name \"amazon-coffee\"\n```\n\nThe script prints a JSON summary with `task_id`, submitted parameters and `message`.\n\n## Troubleshooting\n\n`Missing Dataify API TOKEN` means `DATAIFY_API_TOKEN` is not set in the environment. Tell the user to get an API TOKEN from [Dataify](https://dashboard.dataify.com?utm_source=skill).\n\n`No valid ASINs were provided` means the required `asin` value is missing or could not be extracted from the provided input.\n\n`No valid URLs were provided` or `URL cannot be empty` means the required URL value is missing.\n\n`Zip code cannot be empty` means no usable `zip_code` was provided.\n\n`Keyword cannot be empty` means the required `keyword` value is missing.\n\n`Page turning must be greater than or equal to 1` means the requested page count is invalid.\n\n`Lowest price cannot be greater than highest price` means the price range must be corrected before submission.\n\n`Unsupported sort_by` means the category sort option must be one of the accepted display values or submitted values.\n\n`File name cannot be empty` means no usable `file_name` was provided.\n\n`Necessary parameters is empty!` usually means the Builder request was not submitted as form fields, `spider_parameters` was not a JSON string, or the object is missing required mode parameters.\n\nMissing `task_id` usually means the authorization header, token, `spider_name`, or `spider_id` is wrong.\n\n## Guardrails\n\n- Do not invent result fields.\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-amazon-product\",\n  \"version\": \"1.3.0\",\n  \"publishedAt\": 1788253940163\n}\n\nFile v1.3.0:references/modes-and-parameters.md\n\n# Modes and parameters\n\nRead this reference only when selecting a non-default mode or mapping advanced fields.\n\n## Parameter Checklists\n\n### ASIN\n\n| Field | Required | Default | Notes |\n| --- | --- | --- | --- |\n| `asin` | Yes | No default | One or more ASINs. Amazon product URLs can be accepted and converted to ASINs. |\n| `file_name` | No | `{{TasksID}}` | Builder form field. Can be changed by the user. |\n\nSubmit multiple ASINs as an array of objects, for example `[{\"asin\":\"B0BZYCJK89\"}]`.\n\n### Product URL\n\n| Field | Required | Default | Notes |\n| --- | --- | --- | --- |\n| `url` | Yes | No default | One or more complete Amazon product URLs. |\n| `zip_code` | Yes | No default | Zip code used for each Amazon URL, for example `94107`. |\n| `file_name` | No | `{{TasksID}}` | Builder form field. Can be changed by the user. |\n\nSubmit multiple URLs as an array of objects, for example `[{\"url\":\"https://www.amazon.com/.../dp/B0BRXPR726\",\"zip_code\":\"94107\"}]`.\n\n### Keyword\n\n| Field | Required | Default | Notes |\n| --- | --- | --- | --- |\n| `keyword` | Yes | No default | Amazon search keyword. |\n| `page_turning` | No | `2` | Integer greater than or equal to `1`. |\n| `lowest_price` | No | `10` | Lowest price filter. |\n| `highest_price` | No | `50` | Highest price filter. |\n| `file_name` | No | `{{TasksID}}` | Builder form field. Can be changed by the user. |\n\nRequire `lowest_price <= highest_price`.\n\n### Category URL\n\n| Field | Required | Default | Notes |\n| --- | --- | --- | --- |\n| `url` | Yes | No default | Amazon category URL. |\n| `page_turning` | Yes | No default | Integer greater than or equal to `1`. |\n| `sort_by` | No | `Best Sellers` | Dropdown-style option. |\n| `file_name` | No | `{{TasksID}}` | Builder form field. Can be changed by the user. |\n\n\n| Label | Value |\n| --- | --- |\n| `Best Sellers` | `Best Sellers` |\n| `Newest Arrivals` | `Newest Arrivals` |\n| `Avg. Customer Review` | `Avg. Customer Review` |\n| `Price: High to Low` | `Price: High to Low` |\n| `Price: Low to High` | `Price: Low to High` |\n| `Featured` | `Featured` |\n\nAccepted `sort_by` display values and submitted values:\n\n- best sellers or `Best Sellers` -> `Best Sellers`\n- newest arrivals or `Newest Arrivals` -> `Newest Arrivals`\n- average customer review or `Avg. Customer Review` -> `Avg. Customer Review`\n- price high to low or `Price: High to Low` -> `Price: High to Low`\n- price low to high or `Price: Low to High` -> `Price: Low to High`\n- featured recommendations or `Featured` -> `Featured`\n\n### Best Sellers URL\n\n| Field | Required | Default | Notes |\n| --- | --- | --- | --- |\n| `url` | Yes | No default | Amazon Best Sellers category URL. |\n| `page_turning` | Yes | No default | Integer greater than or equal to `1`. |\n| `file_name` | No | `{{TasksID}}` | Builder form field. Can be changed by the user. |\n\nFile v1.3.0:skill-card.md\n\n## Description:\n\nCollect Amazon product details by ASIN or URL, or collect standard product results by keyword, category URL, or Best Sellers URL.\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 Dataify Builder jobs for Amazon product detail, keyword result, category listing, and Best Sellers collection, then retrieve the resulting task output when available.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: The skill uses a Dataify API token and makes external Dataify requests that may consume credits.\n\nMitigation: Run only after confirming the requested collection scope and use an environment where the token is configured without exposing its value.\n\nRisk: The script imports result-monitoring code from a sibling directory outside the reviewed artifact and passes that code the API token.\n\nMitigation: Install and run the skill only where the sibling task-runtime dependency is trusted, reviewed, and controlled.\n\nRisk: Localized instructions are inconsistent about whether the skill should stop after task submission or retrieve final results.\n\nMitigation: Prefer the server-resolved default prompt and English release behavior that wait for asynchronous completion unless the user explicitly requests no-wait behavior.\n\n## Reference(s):\n\n- [Modes and parameters](references/modes-and-parameters.md)\n- [Dataify Builder endpoint](https://scraperapi.dataify.com/builder)\n- [ClawHub skill page](https://clawhub.ai/dataify-server/skills/dataify-amazon-product)\n- [Publisher profile](https://clawhub.ai/user/dataify-server)\n\n## Skill Output:\n\n**Output Type(s):** [Text, Markdown, Shell commands, Configuration, JSON]\n\n**Output Format:** [Markdown guidance with shell commands and JSON task or result output]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Uses DATAIFY_API_TOKEN and may wait up to 600 seconds by default for final result retrieval.]\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-amazon-product\ndescription: \"用于 Dataify Amazon 商品采集 Builder 任务。当用户请求 Amazon product collection/scraping/harvesting/crawling，尤其包含 ASIN、URL、keyword、category URL、Best Sellers URL 或类似 Amazon product 任务关键词时触发。支持按 ASIN、product URL and zip code、keyword、category URL、Best Sellers URL 创建 Amazon 商品任务，返回 task_id，配置或复用 DATAIFY_API_TOKEN，并排查 Dataify Builder 请求失败。\"\n---\n\n# Dataify Amazon Product\n\n通过 Dataify Builder 提交 Amazon 产品采集任务，提交后停止。不要下载结果文件。成功提交后，将 `task_id` 提供给用户，并告知他们前往 [Dataify](https://dashboard.dataify.com?utm_source=skill) 查看结果。\n\n本技能涵盖五种 Amazon 产品采集模式：\n\n| 模式 | 用途 | Builder `spider_id` |\n| --- | --- | --- |\n| `asin` | 通过 ASIN 采集产品详情。可以接受 Amazon 产品 URL 并转换为 ASIN。 | `amazon_product_by-asin` |\n| `url` | 通过一个或多个 Amazon 产品 URL 和邮编采集产品详情。 | `amazon_product_by-url` |\n| `keyword` | 采集 Amazon 关键词搜索结果。 | `amazon_product_by-keywords` |\n| `category-url` | 通过分类 URL 采集 Amazon 分类列表结果。 | `amazon_product_by-category-url` |\n| `best-sellers-url` | 通过 Best Sellers URL 采集 Amazon 畅销榜列表结果。 | `amazon_product_by-best-sellers` |\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- 在面向用户的说明中始终称其为 `API TOKEN`。在本地保存使用时，优先使用环境变量名 `DATAIFY_API_TOKEN`。\n\nPowerShell 示例，为当前会话保存 token：\n\n```powershell\n$env:DATAIFY_API_TOKEN = \"YOUR_DATAIFY_API_TOKEN\"\n```\n\n在 Windows 上设置持久的用户级变量：\n\n```powershell\n[Environment]::SetEnvironmentVariable(\"DATAIFY_API_TOKEN\", \"YOUR_DATAIFY_API_TOKEN\", \"User\")\n```\n\n## 核心工作流程\n\n1. 从用户请求中识别采集模式：`asin`、`url`、`keyword`、`category-url` 或 `best-sellers-url`。\n4. 询问：\"在我提交任务之前，您是否需要修改这些值？\"\n5. 规范化并验证所选模式的最终值。\n6. 从用户明确提供的输入或已保存的 `DATAIFY_API_TOKEN` 中获取 Dataify token。\n7. 如果没有可用的 token，提示用户前往 [Dataify](https://dashboard.dataify.com?utm_source=skill) 获取 API TOKEN。\n8. 提交 Builder 请求创建任务。\n9. 从 Builder 响应中读取 `data.task_id`。\n11. 告诉用户前往 [Dataify](https://dashboard.dataify.com?utm_source=skill) 查看或管理结果。\n\n如果用户已经提供了部分值，在表格中显示这些值代替默认值，只询问是否需要修改剩余/使用默认值的参数。\n\n## 参数清单\n\n### ASIN\n\n| 字段 | 必填 | 默认值 | 说明 |\n| --- | --- | --- | --- |\n| `asin` | 是 | 无默认值 | 一个或多个 ASIN。可以接受 Amazon 产品 URL 并转换为 ASIN。 |\n| `file_name` | 否 | `{{TasksID}}` | Builder 表单字段。可由用户修改。 |\n\n将多个 ASIN 作为对象数组提交，例如 `[{\"asin\":\"B0BZYCJK89\"}]`。\n\n### Product URL\n\n| 字段 | 必填 | 默认值 | 说明 |\n| --- | --- | --- | --- |\n| `url` | 是 | 无默认值 | 一个或多个完整的 Amazon 产品 URL。 |\n| `zip_code` | 是 | 无默认值 | 用于每个 Amazon URL 的邮编，例如 `94107`。 |\n| `file_name` | 否 | `{{TasksID}}` | Builder 表单字段。可由用户修改。 |\n\n将多个 URL 作为对象数组提交，例如 `[{\"url\":\"https://www.amazon.com/.../dp/B0BRXPR726\",\"zip_code\":\"94107\"}]`。\n\n### Keyword\n\n| 字段 | 必填 | 默认值 | 说明 |\n| --- | --- | --- | --- |\n| `keyword` | 是 | 无默认值 | Amazon 搜索关键词。 |\n| `page_turning` | 否 | `2` | 大于等于 `1` 的整数。 |\n| `lowest_price` | 否 | `10` | 最低价格筛选。 |\n| `highest_price` | 否 | `50` | 最高价格筛选。 |\n| `file_name` | 否 | `{{TasksID}}` | Builder 表单字段。可由用户修改。 |\n\n要求 `lowest_price <= highest_price`。\n\n### Category URL\n\n| 字段 | 必填 | 默认值 | 说明 |\n| --- | --- | --- | --- |\n| `url` | 是 | 无默认值 | Amazon 分类 URL。 |\n| `page_turning` | 是 | 无默认值 | 大于等于 `1` 的整数。 |\n| `sort_by` | 否 | `Best Sellers` | 下拉选项。 |\n| `file_name` | 否 | `{{TasksID}}` | Builder 表单字段。可由用户修改。 |\n\n在让用户选择之前，以 Markdown 表格展示所有 `sort_by` 选项，包含 `Label` 和 `Value` 两列。\n\n| Label | Value |\n| --- | --- |\n| `Best Sellers` | `Best Sellers` |\n| `Newest Arrivals` | `Newest Arrivals` |\n| `Avg. Customer Review` | `Avg. Customer Review` |\n| `Price: High to Low` | `Price: High to Low` |\n| `Price: Low to High` | `Price: Low to High` |\n| `Featured` | `Featured` |\n\n接受的 `sort_by` 显示值和提交值：\n\n- best sellers 或 `Best Sellers` -> `Best Sellers`\n- newest arrivals 或 `Newest Arrivals` -> `Newest Arrivals`\n- average customer review 或 `Avg. Customer Review` -> `Avg. Customer Review`\n- price high to low 或 `Price: High to Low` -> `Price: High to Low`\n- price low to high 或 `Price: Low to High` -> `Price: Low to High`\n- featured recommendations 或 `Featured` -> `Featured`\n\n### Best Sellers URL\n\n| 字段 | 必填 | 默认值 | 说明 |\n| --- | --- | --- | --- |\n| `url` | 是 | 无默认值 | Amazon Best Sellers 分类 URL。 |\n| `page_turning` | 是 | 无默认值 | 大于等于 `1` 的整数。 |\n| `file_name` | 否 | `{{TasksID}}` | Builder 表单字段。可由用户修改。 |\n\n## Dataify Builder 请求\n\n使用表单字段而不是手动构建的 URL 编码字符串。\n\n- URL：`https://scraperapi.dataify.com/builder`\n- 方法：`POST`\n- Authorization 头：`Bearer DATAIFY_API_TOKEN`\n- Content type：`application/x-www-form-urlencoded`\n- 固定字段：\n  - `spider_name=amazon.com`\n  - `spider_errors=true`\n- 动态字段：\n  - `spider_id` 必须与所选模式匹配。\n  - `spider_parameters` 必须是 JSON 字符串，不能是原始对象。\n  - `file_name` 默认为 `{{TasksID}}`，可由用户修改。\n- 将 `file_name` 作为 Builder 表单字段发送，而不是作为下载输出名称。\n\n## 脚本\n\n为确保稳定执行，建议使用 Python 3.6 或更新版本运行 `scripts/submit_amazon_product.py`，而不是重写 Builder 流程。脚本使用 UTF-8 编码进行读写。\n\n```powershell\npython3 \".\\scripts\\submit_amazon_product.py\" asin B0BZYCJK89\npython3 \".\\scripts\\submit_amazon_product.py\" url --zip-code \"94107\" \"https://www.amazon.com/HISDERN-Checkered-Handkerchief-Classic-Necktie/dp/B0BRXPR726\"\npython3 \".\\scripts\\submit_amazon_product.py\" keyword --keyword \"coffee\"\npython3 \".\\scripts\\submit_amazon_product.py\" category-url --url \"https://www.amazon.com/s?i=fashion\" --page-turning 2 --sort-by \"Best Sellers\"\npython3 \".\\scripts\\submit_amazon_product.py\" best-sellers-url --url \"https://www.amazon.com/Best-Sellers-Tools-Home-Improvement-Kitchen-Bath-Fixtures/zgbs/hi/3754161/ref=zg_bs_unv_hi_2_680350011_1\" --page-turning 1\n```\n\n如果 `python3` 不可用，请使用该机器上的本地 Python 3 命令，例如 `python`。脚本会检查运行时版本，如果当前解释器版本过低，会提示用户使用 Python 3.6 或更新版本。\n\n要在单次运行中覆盖已保存的环境 token 或默认文件名：\n\n```powershell\npython3 \".\\scripts\\submit_amazon_product.py\" keyword --keyword \"coffee\" --file-name \"amazon-coffee\"\n```\n\n脚本会输出包含 `task_id`、已提交参数、`dashboard_url` 和 `message` 的 JSON 摘要。\n\n## 故障排除\n\n`Missing Dataify API TOKEN` 表示没有传入明确的 token 且本地未保存 `DATAIFY_API_TOKEN`。提示用户前往 [Dataify](https://dashboard.dataify.com?utm_source=skill) 获取 API TOKEN。\n\n`No valid ASINs were provided` 表示缺少必需的 `asin` 值，或无法从提供的输入中提取。\n\n`No valid URLs were provided` 或 `URL cannot be empty` 表示缺少必需的 URL 值。\n\n`Zip code cannot be empty` 表示没有提供有效的 `zip_code`。\n\n`Keyword cannot be empty` 表示缺少必需的 `keyword` 值。\n\n`Page turning must be greater than or equal to 1` 表示请求的页数无效。\n\n`Lowest price cannot be greater than highest price` 表示价格范围需要在提交前修正。\n\n`Unsupported sort_by` 表示分类排序选项必须是接受的显示值或提交值之一。\n\n`File name cannot be empty` 表示没有提供有效的 `file_name`。\n\n`Necessary parameters is empty!` 通常表示 Builder 请求未以表单字段形式提交、`spider_parameters` 不是 JSON 字符串，或者对象缺少该模式所需的参数。\n\n缺少 `task_id` 通常表示 authorization 头、token、`spider_name` 或 `spider_id` 有误。\n\n## 注意事项\n\n- 不要编造结果字段。\n- 成功创建任务后，始终引导用户前往 [Dataify](https://dashboard.dataify.com?utm_source=skill)。\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 Amazon Product\"\n  short_description: \"Collect Amazon Product data and return results\"\n  default_prompt: \"Use $dataify-amazon-product 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\npolicy:\n  allow_implicit_invocation: true\n\nArchive v1.2.0: 6 files, 12061 bytes\n\nFiles: agents/openai.yaml (295b), scripts/submit_amazon_product.py (11110b), skill-card.md (1919b), SKILL.md (9950b), SKILL.zh-CN.md (9608b), _meta.json (141b)\n\nFile v1.2.0:SKILL.md\n\n---\nname: dataify-amazon-product\ndescription: Use for Dataify Amazon product collection Builder tasks. Trigger when the user asks for Amazon product collection, Amazon product scraping, Amazon product harvesting, or Amazon product crawling, especially with ASIN, URL, keyword, category URL, Best Sellers URL, or similar Amazon product task keywords. Supports creating Amazon product tasks by ASIN, product URL and zip code, keyword, category URL, or Best Sellers URL; returning the task_id; configuring or reusing the DATAIFY_API_TOKEN environment variable; and troubleshooting Dataify Builder request failures.\n---\n\n# Dataify Amazon Product\n\nSubmit Amazon product collection jobs through Dataify Builder, then stop. Do not download result files. After a successful submission, give the user the `task_id` and tell them to visit [Dataify](https://dashboard.dataify.com?utm_source=skill) to view results.\n\nThis skill covers five Amazon product collection modes:\n\n| Mode | Use for | Builder `spider_id` |\n| --- | --- | --- |\n| `asin` | Collect product details by ASIN. Amazon product URLs can be accepted and converted to ASINs. | `amazon_product_by-asin` |\n| `url` | Collect product details by one or more Amazon product URLs and a zip code. | `amazon_product_by-url` |\n| `keyword` | Collect Amazon keyword search results. | `amazon_product_by-keywords` |\n| `category-url` | Collect Amazon category listing results from a category URL. | `amazon_product_by-category-url` |\n| `best-sellers-url` | Collect Amazon Best Sellers listing results from a Best Sellers URL. | `amazon_product_by-best-sellers` |\n\n## API TOKEN Handling\n\nUse `DATAIFY_API_TOKEN` as the long-term saved token name.\n\n- If the user provides a token in the request, use it for this run.\n- If no token is provided, first check whether `DATAIFY_API_TOKEN` is already saved locally in the environment.\n- If `DATAIFY_API_TOKEN` is saved locally, use it.\n- If no token is available locally, tell the user to get an API TOKEN from [Dataify](https://dashboard.dataify.com?utm_source=skill).\n- Do not call the Builder endpoint without a token.\n- Always call it `API TOKEN` in user-facing instructions. Prefer the environment variable name `DATAIFY_API_TOKEN` for saved local use.\n\nPowerShell examples for saving the token for the current session:\n\n```powershell\n$env:DATAIFY_API_TOKEN = \"YOUR_DATAIFY_API_TOKEN\"\n```\n\nFor a persistent user-level variable on Windows:\n\n```powershell\n[Environment]::SetEnvironmentVariable(\"DATAIFY_API_TOKEN\", \"YOUR_DATAIFY_API_TOKEN\", \"User\")\n```\n\n## Core Workflow\n\n1. Identify the collection mode from the user's request: `asin`, `url`, `keyword`, `category-url`, or `best-sellers-url`.\n2. Before submitting, show the user the required values, optional values, and defaults for that mode.\n3. Always display submitted parameters as a Markdown table; do not use a plain sentence or bullet list for parameter confirmation.\n4. Ask: \"Do you want to change any of these values before I submit the task?\"\n5. Normalize and validate the final values for the chosen mode.\n6. Resolve the Dataify token from explicit input or saved `DATAIFY_API_TOKEN`.\n7. If no token is available, tell the user to get an API TOKEN from [Dataify](https://dashboard.dataify.com?utm_source=skill).\n8. Submit a Builder request to create the task.\n9. Read `data.task_id` from the Builder response.\n10. Stop after Builder succeeds.\n11. Tell the user to visit [Dataify](https://dashboard.dataify.com?utm_source=skill) to view or manage results.\n\nIf the user has already provided some values, show those values in place of the defaults and only ask whether the remaining/defaulted values should be changed.\n\n## Parameter Checklists\n\n### ASIN\n\n| Field | Required | Default | Notes |\n| --- | --- | --- | --- |\n| `asin` | Yes | No default | One or more ASINs. Amazon product URLs can be accepted and converted to ASINs. |\n| `file_name` | No | `{{TasksID}}` | Builder form field. Can be changed by the user. |\n\nSubmit multiple ASINs as an array of objects, for example `[{\"asin\":\"B0BZYCJK89\"}]`.\n\n### Product URL\n\n| Field | Required | Default | Notes |\n| --- | --- | --- | --- |\n| `url` | Yes | No default | One or more complete Amazon product URLs. |\n| `zip_code` | Yes | No default | Zip code used for each Amazon URL, for example `94107`. |\n| `file_name` | No | `{{TasksID}}` | Builder form field. Can be changed by the user. |\n\nSubmit multiple URLs as an array of objects, for example `[{\"url\":\"https://www.amazon.com/.../dp/B0BRXPR726\",\"zip_code\":\"94107\"}]`.\n\n### Keyword\n\n| Field | Required | Default | Notes |\n| --- | --- | --- | --- |\n| `keyword` | Yes | No default | Amazon search keyword. |\n| `page_turning` | No | `2` | Integer greater than or equal to `1`. |\n| `lowest_price` | No | `10` | Lowest price filter. |\n| `highest_price` | No | `50` | Highest price filter. |\n| `file_name` | No | `{{TasksID}}` | Builder form field. Can be changed by the user. |\n\nRequire `lowest_price <= highest_price`.\n\n### Category URL\n\n| Field | Required | Default | Notes |\n| --- | --- | --- | --- |\n| `url` | Yes | No default | Amazon category URL. |\n| `page_turning` | Yes | No default | Integer greater than or equal to `1`. |\n| `sort_by` | No | `Best Sellers` | Dropdown-style option. |\n| `file_name` | No | `{{TasksID}}` | Builder form field. Can be changed by the user. |\n\nShow all `sort_by` options as a Markdown table with both `Label` and `Value` columns before asking the user to choose.\n\n| Label | Value |\n| --- | --- |\n| `Best Sellers` | `Best Sellers` |\n| `Newest Arrivals` | `Newest Arrivals` |\n| `Avg. Customer Review` | `Avg. Customer Review` |\n| `Price: High to Low` | `Price: High to Low` |\n| `Price: Low to High` | `Price: Low to High` |\n| `Featured` | `Featured` |\n\nAccepted `sort_by` display values and submitted values:\n\n- best sellers or `Best Sellers` -> `Best Sellers`\n- newest arrivals or `Newest Arrivals` -> `Newest Arrivals`\n- average customer review or `Avg. Customer Review` -> `Avg. Customer Review`\n- price high to low or `Price: High to Low` -> `Price: High to Low`\n- price low to high or `Price: Low to High` -> `Price: Low to High`\n- featured recommendations or `Featured` -> `Featured`\n\n### Best Sellers URL\n\n| Field | Required | Default | Notes |\n| --- | --- | --- | --- |\n| `url` | Yes | No default | Amazon Best Sellers category URL. |\n| `page_turning` | Yes | No default | Integer greater than or equal to `1`. |\n| `file_name` | No | `{{TasksID}}` | Builder form field. Can be changed by the user. |\n\n## Dataify Builder Request\n\nUse form fields rather than hand-built URL-encoded strings.\n\n- URL: `https://scraperapi.dataify.com/builder`\n- Method: `POST`\n- Authorization header: `Bearer DATAIFY_API_TOKEN`\n- Content type: `application/x-www-form-urlencoded`\n- Fixed fields:\n  - `spider_name=amazon.com`\n  - `spider_errors=true`\n- Dynamic fields:\n  - `spider_id` must match the chosen mode.\n  - `spider_parameters` must be a JSON string, not a raw object.\n  - `file_name` defaults to `{{TasksID}}` and can be changed by the user.\n- Send `file_name` as the Builder form field, not as a downloaded output name.\n\n## Script\n\nFor stable execution, prefer `scripts/submit_amazon_product.py` with Python 3.6 or newer instead of rewriting the Builder flow. The script writes and reads UTF-8 text.\n\n```powershell\npython3 \".\\scripts\\submit_amazon_product.py\" asin B0BZYCJK89\npython3 \".\\scripts\\submit_amazon_product.py\" url --zip-code \"94107\" \"https://www.amazon.com/HISDERN-Checkered-Handkerchief-Classic-Necktie/dp/B0BRXPR726\"\npython3 \".\\scripts\\submit_amazon_product.py\" keyword --keyword \"coffee\"\npython3 \".\\scripts\\submit_amazon_product.py\" category-url --url \"https://www.amazon.com/s?i=fashion\" --page-turning 2 --sort-by \"Best Sellers\"\npython3 \".\\scripts\\submit_amazon_product.py\" best-sellers-url --url \"https://www.amazon.com/Best-Sellers-Tools-Home-Improvement-Kitchen-Bath-Fixtures/zgbs/hi/3754161/ref=zg_bs_unv_hi_2_680350011_1\" --page-turning 1\n```\n\nIf `python3` is not available, use the local Python 3 command for that machine, such as `python`. The script checks the runtime version and tells the user to use Python 3.6 or newer if the active interpreter is too old.\n\nTo override the saved environment token or default file name for one run:\n\n```powershell\npython3 \".\\scripts\\submit_amazon_product.py\" keyword --api-token \"YOUR_DATAIFY_API_TOKEN\" --keyword \"coffee\" --file-name \"amazon-coffee\"\n```\n\nThe script prints a JSON summary with `task_id`, submitted parameters, `dashboard_url`, and `message`.\n\n## Troubleshooting\n\n`Missing Dataify API TOKEN` means no explicit token was passed and `DATAIFY_API_TOKEN` is not saved locally. Tell the user to get an API TOKEN from [Dataify](https://dashboard.dataify.com?utm_source=skill).\n\n`No valid ASINs were provided` means the required `asin` value is missing or could not be extracted from the provided input.\n\n`No valid URLs were provided` or `URL cannot be empty` means the required URL value is missing.\n\n`Zip code cannot be empty` means no usable `zip_code` was provided.\n\n`Keyword cannot be empty` means the required `keyword` value is missing.\n\n`Page turning must be greater than or equal to 1` means the requested page count is invalid.\n\n`Lowest price cannot be greater than highest price` means the price range must be corrected before submission.\n\n`Unsupported sort_by` means the category sort option must be one of the accepted display values or submitted values.\n\n`File name cannot be empty` means no usable `file_name` was provided.\n\n`Necessary parameters is empty!` usually means the Builder request was not submitted as form fields, `spider_parameters` was not a JSON string, or the object is missing required mode parameters.\n\nMissing `task_id` usually means the authorization header, token, `spider_name`, or `spider_id` is wrong.\n\n## Guardrails\n\n- Do not invent result fields.\n- Always direct the user to [Dataify](https://dashboard.dataify.com?utm_source=skill) after successful task creation.\n\nFile v1.2.0:_meta.json\n\n{\n  \"ownerId\": \"kn74z5hmmwk21kw8tpphd9w21x86bkdf\",\n  \"slug\": \"dataify-amazon-product\",\n  \"version\": \"1.2.0\",\n  \"publishedAt\": 1784190920322\n}\n\nFile v1.2.0:skill-card.md\n\n## Description: <br>\nUse for Dataify Amazon product collection Builder tasks, including Amazon product scraping by ASIN, product URL and zip code, keyword, category URL, or Best Sellers URL. <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 create Dataify Amazon product collection jobs, confirm task parameters, submit the Builder request, and receive a task_id for later review in Dataify. <br>\n\n### Deployment Geography for Use: <br>\nGlobal <br>\n\n## Known Risks and Mitigations: <br>\nRisk: The skill requires a Dataify API TOKEN and sends Amazon URLs, ASINs, keywords, zip codes, and task settings to Dataify. <br>\nMitigation: Confirm parameters before submission, use DATAIFY_API_TOKEN only for intended Dataify jobs, and do not submit without user approval. <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-amazon-product) <br>\n\n\n## Skill Output: <br>\n**Output Type(s):** [text, markdown, shell commands, configuration, guidance] <br>\n**Output Format:** [Markdown parameter confirmations, shell command examples, and JSON task submission summaries.] <br>\n**Output Parameters:** [1D] <br>\n**Other Properties Related to Output:** [Submits task creation requests only; returns task_id and directs users to Dataify for results.] <br>\n\n## Skill Version(s): <br>\n1.2.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.2.0:SKILL.zh-CN.md\n\n---\nname: dataify-amazon-product\ndescription: \"用于 Dataify Amazon 商品采集 Builder 任务。当用户请求 Amazon product collection/scraping/harvesting/crawling，尤其包含 ASIN、URL、keyword、category URL、Best Sellers URL 或类似 Amazon product 任务关键词时触发。支持按 ASIN、product URL and zip code、keyword、category URL、Best Sellers URL 创建 Amazon 商品任务，返回 task_id，配置或复用 DATAIFY_API_TOKEN，并排查 Dataify Builder 请求失败。\"\n---\n\n# Dataify Amazon Product\n\n通过 Dataify Builder 提交 Amazon 产品采集任务，提交后停止。不要下载结果文件。成功提交后，将 `task_id` 提供给用户，并告知他们前往 [Dataify](https://dashboard.dataify.com?utm_source=skill) 查看结果。\n\n本技能涵盖五种 Amazon 产品采集模式：\n\n| 模式 | 用途 | Builder `spider_id` |\n| --- | --- | --- |\n| `asin` | 通过 ASIN 采集产品详情。可以接受 Amazon 产品 URL 并转换为 ASIN。 | `amazon_product_by-asin` |\n| `url` | 通过一个或多个 Amazon 产品 URL 和邮编采集产品详情。 | `amazon_product_by-url` |\n| `keyword` | 采集 Amazon 关键词搜索结果。 | `amazon_product_by-keywords` |\n| `category-url` | 通过分类 URL 采集 Amazon 分类列表结果。 | `amazon_product_by-category-url` |\n| `best-sellers-url` | 通过 Best Sellers URL 采集 Amazon 畅销榜列表结果。 | `amazon_product_by-best-sellers` |\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- 在面向用户的说明中始终称其为 `API TOKEN`。在本地保存使用时，优先使用环境变量名 `DATAIFY_API_TOKEN`。\n\nPowerShell 示例，为当前会话保存 token：\n\n```powershell\n$env:DATAIFY_API_TOKEN = \"YOUR_DATAIFY_API_TOKEN\"\n```\n\n在 Windows 上设置持久的用户级变量：\n\n```powershell\n[Environment]::SetEnvironmentVariable(\"DATAIFY_API_TOKEN\", \"YOUR_DATAIFY_API_TOKEN\", \"User\")\n```\n\n## 核心工作流程\n\n1. 从用户请求中识别采集模式：`asin`、`url`、`keyword`、`category-url` 或 `best-sellers-url`。\n2. 提交前，向用户展示该模式的必填值、可选值和默认值。\n3. 始终以 Markdown 表格展示已提交的参数；不要使用纯文本句子或项目符号列表进行参数确认。\n4. 询问：\"在我提交任务之前，您是否需要修改这些值？\"\n5. 规范化并验证所选模式的最终值。\n6. 从用户明确提供的输入或已保存的 `DATAIFY_API_TOKEN` 中获取 Dataify token。\n7. 如果没有可用的 token，提示用户前往 [Dataify](https://dashboard.dataify.com?utm_source=skill) 获取 API TOKEN。\n8. 提交 Builder 请求创建任务。\n9. 从 Builder 响应中读取 `data.task_id`。\n10. Builder 成功后停止。\n11. 告诉用户前往 [Dataify](https://dashboard.dataify.com?utm_source=skill) 查看或管理结果。\n\n如果用户已经提供了部分值，在表格中显示这些值代替默认值，只询问是否需要修改剩余/使用默认值的参数。\n\n## 参数清单\n\n### ASIN\n\n| 字段 | 必填 | 默认值 | 说明 |\n| --- | --- | --- | --- |\n| `asin` | 是 | 无默认值 | 一个或多个 ASIN。可以接受 Amazon 产品 URL 并转换为 ASIN。 |\n| `file_name` | 否 | `{{TasksID}}` | Builder 表单字段。可由用户修改。 |\n\n将多个 ASIN 作为对象数组提交，例如 `[{\"asin\":\"B0BZYCJK89\"}]`。\n\n### Product URL\n\n| 字段 | 必填 | 默认值 | 说明 |\n| --- | --- | --- | --- |\n| `url` | 是 | 无默认值 | 一个或多个完整的 Amazon 产品 URL。 |\n| `zip_code` | 是 | 无默认值 | 用于每个 Amazon URL 的邮编，例如 `94107`。 |\n| `file_name` | 否 | `{{TasksID}}` | Builder 表单字段。可由用户修改。 |\n\n将多个 URL 作为对象数组提交，例如 `[{\"url\":\"https://www.amazon.com/.../dp/B0BRXPR726\",\"zip_code\":\"94107\"}]`。\n\n### Keyword\n\n| 字段 | 必填 | 默认值 | 说明 |\n| --- | --- | --- | --- |\n| `keyword` | 是 | 无默认值 | Amazon 搜索关键词。 |\n| `page_turning` | 否 | `2` | 大于等于 `1` 的整数。 |\n| `lowest_price` | 否 | `10` | 最低价格筛选。 |\n| `highest_price` | 否 | `50` | 最高价格筛选。 |\n| `file_name` | 否 | `{{TasksID}}` | Builder 表单字段。可由用户修改。 |\n\n要求 `lowest_price <= highest_price`。\n\n### Category URL\n\n| 字段 | 必填 | 默认值 | 说明 |\n| --- | --- | --- | --- |\n| `url` | 是 | 无默认值 | Amazon 分类 URL。 |\n| `page_turning` | 是 | 无默认值 | 大于等于 `1` 的整数。 |\n| `sort_by` | 否 | `Best Sellers` | 下拉选项。 |\n| `file_name` | 否 | `{{TasksID}}` | Builder 表单字段。可由用户修改。 |\n\n在让用户选择之前，以 Markdown 表格展示所有 `sort_by` 选项，包含 `Label` 和 `Value` 两列。\n\n| Label | Value |\n| --- | --- |\n| `Best Sellers` | `Best Sellers` |\n| `Newest Arrivals` | `Newest Arrivals` |\n| `Avg. Customer Review` | `Avg. Customer Review` |\n| `Price: High to Low` | `Price: High to Low` |\n| `Price: Low to High` | `Price: Low to High` |\n| `Featured` | `Featured` |\n\n接受的 `sort_by` 显示值和提交值：\n\n- best sellers 或 `Best Sellers` -> `Best Sellers`\n- newest arrivals 或 `Newest Arrivals` -> `Newest Arrivals`\n- average customer review 或 `Avg. Customer Review` -> `Avg. Customer Review`\n- price high to low 或 `Price: High to Low` -> `Price: High to Low`\n- price low to high 或 `Price: Low to High` -> `Price: Low to High`\n- featured recommendations 或 `Featured` -> `Featured`\n\n### Best Sellers URL\n\n| 字段 | 必填 | 默认值 | 说明 |\n| --- | --- | --- | --- |\n| `url` | 是 | 无默认值 | Amazon Best Sellers 分类 URL。 |\n| `page_turning` | 是 | 无默认值 | 大于等于 `1` 的整数。 |\n| `file_name` | 否 | `{{TasksID}}` | Builder 表单字段。可由用户修改。 |\n\n## Dataify Builder 请求\n\n使用表单字段而不是手动构建的 URL 编码字符串。\n\n- URL：`https://scraperapi.dataify.com/builder`\n- 方法：`POST`\n- Authorization 头：`Bearer DATAIFY_API_TOKEN`\n- Content type：`application/x-www-form-urlencoded`\n- 固定字段：\n  - `spider_name=amazon.com`\n  - `spider_errors=true`\n- 动态字段：\n  - `spider_id` 必须与所选模式匹配。\n  - `spider_parameters` 必须是 JSON 字符串，不能是原始对象。\n  - `file_name` 默认为 `{{TasksID}}`，可由用户修改。\n- 将 `file_name` 作为 Builder 表单字段发送，而不是作为下载输出名称。\n\n## 脚本\n\n为确保稳定执行，建议使用 Python 3.6 或更新版本运行 `scripts/submit_amazon_product.py`，而不是重写 Builder 流程。脚本使用 UTF-8 编码进行读写。\n\n```powershell\npython3 \".\\scripts\\submit_amazon_product.py\" asin B0BZYCJK89\npython3 \".\\scripts\\submit_amazon_product.py\" url --zip-code \"94107\" \"https://www.amazon.com/HISDERN-Checkered-Handkerchief-Classic-Necktie/dp/B0BRXPR726\"\npython3 \".\\scripts\\submit_amazon_product.py\" keyword --keyword \"coffee\"\npython3 \".\\scripts\\submit_amazon_product.py\" category-url --url \"https://www.amazon.com/s?i=fashion\" --page-turning 2 --sort-by \"Best Sellers\"\npython3 \".\\scripts\\submit_amazon_product.py\" best-sellers-url --url \"https://www.amazon.com/Best-Sellers-Tools-Home-Improvement-Kitchen-Bath-Fixtures/zgbs/hi/3754161/ref=zg_bs_unv_hi_2_680350011_1\" --page-turning 1\n```\n\n如果 `python3` 不可用，请使用该机器上的本地 Python 3 命令，例如 `python`。脚本会检查运行时版本，如果当前解释器版本过低，会提示用户使用 Python 3.6 或更新版本。\n\n要在单次运行中覆盖已保存的环境 token 或默认文件名：\n\n```powershell\npython3 \".\\scripts\\submit_amazon_product.py\" keyword --api-token \"YOUR_DATAIFY_API_TOKEN\" --keyword \"coffee\" --file-name \"amazon-coffee\"\n```\n\n脚本会输出包含 `task_id`、已提交参数、`dashboard_url` 和 `message` 的 JSON 摘要。\n\n## 故障排除\n\n`Missing Dataify API TOKEN` 表示没有传入明确的 token 且本地未保存 `DATAIFY_API_TOKEN`。提示用户前往 [Dataify](https://dashboard.dataify.com?utm_source=skill) 获取 API TOKEN。\n\n`No valid ASINs were provided` 表示缺少必需的 `asin` 值，或无法从提供的输入中提取。\n\n`No valid URLs were provided` 或 `URL cannot be empty` 表示缺少必需的 URL 值。\n\n`Zip code cannot be empty` 表示没有提供有效的 `zip_code`。\n\n`Keyword cannot be empty` 表示缺少必需的 `keyword` 值。\n\n`Page turning must be greater than or equal to 1` 表示请求的页数无效。\n\n`Lowest price cannot be greater than highest price` 表示价格范围需要在提交前修正。\n\n`Unsupported sort_by` 表示分类排序选项必须是接受的显示值或提交值之一。\n\n`File name cannot be empty` 表示没有提供有效的 `file_name`。\n\n`Necessary parameters is empty!` 通常表示 Builder 请求未以表单字段形式提交、`spider_parameters` 不是 JSON 字符串，或者对象缺少该模式所需的参数。\n\n缺少 `task_id` 通常表示 authorization 头、token、`spider_name` 或 `spider_id` 有误。\n\n## 注意事项\n\n- 不要编造结果字段。\n- 成功创建任务后，始终引导用户前往 [Dataify](https://dashboard.dataify.com?utm_source=skill)。\n\nFile v1.2.0:agents/openai.yaml\n\ninterface:\n  display_name: \"Dataify Amazon Product\"\n  short_description: \"Submit Dataify Amazon product collection tasks\"\n  default_prompt: \"Use $dataify-amazon-product to submit Amazon product collection tasks through Dataify and return the task_id.\"\n\npolicy:\n  allow_implicit_invocation: true\n\nArchive v1.1.0: 6 files, 12286 bytes\n\nFiles: agents/openai.yaml (295b), scripts/submit_amazon_product.py (11110b), skill-card.md (2572b), SKILL.md (9950b), SKILL.zh-CN.md (9608b), _meta.json (141b)\n\nFile v1.1.0:SKILL.md\n\n---\nname: dataify-amazon-product\ndescription: Use for Dataify Amazon product collection Builder tasks. Trigger when the user asks for Amazon product collection, Amazon product scraping, Amazon product harvesting, or Amazon product crawling, especially with ASIN, URL, keyword, category URL, Best Sellers URL, or similar Amazon product task keywords. Supports creating Amazon product tasks by ASIN, product URL and zip code, keyword, category URL, or Best Sellers URL; returning the task_id; configuring or reusing the DATAIFY_API_TOKEN environment variable; and troubleshooting Dataify Builder request failures.\n---\n\n# Dataify Amazon Product\n\nSubmit Amazon product collection jobs through Dataify Builder, then stop. Do not download result files. After a successful submission, give the user the `task_id` and tell them to visit [Dataify](https://dashboard.dataify.com?utm_source=skill) to view results.\n\nThis skill covers five Amazon product collection modes:\n\n| Mode | Use for | Builder `spider_id` |\n| --- | --- | --- |\n| `asin` | Collect product details by ASIN. Amazon product URLs can be accepted and converted to ASINs. | `amazon_product_by-asin` |\n| `url` | Collect product details by one or more Amazon product URLs and a zip code. | `amazon_product_by-url` |\n| `keyword` | Collect Amazon keyword search results. | `amazon_product_by-keywords` |\n| `category-url` | Collect Amazon category listing results from a category URL. | `amazon_product_by-category-url` |\n| `best-sellers-url` | Collect Amazon Best Sellers listing results from a Best Sellers URL. | `amazon_product_by-best-sellers` |\n\n## API TOKEN Handling\n\nUse `DATAIFY_API_TOKEN` as the long-term saved token name.\n\n- If the user provides a token in the request, use it for this run.\n- If no token is provided, first check whether `DATAIFY_API_TOKEN` is already saved locally in the environment.\n- If `DATAIFY_API_TOKEN` is saved locally, use it.\n- If no token is available locally, tell the user to get an API TOKEN from [Dataify](https://dashboard.dataify.com?utm_source=skill).\n- Do not call the Builder endpoint without a token.\n- Always call it `API TOKEN` in user-facing instructions. Prefer the environment variable name `DATAIFY_API_TOKEN` for saved local use.\n\nPowerShell examples for saving the token for the current session:\n\n```powershell\n$env:DATAIFY_API_TOKEN = \"YOUR_DATAIFY_API_TOKEN\"\n```\n\nFor a persistent user-level variable on Windows:\n\n```powershell\n[Environment]::SetEnvironmentVariable(\"DATAIFY_API_TOKEN\", \"YOUR_DATAIFY_API_TOKEN\", \"User\")\n```\n\n## Core Workflow\n\n1. Identify the collection mode from the user's request: `asin`, `url`, `keyword`, `category-url`, or `best-sellers-url`.\n2. Before submitting, show the user the required values, optional values, and defaults for that mode.\n3. Always display submitted parameters as a Markdown table; do not use a plain sentence or bullet list for parameter confirmation.\n4. Ask: \"Do you want to change any of these values before I submit the task?\"\n5. Normalize and validate the final values for the chosen mode.\n6. Resolve the Dataify token from explicit input or saved `DATAIFY_API_TOKEN`.\n7. If no token is available, tell the user to get an API TOKEN from [Dataify](https://dashboard.dataify.com?utm_source=skill).\n8. Submit a Builder request to create the task.\n9. Read `data.task_id` from the Builder response.\n10. Stop after Builder succeeds.\n11. Tell the user to visit [Dataify](https://dashboard.dataify.com?utm_source=skill) to view or manage results.\n\nIf the user has already provided some values, show those values in place of the defaults and only ask whether the remaining/defaulted values should be changed.\n\n## Parameter Checklists\n\n### ASIN\n\n| Field | Required | Default | Notes |\n| --- | --- | --- | --- |\n| `asin` | Yes | No default | One or more ASINs. Amazon product URLs can be accepted and converted to ASINs. |\n| `file_name` | No | `{{TasksID}}` | Builder form field. Can be changed by the user. |\n\nSubmit multiple ASINs as an array of objects, for example `[{\"asin\":\"B0BZYCJK89\"}]`.\n\n### Product URL\n\n| Field | Required | Default | Notes |\n| --- | --- | --- | --- |\n| `url` | Yes | No default | One or more complete Amazon product URLs. |\n| `zip_code` | Yes | No default | Zip code used for each Amazon URL, for example `94107`. |\n| `file_name` | No | `{{TasksID}}` | Builder form field. Can be changed by the user. |\n\nSubmit multiple URLs as an array of objects, for example `[{\"url\":\"https://www.amazon.com/.../dp/B0BRXPR726\",\"zip_code\":\"94107\"}]`.\n\n### Keyword\n\n| Field | Required | Default | Notes |\n| --- | --- | --- | --- |\n| `keyword` | Yes | No default | Amazon search keyword. |\n| `page_turning` | No | `2` | Integer greater than or equal to `1`. |\n| `lowest_price` | No | `10` | Lowest price filter. |\n| `highest_price` | No | `50` | Highest price filter. |\n| `file_name` | No | `{{TasksID}}` | Builder form field. Can be changed by the user. |\n\nRequire `lowest_price <= highest_price`.\n\n### Category URL\n\n| Field | Required | Default | Notes |\n| --- | --- | --- | --- |\n| `url` | Yes | No default | Amazon category URL. |\n| `page_turning` | Yes | No default | Integer greater than or equal to `1`. |\n| `sort_by` | No | `Best Sellers` | Dropdown-style option. |\n| `file_name` | No | `{{TasksID}}` | Builder form field. Can be changed by the user. |\n\nShow all `sort_by` options as a Markdown table with both `Label` and `Value` columns before asking the user to choose.\n\n| Label | Value |\n| --- | --- |\n| `Best Sellers` | `Best Sellers` |\n| `Newest Arrivals` | `Newest Arrivals` |\n| `Avg. Customer Review` | `Avg. Customer Review` |\n| `Price: High to Low` | `Price: High to Low` |\n| `Price: Low to High` | `Price: Low to High` |\n| `Featured` | `Featured` |\n\nAccepted `sort_by` display values and submitted values:\n\n- best sellers or `Best Sellers` -> `Best Sellers`\n- newest arrivals or `Newest Arrivals` -> `Newest Arrivals`\n- average customer review or `Avg. Customer Review` -> `Avg. Customer Review`\n- price high to low or `Price: High to Low` -> `Price: High to Low`\n- price low to high or `Price: Low to High` -> `Price: Low to High`\n- featured recommendations or `Featured` -> `Featured`\n\n### Best Sellers URL\n\n| Field | Required | Default | Notes |\n| --- | --- | --- | --- |\n| `url` | Yes | No default | Amazon Best Sellers category URL. |\n| `page_turning` | Yes | No default | Integer greater than or equal to `1`. |\n| `file_name` | No | `{{TasksID}}` | Builder form field. Can be changed by the user. |\n\n## Dataify Builder Request\n\nUse form fields rather than hand-built URL-encoded strings.\n\n- URL: `https://scraperapi.dataify.com/builder`\n- Method: `POST`\n- Authorization header: `Bearer DATAIFY_API_TOKEN`\n- Content type: `application/x-www-form-urlencoded`\n- Fixed fields:\n  - `spider_name=amazon.com`\n  - `spider_errors=true`\n- Dynamic fields:\n  - `spider_id` must match the chosen mode.\n  - `spider_parameters` must be a JSON string, not a raw object.\n  - `file_name` defaults to `{{TasksID}}` and can be changed by the user.\n- Send `file_name` as the Builder form field, not as a downloaded output name.\n\n## Script\n\nFor stable execution, prefer `scripts/submit_amazon_product.py` with Python 3.6 or newer instead of rewriting the Builder flow. The script writes and reads UTF-8 text.\n\n```powershell\npython3 \".\\scripts\\submit_amazon_product.py\" asin B0BZYCJK89\npython3 \".\\scripts\\submit_amazon_product.py\" url --zip-code \"94107\" \"https://www.amazon.com/HISDERN-Checkered-Handkerchief-Classic-Necktie/dp/B0BRXPR726\"\npython3 \".\\scripts\\submit_amazon_product.py\" keyword --keyword \"coffee\"\npython3 \".\\scripts\\submit_amazon_product.py\" category-url --url \"https://www.amazon.com/s?i=fashion\" --page-turning 2 --sort-by \"Best Sellers\"\npython3 \".\\scripts\\submit_amazon_product.py\" best-sellers-url --url \"https://www.amazon.com/Best-Sellers-Tools-Home-Improvement-Kitchen-Bath-Fixtures/zgbs/hi/3754161/ref=zg_bs_unv_hi_2_680350011_1\" --page-turning 1\n```\n\nIf `python3` is not available, use the local Python 3 command for that machine, such as `python`. The script checks the runtime version and tells the user to use Python 3.6 or newer if the active interpreter is too old.\n\nTo override the saved environment token or default file name for one run:\n\n```powershell\npython3 \".\\scripts\\submit_amazon_product.py\" keyword --api-token \"YOUR_DATAIFY_API_TOKEN\" --keyword \"coffee\" --file-name \"amazon-coffee\"\n```\n\nThe script prints a JSON summary with `task_id`, submitted parameters, `dashboard_url`, and `message`.\n\n## Troubleshooting\n\n`Missing Dataify API TOKEN` means no explicit token was passed and `DATAIFY_API_TOKEN` is not saved locally. Tell the user to get an API TOKEN from [Dataify](https://dashboard.dataify.com?utm_source=skill).\n\n`No valid ASINs were provided` means the required `asin` value is missing or could not be extracted from the provided input.\n\n`No valid URLs were provided` or `URL cannot be empty` means the required URL value is missing.\n\n`Zip code cannot be empty` means no usable `zip_code` was provided.\n\n`Keyword cannot be empty` means the required `keyword` value is missing.\n\n`Page turning must be greater than or equal to 1` means the requested page count is invalid.\n\n`Lowest price cannot be greater than highest price` means the price range must be corrected before submission.\n\n`Unsupported sort_by` means the category sort option must be one of the accepted display values or submitted values.\n\n`File name cannot be empty` means no usable `file_name` was provided.\n\n`Necessary parameters is empty!` usually means the Builder request was not submitted as form fields, `spider_parameters` was not a JSON string, or the object is missing required mode parameters.\n\nMissing `task_id` usually means the authorization header, token, `spider_name`, or `spider_id` is wrong.\n\n## Guardrails\n\n- Do not invent result fields.\n- Always direct the user to [Dataify](https://dashboard.dataify.com?utm_source=skill) after successful task creation.\n\nFile v1.1.0:_meta.json\n\n{\n  \"ownerId\": \"kn74z5hmmwk21kw8tpphd9w21x86bkdf\",\n  \"slug\": \"dataify-amazon-product\",\n  \"version\": \"1.1.0\",\n  \"publishedAt\": 1780884331897\n}\n\nFile v1.1.0:skill-card.md\n\n## Description: <br>\nSubmit Dataify Amazon product collection tasks through Dataify Builder for ASINs, product URLs, keywords, category URLs, and Best Sellers URLs, then return the created task_id. <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 submit Amazon product collection jobs to Dataify Builder, confirm task parameters, manage the Dataify API TOKEN, and receive the resulting task_id for later review in Dataify. <br>\n\n### Deployment Geography for Use: <br>\nGlobal <br>\n\n## Known Risks and Mitigations: <br>\nRisk: The skill submits jobs to an external Dataify Builder service using a Dataify API TOKEN. <br>\nMitigation: Require the token before submission, keep it in DATAIFY_API_TOKEN or explicit runtime input, and review the task parameters before the Builder request is made. <br>\nRisk: Incorrect ASINs, URLs, zip codes, page counts, price ranges, or sort options can create failed or unintended collection tasks. <br>\nMitigation: Normalize and validate mode-specific parameters, show submitted values in a Markdown table, and ask the user whether values should change before submission. <br>\nRisk: Users may expect downloaded result files after submitting a task. <br>\nMitigation: Stop after successful Builder submission and direct the user to Dataify with the returned task_id to view or manage results. <br>\n\n\n## Reference(s): <br>\n- [ClawHub skill page](https://clawhub.ai/dataify-server/dataify-amazon-product) <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 guidance with parameter tables and optional shell commands; successful script submissions print JSON containing task_id, submitted parameters, dashboard_url, and message.] <br>\n**Output Parameters:** [1D] <br>\n**Other Properties Related to Output:** [Stops after task submission and does not download result files. Requires a Dataify API TOKEN before calling Builder.] <br>\n\n## Skill Version(s): <br>\n1.1.0 (source: 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-amazon-product\ndescription: \"用于 Dataify Amazon 商品采集 Builder 任务。当用户请求 Amazon product collection/scraping/harvesting/crawling，尤其包含 ASIN、URL、keyword、category URL、Best Sellers URL 或类似 Amazon product 任务关键词时触发。支持按 ASIN、product URL and zip code、keyword、category URL、Best Sellers URL 创建 Amazon 商品任务，返回 task_id，配置或复用 DATAIFY_API_TOKEN，并排查 Dataify Builder 请求失败。\"\n---\n\n# Dataify Amazon Product\n\n通过 Dataify Builder 提交 Amazon 产品采集任务，提交后停止。不要下载结果文件。成功提交后，将 `task_id` 提供给用户，并告知他们前往 [Dataify](https://dashboard.dataify.com?utm_source=skill) 查看结果。\n\n本技能涵盖五种 Amazon 产品采集模式：\n\n| 模式 | 用途 | Builder `spider_id` |\n| --- | --- | --- |\n| `asin` | 通过 ASIN 采集产品详情。可以接受 Amazon 产品 URL 并转换为 ASIN。 | `amazon_product_by-asin` |\n| `url` | 通过一个或多个 Amazon 产品 URL 和邮编采集产品详情。 | `amazon_product_by-url` |\n| `keyword` | 采集 Amazon 关键词搜索结果。 | `amazon_product_by-keywords` |\n| `category-url` | 通过分类 URL 采集 Amazon 分类列表结果。 | `amazon_product_by-category-url` |\n| `best-sellers-url` | 通过 Best Sellers URL 采集 Amazon 畅销榜列表结果。 | `amazon_product_by-best-sellers` |\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- 在面向用户的说明中始终称其为 `API TOKEN`。在本地保存使用时，优先使用环境变量名 `DATAIFY_API_TOKEN`。\n\nPowerShell 示例，为当前会话保存 token：\n\n```powershell\n$env:DATAIFY_API_TOKEN = \"YOUR_DATAIFY_API_TOKEN\"\n```\n\n在 Windows 上设置持久的用户级变量：\n\n```powershell\n[Environment]::SetEnvironmentVariable(\"DATAIFY_API_TOKEN\", \"YOUR_DATAIFY_API_TOKEN\", \"User\")\n```\n\n## 核心工作流程\n\n1. 从用户请求中识别采集模式：`asin`、`url`、`keyword`、`category-url` 或 `best-sellers-url`。\n2. 提交前，向用户展示该模式的必填值、可选值和默认值。\n3. 始终以 Markdown 表格展示已提交的参数；不要使用纯文本句子或项目符号列表进行参数确认。\n4. 询问：\"在我提交任务之前，您是否需要修改这些值？\"\n5. 规范化并验证所选模式的最终值。\n6. 从用户明确提供的输入或已保存的 `DATAIFY_API_TOKEN` 中获取 Dataify token。\n7. 如果没有可用的 token，提示用户前往 [Dataify](https://dashboard.dataify.com?utm_source=skill) 获取 API TOKEN。\n8. 提交 Builder 请求创建任务。\n9. 从 Builder 响应中读取 `data.task_id`。\n10. Builder 成功后停止。\n11. 告诉用户前往 [Dataify](https://dashboard.dataify.com?utm_source=skill) 查看或管理结果。\n\n如果用户已经提供了部分值，在表格中显示这些值代替默认值，只询问是否需要修改剩余/使用默认值的参数。\n\n## 参数清单\n\n### ASIN\n\n| 字段 | 必填 | 默认值 | 说明 |\n| --- | --- | --- | --- |\n| `asin` | 是 | 无默认值 | 一个或多个 ASIN。可以接受 Amazon 产品 URL 并转换为 ASIN。 |\n| `file_name` | 否 | `{{TasksID}}` | Builder 表单字段。可由用户修改。 |\n\n将多个 ASIN 作为对象数组提交，例如 `[{\"asin\":\"B0BZYCJK89\"}]`。\n\n### Product URL\n\n| 字段 | 必填 | 默认值 | 说明 |\n| --- | --- | --- | --- |\n| `url` | 是 | 无默认值 | 一个或多个完整的 Amazon 产品 URL。 |\n| `zip_code` | 是 | 无默认值 | 用于每个 Amazon URL 的邮编，例如 `94107`。 |\n| `file_name` | 否 | `{{TasksID}}` | Builder 表单字段。可由用户修改。 |\n\n将多个 URL 作为对象数组提交，例如 `[{\"url\":\"https://www.amazon.com/.../dp/B0BRXPR726\",\"zip_code\":\"94107\"}]`。\n\n### Keyword\n\n| 字段 | 必填 | 默认值 | 说明 |\n| --- | --- | --- | --- |\n| `keyword` | 是 | 无默认值 | Amazon 搜索关键词。 |\n| `page_turning` | 否 | `2` | 大于等于 `1` 的整数。 |\n| `lowest_price` | 否 | `10` | 最低价格筛选。 |\n| `highest_price` | 否 | `50` | 最高价格筛选。 |\n| `file_name` | 否 | `{{TasksID}}` | Builder 表单字段。可由用户修改。 |\n\n要求 `lowest_price <= highest_price`。\n\n### Category URL\n\n| 字段 | 必填 | 默认值 | 说明 |\n| --- | --- | --- | --- |\n| `url` | 是 | 无默认值 | Amazon 分类 URL。 |\n| `page_turning` | 是 | 无默认值 | 大于等于 `1` 的整数。 |\n| `sort_by` | 否 | `Best Sellers` | 下拉选项。 |\n| `file_name` | 否 | `{{TasksID}}` | Builder 表单字段。可由用户修改。 |\n\n在让用户选择之前，以 Markdown 表格展示所有 `sort_by` 选项，包含 `Label` 和 `Value` 两列。\n\n| Label | Value |\n| --- | --- |\n| `Best Sellers` | `Best Sellers` |\n| `Newest Arrivals` | `Newest Arrivals` |\n| `Avg. Customer Review` | `Avg. Customer Review` |\n| `Price: High to Low` | `Price: High to Low` |\n| `Price: Low to High` | `Price: Low to High` |\n| `Featured` | `Featured` |\n\n接受的 `sort_by` 显示值和提交值：\n\n- best sellers 或 `Best Sellers` -> `Best Sellers`\n- newest arrivals 或 `Newest Arrivals` -> `Newest Arrivals`\n- average customer review 或 `Avg. Customer Review` -> `Avg. Customer Review`\n- price high to low 或 `Price: High to Low` -> `Price: High to Low`\n- price low to high 或 `Price: Low to High` -> `Price: Low to High`\n- featured recommendations 或 `Featured` -> `Featured`\n\n### Best Sellers URL\n\n| 字段 | 必填 | 默认值 | 说明 |\n| --- | --- | --- | --- |\n| `url` | 是 | 无默认值 | Amazon Best Sellers 分类 URL。 |\n| `page_turning` | 是 | 无默认值 | 大于等于 `1` 的整数。 |\n| `file_name` | 否 | `{{TasksID}}` | Builder 表单字段。可由用户修改。 |\n\n## Dataify Builder 请求\n\n使用表单字段而不是手动构建的 URL 编码字符串。\n\n- URL：`https://scraperapi.dataify.com/builder`\n- 方法：`POST`\n- Authorization 头：`Bearer DATAIFY_API_TOKEN`\n- Content type：`application/x-www-form-urlencoded`\n- 固定字段：\n  - `spider_name=amazon.com`\n  - `spider_errors=true`\n- 动态字段：\n  - `spider_id` 必须与所选模式匹配。\n  - `spider_parameters` 必须是 JSON 字符串，不能是原始对象。\n  - `file_name` 默认为 `{{TasksID}}`，可由用户修改。\n- 将 `file_name` 作为 Builder 表单字段发送，而不是作为下载输出名称。\n\n## 脚本\n\n为确保稳定执行，建议使用 Python 3.6 或更新版本运行 `scripts/submit_amazon_product.py`，而不是重写 Builder 流程。脚本使用 UTF-8 编码进行读写。\n\n```powershell\npython3 \".\\scripts\\submit_amazon_product.py\" asin B0BZYCJK89\npython3 \".\\scripts\\submit_amazon_product.py\" url --zip-code \"94107\" \"https://www.amazon.com/HISDERN-Checkered-Handkerchief-Classic-Necktie/dp/B0BRXPR726\"\npython3 \".\\scripts\\submit_amazon_product.py\" keyword --keyword \"coffee\"\npython3 \".\\scripts\\submit_amazon_product.py\" category-url --url \"https://www.amazon.com/s?i=fashion\" --page-turning 2 --sort-by \"Best Sellers\"\npython3 \".\\scripts\\submit_amazon_product.py\" best-sellers-url --url \"https://www.amazon.com/Best-Sellers-Tools-Home-Improvement-Kitchen-Bath-Fixtures/zgbs/hi/3754161/ref=zg_bs_unv_hi_2_680350011_1\" --page-turning 1\n```\n\n如果 `python3` 不可用，请使用该机器上的本地 Python 3 命令，例如 `python`。脚本会检查运行时版本，如果当前解释器版本过低，会提示用户使用 Python 3.6 或更新版本。\n\n要在单次运行中覆盖已保存的环境 token 或默认文件名：\n\n```powershell\npython3 \".\\scripts\\submit_amazon_product.py\" keyword --api-token \"YOUR_DATAIFY_API_TOKEN\" --keyword \"coffee\" --file-name \"amazon-coffee\"\n```\n\n脚本会输出包含 `task_id`、已提交参数、`dashboard_url` 和 `message` 的 JSON 摘要。\n\n## 故障排除\n\n`Missing Dataify API TOKEN` 表示没有传入明确的 token 且本地未保存 `DATAIFY_API_TOKEN`。提示用户前往 [Dataify](https://dashboard.dataify.com?utm_source=skill) 获取 API TOKEN。\n\n`No valid ASINs were provided` 表示缺少必需的 `asin` 值，或无法从提供的输入中提取。\n\n`No valid URLs were provided` 或 `URL cannot be empty` 表示缺少必需的 URL 值。\n\n`Zip code cannot be empty` 表示没有提供有效的 `zip_code`。\n\n`Keyword cannot be empty` 表示缺少必需的 `keyword` 值。\n\n`Page turning must be greater than or equal to 1` 表示请求的页数无效。\n\n`Lowest price cannot be greater than highest price` 表示价格范围需要在提交前修正。\n\n`Unsupported sort_by` 表示分类排序选项必须是接受的显示值或提交值之一。\n\n`File name cannot be empty` 表示没有提供有效的 `file_name`。\n\n`Necessary parameters is empty!` 通常表示 Builder 请求未以表单字段形式提交、`spider_parameters` 不是 JSON 字符串，或者对象缺少该模式所需的参数。\n\n缺少 `task_id` 通常表示 authorization 头、token、`spider_name` 或 `spider_id` 有误。\n\n## 注意事项\n\n- 不要编造结果字段。\n- 成功创建任务后，始终引导用户前往 [Dataify](https://dashboard.dataify.com?utm_source=skill)。\n\nFile v1.1.0:agents/openai.yaml\n\ninterface:\n  display_name: \"Dataify Amazon Product\"\n  short_description: \"Submit Dataify Amazon product collection tasks\"\n  default_prompt: \"Use $dataify-amazon-product to submit Amazon product collection tasks through Dataify and return the task_id.\"\n\npolicy:\n  allow_implicit_invocation: true\n\nArchive v1.0.0: 5 files, 8421 bytes\n\nFiles: agents/openai.yaml (295b), scripts/submit_amazon_product.py (11067b), skill-card.md (2399b), SKILL.md (9794b), _meta.json (141b)\n\nFile v1.0.0:SKILL.md\n\n---\nname: dataify-amazon-product\ndescription: Use for Dataify Amazon product collection Builder tasks. Trigger when the user asks for Amazon product collection, Amazon product scraping, Amazon product harvesting, or Amazon product crawling, especially with ASIN, URL, keyword, category URL, Best Sellers URL, or similar Amazon product task keywords. Supports creating Amazon product tasks by ASIN, product URL and zip code, keyword, category URL, or Best Sellers URL; returning the task_id; configuring or reusing the DATAIFY_API_TOKEN environment variable; and troubleshooting Dataify Builder request failures.\n---\n\n# Dataify Amazon Product\n\nSubmit Amazon product collection jobs through Dataify Builder, then stop. Do not download result files. After a successful submission, give the user the `task_id` and tell them to visit `https://dataify.com/dashboard/` to view results.\n\nThis skill covers five Amazon product collection modes:\n\n| Mode | Use for | Builder `spider_id` |\n| --- | --- | --- |\n| `asin` | Collect product details by ASIN. Amazon product URLs can be accepted and converted to ASINs. | `amazon_product_by-asin` |\n| `url` | Collect product details by one or more Amazon product URLs and a zip code. | `amazon_product_by-url` |\n| `keyword` | Collect Amazon keyword search results. | `amazon_product_by-keywords` |\n| `category-url` | Collect Amazon category listing results from a category URL. | `amazon_product_by-category-url` |\n| `best-sellers-url` | Collect Amazon Best Sellers listing results from a Best Sellers URL. | `amazon_product_by-best-sellers` |\n\n## API TOKEN Handling\n\nUse `DATAIFY_API_TOKEN` as the long-term saved token name.\n\n- If the user provides a token in the request, use it for this run.\n- If no token is provided, first check whether `DATAIFY_API_TOKEN` is already saved locally in the environment.\n- If `DATAIFY_API_TOKEN` is saved locally, use it.\n- If no token is available locally, tell the user to get an API TOKEN from [Dataify](https://dataify.com).\n- Do not call the Builder endpoint without a token.\n- Always call it `API TOKEN` in user-facing instructions. Prefer the environment variable name `DATAIFY_API_TOKEN` for saved local use.\n\nPowerShell examples for saving the token for the current session:\n\n```powershell\n$env:DATAIFY_API_TOKEN = \"YOUR_DATAIFY_API_TOKEN\"\n```\n\nFor a persistent user-level variable on Windows:\n\n```powershell\n[Environment]::SetEnvironmentVariable(\"DATAIFY_API_TOKEN\", \"YOUR_DATAIFY_API_TOKEN\", \"User\")\n```\n\n## Core Workflow\n\n1. Identify the collection mode from the user's request: `asin`, `url`, `keyword`, `category-url`, or `best-sellers-url`.\n2. Before submitting, show the user the required values, optional values, and defaults for that mode.\n3. Always display submitted parameters as a Markdown table; do not use a plain sentence or bullet list for parameter confirmation.\n4. Ask: \"Do you want to change any of these values before I submit the task?\"\n5. Normalize and validate the final values for the chosen mode.\n6. Resolve the Dataify token from explicit input or saved `DATAIFY_API_TOKEN`.\n7. If no token is available, tell the user to get an API TOKEN from [Dataify](https://dataify.com).\n8. Submit a Builder request to create the task.\n9. Read `data.task_id` from the Builder response.\n10. Stop after Builder succeeds.\n11. Tell the user to visit `https://dataify.com/dashboard/` to view or manage results.\n\nIf the user has already provided some values, show those values in place of the defaults and only ask whether the remaining/defaulted values should be changed.\n\n## Parameter Checklists\n\n### ASIN\n\n| Field | Required | Default | Notes |\n| --- | --- | --- | --- |\n| `asin` | Yes | No default | One or more ASINs. Amazon product URLs can be accepted and converted to ASINs. |\n| `file_name` | No | `{{TasksID}}` | Builder form field. Can be changed by the user. |\n\nSubmit multiple ASINs as an array of objects, for example `[{\"asin\":\"B0BZYCJK89\"}]`.\n\n### Product URL\n\n| Field | Required | Default | Notes |\n| --- | --- | --- | --- |\n| `url` | Yes | No default | One or more complete Amazon product URLs. |\n| `zip_code` | Yes | No default | Zip code used for each Amazon URL, for example `94107`. |\n| `file_name` | No | `{{TasksID}}` | Builder form field. Can be changed by the user. |\n\nSubmit multiple URLs as an array of objects, for example `[{\"url\":\"https://www.amazon.com/.../dp/B0BRXPR726\",\"zip_code\":\"94107\"}]`.\n\n### Keyword\n\n| Field | Required | Default | Notes |\n| --- | --- | --- | --- |\n| `keyword` | Yes | No default | Amazon search keyword. |\n| `page_turning` | No | `2` | Integer greater than or equal to `1`. |\n| `lowest_price` | No | `10` | Lowest price filter. |\n| `highest_price` | No | `50` | Highest price filter. |\n| `file_name` | No | `{{TasksID}}` | Builder form field. Can be changed by the user. |\n\nRequire `lowest_price <= highest_price`.\n\n### Category URL\n\n| Field | Required | Default | Notes |\n| --- | --- | --- | --- |\n| `url` | Yes | No default | Amazon category URL. |\n| `page_turning` | Yes | No default | Integer greater than or equal to `1`. |\n| `sort_by` | No | `Best Sellers` | Dropdown-style option. |\n| `file_name` | No | `{{TasksID}}` | Builder form field. Can be changed by the user. |\n\nShow all `sort_by` options as a Markdown table with both `Label` and `Value` columns before asking the user to choose.\n\n| Label | Value |\n| --- | --- |\n| `Best Sellers` | `Best Sellers` |\n| `Newest Arrivals` | `Newest Arrivals` |\n| `Avg. Customer Review` | `Avg. Customer Review` |\n| `Price: High to Low` | `Price: High to Low` |\n| `Price: Low to High` | `Price: Low to High` |\n| `Featured` | `Featured` |\n\nAccepted `sort_by` display values and submitted values:\n\n- best sellers or `Best Sellers` -> `Best Sellers`\n- newest arrivals or `Newest Arrivals` -> `Newest Arrivals`\n- average customer review or `Avg. Customer Review` -> `Avg. Customer Review`\n- price high to low or `Price: High to Low` -> `Price: High to Low`\n- price low to high or `Price: Low to High` -> `Price: Low to High`\n- featured recommendations or `Featured` -> `Featured`\n\n### Best Sellers URL\n\n| Field | Required | Default | Notes |\n| --- | --- | --- | --- |\n| `url` | Yes | No default | Amazon Best Sellers category URL. |\n| `page_turning` | Yes | No default | Integer greater than or equal to `1`. |\n| `file_name` | No | `{{TasksID}}` | Builder form field. Can be changed by the user. |\n\n## Dataify Builder Request\n\nUse form fields rather than hand-built URL-encoded strings.\n\n- URL: `https://scraperapi.dataify.com/builder`\n- Method: `POST`\n- Authorization header: `Bearer DATAIFY_API_TOKEN`\n- Content type: `application/x-www-form-urlencoded`\n- Fixed fields:\n  - `spider_name=amazon.com`\n  - `spider_errors=true`\n- Dynamic fields:\n  - `spider_id` must match the chosen mode.\n  - `spider_parameters` must be a JSON string, not a raw object.\n  - `file_name` defaults to `{{TasksID}}` and can be changed by the user.\n- Send `file_name` as the Builder form field, not as a downloaded output name.\n\n## Script\n\nFor stable execution, prefer `scripts/submit_amazon_product.py` with Python 3.6 or newer instead of rewriting the Builder flow. The script writes and reads UTF-8 text.\n\n```powershell\npython3 \".\\scripts\\submit_amazon_product.py\" asin B0BZYCJK89\npython3 \".\\scripts\\submit_amazon_product.py\" url --zip-code \"94107\" \"https://www.amazon.com/HISDERN-Checkered-Handkerchief-Classic-Necktie/dp/B0BRXPR726\"\npython3 \".\\scripts\\submit_amazon_product.py\" keyword --keyword \"coffee\"\npython3 \".\\scripts\\submit_amazon_product.py\" category-url --url \"https://www.amazon.com/s?i=fashion\" --page-turning 2 --sort-by \"Best Sellers\"\npython3 \".\\scripts\\submit_amazon_product.py\" best-sellers-url --url \"https://www.amazon.com/Best-Sellers-Tools-Home-Improvement-Kitchen-Bath-Fixtures/zgbs/hi/3754161/ref=zg_bs_unv_hi_2_680350011_1\" --page-turning 1\n```\n\nIf `python3` is not available, use the local Python 3 command for that machine, such as `python`. The script checks the runtime version and tells the user to use Python 3.6 or newer if the active interpreter is too old.\n\nTo override the saved environment token or default file name for one run:\n\n```powershell\npython3 \".\\scripts\\submit_amazon_product.py\" keyword --api-token \"YOUR_DATAIFY_API_TOKEN\" --keyword \"coffee\" --file-name \"amazon-coffee\"\n```\n\nThe script prints a JSON summary with `task_id`, submitted parameters, `dashboard_url`, and `message`.\n\n## Troubleshooting\n\n`Missing Dataify API TOKEN` means no explicit token was passed and `DATAIFY_API_TOKEN` is not saved locally. Tell the user to get an API TOKEN from [Dataify](https://dataify.com).\n\n`No valid ASINs were provided` means the required `asin` value is missing or could not be extracted from the provided input.\n\n`No valid URLs were provided` or `URL cannot be empty` means the required URL value is missing.\n\n`Zip code cannot be empty` means no usable `zip_code` was provided.\n\n`Keyword cannot be empty` means the required `keyword` value is missing.\n\n`Page turning must be greater than or equal to 1` means the requested page count is invalid.\n\n`Lowest price cannot be greater than highest price` means the price range must be corrected before submission.\n\n`Unsupported sort_by` means the category sort option must be one of the accepted display values or submitted values.\n\n`File name cannot be empty` means no usable `file_name` was provided.\n\n`Necessary parameters is empty!` usually means the Builder request was not submitted as form fields, `spider_parameters` was not a JSON string, or the object is missing required mode parameters.\n\nMissing `task_id` usually means the authorization header, token, `spider_name`, or `spider_id` is wrong.\n\n## Guardrails\n\n- Do not invent result fields.\n- Always direct the user to `https://dataify.com/dashboard/` after successful task creation.\n\nFile v1.0.0:_meta.json\n\n{\n  \"ownerId\": \"kn74z5hmmwk21kw8tpphd9w21x86bkdf\",\n  \"slug\": \"dataify-amazon-product\",\n  \"version\": \"1.0.0\",\n  \"publishedAt\": 1779949817985\n}\n\nFile v1.0.0:skill-card.md\n\n## Description: <br>\nSubmits Amazon product collection jobs to Dataify Builder by ASIN, product URL, keyword, category URL, or Best Sellers URL, then returns the created task_id. <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 create Dataify Amazon product collection tasks from ASINs, product URLs, keywords, category URLs, or Best Sellers URLs. It confirms parameters, submits the Builder request, and returns the Dataify task_id for follow-up in the Dataify dashboard. <br>\n\n### Deployment Geography for Use: <br>\nGlobal <br>\n\n## Known Risks and Mitigations: <br>\nRisk: The Dataify API TOKEN can grant access to submit jobs under the user's account. <br>\nMitigation: Keep DATAIFY_API_TOKEN private, prefer environment-variable use, and avoid persistent storage on shared machines. <br>\nRisk: Task parameters and Amazon collection requests are sent to Dataify. <br>\nMitigation: Review the Markdown parameter table before submission and avoid sending sensitive or unintended inputs. <br>\nRisk: Submitted jobs may use account quota or raise site-policy considerations. <br>\nMitigation: Confirm collection scope and applicable site or account policies before creating the task. <br>\n\n\n## Reference(s): <br>\n- [ClawHub skill page](https://clawhub.ai/dataify-server/dataify-amazon-product) <br>\n- [Dataify](https://dataify.com) <br>\n- [Dataify dashboard](https://dataify.com/dashboard/) <br>\n- [Dataify Builder endpoint](https://scraperapi.dataify.com/builder) <br>\n\n\n## Skill Output: <br>\n**Output Type(s):** [Markdown, JSON, Shell commands, Configuration, Guidance] <br>\n**Output Format:** [Markdown parameter tables with inline shell commands and JSON task summaries] <br>\n**Output Parameters:** [1D] <br>\n**Other Properties Related to Output:** [Returns task_id and dashboard_url after task creation; does not download result files.] <br>\n\n## Skill Version(s): <br>\n1.0.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.0.0:agents/openai.yaml\n\ninterface:\n  display_name: \"Dataify Amazon Product\"\n  short_description: \"Submit Dataify Amazon product collection tasks\"\n  default_prompt: \"Use $dataify-amazon-product to submit Amazon product collection tasks through Dataify and return the task_id.\"\n\npolicy:\n  allow_implicit_invocation: true","readmeExcerpt":"Skill: Dataify Amazon Product Owner: dataify-server Summary: Collect Amazon Product data and return results Tags: latest:1.3.0 Version history: v1.3.0 | 2026-09-01T09:12:20.163Z | user 默认返回最终采集结果，完善异步等待下载与安全恢复；修复空目标误执行、Quick Start、Token 配置和触发路由冲突，并补齐发布前自动化测试 v1.2.0 | 2026-07-16T08:35:20.322Z | user 新增能力路由与异步任务闭环，修复失效引用、Token 泄漏和 Skill 元数据兼容性 v1.1.0 | 2026-06-08T02:05:31.897Z | user 补全中文文档，更新目录结构 v1.0.0 | 2026-05-28T0","codeSnippets":[],"executableExamples":[{"language":"bash","snippet":"python3 scripts/submit_amazon_product.py asin B0BZYCJK89"},{"language":"powershell","snippet":"$env:DATAIFY_API_TOKEN = \"YOUR_DATAIFY_API_TOKEN\""},{"language":"powershell","snippet":"[Environment]::SetEnvironmentVariable(\"DATAIFY_API_TOKEN\", \"YOUR_DATAIFY_API_TOKEN\", \"User\")"},{"language":"powershell","snippet":"python3 \".\\scripts\\submit_amazon_product.py\" asin B0BZYCJK89\npython3 \".\\scripts\\submit_amazon_product.py\" url --zip-code \"94107\" \"https://www.amazon.com/HISDERN-Checkered-Handkerchief-Classic-Necktie/dp/B0BRXPR726\"\npython3 \".\\scripts\\submit_amazon_product.py\" keyword --keyword \"coffee\"\npython3 \".\\scripts\\submit_amazon_product.py\" category-url --url \"https://www.amazon.com/s?i=fashion\" --page-turning 2 --sort-by \"Best Sellers\"\npython3 \".\\scripts\\submit_amazon_product.py\" best-sellers-url --url \"https://www.amazon.com/Best-Sellers-Tools-Home-Improvement-Kitchen-Bath-Fixtures/zgbs/hi/3754161/ref=zg_bs_unv_hi_2_680350011_1\" --page-turning 1"},{"language":"powershell","snippet":"python3 \".\\scripts\\submit_amazon_product.py\" keyword --keyword \"coffee\" --file-name \"amazon-coffee\""},{"language":"powershell","snippet":"$env:DATAIFY_API_TOKEN = \"YOUR_DATAIFY_API_TOKEN\""}],"parameters":null,"dependencies":[],"permissions":[],"extractedFiles":[{"path":"SKILL.md","content":"---\nname: dataify-amazon-product\ndescription: \"Collect Amazon product details by ASIN or URL, or collect standard product results by keyword, category URL, or Best Sellers URL. Do not use for reviews, seller profiles, global-marketplace collection, or keyword-and-domain product lists.\"\n---\n\n# Dataify Amazon Product\n\nSubmit Amazon product collection jobs through Dataify Builder and continue through final-result retrieval. After submission, continue monitoring the returned `task_id` and return the final result by default.\n\nThis skill covers five Amazon product collection modes:\n\n| Mode | Use for | Builder `spider_id` |\n| --- | --- | --- |\n| `asin` | Collect product details by ASIN. Amazon product URLs can be accepted and converted to ASINs. | `amazon_product_by-asin` |\n| `url` | Collect product details by one or more Amazon product URLs and a zip code. | `amazon_product_by-url` |\n| `keyword` | Collect Amazon keyword search results. | `amazon_product_by-keywords` |\n| `category-url` | Collect Amazon category listing results from a category URL. | `amazon_product_by-category-url` |\n| `best-sellers-url` | Collect Amazon Best Sellers listing results from a Best Sellers URL. | `amazon_product_by-best-sellers` |\n\n## Quick Start\n\n**Input:** an ASIN.\n\n```bash\npython3 scripts/submit_amazon_product.py asin B0BZYCJK89\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## API TOKEN Handling\n\nUse `DATAIFY_API_TOKEN` as the long-term saved token name.\n\n- If `DATAIFY_API_TOKEN` is saved locally, use it.\n- Do not call the Builder endpoint without a token.\n- Always call it `API TOKEN` in user-facing instructions. Prefer the environment variable name `DATAIFY_API_TOKEN` for saved local use.\n\nPowerShell examples for saving the token for the current session:\n\n```powershell\n$env:DATAIFY_API_TOKEN = \"YOUR_DATAIFY_API_TOKEN\"\n```\n\nFor a persistent user-level variable on Windows:\n\n```powershell\n[Environment]::SetEnvironmentVariable(\"DATAIFY_API_TOKEN\", \"YOUR_DATAIFY_API_TOKEN\", \"User\")\n```\n\n## Core Workflow\n\n1. Identify the collection mode from the user's request: `asin`, `url`, `keyword`, `category-url`, or `best-sellers-url`.\n4. Ask: \"Do you want to change any of these values before I submit the task?\"\n5. Normalize and validate the final values for the chosen mode.\n8. Submit a Builder request to create the task.\n9. Read `data.task_id` from the Builder response.\nIf the user has already provided some values, show those values in place of the defaults and only ask whether the remaining/defaulted values should be changed.\n\nFor detailed mode schemas and advanced fields, read [references/modes-and-parameters.md](references/modes-and-parameters.md) only when needed.\n\n## Dataify Builder Request\n\nUse form fields rather than hand-built URL-encoded strings.\n\n- U"},{"path":"_meta.json","content":"{\n  \"ownerId\": \"kn74z5hmmwk21kw8tpphd9w21x86bkdf\",\n  \"slug\": \"dataify-amazon-product\",\n  \"version\": \"1.3.0\",\n  \"publishedAt\": 1788253940163\n}"},{"path":"references/modes-and-parameters.md","content":"# Modes and parameters\n\nRead this reference only when selecting a non-default mode or mapping advanced fields.\n\n## Parameter Checklists\n\n### ASIN\n\n| Field | Required | Default | Notes |\n| --- | --- | --- | --- |\n| `asin` | Yes | No default | One or more ASINs. Amazon product URLs can be accepted and converted to ASINs. |\n| `file_name` | No | `{{TasksID}}` | Builder form field. Can be changed by the user. |\n\nSubmit multiple ASINs as an array of objects, for example `[{\"asin\":\"B0BZYCJK89\"}]`.\n\n### Product URL\n\n| Field | Required | Default | Notes |\n| --- | --- | --- | --- |\n| `url` | Yes | No default | One or more complete Amazon product URLs. |\n| `zip_code` | Yes | No default | Zip code used for each Amazon URL, for example `94107`. |\n| `file_name` | No | `{{TasksID}}` | Builder form field. Can be changed by the user. |\n\nSubmit multiple URLs as an array of objects, for example `[{\"url\":\"https://www.amazon.com/.../dp/B0BRXPR726\",\"zip_code\":\"94107\"}]`.\n\n### Keyword\n\n| Field | Required | Default | Notes |\n| --- | --- | --- | --- |\n| `keyword` | Yes | No default | Amazon search keyword. |\n| `page_turning` | No | `2` | Integer greater than or equal to `1`. |\n| `lowest_price` | No | `10` | Lowest price filter. |\n| `highest_price` | No | `50` | Highest price filter. |\n| `file_name` | No | `{{TasksID}}` | Builder form field. Can be changed by the user. |\n\nRequire `lowest_price <= highest_price`.\n\n### Category URL\n\n| Field | Required | Default | Notes |\n| --- | --- | --- | --- |\n| `url` | Yes | No default | Amazon category URL. |\n| `page_turning` | Yes | No default | Integer greater than or equal to `1`. |\n| `sort_by` | No | `Best Sellers` | Dropdown-style option. |\n| `file_name` | No | `{{TasksID}}` | Builder form field. Can be changed by the user. |\n\n\n| Label | Value |\n| --- | --- |\n| `Best Sellers` | `Best Sellers` |\n| `Newest Arrivals` | `Newest Arrivals` |\n| `Avg. Customer Review` | `Avg. Customer Review` |\n| `Price: High to Low` | `Price: High to Low` |\n| `Price: Low to High` | `Price: Low to High` |\n| `Featured` | `Featured` |\n\nAccepted `sort_by` display values and submitted values:\n\n- best sellers or `Best Sellers` -> `Best Sellers`\n- newest arrivals or `Newest Arrivals` -> `Newest Arrivals`\n- average customer review or `Avg. Customer Review` -> `Avg. Customer Review`\n- price high to low or `Price: High to Low` -> `Price: High to Low`\n- price low to high or `Price: Low to High` -> `Price: Low to High`\n- featured recommendations or `Featured` -> `Featured`\n\n### Best Sellers URL\n\n| Field | Required | Default | Notes |\n| --- | --- | --- | --- |\n| `url` | Yes | No default | Amazon Best Sellers category URL. |\n| `page_turning` | Yes | No default | Integer greater than or equal to `1`. |\n| `file_name` | No | `{{TasksID}}` | Builder form field. Can be changed by the user. |"},{"path":"skill-card.md","content":"## Description:\n\nCollect Amazon product details by ASIN or URL, or collect standard product results by keyword, category URL, or Best Sellers URL.\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 Dataify Builder jobs for Amazon product detail, keyword result, category listing, and Best Sellers collection, then retrieve the resulting task output when available.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: The skill uses a Dataify API token and makes external Dataify requests that may consume credits.\n\nMitigation: Run only after confirming the requested collection scope and use an environment where the token is configured without exposing its value.\n\nRisk: The script imports result-monitoring code from a sibling directory outside the reviewed artifact and passes that code the API token.\n\nMitigation: Install and run the skill only where the sibling task-runtime dependency is trusted, reviewed, and controlled.\n\nRisk: Localized instructions are inconsistent about whether the skill should stop after task submission or retrieve final results.\n\nMitigation: Prefer the server-resolved default prompt and English release behavior that wait for asynchronous completion unless the user explicitly requests no-wait behavior.\n\n## Reference(s):\n\n- [Modes and parameters](references/modes-and-parameters.md)\n- [Dataify Builder endpoint](https://scraperapi.dataify.com/builder)\n- [ClawHub skill page](https://clawhub.ai/dataify-server/skills/dataify-amazon-product)\n- [Publisher profile](https://clawhub.ai/user/dataify-server)\n\n## Skill Output:\n\n**Output Type(s):** [Text, Markdown, Shell commands, Configuration, JSON]\n\n**Output Format:** [Markdown guidance with shell commands and JSON task or result output]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Uses DATAIFY_API_TOKEN and may wait up to 600 seconds by default for final result retrieval.]\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-amazon-product\ndescription: \"用于 Dataify Amazon 商品采集 Builder 任务。当用户请求 Amazon product collection/scraping/harvesting/crawling，尤其包含 ASIN、URL、keyword、category URL、Best Sellers URL 或类似 Amazon product 任务关键词时触发。支持按 ASIN、product URL and zip code、keyword、category URL、Best Sellers URL 创建 Amazon 商品任务，返回 task_id，配置或复用 DATAIFY_API_TOKEN，并排查 Dataify Builder 请求失败。\"\n---\n\n# Dataify Amazon Product\n\n通过 Dataify Builder 提交 Amazon 产品采集任务，提交后停止。不要下载结果文件。成功提交后，将 `task_id` 提供给用户，并告知他们前往 [Dataify](https://dashboard.dataify.com?utm_source=skill) 查看结果。\n\n本技能涵盖五种 Amazon 产品采集模式：\n\n| 模式 | 用途 | Builder `spider_id` |\n| --- | --- | --- |\n| `asin` | 通过 ASIN 采集产品详情。可以接受 Amazon 产品 URL 并转换为 ASIN。 | `amazon_product_by-asin` |\n| `url` | 通过一个或多个 Amazon 产品 URL 和邮编采集产品详情。 | `amazon_product_by-url` |\n| `keyword` | 采集 Amazon 关键词搜索结果。 | `amazon_product_by-keywords` |\n| `category-url` | 通过分类 URL 采集 Amazon 分类列表结果。 | `amazon_product_by-category-url` |\n| `best-sellers-url` | 通过 Best Sellers URL 采集 Amazon 畅销榜列表结果。 | `amazon_product_by-best-sellers` |\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- 在面向用户的说明中始终称其为 `API TOKEN`。在本地保存使用时，优先使用环境变量名 `DATAIFY_API_TOKEN`。\n\nPowerShell 示例，为当前会话保存 token：\n\n```powershell\n$env:DATAIFY_API_TOKEN = \"YOUR_DATAIFY_API_TOKEN\"\n```\n\n在 Windows 上设置持久的用户级变量：\n\n```powershell\n[Environment]::SetEnvironmentVariable(\"DATAIFY_API_TOKEN\", \"YOUR_DATAIFY_API_TOKEN\", \"User\")\n```\n\n## 核心工作流程\n\n1. 从用户请求中识别采集模式：`asin`、`url`、`keyword`、`category-url` 或 `best-sellers-url`。\n4. 询问：\"在我提交任务之前，您是否需要修改这些值？\"\n5. 规范化并验证所选模式的最终值。\n6. 从用户明确提供的输入或已保存的 `DATAIFY_API_TOKEN` 中获取 Dataify token。\n7. 如果没有可用的 token，提示用户前往 [Dataify](https://dashboard.dataify.com?utm_source=skill) 获取 API TOKEN。\n8. 提交 Builder 请求创建任务。\n9. 从 Builder 响应中读取 `data.task_id`。\n11. 告诉用户前往 [Dataify](https://dashboard.dataify.com?utm_source=skill) 查看或管理结果。\n\n如果用户已经提供了部分值，在表格中显示这些值代替默认值，只询问是否需要修改剩余/使用默认值的参数。\n\n## 参数清单\n\n### ASIN\n\n| 字段 | 必填 | 默认值 | 说明 |\n| --- | --- | --- | --- |\n| `asin` | 是 | 无默认值 | 一个或多个 ASIN。可以接受 Amazon 产品 URL 并转换为 ASIN。 |\n| `file_name` | 否 | `{{TasksID}}` | Builder 表单字段。可由用户修改。 |\n\n将多个 ASIN 作为对象数组提交，例如 `[{\"asin\":\"B0BZYCJK89\"}]`。\n\n### Product URL\n\n| 字段 | 必填 | 默认值 | 说明 |\n| --- | --- | --- | --- |\n| `url` | 是 | 无默认值 | 一个或多个完整的 Amazon 产品 URL。 |\n| `zip_code` | 是 | 无默认值 | 用于每个 Amazon URL 的邮编，例如 `94107`。 |\n| `file_name` | 否 | `{{TasksID}}` | Builder 表单字段。可由用户修改。 |\n\n将多个 URL 作为对象数组提交，例如 `[{\"url\":\"https://www.amazon.com/.../dp/B0BRXPR726\",\"zip_code\":\"94107\"}]`。\n\n### Keyword\n\n| 字段 | 必填 | 默认值 | 说明 |\n| --- | --- | --- | --- |\n| `keyword` | 是 | 无默认值 | Amazon 搜索关键词。 |\n| `page_turning` | 否 | `2` | 大于等于 `1` 的整数。 |\n| `lowest_price` | 否 | `10` | 最低价格筛选。 |\n| `highest_price` | 否 | `50` | 最高价格筛选。 |\n| `file_name` | 否 | `{{TasksID}}` | Builder 表单字段。可由用户修改。 |\n\n要求 `lowest_price <"}],"languages":[],"docsSourceLabel":"CLAWHUB","editorialOverview":null,"editorialQuality":{"score":100,"threshold":65,"status":"thin","wordCount":1755,"uniquenessScore":34,"reasons":["uniqueness-below-45"]}},"media":{"evidence":{"source":"no-media","verified":false,"confidence":"low","updatedAt":"2026-10-11T13:58:30.000Z","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-11T13:58:30.000Z","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-11T17:41:14.459Z","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"}]}}}