{"id":"7c947b4e-9cd3-4e17-b17c-16af73a6cd47","entityType":"agent","slug":"clawhub-dataify-server-dataify-amazon-global-product","name":"Dataify Amazon Global Product","canonicalUrl":"https://www.xpersona.co/agent/clawhub-dataify-server-dataify-amazon-global-product","canonicalPath":"/agent/clawhub-dataify-server-dataify-amazon-global-product","generatedAt":"2026-10-11T10:49:27.417Z","source":"CLAWHUB","claimStatus":"UNCLAIMED","verificationTier":"NONE","summary":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-11T08:07:17.915Z","emptyReason":null},"description":"Collect Amazon Global 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-global-product","sourceUrl":"https://clawhub.ai/dataify-server/dataify-amazon-global-product","homepage":"https://clawhub.ai/dataify-server/skills/dataify-amazon-global-product","primaryLinks":[{"label":"View on ClawHub","url":"https://clawhub.ai/dataify-server/dataify-amazon-global-product","kind":"source"},{"label":"Homepage","url":"https://clawhub.ai/dataify-server/skills/dataify-amazon-global-product","kind":"homepage"}],"safetyScore":84,"overallRank":62,"popularityScore":61,"trustScore":null,"claimedByName":null,"isOwner":false,"seoDescription":"Dataify Amazon Global 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-11T08:07:17.915Z","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-11T08:07:17.915Z","emptyReason":null},"stars":null,"forks":null,"downloads":1117,"packageName":null,"latestVersion":"1.3.1","tractionLabel":"1.1K downloads"},"release":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-11T08:07:17.851Z","emptyReason":null},"lastUpdatedAt":"2026-10-11T08:07:17.915Z","lastCrawledAt":"2026-10-11T08:07:17.851Z","lastIndexedAt":null,"nextCrawlAt":"2026-10-12T08:07:17.851Z","lastVerifiedAt":null,"highlights":[{"version":"1.3.1","createdAt":"2026-09-08T06:17:48.198Z","changelog":"Fix natural-language usage failures: validate required targets and URLs, preserve catalog references, default Amazon region safely, normalize Google News links, and improve UTF-8 error output.","fileCount":13,"zipByteSize":35843},{"version":"1.3.0","createdAt":"2026-09-01T09:12:06.425Z","changelog":"默认返回最终采集结果，完善异步等待下载与安全恢复；修复空目标误执行、Quick Start、Token 配置和触发路由冲突，并补齐发布前自动化测试","fileCount":7,"zipByteSize":15120},{"version":"1.2.0","createdAt":"2026-07-16T08:35:07.613Z","changelog":"新增能力路由与异步任务闭环，修复失效引用、Token 泄漏和 Skill 元数据兼容性","fileCount":6,"zipByteSize":11976},{"version":"1.1.0","createdAt":"2026-06-08T02:05:21.598Z","changelog":"补全中文文档，更新目录结构","fileCount":6,"zipByteSize":12025},{"version":"1.0.0","createdAt":"2026-05-28T06:27:22.800Z","changelog":"Initial release of Dataify Amazon global product collection skill. - Allows users to create Dataify Builder tasks for Amazon product collection using product URL, category URL, keyword, or keyword+brand. - Guides users through required parameters for each mode, with confirmation and validation steps. - Handles API TOKEN via user input or local environment variable (`DATAIFY_API_TOKEN`), with clear instructions if not set. - Submits tasks using a provided script for stability. - Returns the `task_id` upon successful submission and directs users to view results at dataify.com.","fileCount":5,"zipByteSize":8243}]},"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-global-product","setupComplexity":"low","setupSteps":["Install using `clawhub skill install s17feed8b2qc486skqmjapxmjs86bd4f:dataify-amazon-global-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-global-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-global-product/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-dataify-server-dataify-amazon-global-product/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-dataify-server-dataify-amazon-global-product/trust"},"curlExamples":["curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-dataify-server-dataify-amazon-global-product/snapshot\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-dataify-server-dataify-amazon-global-product/contract\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-dataify-server-dataify-amazon-global-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-11T10:49:27.414Z"}},"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-global-product/dossier","snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-dataify-server-dataify-amazon-global-product/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-dataify-server-dataify-amazon-global-product/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-dataify-server-dataify-amazon-global-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-11T08:07:17.915Z","emptyReason":null},"readme":"Skill: Dataify Amazon Global Product\n\nOwner: dataify-server\n\nSummary: Collect Amazon Global Product data and return results\n\nTags: latest:1.3.1\n\nVersion history:\n\nv1.3.1 | 2026-09-08T06:17:48.198Z | user\n\nFix natural-language usage failures: validate required targets and URLs, preserve catalog references, default Amazon region safely, normalize Google News links, and improve UTF-8 error output.\n\nv1.3.0 | 2026-09-01T09:12:06.425Z | user\n\n默认返回最终采集结果，完善异步等待下载与安全恢复；修复空目标误执行、Quick Start、Token 配置和触发路由冲突，并补齐发布前自动化测试\n\nv1.2.0 | 2026-07-16T08:35:07.613Z | user\n\n新增能力路由与异步任务闭环，修复失效引用、Token 泄漏和 Skill 元数据兼容性\n\nv1.1.0 | 2026-06-08T02:05:21.598Z | user\n\n补全中文文档，更新目录结构\n\nv1.0.0 | 2026-05-28T06:27:22.800Z | auto\n\nInitial release of Dataify Amazon global product collection skill.\n\n- Allows users to create Dataify Builder tasks for Amazon product collection using product URL, category URL, keyword, or keyword+brand.\n- Guides users through required parameters for each mode, with confirmation and validation steps.\n- Handles API TOKEN via user input or local environment variable (`DATAIFY_API_TOKEN`), with clear instructions if not set.\n- Submits tasks using a provided script for stability.\n- Returns the `task_id` upon successful submission and directs users to view results at dataify.com.\n\nArchive index:\n\nArchive v1.3.1: 13 files, 35843 bytes\n\nFiles: agents/openai.yaml (424b), references/modes-and-parameters.md (2744b), scripts/business_workflow.py (34775b), scripts/catalog_builder.py (7013b), scripts/dataify_client.py (6994b), scripts/submit_amazon_global_product.py (12415b), scripts/task_runtime.py (2259b), scripts/token_setup.py (2585b), scripts/wait_for_task.py (8879b), skill-card.md (2287b), SKILL.md (10305b), SKILL.zh-CN.md (12749b), _meta.json (148b)\n\nFile v1.3.1:SKILL.md\n\n---\nname: dataify-amazon-global-product\ndescription: \"Collect Amazon global-marketplace products by product URL, category URL, keyword, or keyword plus brand. Use when the request explicitly concerns global or multi-market Amazon product data. Do not use for ordinary single-product ASIN details or keyword-and-domain product lists.\"\n---\n\n# Dataify Amazon Global Product\n\nSubmit Amazon global 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 four Amazon global product collection modes:\n\n| Mode | Use for | Builder `spider_id` |\n| --- | --- | --- |\n| `product-url` | Collect global Amazon product details by product URL. | `amazon_global-product_by-url` |\n| `category-url` | Collect global Amazon product details from a category URL. | `amazon_global-product_by-category-url` |\n| `keyword` | Collect global Amazon product details from a keyword search. | `amazon_global-product_by-keywords` |\n| `keyword-brand` | Collect global Amazon product details from a keyword and brand filter. | `amazon_global-product_by-keywords-brand` |\n\n## Quick Start\n\n**Input:** a product keyword and Amazon domain.\n\n```bash\npython3 scripts/submit_amazon_global_product.py keyword --keyword \"coffee\" --domain \"https://www.amazon.com\"\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 get 50 free credits, enough for about 6,000 trial results, valid for 7 days, and only successful requests are billed.\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: `product-url`, `category-url`, `keyword`, or `keyword-brand`.\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- 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  - The Builder URL depends on the chosen mode.\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\nBuilder URL by mode:\n\n| Mode | URL |\n| --- | --- |\n| `product-url` | `https://scraperapi.dataify.com/builder` |\n| `category-url` | `https://scraperapi.dataify.com/builder?platform=1` |\n| `keyword` | `https://scraperapi.dataify.com/builder?platform=1` |\n| `keyword-brand` | `https://scraperapi.dataify.com/builder?platform=1` |\n\n## Script\n\nFor stable execution, prefer `scripts/submit_amazon_global_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_global_product.py\" product-url\npython3 \".\\scripts\\submit_amazon_global_product.py\" category-url --url \"https://www.amazon.com/s?i=luggage-intl-ship\" --maximum 5 --sort-by \"Best Sellers\" --get-sponsored true\npython3 \".\\scripts\\submit_amazon_global_product.py\" keyword --keyword \"coffee\" --domain \"https://www.amazon.com\"\npython3 \".\\scripts\\submit_amazon_global_product.py\" keyword-brand --keyword \"shirts\" --brands \"Adidas\" --page-turning 2\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_global_product.py\" keyword --keyword \"coffee\" --file-name \"amazon-global-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`URL cannot be empty` means no usable URL was provided.\n\n`Keyword cannot be empty` means no usable keyword was provided.\n\n`Brands cannot be empty` means no usable brand value was provided.\n\n`Domain cannot be empty` means no usable domain was provided.\n\n`Maximum must be greater than or equal to 0` means the requested maximum count is invalid.\n\n`Page turning must be greater than or equal to 0` means the requested page count is invalid.\n\n`Lowest price must be greater than or equal to 0` means the requested lowest price is invalid.\n\n`Highest price must be greater than or equal to 0` means the requested highest price is invalid.\n\n`Highest price cannot be less than lowest 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`get_sponsored must be true or false` means the sponsored option must be corrected before submission.\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 get 50 free credits, enough for about 6,000 trial results, valid for 7 days, and only successful requests are billed. 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.1:_meta.json\n\n{\n  \"ownerId\": \"kn74z5hmmwk21kw8tpphd9w21x86bkdf\",\n  \"slug\": \"dataify-amazon-global-product\",\n  \"version\": \"1.3.1\",\n  \"publishedAt\": 1788848268198\n}\n\nFile v1.3.1: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### Product URL\n\n| Field | Required | Default | Notes |\n| --- | --- | --- | --- |\n| `url` | Yes | `https://www.amazon.com/dp/B0CHHSFMRL/` | Amazon product URL. |\n| `file_name` | No | `{{TasksID}}` | Builder form field. Can be changed by the user. |\n\nSubmit `spider_parameters` as an array with one object, for example `[{\"url\":\"https://www.amazon.com/dp/B0CHHSFMRL/\"}]`.\n\n### Category URL\n\n| Field | Required | Default | Notes |\n| --- | --- | --- | --- |\n| `url` | Yes | `https://www.amazon.com/s?i=luggage-intl-ship` | Amazon category URL. |\n| `maximum` | Yes | `5` | Integer greater than or equal to `0`. |\n| `sort_by` | No | `Best Sellers` | Dropdown-style option. |\n| `get_sponsored` | No | `true` | Dropdown-style option: `true` or `false`. |\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\n\n| Label | Value |\n| --- | --- |\n| `Include Sponsored Products` | `true` |\n| `Exclude Sponsored Products` | `false` |\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### Keyword\n\n| Field | Required | Default | Notes |\n| --- | --- | --- | --- |\n| `keyword` | Yes | `coffee` | Amazon search keyword. |\n| `domain` | Yes | `https://www.amazon.com` | Amazon domain. |\n| `lowest_price` | No | `20` | Integer greater than or equal to `0`. |\n| `highest_price` | No | `50` | Integer greater than or equal to `0`, and must not be less than `lowest_price`. |\n| `page_turning` | No | `2` | Integer greater than or equal to `0`. |\n| `file_name` | No | `{{TasksID}}` | Builder form field. Can be changed by the user. |\n\nRequire `highest_price >= lowest_price`.\n\n### Keyword Brand\n\n| Field | Required | Default | Notes |\n| --- | --- | --- | --- |\n| `keyword` | Yes | `shirts` | Amazon search keyword. |\n| `brands` | Yes | `Adidas` | Brand filter. |\n| `page_turning` | Yes | `2` | Integer greater than or equal to `0`. |\n| `file_name` | No | `{{TasksID}}` | Builder form field. Can be changed by the user. |\n\nFile v1.3.1:skill-card.md\n\n## Description:\n\nCollects Amazon global-marketplace product data by product URL, category URL, keyword, or keyword plus brand through Dataify Builder.\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 developers and operators use this skill to submit and monitor Dataify Builder tasks that collect Amazon global product data, then retrieve final JSON results.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: The skill requires access to a Dataify API token and may submit collection tasks that consume credits.\n\nMitigation: Use a rotatable Dataify token, verify token handling before installation, and review task scope before submitting high-volume collections.\n\nRisk: Server security evidence reports bundled non-Amazon workflow scripts and runtime-shadowing risks outside the core Amazon collection flow.\n\nMitigation: Review or remove non-Amazon workflow scripts and prefer packaged runtime imports before deployment.\n\nRisk: Server security guidance flags polling paths that authenticate with API keys in URLs.\n\nMitigation: Prefer a version that authenticates polling without placing API keys in URLs and avoid retaining request URLs in logs.\n\n## Reference(s):\n\n- [Modes and Parameters](references/modes-and-parameters.md)\n- [Dataify Dashboard](https://dashboard.dataify.com?utm_source=skill)\n- [ClawHub Skill Page](https://clawhub.ai/dataify-server/skills/dataify-amazon-global-product)\n\n## Skill Output:\n\n**Output Type(s):** [text, markdown, shell commands, configuration, guidance, JSON]\n\n**Output Format:** [Markdown guidance with shell commands and JSON task or result payloads]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [May submit paid Dataify collection tasks and wait for asynchronous final JSON results when a Dataify API token is configured.]\n\n## Skill Version(s):\n\n1.3.1 (source: server release metadata)\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.1:SKILL.zh-CN.md\n\n---\nname: dataify-amazon-global-product\ndescription: \"用于 Dataify Amazon 全球商品采集 Builder 任务。当用户请求 Amazon 全球产品详情采集工具、Amazon global product collection/details/scraping/harvesting/crawling，尤其包含 product URL、category URL、keyword、keyword brand、brand 或类似 Amazon global product 任务关键词时触发。支持按 product URL、category URL、keyword、keyword and brand 创建 Amazon global product 任务，返回 task_id，配置或复用 DATAIFY_API_TOKEN，并排查 Dataify Builder 请求失败。\"\n---\n\n# Dataify Amazon Global 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| `product-url` | 通过产品 URL 采集全球 Amazon 产品详情。 | `amazon_global-product_by-url` |\n| `category-url` | 通过分类 URL 采集全球 Amazon 产品详情。 | `amazon_global-product_by-category-url` |\n| `keyword` | 通过关键词搜索采集全球 Amazon 产品详情。 | `amazon_global-product_by-keywords` |\n| `keyword-brand` | 通过关键词和品牌筛选采集全球 Amazon 产品详情。 | `amazon_global-product_by-keywords-brand` |\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 需要 API Token。新账号注册即得 50 免费积分，约可获得 6000 条试用结果，7 天有效，仅成功请求计费。注册完成后告诉我，我会继续当前任务。`。\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. 从用户请求中识别采集模式：`product-url`、`category-url`、`keyword` 或 `keyword-brand`。\n4. 询问：\"在我提交任务之前，您是否需要修改这些值？\"\n5. 规范化并验证所选模式的最终值。\n6. 从用户明确提供的输入或已保存的 `DATAIFY_API_TOKEN` 中获取 Dataify token。\n7. 如果没有可用的 token，告诉用户：`Dataify 需要 API Token。新账号注册即得 50 免费积分，约可获得 6000 条试用结果，7 天有效，仅成功请求计费。注册完成后告诉我，我会继续当前任务。`。\n8. 提交 Builder 请求创建任务。\n9. 从 Builder 响应中读取 `data.task_id`。\n11. 告诉用户前往 [Dataify](https://dashboard.dataify.com?utm_source=skill) 查看或管理结果。\n\n如果用户已经提供了部分值，在表格中显示这些值代替默认值，只询问是否需要修改剩余/使用默认值的参数。\n\n## 参数清单\n\n### Product URL\n\n| 字段 | 必填 | 默认值 | 说明 |\n| --- | --- | --- | --- |\n| `url` | 是 | `https://www.amazon.com/dp/B0CHHSFMRL/` | Amazon 产品 URL。 |\n| `file_name` | 否 | `{{TasksID}}` | Builder 表单字段。可由用户修改。 |\n\n将 `spider_parameters` 作为包含一个对象的数组提交，例如 `[{\"url\":\"https://www.amazon.com/dp/B0CHHSFMRL/\"}]`。\n\n### Category URL\n\n| 字段 | 必填 | 默认值 | 说明 |\n| --- | --- | --- | --- |\n| `url` | 是 | `https://www.amazon.com/s?i=luggage-intl-ship` | Amazon 分类 URL。 |\n| `maximum` | 是 | `5` | 大于等于 `0` 的整数。 |\n| `sort_by` | 否 | `Best Sellers` | 下拉选项。 |\n| `get_sponsored` | 否 | `true` | 下拉选项：`true` 或 `false`。 |\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在让用户选择之前，以 Markdown 表格展示所有 `get_sponsored` 选项，包含 `Label` 和 `Value` 两列。\n\n| Label | Value |\n| --- | --- |\n| `Include Sponsored Products` | `true` |\n| `Exclude Sponsored Products` | `false` |\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### Keyword\n\n| 字段 | 必填 | 默认值 | 说明 |\n| --- | --- | --- | --- |\n| `keyword` | 是 | `coffee` | Amazon 搜索关键词。 |\n| `domain` | 是 | `https://www.amazon.com` | Amazon 域名。 |\n| `lowest_price` | 否 | `20` | 大于等于 `0` 的整数。 |\n| `highest_price` | 否 | `50` | 大于等于 `0` 的整数，且不得小于 `lowest_price`。 |\n| `page_turning` | 否 | `2` | 大于等于 `0` 的整数。 |\n| `file_name` | 否 | `{{TasksID}}` | Builder 表单字段。可由用户修改。 |\n\n要求 `highest_price >= lowest_price`。\n\n### Keyword Brand\n\n| 字段 | 必填 | 默认值 | 说明 |\n| --- | --- | --- | --- |\n| `keyword` | 是 | `shirts` | Amazon 搜索关键词。 |\n| `brands` | 是 | `Adidas` | 品牌筛选。 |\n| `page_turning` | 是 | `2` | 大于等于 `0` 的整数。 |\n| `file_name` | 否 | `{{TasksID}}` | Builder 表单字段。可由用户修改。 |\n\n## Dataify Builder 请求\n\n使用表单字段而不是手动构建的 URL 编码字符串。\n\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  - Builder URL 取决于所选模式。\n  - `spider_id` 必须与所选模式匹配。\n  - `spider_parameters` 必须是 JSON 字符串，不能是原始对象。\n  - `file_name` 默认为 `{{TasksID}}`，可由用户修改。\n- 将 `file_name` 作为 Builder 表单字段发送，而不是作为下载输出名称。\n\n各模式的 Builder URL：\n\n| 模式 | URL |\n| --- | --- |\n| `product-url` | `https://scraperapi.dataify.com/builder` |\n| `category-url` | `https://scraperapi.dataify.com/builder?platform=1` |\n| `keyword` | `https://scraperapi.dataify.com/builder?platform=1` |\n| `keyword-brand` | `https://scraperapi.dataify.com/builder?platform=1` |\n\n## 脚本\n\n为确保稳定执行，建议使用 Python 3.6 或更新版本运行 `scripts/submit_amazon_global_product.py`，而不是重写 Builder 流程。脚本使用 UTF-8 编码进行读写。\n\n```powershell\npython3 \".\\scripts\\submit_amazon_global_product.py\" product-url\npython3 \".\\scripts\\submit_amazon_global_product.py\" category-url --url \"https://www.amazon.com/s?i=luggage-intl-ship\" --maximum 5 --sort-by \"Best Sellers\" --get-sponsored true\npython3 \".\\scripts\\submit_amazon_global_product.py\" keyword --keyword \"coffee\" --domain \"https://www.amazon.com\"\npython3 \".\\scripts\\submit_amazon_global_product.py\" keyword-brand --keyword \"shirts\" --brands \"Adidas\" --page-turning 2\n```\n\n如果 `python3` 不可用，请使用该机器上的本地 Python 3 命令，例如 `python`。脚本会检查运行时版本，如果当前解释器版本过低，会提示用户使用 Python 3.6 或更新版本。\n\n要在单次运行中覆盖已保存的环境 token 或默认文件名：\n\n```powershell\npython3 \".\\scripts\\submit_amazon_global_product.py\" keyword --keyword \"coffee\" --file-name \"amazon-global-coffee\"\n```\n\n脚本会输出包含 `task_id`、已提交参数、`dashboard_url` 和 `message` 的 JSON 摘要。\n\n## 故障排除\n\n`Missing Dataify API TOKEN` 表示没有传入明确的 token 且本地未保存 `DATAIFY_API_TOKEN`。告诉用户：`Dataify 需要 API Token。新账号注册即得 50 免费积分，约可获得 6000 条试用结果，7 天有效，仅成功请求计费。注册完成后告诉我，我会继续当前任务。`。\n\n`URL cannot be empty` 表示没有提供有效的 URL。\n\n`Keyword cannot be empty` 表示没有提供有效的关键词。\n\n`Brands cannot be empty` 表示没有提供有效的品牌值。\n\n`Domain cannot be empty` 表示没有提供有效的域名。\n\n`Maximum must be greater than or equal to 0` 表示请求的最大数量无效。\n\n`Page turning must be greater than or equal to 0` 表示请求的页数无效。\n\n`Lowest price must be greater than or equal to 0` 表示请求的最低价格无效。\n\n`Highest price must be greater than or equal to 0` 表示请求的最高价格无效。\n\n`Highest price cannot be less than lowest price` 表示价格范围需要在提交前修正。\n\n`Unsupported sort_by` 表示分类排序选项必须是接受的显示值或提交值之一。\n\n`get_sponsored must be true or false` 表示赞助选项需要在提交前修正。\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 get 50 free credits, enough for about 6,000 trial results, valid for 7 days, and only successful requests are billed. 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.1:agents/openai.yaml\n\ninterface:\n  display_name: \"Dataify Amazon Global Product\"\n  short_description: \"Collect Amazon Global Product data and return results\"\n  default_prompt: \"Use $dataify-amazon-global-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.3.0: 7 files, 15120 bytes\n\nFiles: agents/openai.yaml (424b), references/modes-and-parameters.md (2744b), scripts/submit_amazon_global_product.py (12299b), skill-card.md (2119b), SKILL.md (10119b), SKILL.zh-CN.md (12299b), _meta.json (148b)\n\nFile v1.3.0:SKILL.md\n\n---\nname: dataify-amazon-global-product\ndescription: \"Collect Amazon global-marketplace products by product URL, category URL, keyword, or keyword plus brand. Use when the request explicitly concerns global or multi-market Amazon product data. Do not use for ordinary single-product ASIN details or keyword-and-domain product lists.\"\n---\n\n# Dataify Amazon Global Product\n\nSubmit Amazon global 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 four Amazon global product collection modes:\n\n| Mode | Use for | Builder `spider_id` |\n| --- | --- | --- |\n| `product-url` | Collect global Amazon product details by product URL. | `amazon_global-product_by-url` |\n| `category-url` | Collect global Amazon product details from a category URL. | `amazon_global-product_by-category-url` |\n| `keyword` | Collect global Amazon product details from a keyword search. | `amazon_global-product_by-keywords` |\n| `keyword-brand` | Collect global Amazon product details from a keyword and brand filter. | `amazon_global-product_by-keywords-brand` |\n\n## Quick Start\n\n**Input:** a product keyword and Amazon domain.\n\n```bash\npython3 scripts/submit_amazon_global_product.py keyword --keyword \"coffee\" --domain \"https://www.amazon.com\"\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: `product-url`, `category-url`, `keyword`, or `keyword-brand`.\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- 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  - The Builder URL depends on the chosen mode.\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\nBuilder URL by mode:\n\n| Mode | URL |\n| --- | --- |\n| `product-url` | `https://scraperapi.dataify.com/builder` |\n| `category-url` | `https://scraperapi.dataify.com/builder?platform=1` |\n| `keyword` | `https://scraperapi.dataify.com/builder?platform=1` |\n| `keyword-brand` | `https://scraperapi.dataify.com/builder?platform=1` |\n\n## Script\n\nFor stable execution, prefer `scripts/submit_amazon_global_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_global_product.py\" product-url\npython3 \".\\scripts\\submit_amazon_global_product.py\" category-url --url \"https://www.amazon.com/s?i=luggage-intl-ship\" --maximum 5 --sort-by \"Best Sellers\" --get-sponsored true\npython3 \".\\scripts\\submit_amazon_global_product.py\" keyword --keyword \"coffee\" --domain \"https://www.amazon.com\"\npython3 \".\\scripts\\submit_amazon_global_product.py\" keyword-brand --keyword \"shirts\" --brands \"Adidas\" --page-turning 2\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_global_product.py\" keyword --keyword \"coffee\" --file-name \"amazon-global-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`URL cannot be empty` means no usable URL was provided.\n\n`Keyword cannot be empty` means no usable keyword was provided.\n\n`Brands cannot be empty` means no usable brand value was provided.\n\n`Domain cannot be empty` means no usable domain was provided.\n\n`Maximum must be greater than or equal to 0` means the requested maximum count is invalid.\n\n`Page turning must be greater than or equal to 0` means the requested page count is invalid.\n\n`Lowest price must be greater than or equal to 0` means the requested lowest price is invalid.\n\n`Highest price must be greater than or equal to 0` means the requested highest price is invalid.\n\n`Highest price cannot be less than lowest 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`get_sponsored must be true or false` means the sponsored option must be corrected before submission.\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-global-product\",\n  \"version\": \"1.3.0\",\n  \"publishedAt\": 1788253926425\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### Product URL\n\n| Field | Required | Default | Notes |\n| --- | --- | --- | --- |\n| `url` | Yes | `https://www.amazon.com/dp/B0CHHSFMRL/` | Amazon product URL. |\n| `file_name` | No | `{{TasksID}}` | Builder form field. Can be changed by the user. |\n\nSubmit `spider_parameters` as an array with one object, for example `[{\"url\":\"https://www.amazon.com/dp/B0CHHSFMRL/\"}]`.\n\n### Category URL\n\n| Field | Required | Default | Notes |\n| --- | --- | --- | --- |\n| `url` | Yes | `https://www.amazon.com/s?i=luggage-intl-ship` | Amazon category URL. |\n| `maximum` | Yes | `5` | Integer greater than or equal to `0`. |\n| `sort_by` | No | `Best Sellers` | Dropdown-style option. |\n| `get_sponsored` | No | `true` | Dropdown-style option: `true` or `false`. |\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\n\n| Label | Value |\n| --- | --- |\n| `Include Sponsored Products` | `true` |\n| `Exclude Sponsored Products` | `false` |\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### Keyword\n\n| Field | Required | Default | Notes |\n| --- | --- | --- | --- |\n| `keyword` | Yes | `coffee` | Amazon search keyword. |\n| `domain` | Yes | `https://www.amazon.com` | Amazon domain. |\n| `lowest_price` | No | `20` | Integer greater than or equal to `0`. |\n| `highest_price` | No | `50` | Integer greater than or equal to `0`, and must not be less than `lowest_price`. |\n| `page_turning` | No | `2` | Integer greater than or equal to `0`. |\n| `file_name` | No | `{{TasksID}}` | Builder form field. Can be changed by the user. |\n\nRequire `highest_price >= lowest_price`.\n\n### Keyword Brand\n\n| Field | Required | Default | Notes |\n| --- | --- | --- | --- |\n| `keyword` | Yes | `shirts` | Amazon search keyword. |\n| `brands` | Yes | `Adidas` | Brand filter. |\n| `page_turning` | Yes | `2` | Integer greater than or equal to `0`. |\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\nCollects Amazon global-marketplace product data by product URL, category URL, keyword, or keyword plus brand.\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 Amazon global product collection jobs, monitor the asynchronous task, and return collected product results.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: The skill sends Amazon product URLs, keywords, domains, brand filters, and related collection parameters to Dataify.\n\nMitigation: Install and use it only when sending those collection inputs to Dataify is intended.\n\nRisk: A Dataify API TOKEN is required for Builder requests.\n\nMitigation: Keep DATAIFY_API_TOKEN scoped to Dataify, store it in the environment, and do not paste or print it in chat.\n\nRisk: High-volume, multi-page, or broad collection jobs can consume more Dataify credits.\n\nMitigation: Review consequential parameters such as maximum count, page turning, filters, and domain before submitting larger jobs.\n\n## Reference(s):\n\n- [Modes and parameters](references/modes-and-parameters.md)\n- [ClawHub skill page](https://clawhub.ai/dataify-server/skills/dataify-amazon-global-product)\n- [Dataify dashboard](https://dashboard.dataify.com?utm_source=skill)\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/result output]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [May submit API calls to Dataify Builder and wait for final task results when DATAIFY_API_TOKEN is configured.]\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-global-product\ndescription: \"用于 Dataify Amazon 全球商品采集 Builder 任务。当用户请求 Amazon 全球产品详情采集工具、Amazon global product collection/details/scraping/harvesting/crawling，尤其包含 product URL、category URL、keyword、keyword brand、brand 或类似 Amazon global product 任务关键词时触发。支持按 product URL、category URL、keyword、keyword and brand 创建 Amazon global product 任务，返回 task_id，配置或复用 DATAIFY_API_TOKEN，并排查 Dataify Builder 请求失败。\"\n---\n\n# Dataify Amazon Global 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| `product-url` | 通过产品 URL 采集全球 Amazon 产品详情。 | `amazon_global-product_by-url` |\n| `category-url` | 通过分类 URL 采集全球 Amazon 产品详情。 | `amazon_global-product_by-category-url` |\n| `keyword` | 通过关键词搜索采集全球 Amazon 产品详情。 | `amazon_global-product_by-keywords` |\n| `keyword-brand` | 通过关键词和品牌筛选采集全球 Amazon 产品详情。 | `amazon_global-product_by-keywords-brand` |\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. 从用户请求中识别采集模式：`product-url`、`category-url`、`keyword` 或 `keyword-brand`。\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### Product URL\n\n| 字段 | 必填 | 默认值 | 说明 |\n| --- | --- | --- | --- |\n| `url` | 是 | `https://www.amazon.com/dp/B0CHHSFMRL/` | Amazon 产品 URL。 |\n| `file_name` | 否 | `{{TasksID}}` | Builder 表单字段。可由用户修改。 |\n\n将 `spider_parameters` 作为包含一个对象的数组提交，例如 `[{\"url\":\"https://www.amazon.com/dp/B0CHHSFMRL/\"}]`。\n\n### Category URL\n\n| 字段 | 必填 | 默认值 | 说明 |\n| --- | --- | --- | --- |\n| `url` | 是 | `https://www.amazon.com/s?i=luggage-intl-ship` | Amazon 分类 URL。 |\n| `maximum` | 是 | `5` | 大于等于 `0` 的整数。 |\n| `sort_by` | 否 | `Best Sellers` | 下拉选项。 |\n| `get_sponsored` | 否 | `true` | 下拉选项：`true` 或 `false`。 |\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在让用户选择之前，以 Markdown 表格展示所有 `get_sponsored` 选项，包含 `Label` 和 `Value` 两列。\n\n| Label | Value |\n| --- | --- |\n| `Include Sponsored Products` | `true` |\n| `Exclude Sponsored Products` | `false` |\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### Keyword\n\n| 字段 | 必填 | 默认值 | 说明 |\n| --- | --- | --- | --- |\n| `keyword` | 是 | `coffee` | Amazon 搜索关键词。 |\n| `domain` | 是 | `https://www.amazon.com` | Amazon 域名。 |\n| `lowest_price` | 否 | `20` | 大于等于 `0` 的整数。 |\n| `highest_price` | 否 | `50` | 大于等于 `0` 的整数，且不得小于 `lowest_price`。 |\n| `page_turning` | 否 | `2` | 大于等于 `0` 的整数。 |\n| `file_name` | 否 | `{{TasksID}}` | Builder 表单字段。可由用户修改。 |\n\n要求 `highest_price >= lowest_price`。\n\n### Keyword Brand\n\n| 字段 | 必填 | 默认值 | 说明 |\n| --- | --- | --- | --- |\n| `keyword` | 是 | `shirts` | Amazon 搜索关键词。 |\n| `brands` | 是 | `Adidas` | 品牌筛选。 |\n| `page_turning` | 是 | `2` | 大于等于 `0` 的整数。 |\n| `file_name` | 否 | `{{TasksID}}` | Builder 表单字段。可由用户修改。 |\n\n## Dataify Builder 请求\n\n使用表单字段而不是手动构建的 URL 编码字符串。\n\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  - Builder URL 取决于所选模式。\n  - `spider_id` 必须与所选模式匹配。\n  - `spider_parameters` 必须是 JSON 字符串，不能是原始对象。\n  - `file_name` 默认为 `{{TasksID}}`，可由用户修改。\n- 将 `file_name` 作为 Builder 表单字段发送，而不是作为下载输出名称。\n\n各模式的 Builder URL：\n\n| 模式 | URL |\n| --- | --- |\n| `product-url` | `https://scraperapi.dataify.com/builder` |\n| `category-url` | `https://scraperapi.dataify.com/builder?platform=1` |\n| `keyword` | `https://scraperapi.dataify.com/builder?platform=1` |\n| `keyword-brand` | `https://scraperapi.dataify.com/builder?platform=1` |\n\n## 脚本\n\n为确保稳定执行，建议使用 Python 3.6 或更新版本运行 `scripts/submit_amazon_global_product.py`，而不是重写 Builder 流程。脚本使用 UTF-8 编码进行读写。\n\n```powershell\npython3 \".\\scripts\\submit_amazon_global_product.py\" product-url\npython3 \".\\scripts\\submit_amazon_global_product.py\" category-url --url \"https://www.amazon.com/s?i=luggage-intl-ship\" --maximum 5 --sort-by \"Best Sellers\" --get-sponsored true\npython3 \".\\scripts\\submit_amazon_global_product.py\" keyword --keyword \"coffee\" --domain \"https://www.amazon.com\"\npython3 \".\\scripts\\submit_amazon_global_product.py\" keyword-brand --keyword \"shirts\" --brands \"Adidas\" --page-turning 2\n```\n\n如果 `python3` 不可用，请使用该机器上的本地 Python 3 命令，例如 `python`。脚本会检查运行时版本，如果当前解释器版本过低，会提示用户使用 Python 3.6 或更新版本。\n\n要在单次运行中覆盖已保存的环境 token 或默认文件名：\n\n```powershell\npython3 \".\\scripts\\submit_amazon_global_product.py\" keyword --keyword \"coffee\" --file-name \"amazon-global-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`URL cannot be empty` 表示没有提供有效的 URL。\n\n`Keyword cannot be empty` 表示没有提供有效的关键词。\n\n`Brands cannot be empty` 表示没有提供有效的品牌值。\n\n`Domain cannot be empty` 表示没有提供有效的域名。\n\n`Maximum must be greater than or equal to 0` 表示请求的最大数量无效。\n\n`Page turning must be greater than or equal to 0` 表示请求的页数无效。\n\n`Lowest price must be greater than or equal to 0` 表示请求的最低价格无效。\n\n`Highest price must be greater than or equal to 0` 表示请求的最高价格无效。\n\n`Highest price cannot be less than lowest price` 表示价格范围需要在提交前修正。\n\n`Unsupported sort_by` 表示分类排序选项必须是接受的显示值或提交值之一。\n\n`get_sponsored must be true or false` 表示赞助选项需要在提交前修正。\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 Global Product\"\n  short_description: \"Collect Amazon Global Product data and return results\"\n  default_prompt: \"Use $dataify-amazon-global-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, 11976 bytes\n\nFiles: agents/openai.yaml (323b), scripts/submit_amazon_global_product.py (11698b), skill-card.md (2029b), SKILL.md (10521b), SKILL.zh-CN.md (10055b), _meta.json (148b)\n\nFile v1.2.0:SKILL.md\n\n---\nname: dataify-amazon-global-product\ndescription: Use for Dataify Amazon global product collection Builder tasks. Trigger when the user says or asks for Amazon 全球产品详情采集工具, Amazon global product collection tool, Amazon global product details collection tool, Amazon global product collection, Amazon global product scraping, Amazon global product harvesting, or Amazon global product crawling, especially with product URL, category URL, keyword, keyword brand, brand, or similar Amazon global product task keywords. Supports creating Amazon global product tasks by product URL, category URL, keyword, or keyword and brand; returning the task_id; configuring or reusing the DATAIFY_API_TOKEN environment variable; and troubleshooting Dataify Builder request failures.\n---\n\n# Dataify Amazon Global Product\n\nSubmit Amazon global product collection jobs through Dataify Builder, then stop. 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 four Amazon global product collection modes:\n\n| Mode | Use for | Builder `spider_id` |\n| --- | --- | --- |\n| `product-url` | Collect global Amazon product details by product URL. | `amazon_global-product_by-url` |\n| `category-url` | Collect global Amazon product details from a category URL. | `amazon_global-product_by-category-url` |\n| `keyword` | Collect global Amazon product details from a keyword search. | `amazon_global-product_by-keywords` |\n| `keyword-brand` | Collect global Amazon product details from a keyword and brand filter. | `amazon_global-product_by-keywords-brand` |\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: `product-url`, `category-url`, `keyword`, or `keyword-brand`.\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### Product URL\n\n| Field | Required | Default | Notes |\n| --- | --- | --- | --- |\n| `url` | Yes | `https://www.amazon.com/dp/B0CHHSFMRL/` | Amazon product URL. |\n| `file_name` | No | `{{TasksID}}` | Builder form field. Can be changed by the user. |\n\nSubmit `spider_parameters` as an array with one object, for example `[{\"url\":\"https://www.amazon.com/dp/B0CHHSFMRL/\"}]`.\n\n### Category URL\n\n| Field | Required | Default | Notes |\n| --- | --- | --- | --- |\n| `url` | Yes | `https://www.amazon.com/s?i=luggage-intl-ship` | Amazon category URL. |\n| `maximum` | Yes | `5` | Integer greater than or equal to `0`. |\n| `sort_by` | No | `Best Sellers` | Dropdown-style option. |\n| `get_sponsored` | No | `true` | Dropdown-style option: `true` or `false`. |\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\nShow all `get_sponsored` options as a Markdown table with both `Label` and `Value` columns before asking the user to choose.\n\n| Label | Value |\n| --- | --- |\n| `Include Sponsored Products` | `true` |\n| `Exclude Sponsored Products` | `false` |\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### Keyword\n\n| Field | Required | Default | Notes |\n| --- | --- | --- | --- |\n| `keyword` | Yes | `coffee` | Amazon search keyword. |\n| `domain` | Yes | `https://www.amazon.com` | Amazon domain. |\n| `lowest_price` | No | `20` | Integer greater than or equal to `0`. |\n| `highest_price` | No | `50` | Integer greater than or equal to `0`, and must not be less than `lowest_price`. |\n| `page_turning` | No | `2` | Integer greater than or equal to `0`. |\n| `file_name` | No | `{{TasksID}}` | Builder form field. Can be changed by the user. |\n\nRequire `highest_price >= lowest_price`.\n\n### Keyword Brand\n\n| Field | Required | Default | Notes |\n| --- | --- | --- | --- |\n| `keyword` | Yes | `shirts` | Amazon search keyword. |\n| `brands` | Yes | `Adidas` | Brand filter. |\n| `page_turning` | Yes | `2` | Integer greater than or equal to `0`. |\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- 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  - The Builder URL depends on the chosen mode.\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\nBuilder URL by mode:\n\n| Mode | URL |\n| --- | --- |\n| `product-url` | `https://scraperapi.dataify.com/builder` |\n| `category-url` | `https://scraperapi.dataify.com/builder?platform=1` |\n| `keyword` | `https://scraperapi.dataify.com/builder?platform=1` |\n| `keyword-brand` | `https://scraperapi.dataify.com/builder?platform=1` |\n\n## Script\n\nFor stable execution, prefer `scripts/submit_amazon_global_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_global_product.py\" product-url\npython3 \".\\scripts\\submit_amazon_global_product.py\" category-url --url \"https://www.amazon.com/s?i=luggage-intl-ship\" --maximum 5 --sort-by \"Best Sellers\" --get-sponsored true\npython3 \".\\scripts\\submit_amazon_global_product.py\" keyword --keyword \"coffee\" --domain \"https://www.amazon.com\"\npython3 \".\\scripts\\submit_amazon_global_product.py\" keyword-brand --keyword \"shirts\" --brands \"Adidas\" --page-turning 2\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_global_product.py\" keyword --api-token \"YOUR_DATAIFY_API_TOKEN\" --keyword \"coffee\" --file-name \"amazon-global-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`URL cannot be empty` means no usable URL was provided.\n\n`Keyword cannot be empty` means no usable keyword was provided.\n\n`Brands cannot be empty` means no usable brand value was provided.\n\n`Domain cannot be empty` means no usable domain was provided.\n\n`Maximum must be greater than or equal to 0` means the requested maximum count is invalid.\n\n`Page turning must be greater than or equal to 0` means the requested page count is invalid.\n\n`Lowest price must be greater than or equal to 0` means the requested lowest price is invalid.\n\n`Highest price must be greater than or equal to 0` means the requested highest price is invalid.\n\n`Highest price cannot be less than lowest 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`get_sponsored must be true or false` means the sponsored option must be corrected before submission.\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-global-product\",\n  \"version\": \"1.2.0\",\n  \"publishedAt\": 1784190907613\n}\n\nFile v1.2.0:skill-card.md\n\n## Description: <br>\nDataify Amazon Global Product submits Dataify Builder jobs for Amazon product collection by product URL, category URL, keyword, or keyword and brand, then returns the 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 configure and submit Amazon product collection jobs to Dataify Builder and receive a task_id for tracking results in Dataify. <br>\n\n### Deployment Geography for Use: <br>\nGlobal <br>\n\n## Known Risks and Mitigations: <br>\nRisk: The skill uses DATAIFY_API_TOKEN to submit requests to Dataify. <br>\nMitigation: Treat the token as a secret, avoid persistent storage on shared machines, and do not submit Builder requests without a token. <br>\nRisk: The skill can create Dataify collection jobs in the user's account. <br>\nMitigation: Review the collection mode, URL or keyword inputs, limits, filters, and file name before submitting the task. <br>\n\n\n## Reference(s): <br>\n- [ClawHub skill page](https://clawhub.ai/dataify-server/skills/dataify-amazon-global-product) <br>\n- [Dataify dashboard](https://dashboard.dataify.com?utm_source=skill) <br>\n\n\n## Skill Output: <br>\n**Output Type(s):** [Markdown, Shell commands, JSON, Guidance] <br>\n**Output Format:** [Markdown parameter confirmation and, when using the script, JSON with task_id and submitted parameters.] <br>\n**Output Parameters:** [1D] <br>\n**Other Properties Related to Output:** [Requires DATAIFY_API_TOKEN and stops after successful Builder task submission.] <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-global-product\ndescription: \"用于 Dataify Amazon 全球商品采集 Builder 任务。当用户请求 Amazon 全球产品详情采集工具、Amazon global product collection/details/scraping/harvesting/crawling，尤其包含 product URL、category URL、keyword、keyword brand、brand 或类似 Amazon global product 任务关键词时触发。支持按 product URL、category URL、keyword、keyword and brand 创建 Amazon global product 任务，返回 task_id，配置或复用 DATAIFY_API_TOKEN，并排查 Dataify Builder 请求失败。\"\n---\n\n# Dataify Amazon Global 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| `product-url` | 通过产品 URL 采集全球 Amazon 产品详情。 | `amazon_global-product_by-url` |\n| `category-url` | 通过分类 URL 采集全球 Amazon 产品详情。 | `amazon_global-product_by-category-url` |\n| `keyword` | 通过关键词搜索采集全球 Amazon 产品详情。 | `amazon_global-product_by-keywords` |\n| `keyword-brand` | 通过关键词和品牌筛选采集全球 Amazon 产品详情。 | `amazon_global-product_by-keywords-brand` |\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. 从用户请求中识别采集模式：`product-url`、`category-url`、`keyword` 或 `keyword-brand`。\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### Product URL\n\n| 字段 | 必填 | 默认值 | 说明 |\n| --- | --- | --- | --- |\n| `url` | 是 | `https://www.amazon.com/dp/B0CHHSFMRL/` | Amazon 产品 URL。 |\n| `file_name` | 否 | `{{TasksID}}` | Builder 表单字段。可由用户修改。 |\n\n将 `spider_parameters` 作为包含一个对象的数组提交，例如 `[{\"url\":\"https://www.amazon.com/dp/B0CHHSFMRL/\"}]`。\n\n### Category URL\n\n| 字段 | 必填 | 默认值 | 说明 |\n| --- | --- | --- | --- |\n| `url` | 是 | `https://www.amazon.com/s?i=luggage-intl-ship` | Amazon 分类 URL。 |\n| `maximum` | 是 | `5` | 大于等于 `0` 的整数。 |\n| `sort_by` | 否 | `Best Sellers` | 下拉选项。 |\n| `get_sponsored` | 否 | `true` | 下拉选项：`true` 或 `false`。 |\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在让用户选择之前，以 Markdown 表格展示所有 `get_sponsored` 选项，包含 `Label` 和 `Value` 两列。\n\n| Label | Value |\n| --- | --- |\n| `Include Sponsored Products` | `true` |\n| `Exclude Sponsored Products` | `false` |\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### Keyword\n\n| 字段 | 必填 | 默认值 | 说明 |\n| --- | --- | --- | --- |\n| `keyword` | 是 | `coffee` | Amazon 搜索关键词。 |\n| `domain` | 是 | `https://www.amazon.com` | Amazon 域名。 |\n| `lowest_price` | 否 | `20` | 大于等于 `0` 的整数。 |\n| `highest_price` | 否 | `50` | 大于等于 `0` 的整数，且不得小于 `lowest_price`。 |\n| `page_turning` | 否 | `2` | 大于等于 `0` 的整数。 |\n| `file_name` | 否 | `{{TasksID}}` | Builder 表单字段。可由用户修改。 |\n\n要求 `highest_price >= lowest_price`。\n\n### Keyword Brand\n\n| 字段 | 必填 | 默认值 | 说明 |\n| --- | --- | --- | --- |\n| `keyword` | 是 | `shirts` | Amazon 搜索关键词。 |\n| `brands` | 是 | `Adidas` | 品牌筛选。 |\n| `page_turning` | 是 | `2` | 大于等于 `0` 的整数。 |\n| `file_name` | 否 | `{{TasksID}}` | Builder 表单字段。可由用户修改。 |\n\n## Dataify Builder 请求\n\n使用表单字段而不是手动构建的 URL 编码字符串。\n\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  - Builder URL 取决于所选模式。\n  - `spider_id` 必须与所选模式匹配。\n  - `spider_parameters` 必须是 JSON 字符串，不能是原始对象。\n  - `file_name` 默认为 `{{TasksID}}`，可由用户修改。\n- 将 `file_name` 作为 Builder 表单字段发送，而不是作为下载输出名称。\n\n各模式的 Builder URL：\n\n| 模式 | URL |\n| --- | --- |\n| `product-url` | `https://scraperapi.dataify.com/builder` |\n| `category-url` | `https://scraperapi.dataify.com/builder?platform=1` |\n| `keyword` | `https://scraperapi.dataify.com/builder?platform=1` |\n| `keyword-brand` | `https://scraperapi.dataify.com/builder?platform=1` |\n\n## 脚本\n\n为确保稳定执行，建议使用 Python 3.6 或更新版本运行 `scripts/submit_amazon_global_product.py`，而不是重写 Builder 流程。脚本使用 UTF-8 编码进行读写。\n\n```powershell\npython3 \".\\scripts\\submit_amazon_global_product.py\" product-url\npython3 \".\\scripts\\submit_amazon_global_product.py\" category-url --url \"https://www.amazon.com/s?i=luggage-intl-ship\" --maximum 5 --sort-by \"Best Sellers\" --get-sponsored true\npython3 \".\\scripts\\submit_amazon_global_product.py\" keyword --keyword \"coffee\" --domain \"https://www.amazon.com\"\npython3 \".\\scripts\\submit_amazon_global_product.py\" keyword-brand --keyword \"shirts\" --brands \"Adidas\" --page-turning 2\n```\n\n如果 `python3` 不可用，请使用该机器上的本地 Python 3 命令，例如 `python`。脚本会检查运行时版本，如果当前解释器版本过低，会提示用户使用 Python 3.6 或更新版本。\n\n要在单次运行中覆盖已保存的环境 token 或默认文件名：\n\n```powershell\npython3 \".\\scripts\\submit_amazon_global_product.py\" keyword --api-token \"YOUR_DATAIFY_API_TOKEN\" --keyword \"coffee\" --file-name \"amazon-global-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`URL cannot be empty` 表示没有提供有效的 URL。\n\n`Keyword cannot be empty` 表示没有提供有效的关键词。\n\n`Brands cannot be empty` 表示没有提供有效的品牌值。\n\n`Domain cannot be empty` 表示没有提供有效的域名。\n\n`Maximum must be greater than or equal to 0` 表示请求的最大数量无效。\n\n`Page turning must be greater than or equal to 0` 表示请求的页数无效。\n\n`Lowest price must be greater than or equal to 0` 表示请求的最低价格无效。\n\n`Highest price must be greater than or equal to 0` 表示请求的最高价格无效。\n\n`Highest price cannot be less than lowest price` 表示价格范围需要在提交前修正。\n\n`Unsupported sort_by` 表示分类排序选项必须是接受的显示值或提交值之一。\n\n`get_sponsored must be true or false` 表示赞助选项需要在提交前修正。\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 Global Product\"\n  short_description: \"Submit Dataify Amazon global product collection tasks\"\n  default_prompt: \"Use $dataify-amazon-global-product to submit Amazon global product collection tasks through Dataify and return the task_id.\"\n\npolicy:\n  allow_implicit_invocation: true\n\nArchive v1.1.0: 6 files, 12025 bytes\n\nFiles: agents/openai.yaml (323b), scripts/submit_amazon_global_product.py (11698b), skill-card.md (2087b), SKILL.md (10521b), SKILL.zh-CN.md (10055b), _meta.json (148b)\n\nFile v1.1.0:SKILL.md\n\n---\nname: dataify-amazon-global-product\ndescription: Use for Dataify Amazon global product collection Builder tasks. Trigger when the user says or asks for Amazon 全球产品详情采集工具, Amazon global product collection tool, Amazon global product details collection tool, Amazon global product collection, Amazon global product scraping, Amazon global product harvesting, or Amazon global product crawling, especially with product URL, category URL, keyword, keyword brand, brand, or similar Amazon global product task keywords. Supports creating Amazon global product tasks by product URL, category URL, keyword, or keyword and brand; returning the task_id; configuring or reusing the DATAIFY_API_TOKEN environment variable; and troubleshooting Dataify Builder request failures.\n---\n\n# Dataify Amazon Global Product\n\nSubmit Amazon global product collection jobs through Dataify Builder, then stop. 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 four Amazon global product collection modes:\n\n| Mode | Use for | Builder `spider_id` |\n| --- | --- | --- |\n| `product-url` | Collect global Amazon product details by product URL. | `amazon_global-product_by-url` |\n| `category-url` | Collect global Amazon product details from a category URL. | `amazon_global-product_by-category-url` |\n| `keyword` | Collect global Amazon product details from a keyword search. | `amazon_global-product_by-keywords` |\n| `keyword-brand` | Collect global Amazon product details from a keyword and brand filter. | `amazon_global-product_by-keywords-brand` |\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: `product-url`, `category-url`, `keyword`, or `keyword-brand`.\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### Product URL\n\n| Field | Required | Default | Notes |\n| --- | --- | --- | --- |\n| `url` | Yes | `https://www.amazon.com/dp/B0CHHSFMRL/` | Amazon product URL. |\n| `file_name` | No | `{{TasksID}}` | Builder form field. Can be changed by the user. |\n\nSubmit `spider_parameters` as an array with one object, for example `[{\"url\":\"https://www.amazon.com/dp/B0CHHSFMRL/\"}]`.\n\n### Category URL\n\n| Field | Required | Default | Notes |\n| --- | --- | --- | --- |\n| `url` | Yes | `https://www.amazon.com/s?i=luggage-intl-ship` | Amazon category URL. |\n| `maximum` | Yes | `5` | Integer greater than or equal to `0`. |\n| `sort_by` | No | `Best Sellers` | Dropdown-style option. |\n| `get_sponsored` | No | `true` | Dropdown-style option: `true` or `false`. |\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\nShow all `get_sponsored` options as a Markdown table with both `Label` and `Value` columns before asking the user to choose.\n\n| Label | Value |\n| --- | --- |\n| `Include Sponsored Products` | `true` |\n| `Exclude Sponsored Products` | `false` |\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### Keyword\n\n| Field | Required | Default | Notes |\n| --- | --- | --- | --- |\n| `keyword` | Yes | `coffee` | Amazon search keyword. |\n| `domain` | Yes | `https://www.amazon.com` | Amazon domain. |\n| `lowest_price` | No | `20` | Integer greater than or equal to `0`. |\n| `highest_price` | No | `50` | Integer greater than or equal to `0`, and must not be less than `lowest_price`. |\n| `page_turning` | No | `2` | Integer greater than or equal to `0`. |\n| `file_name` | No | `{{TasksID}}` | Builder form field. Can be changed by the user. |\n\nRequire `highest_price >= lowest_price`.\n\n### Keyword Brand\n\n| Field | Required | Default | Notes |\n| --- | --- | --- | --- |\n| `keyword` | Yes | `shirts` | Amazon search keyword. |\n| `brands` | Yes | `Adidas` | Brand filter. |\n| `page_turning` | Yes | `2` | Integer greater than or equal to `0`. |\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- 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  - The Builder URL depends on the chosen mode.\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\nBuilder URL by mode:\n\n| Mode | URL |\n| --- | --- |\n| `product-url` | `https://scraperapi.dataify.com/builder` |\n| `category-url` | `https://scraperapi.dataify.com/builder?platform=1` |\n| `keyword` | `https://scraperapi.dataify.com/builder?platform=1` |\n| `keyword-brand` | `https://scraperapi.dataify.com/builder?platform=1` |\n\n## Script\n\nFor stable execution, prefer `scripts/submit_amazon_global_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_global_product.py\" product-url\npython3 \".\\scripts\\submit_amazon_global_product.py\" category-url --url \"https://www.amazon.com/s?i=luggage-intl-ship\" --maximum 5 --sort-by \"Best Sellers\" --get-sponsored true\npython3 \".\\scripts\\submit_amazon_global_product.py\" keyword --keyword \"coffee\" --domain \"https://www.amazon.com\"\npython3 \".\\scripts\\submit_amazon_global_product.py\" keyword-brand --keyword \"shirts\" --brands \"Adidas\" --page-turning 2\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_global_product.py\" keyword --api-token \"YOUR_DATAIFY_API_TOKEN\" --keyword \"coffee\" --file-name \"amazon-global-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`URL cannot be empty` means no usable URL was provided.\n\n`Keyword cannot be empty` means no usable keyword was provided.\n\n`Brands cannot be empty` means no usable brand value was provided.\n\n`Domain cannot be empty` means no usable domain was provided.\n\n`Maximum must be greater than or equal to 0` means the requested maximum count is invalid.\n\n`Page turning must be greater than or equal to 0` means the requested page count is invalid.\n\n`Lowest price must be greater than or equal to 0` means the requested lowest price is invalid.\n\n`Highest price must be greater than or equal to 0` means the requested highest price is invalid.\n\n`Highest price cannot be less than lowest 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`get_sponsored must be true or false` means the sponsored option must be corrected before submission.\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-global-product\",\n  \"version\": \"1.1.0\",\n  \"publishedAt\": 1780884321598\n}\n\nFile v1.1.0:skill-card.md\n\n## Description: <br>\nSubmits Amazon global product collection tasks to Dataify Builder by product URL, category URL, keyword, or keyword and brand, then returns the 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 Builder jobs for Amazon global product collection and retrieve the resulting task ID for follow-up in Dataify. <br>\n\n### Deployment Geography for Use: <br>\nGlobal <br>\n\n## Known Risks and Mitigations: <br>\nRisk: The skill sends user-provided Amazon URLs, keywords, brands, and collection options to Dataify. <br>\nMitigation: Review the parameter confirmation table before submission and change or remove any values that should not be sent. <br>\nRisk: DATAIFY_API_TOKEN is a sensitive credential required for Builder requests. <br>\nMitigation: Treat the token as secret, prefer a scoped token if available, and avoid exposing it in shared prompts, logs, or command history. <br>\n\n\n## Reference(s): <br>\n- [ClawHub skill page](https://clawhub.ai/dataify-server/dataify-amazon-global-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, code] <br>\n**Output Format:** [Markdown guidance and parameter tables with shell command examples; the helper script prints a JSON task summary.] <br>\n**Output Parameters:** [1D] <br>\n**Other Properties Related to Output:** [Successful submissions return a task_id, submitted parameter summary, dashboard_url, and message.] <br>\n\n## Skill Version(s): <br>\n1.1.0 (source: server release evidence) <br>\n\n## Ethical Considerations: <br>\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment. <br>\n\nFile v1.1.0:SKILL.zh-CN.md\n\n---\nname: dataify-amazon-global-product\ndescription: \"用于 Dataify Amazon 全球商品采集 Builder 任务。当用户请求 Amazon 全球产品详情采集工具、Amazon global product collection/details/scraping/harvesting/crawling，尤其包含 product URL、category URL、keyword、keyword brand、brand 或类似 Amazon global product 任务关键词时触发。支持按 product URL、category URL、keyword、keyword and brand 创建 Amazon global product 任务，返回 task_id，配置或复用 DATAIFY_API_TOKEN，并排查 Dataify Builder 请求失败。\"\n---\n\n# Dataify Amazon Global 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| `product-url` | 通过产品 URL 采集全球 Amazon 产品详情。 | `amazon_global-product_by-url` |\n| `category-url` | 通过分类 URL 采集全球 Amazon 产品详情。 | `amazon_global-product_by-category-url` |\n| `keyword` | 通过关键词搜索采集全球 Amazon 产品详情。 | `amazon_global-product_by-keywords` |\n| `keyword-brand` | 通过关键词和品牌筛选采集全球 Amazon 产品详情。 | `amazon_global-product_by-keywords-brand` |\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. 从用户请求中识别采集模式：`product-url`、`category-url`、`keyword` 或 `keyword-brand`。\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### Product URL\n\n| 字段 | 必填 | 默认值 | 说明 |\n| --- | --- | --- | --- |\n| `url` | 是 | `https://www.amazon.com/dp/B0CHHSFMRL/` | Amazon 产品 URL。 |\n| `file_name` | 否 | `{{TasksID}}` | Builder 表单字段。可由用户修改。 |\n\n将 `spider_parameters` 作为包含一个对象的数组提交，例如 `[{\"url\":\"https://www.amazon.com/dp/B0CHHSFMRL/\"}]`。\n\n### Category URL\n\n| 字段 | 必填 | 默认值 | 说明 |\n| --- | --- | --- | --- |\n| `url` | 是 | `https://www.amazon.com/s?i=luggage-intl-ship` | Amazon 分类 URL。 |\n| `maximum` | 是 | `5` | 大于等于 `0` 的整数。 |\n| `sort_by` | 否 | `Best Sellers` | 下拉选项。 |\n| `get_sponsored` | 否 | `true` | 下拉选项：`true` 或 `false`。 |\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在让用户选择之前，以 Markdown 表格展示所有 `get_sponsored` 选项，包含 `Label` 和 `Value` 两列。\n\n| Label | Value |\n| --- | --- |\n| `Include Sponsored Products` | `true` |\n| `Exclude Sponsored Products` | `false` |\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### Keyword\n\n| 字段 | 必填 | 默认值 | 说明 |\n| --- | --- | --- | --- |\n| `keyword` | 是 | `coffee` | Amazon 搜索关键词。 |\n| `domain` | 是 | `https://www.amazon.com` | Amazon 域名。 |\n| `lowest_price` | 否 | `20` | 大于等于 `0` 的整数。 |\n| `highest_price` | 否 | `50` | 大于等于 `0` 的整数，且不得小于 `lowest_price`。 |\n| `page_turning` | 否 | `2` | 大于等于 `0` 的整数。 |\n| `file_name` | 否 | `{{TasksID}}` | Builder 表单字段。可由用户修改。 |\n\n要求 `highest_price >= lowest_price`。\n\n### Keyword Brand\n\n| 字段 | 必填 | 默认值 | 说明 |\n| --- | --- | --- | --- |\n| `keyword` | 是 | `shirts` | Amazon 搜索关键词。 |\n| `brands` | 是 | `Adidas` | 品牌筛选。 |\n| `page_turning` | 是 | `2` | 大于等于 `0` 的整数。 |\n| `file_name` | 否 | `{{TasksID}}` | Builder 表单字段。可由用户修改。 |\n\n## Dataify Builder 请求\n\n使用表单字段而不是手动构建的 URL 编码字符串。\n\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  - Builder URL 取决于所选模式。\n  - `spider_id` 必须与所选模式匹配。\n  - `spider_parameters` 必须是 JSON 字符串，不能是原始对象。\n  - `file_name` 默认为 `{{TasksID}}`，可由用户修改。\n- 将 `file_name` 作为 Builder 表单字段发送，而不是作为下载输出名称。\n\n各模式的 Builder URL：\n\n| 模式 | URL |\n| --- | --- |\n| `product-url` | `https://scraperapi.dataify.com/builder` |\n| `category-url` | `https://scraperapi.dataify.com/builder?platform=1` |\n| `keyword` | `https://scraperapi.dataify.com/builder?platform=1` |\n| `keyword-brand` | `https://scraperapi.dataify.com/builder?platform=1` |\n\n## 脚本\n\n为确保稳定执行，建议使用 Python 3.6 或更新版本运行 `scripts/submit_amazon_global_product.py`，而不是重写 Builder 流程。脚本使用 UTF-8 编码进行读写。\n\n```powershell\npython3 \".\\scripts\\submit_amazon_global_product.py\" product-url\npython3 \".\\scripts\\submit_amazon_global_product.py\" category-url --url \"https://www.amazon.com/s?i=luggage-intl-ship\" --maximum 5 --sort-by \"Best Sellers\" --get-sponsored true\npython3 \".\\scripts\\submit_amazon_global_product.py\" keyword --keyword \"coffee\" --domain \"https://www.amazon.com\"\npython3 \".\\scripts\\submit_amazon_global_product.py\" keyword-brand --keyword \"shirts\" --brands \"Adidas\" --page-turning 2\n```\n\n如果 `python3` 不可用，请使用该机器上的本地 Python 3 命令，例如 `python`。脚本会检查运行时版本，如果当前解释器版本过低，会提示用户使用 Python 3.6 或更新版本。\n\n要在单次运行中覆盖已保存的环境 token 或默认文件名：\n\n```powershell\npython3 \".\\scripts\\submit_amazon_global_product.py\" keyword --api-token \"YOUR_DATAIFY_API_TOKEN\" --keyword \"coffee\" --file-name \"amazon-global-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`URL cannot be empty` 表示没有提供有效的 URL。\n\n`Keyword cannot be empty` 表示没有提供有效的关键词。\n\n`Brands cannot be empty` 表示没有提供有效的品牌值。\n\n`Domain cannot be empty` 表示没有提供有效的域名。\n\n`Maximum must be greater than or equal to 0` 表示请求的最大数量无效。\n\n`Page turning must be greater than or equal to 0` 表示请求的页数无效。\n\n`Lowest price must be greater than or equal to 0` 表示请求的最低价格无效。\n\n`Highest price must be greater than or equal to 0` 表示请求的最高价格无效。\n\n`Highest price cannot be less than lowest price` 表示价格范围需要在提交前修正。\n\n`Unsupported sort_by` 表示分类排序选项必须是接受的显示值或提交值之一。\n\n`get_sponsored must be true or false` 表示赞助选项需要在提交前修正。\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 Global Product\"\n  short_description: \"Submit Dataify Amazon global product collection tasks\"\n  default_prompt: \"Use $dataify-amazon-global-product to submit Amazon global product collection tasks through Dataify and return the task_id.\"\n\npolicy:\n  allow_implicit_invocation: true\n\nArchive v1.0.0: 5 files, 8243 bytes\n\nFiles: agents/openai.yaml (323b), scripts/submit_amazon_global_product.py (11655b), skill-card.md (2098b), SKILL.md (10365b), _meta.json (148b)\n\nFile v1.0.0:SKILL.md\n\n---\nname: dataify-amazon-global-product\ndescription: Use for Dataify Amazon global product collection Builder tasks. Trigger when the user says or asks for Amazon 全球产品详情采集工具, Amazon global product collection tool, Amazon global product details collection tool, Amazon global product collection, Amazon global product scraping, Amazon global product harvesting, or Amazon global product crawling, especially with product URL, category URL, keyword, keyword brand, brand, or similar Amazon global product task keywords. Supports creating Amazon global product tasks by product URL, category URL, keyword, or keyword and brand; returning the task_id; configuring or reusing the DATAIFY_API_TOKEN environment variable; and troubleshooting Dataify Builder request failures.\n---\n\n# Dataify Amazon Global Product\n\nSubmit Amazon global product collection jobs through Dataify Builder, then stop. 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 four Amazon global product collection modes:\n\n| Mode | Use for | Builder `spider_id` |\n| --- | --- | --- |\n| `product-url` | Collect global Amazon product details by product URL. | `amazon_global-product_by-url` |\n| `category-url` | Collect global Amazon product details from a category URL. | `amazon_global-product_by-category-url` |\n| `keyword` | Collect global Amazon product details from a keyword search. | `amazon_global-product_by-keywords` |\n| `keyword-brand` | Collect global Amazon product details from a keyword and brand filter. | `amazon_global-product_by-keywords-brand` |\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: `product-url`, `category-url`, `keyword`, or `keyword-brand`.\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### Product URL\n\n| Field | Required | Default | Notes |\n| --- | --- | --- | --- |\n| `url` | Yes | `https://www.amazon.com/dp/B0CHHSFMRL/` | Amazon product URL. |\n| `file_name` | No | `{{TasksID}}` | Builder form field. Can be changed by the user. |\n\nSubmit `spider_parameters` as an array with one object, for example `[{\"url\":\"https://www.amazon.com/dp/B0CHHSFMRL/\"}]`.\n\n### Category URL\n\n| Field | Required | Default | Notes |\n| --- | --- | --- | --- |\n| `url` | Yes | `https://www.amazon.com/s?i=luggage-intl-ship` | Amazon category URL. |\n| `maximum` | Yes | `5` | Integer greater than or equal to `0`. |\n| `sort_by` | No | `Best Sellers` | Dropdown-style option. |\n| `get_sponsored` | No | `true` | Dropdown-style option: `true` or `false`. |\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\nShow all `get_sponsored` options as a Markdown table with both `Label` and `Value` columns before asking the user to choose.\n\n| Label | Value |\n| --- | --- |\n| `Include Sponsored Products` | `true` |\n| `Exclude Sponsored Products` | `false` |\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### Keyword\n\n| Field | Required | Default | Notes |\n| --- | --- | --- | --- |\n| `keyword` | Yes | `coffee` | Amazon search keyword. |\n| `domain` | Yes | `https://www.amazon.com` | Amazon domain. |\n| `lowest_price` | No | `20` | Integer greater than or equal to `0`. |\n| `highest_price` | No | `50` | Integer greater than or equal to `0`, and must not be less than `lowest_price`. |\n| `page_turning` | No | `2` | Integer greater than or equal to `0`. |\n| `file_name` | No | `{{TasksID}}` | Builder form field. Can be changed by the user. |\n\nRequire `highest_price >= lowest_price`.\n\n### Keyword Brand\n\n| Field | Required | Default | Notes |\n| --- | --- | --- | --- |\n| `keyword` | Yes | `shirts` | Amazon search keyword. |\n| `brands` | Yes | `Adidas` | Brand filter. |\n| `page_turning` | Yes | `2` | Integer greater than or equal to `0`. |\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- 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  - The Builder URL depends on the chosen mode.\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\nBuilder URL by mode:\n\n| Mode | URL |\n| --- | --- |\n| `product-url` | `https://scraperapi.dataify.com/builder` |\n| `category-url` | `https://scraperapi.dataify.com/builder?platform=1` |\n| `keyword` | `https://scraperapi.dataify.com/builder?platform=1` |\n| `keyword-brand` | `https://scraperapi.dataify.com/builder?platform=1` |\n\n## Script\n\nFor stable execution, prefer `scripts/submit_amazon_global_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_global_product.py\" product-url\npython3 \".\\scripts\\submit_amazon_global_product.py\" category-url --url \"https://www.amazon.com/s?i=luggage-intl-ship\" --maximum 5 --sort-by \"Best Sellers\" --get-sponsored true\npython3 \".\\scripts\\submit_amazon_global_product.py\" keyword --keyword \"coffee\" --domain \"https://www.amazon.com\"\npython3 \".\\scripts\\submit_amazon_global_product.py\" keyword-brand --keyword \"shirts\" --brands \"Adidas\" --page-turning 2\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_global_product.py\" keyword --api-token \"YOUR_DATAIFY_API_TOKEN\" --keyword \"coffee\" --file-name \"amazon-global-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`URL cannot be empty` means no usable URL was provided.\n\n`Keyword cannot be empty` means no usable keyword was provided.\n\n`Brands cannot be empty` means no usable brand value was provided.\n\n`Domain cannot be empty` means no usable domain was provided.\n\n`Maximum must be greater than or equal to 0` means the requested maximum count is invalid.\n\n`Page turning must be greater than or equal to 0` means the requested page count is invalid.\n\n`Lowest price must be greater than or equal to 0` means the requested lowest price is invalid.\n\n`Highest price must be greater than or equal to 0` means the requested highest price is invalid.\n\n`Highest price cannot be less than lowest 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`get_sponsored must be true or false` means the sponsored option must be corrected before submission.\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-global-product\",\n  \"version\": \"1.0.0\",\n  \"publishedAt\": 1779949642800\n}\n\nFile v1.0.0:skill-card.md\n\n## Description: <br>\nSubmits Dataify Builder tasks for Amazon global product collection by product URL, category URL, keyword, or keyword and brand, then returns the 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 global product collection jobs through Dataify Builder, confirm task parameters, and receive the resulting 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: Task parameters and the Dataify API TOKEN are sent to Dataify when a Builder request is submitted. <br>\nMitigation: Confirm the parameter table before submission and keep DATAIFY_API_TOKEN private, scoped, and revocable. <br>\nRisk: Incorrect URLs, keywords, brands, price ranges, or category options can create the wrong collection job. <br>\nMitigation: Use the skill's validation and change prompt to correct values before the Builder request is sent. <br>\n\n\n## Reference(s): <br>\n- [Dataify](https://dataify.com) <br>\n- [Dataify dashboard](https://dataify.com/dashboard/) <br>\n- [ClawHub skill page](https://clawhub.ai/dataify-server/dataify-amazon-global-product) <br>\n\n\n## Skill Output: <br>\n**Output Type(s):** [Text, Markdown, Shell commands, Configuration, API calls] <br>\n**Output Format:** [Markdown instructions and parameter tables, with JSON summaries from the helper script] <br>\n**Output Parameters:** [1D] <br>\n**Other Properties Related to Output:** [Returns a Dataify task_id and dashboard URL after successful submission.] <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 Global Product\"\n  short_description: \"Submit Dataify Amazon global product collection tasks\"\n  default_prompt: \"Use $dataify-amazon-global-product to submit Amazon global product collection tasks through Dataify and return the task_id.\"\n\npolicy:\n  allow_implicit_invocation: true","readmeExcerpt":"Skill: Dataify Amazon Global Product Owner: dataify-server Summary: Collect Amazon Global Product data and return results Tags: latest:1.3.1 Version history: v1.3.1 | 2026-09-08T06:17:48.198Z | user Fix natural-language usage failures: validate required targets and URLs, preserve catalog references, default Amazon region safely, normalize Google News links, and improve UTF-8 error output. v1.3.0 | 2026-09-01T09:12:06","codeSnippets":[],"executableExamples":[{"language":"bash","snippet":"python3 scripts/submit_amazon_global_product.py keyword --keyword \"coffee\" --domain \"https://www.amazon.com\""},{"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_global_product.py\" product-url\npython3 \".\\scripts\\submit_amazon_global_product.py\" category-url --url \"https://www.amazon.com/s?i=luggage-intl-ship\" --maximum 5 --sort-by \"Best Sellers\" --get-sponsored true\npython3 \".\\scripts\\submit_amazon_global_product.py\" keyword --keyword \"coffee\" --domain \"https://www.amazon.com\"\npython3 \".\\scripts\\submit_amazon_global_product.py\" keyword-brand --keyword \"shirts\" --brands \"Adidas\" --page-turning 2"},{"language":"powershell","snippet":"python3 \".\\scripts\\submit_amazon_global_product.py\" keyword --keyword \"coffee\" --file-name \"amazon-global-coffee\""},{"language":"powershell","snippet":"$env:DATAIFY_API_TOKEN = \"YOUR_DATAIFY_API_TOKEN\""}],"parameters":null,"dependencies":[],"permissions":[],"extractedFiles":[{"path":"SKILL.md","content":"---\nname: dataify-amazon-global-product\ndescription: \"Collect Amazon global-marketplace products by product URL, category URL, keyword, or keyword plus brand. Use when the request explicitly concerns global or multi-market Amazon product data. Do not use for ordinary single-product ASIN details or keyword-and-domain product lists.\"\n---\n\n# Dataify Amazon Global Product\n\nSubmit Amazon global 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 four Amazon global product collection modes:\n\n| Mode | Use for | Builder `spider_id` |\n| --- | --- | --- |\n| `product-url` | Collect global Amazon product details by product URL. | `amazon_global-product_by-url` |\n| `category-url` | Collect global Amazon product details from a category URL. | `amazon_global-product_by-category-url` |\n| `keyword` | Collect global Amazon product details from a keyword search. | `amazon_global-product_by-keywords` |\n| `keyword-brand` | Collect global Amazon product details from a keyword and brand filter. | `amazon_global-product_by-keywords-brand` |\n\n## Quick Start\n\n**Input:** a product keyword and Amazon domain.\n\n```bash\npython3 scripts/submit_amazon_global_product.py keyword --keyword \"coffee\" --domain \"https://www.amazon.com\"\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 get 50 free credits, enough for about 6,000 trial results, valid for 7 days, and only successful requests are billed.\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: `product-url`, `category-url`, `keyword`, or `keyword-brand`.\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](refere"},{"path":"_meta.json","content":"{\n  \"ownerId\": \"kn74z5hmmwk21kw8tpphd9w21x86bkdf\",\n  \"slug\": \"dataify-amazon-global-product\",\n  \"version\": \"1.3.1\",\n  \"publishedAt\": 1788848268198\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### Product URL\n\n| Field | Required | Default | Notes |\n| --- | --- | --- | --- |\n| `url` | Yes | `https://www.amazon.com/dp/B0CHHSFMRL/` | Amazon product URL. |\n| `file_name` | No | `{{TasksID}}` | Builder form field. Can be changed by the user. |\n\nSubmit `spider_parameters` as an array with one object, for example `[{\"url\":\"https://www.amazon.com/dp/B0CHHSFMRL/\"}]`.\n\n### Category URL\n\n| Field | Required | Default | Notes |\n| --- | --- | --- | --- |\n| `url` | Yes | `https://www.amazon.com/s?i=luggage-intl-ship` | Amazon category URL. |\n| `maximum` | Yes | `5` | Integer greater than or equal to `0`. |\n| `sort_by` | No | `Best Sellers` | Dropdown-style option. |\n| `get_sponsored` | No | `true` | Dropdown-style option: `true` or `false`. |\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\n\n| Label | Value |\n| --- | --- |\n| `Include Sponsored Products` | `true` |\n| `Exclude Sponsored Products` | `false` |\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### Keyword\n\n| Field | Required | Default | Notes |\n| --- | --- | --- | --- |\n| `keyword` | Yes | `coffee` | Amazon search keyword. |\n| `domain` | Yes | `https://www.amazon.com` | Amazon domain. |\n| `lowest_price` | No | `20` | Integer greater than or equal to `0`. |\n| `highest_price` | No | `50` | Integer greater than or equal to `0`, and must not be less than `lowest_price`. |\n| `page_turning` | No | `2` | Integer greater than or equal to `0`. |\n| `file_name` | No | `{{TasksID}}` | Builder form field. Can be changed by the user. |\n\nRequire `highest_price >= lowest_price`.\n\n### Keyword Brand\n\n| Field | Required | Default | Notes |\n| --- | --- | --- | --- |\n| `keyword` | Yes | `shirts` | Amazon search keyword. |\n| `brands` | Yes | `Adidas` | Brand filter. |\n| `page_turning` | Yes | `2` | Integer greater than or equal to `0`. |\n| `file_name` | No | `{{TasksID}}` | Builder form field. Can be changed by the user. |"},{"path":"skill-card.md","content":"## Description:\n\nCollects Amazon global-marketplace product data by product URL, category URL, keyword, or keyword plus brand through Dataify Builder.\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 developers and operators use this skill to submit and monitor Dataify Builder tasks that collect Amazon global product data, then retrieve final JSON results.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: The skill requires access to a Dataify API token and may submit collection tasks that consume credits.\n\nMitigation: Use a rotatable Dataify token, verify token handling before installation, and review task scope before submitting high-volume collections.\n\nRisk: Server security evidence reports bundled non-Amazon workflow scripts and runtime-shadowing risks outside the core Amazon collection flow.\n\nMitigation: Review or remove non-Amazon workflow scripts and prefer packaged runtime imports before deployment.\n\nRisk: Server security guidance flags polling paths that authenticate with API keys in URLs.\n\nMitigation: Prefer a version that authenticates polling without placing API keys in URLs and avoid retaining request URLs in logs.\n\n## Reference(s):\n\n- [Modes and Parameters](references/modes-and-parameters.md)\n- [Dataify Dashboard](https://dashboard.dataify.com?utm_source=skill)\n- [ClawHub Skill Page](https://clawhub.ai/dataify-server/skills/dataify-amazon-global-product)\n\n## Skill Output:\n\n**Output Type(s):** [text, markdown, shell commands, configuration, guidance, JSON]\n\n**Output Format:** [Markdown guidance with shell commands and JSON task or result payloads]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [May submit paid Dataify collection tasks and wait for asynchronous final JSON results when a Dataify API token is configured.]\n\n## Skill Version(s):\n\n1.3.1 (source: server release metadata)\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-global-product\ndescription: \"用于 Dataify Amazon 全球商品采集 Builder 任务。当用户请求 Amazon 全球产品详情采集工具、Amazon global product collection/details/scraping/harvesting/crawling，尤其包含 product URL、category URL、keyword、keyword brand、brand 或类似 Amazon global product 任务关键词时触发。支持按 product URL、category URL、keyword、keyword and brand 创建 Amazon global product 任务，返回 task_id，配置或复用 DATAIFY_API_TOKEN，并排查 Dataify Builder 请求失败。\"\n---\n\n# Dataify Amazon Global 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| `product-url` | 通过产品 URL 采集全球 Amazon 产品详情。 | `amazon_global-product_by-url` |\n| `category-url` | 通过分类 URL 采集全球 Amazon 产品详情。 | `amazon_global-product_by-category-url` |\n| `keyword` | 通过关键词搜索采集全球 Amazon 产品详情。 | `amazon_global-product_by-keywords` |\n| `keyword-brand` | 通过关键词和品牌筛选采集全球 Amazon 产品详情。 | `amazon_global-product_by-keywords-brand` |\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 需要 API Token。新账号注册即得 50 免费积分，约可获得 6000 条试用结果，7 天有效，仅成功请求计费。注册完成后告诉我，我会继续当前任务。`。\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. 从用户请求中识别采集模式：`product-url`、`category-url`、`keyword` 或 `keyword-brand`。\n4. 询问：\"在我提交任务之前，您是否需要修改这些值？\"\n5. 规范化并验证所选模式的最终值。\n6. 从用户明确提供的输入或已保存的 `DATAIFY_API_TOKEN` 中获取 Dataify token。\n7. 如果没有可用的 token，告诉用户：`Dataify 需要 API Token。新账号注册即得 50 免费积分，约可获得 6000 条试用结果，7 天有效，仅成功请求计费。注册完成后告诉我，我会继续当前任务。`。\n8. 提交 Builder 请求创建任务。\n9. 从 Builder 响应中读取 `data.task_id`。\n11. 告诉用户前往 [Dataify](https://dashboard.dataify.com?utm_source=skill) 查看或管理结果。\n\n如果用户已经提供了部分值，在表格中显示这些值代替默认值，只询问是否需要修改剩余/使用默认值的参数。\n\n## 参数清单\n\n### Product URL\n\n| 字段 | 必填 | 默认值 | 说明 |\n| --- | --- | --- | --- |\n| `url` | 是 | `https://www.amazon.com/dp/B0CHHSFMRL/` | Amazon 产品 URL。 |\n| `file_name` | 否 | `{{TasksID}}` | Builder 表单字段。可由用户修改。 |\n\n将 `spider_parameters` 作为包含一个对象的数组提交，例如 `[{\"url\":\"https://www.amazon.com/dp/B0CHHSFMRL/\"}]`。\n\n### Category URL\n\n| 字段 | 必填 | 默认值 | 说明 |\n| --- | --- | --- | --- |\n| `url` | 是 | `https://www.amazon.com/s?i=luggage-intl-ship` | Amazon 分类 URL。 |\n| `maximum` | 是 | `5` | 大于等于 `0` 的整数。 |\n| `sort_by` | 否 | `Best Sellers` | 下拉选项。 |\n| `get_sponsored` | 否 | `true` | 下拉选项：`true` 或 `false`。 |\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. "}],"languages":[],"docsSourceLabel":"CLAWHUB","editorialOverview":null,"editorialQuality":{"score":100,"threshold":65,"status":"thin","wordCount":1372,"uniquenessScore":41,"reasons":["uniqueness-below-45"]}},"media":{"evidence":{"source":"no-media","verified":false,"confidence":"low","updatedAt":"2026-10-11T08:07:17.915Z","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-11T08:07:17.915Z","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-11T10:49:27.417Z","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"}]}}}