{"id":"6946e60e-eb8e-4d0d-9c5b-3109ec36759c","entityType":"agent","slug":"clawhub-dataify-server-dataify-ebay-products","name":"Dataify eBay Products","canonicalUrl":"https://www.xpersona.co/agent/clawhub-dataify-server-dataify-ebay-products","canonicalPath":"/agent/clawhub-dataify-server-dataify-ebay-products","generatedAt":"2026-10-14T05:37:07.428Z","source":"CLAWHUB","claimStatus":"UNCLAIMED","verificationTier":"NONE","summary":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-12T02:31:46.936Z","emptyReason":null},"description":"Collect eBay Products data and return results","descriptionLabel":"Source description","evidenceSummary":"Capability contract not published. No trust telemetry is available yet. 954 downloads reported by the source. Last updated 10/12/2026.","installCommand":"clawhub skill install s17feed8b2qc486skqmjapxmjs86bd4f:dataify-ebay-products","sourceUrl":"https://clawhub.ai/dataify-server/dataify-ebay-products","homepage":"https://clawhub.ai/dataify-server/skills/dataify-ebay-products","primaryLinks":[{"label":"View on ClawHub","url":"https://clawhub.ai/dataify-server/dataify-ebay-products","kind":"source"},{"label":"Homepage","url":"https://clawhub.ai/dataify-server/skills/dataify-ebay-products","kind":"homepage"}],"safetyScore":84,"overallRank":62,"popularityScore":60,"trustScore":null,"claimedByName":null,"isOwner":false,"seoDescription":"Dataify eBay Products 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-12T02:31:46.936Z","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-12T02:31:46.936Z","emptyReason":null},"stars":null,"forks":null,"downloads":954,"likes":null,"task":null,"library":null,"packageName":null,"latestVersion":"1.3.0","tractionLabel":"954 downloads"},"release":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-12T02:31:46.923Z","emptyReason":null},"lastUpdatedAt":"2026-10-12T02:31:46.936Z","lastCrawledAt":"2026-10-12T02:31:46.923Z","lastIndexedAt":null,"nextCrawlAt":"2026-10-13T02:31:46.923Z","lastVerifiedAt":null,"highlights":[{"version":"1.3.0","createdAt":"2026-09-01T09:12:51.707Z","changelog":"默认返回最终采集结果，完善异步等待下载与安全恢复；修复空目标误执行、Quick Start、Token 配置和触发路由冲突，并补齐发布前自动化测试","fileCount":9,"zipByteSize":18236},{"version":"1.2.0","createdAt":"2026-07-16T08:36:30.768Z","changelog":"新增能力路由与异步任务闭环，修复失效引用、Token 泄漏和 Skill 元数据兼容性","fileCount":8,"zipByteSize":14965},{"version":"1.1.0","createdAt":"2026-06-08T02:05:52.909Z","changelog":"补全中文文档，更新目录结构","fileCount":8,"zipByteSize":15059},{"version":"1.0.0","createdAt":"2026-06-01T03:00:17.272Z","changelog":"dataify-ebay-products 1.0.0 - Initial release - Submit Dataify eBay product collection tasks supporting four modes: product URL, category URL, keyword, and store URL. - Guides users through mode selection and parameter entry for each collection type. - Handles Dataify API TOKEN retrieval, use, and secure environment variable storage with user confirmation. - Validates user inputs before submitting Builder requests. - Provides status feedback and directs users to the Dataify dashboard for results.","fileCount":7,"zipByteSize":10557}]},"execution":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No published capability contract is available yet."},"installCommand":"clawhub skill install s17feed8b2qc486skqmjapxmjs86bd4f:dataify-ebay-products","setupComplexity":"low","setupSteps":["Install using `clawhub skill install s17feed8b2qc486skqmjapxmjs86bd4f:dataify-ebay-products` 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-ebay-products 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-ebay-products/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-dataify-server-dataify-ebay-products/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-dataify-server-dataify-ebay-products/trust"},"curlExamples":["curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-dataify-server-dataify-ebay-products/snapshot\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-dataify-server-dataify-ebay-products/contract\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-dataify-server-dataify-ebay-products/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-14T05:37:07.427Z"}},"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-ebay-products/dossier","snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-dataify-server-dataify-ebay-products/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-dataify-server-dataify-ebay-products/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-dataify-server-dataify-ebay-products/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-12T02:31:46.936Z","emptyReason":null},"readme":"Skill: Dataify eBay Products\n\nOwner: dataify-server\n\nSummary: Collect eBay Products data and return results\n\nTags: latest:1.3.0\n\nVersion history:\n\nv1.3.0 | 2026-09-01T09:12:51.707Z | user\n\n默认返回最终采集结果，完善异步等待下载与安全恢复；修复空目标误执行、Quick Start、Token 配置和触发路由冲突，并补齐发布前自动化测试\n\nv1.2.0 | 2026-07-16T08:36:30.768Z | user\n\n新增能力路由与异步任务闭环，修复失效引用、Token 泄漏和 Skill 元数据兼容性\n\nv1.1.0 | 2026-06-08T02:05:52.909Z | user\n\n补全中文文档，更新目录结构\n\nv1.0.0 | 2026-06-01T03:00:17.272Z | auto\n\ndataify-ebay-products 1.0.0 - Initial release\n\n- Submit Dataify eBay product collection tasks supporting four modes: product URL, category URL, keyword, and store URL.\n- Guides users through mode selection and parameter entry for each collection type.\n- Handles Dataify API TOKEN retrieval, use, and secure environment variable storage with user confirmation.\n- Validates user inputs before submitting Builder requests.\n- Provides status feedback and directs users to the Dataify dashboard for results.\n\nArchive index:\n\nArchive v1.3.0: 9 files, 18236 bytes\n\nFiles: agents/openai.yaml (514b), assets/dataify-ebay-products-large.svg (696b), assets/dataify-ebay-products-small.svg (635b), references/modes-and-parameters.md (5013b), scripts/submit_dataify_ebay_products.py (10103b), skill-card.md (2100b), SKILL.md (11711b), SKILL.zh-CN.md (17578b), _meta.json (140b)\n\nFile v1.3.0:SKILL.md\n\n---\nname: dataify-ebay-products\ndescription: \"Collect eBay product records by product URL, category URL, keyword, or store URL. Do not use for Amazon, Walmart, or general shopping-search results.\"\n---\n\n# Dataify eBay Products\n\nSubmit eBay product information collection jobs through Dataify Builder. This skill is a guided wrapper for four collection modes:\n\n| Mode | Collector ID | Use For |\n| --- | --- | --- |\n| Product URL | `ebay_ebay_by-url` | Collecting one or more eBay products by product URL. |\n| Category URL | `ebay_ebay_by-category-url` | Collecting eBay products by category URL. |\n| Keyword | `ebay_ebay_by-keywords` | Collecting eBay products by search keyword. |\n| Store URL | `ebay_ebay_by-listurl` | Collecting eBay products by store URL. |\n\nAfter submission, continue monitoring the returned `task_id` and return the final result by default.\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 without asking the user to re-enter the token.\n- If the user does not have an API TOKEN, tell them they can register or log in at [Dataify](https://dashboard.dataify.com/login?utm_source=skill) to get one.\n- If the user wants to save it, give the appropriate command for their shell and ask them to run it; do not silently persist tokens without confirmation.\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. First ask the user to choose a collection mode: `url`, `category-url`, `keywords`, or `listurl`.\n2. After the user chooses a mode, show only that mode's parameter table and defaults.\n3. Ask whether the user wants to change any value before running the task.\n4. Ask whether the user wants to collect multiple eBay product groups for the selected mode.\n5. Normalize the final values into a list of parameter objects for the selected mode only.\n8. Validate the selected mode, URLs, keyword, numeric values, and file name.\n9. Submit the Builder request with the selected mode's `spider_id`.\n10. Read `data.task_id` from the Builder response and read `data.status` or `status` when present.\n## Mode Selection\n\nWhen the user invokes this skill, first show this Markdown table and ask them to choose one mode:\n\n| Label | Value |\n| --- | --- |\n| Collect eBay products by product URL | `url` |\n| Collect eBay products by category URL | `category-url` |\n| Collect eBay products by keyword | `keywords` |\n| Collect eBay products by store URL | `listurl` |\n\nAsk: \"Which collection mode do you want to use: `url`, `category-url`, `keywords`, or `listurl`?\"\n\nDo not submit a Builder request until the mode is clear.\n\n## Shared File Name Handling\n\n- `file_name` defaults to `{{TasksID}}`.\n- If the user changes `file_name`, submit the user-provided value.\n- `file_name` cannot be empty.\n- Send `file_name` as a Builder form field.\n\nFor detailed mode schemas and advanced fields, read [references/modes-and-parameters.md](references/modes-and-parameters.md) only when needed.\n\n## Dataify Builder Request\n\nUse form fields rather than hand-built URL-encoded strings.\n\n- URL: `https://scraperapi.dataify.com/builder?platform=1`\n- Method: `POST`\n- Authorization header: `Bearer DATAIFY_API_TOKEN`\n- Content type: `application/x-www-form-urlencoded`\n- Fixed fields:\n  - `spider_name=ebay.com`\n  - `spider_errors=true`\n- Mode-specific field:\n  - Product URL mode: `spider_id=ebay_ebay_by-url`\n  - Category URL mode: `spider_id=ebay_ebay_by-category-url`\n  - Keyword mode: `spider_id=ebay_ebay_by-keywords`\n  - Store URL mode: `spider_id=ebay_ebay_by-listurl`\n- Default field:\n  - `file_name={{TasksID}}`\n- Dynamic field:\n  - `spider_parameters` must be a JSON string array.\n\n## Script\n\nFor stable execution, prefer `scripts/submit_dataify_ebay_products.py` with Python 3.6 or newer instead of rewriting the Builder flow.\n\nProduct URL mode:\n\n```powershell\npython3 \".\\scripts\\submit_dataify_ebay_products.py\" --mode url --url \"https://www.ebay.com/itm/187538926483?_skw=Apple&itmmeta=01K4KYKPQW7M913YDTWF9EJKQ4&hash=item2baa30eb93:g:VbMAAeSwtSRot5L8&itmprp=enc%3AAQAKAAAA4MHg7L1Zz0LA5DYYmRTS30kFPVExlz%2FTbUuctB71Yk%2FfQV0aiX%2BN2ICzGj8BIeYBUa7tIGv3VKEgsvuXC0PvIFFvjxEBfsALP5m0Rkcclb576wHpV5%2FGunXNmnt9grpWOipLuKMA0RDkORHa96xYJy8rg%2BYGIi2l2d0Iw2K%2FcLiqP7TlRBd1LsXAjnXShdLOq%2BFxcbaNCarcoIJ%2Fp5DgBLl5UK3WHBVGnpUQZqOMSz1JX0axUzL%2BxlVrnBGK0wekqYG6ShKyf5iRg5%2BY%2F35FueGxIeViMX5ZU5%2B8nFwIGsMl%7Ctkp%3ABFBMjOzO_qRm\"\n```\n\nCategory URL mode:\n\n```powershell\npython3 \".\\scripts\\submit_dataify_ebay_products.py\" --mode category-url --url \"https://www.ebay.com/b/Collectible-Japanese-Bells-1900-Now/165467/bn_3104829\" --count \"60\"\n```\n\nKeyword mode:\n\n```powershell\npython3 \".\\scripts\\submit_dataify_ebay_products.py\" --mode keywords --keywords \"baby toys\" --count \"60\"\n```\n\nStore URL mode:\n\n```powershell\npython3 \".\\scripts\\submit_dataify_ebay_products.py\" --mode listurl --url \"https://www.ebay.com/str/kptradingdeals?_trksid=p4429486.m145687.l149086\" --count \"60\"\n```\n\nTo override the saved environment token or file name:\n\n```powershell\npython3 \".\\scripts\\submit_dataify_ebay_products.py\" --mode keywords --keywords \"baby toys\" --file-name \"{{TasksID}}\"\n```\n\nTo submit multiple product URL groups:\n\n```powershell\npython3 \".\\scripts\\submit_dataify_ebay_products.py\" --mode url --params-json '[{\"url\":\"https://www.ebay.com/itm/187538926483?_skw=Apple&itmmeta=01K4KYKPQW7M913YDTWF9EJKQ4&hash=item2baa30eb93:g:VbMAAeSwtSRot5L8&itmprp=enc%3AAQAKAAAA4MHg7L1Zz0LA5DYYmRTS30kFPVExlz%2FTbUuctB71Yk%2FfQV0aiX%2BN2ICzGj8BIeYBUa7tIGv3VKEgsvuXC0PvIFFvjxEBfsALP5m0Rkcclb576wHpV5%2FGunXNmnt9grpWOipLuKMA0RDkORHa96xYJy8rg%2BYGIi2l2d0Iw2K%2FcLiqP7TlRBd1LsXAjnXShdLOq%2BFxcbaNCarcoIJ%2Fp5DgBLl5UK3WHBVGnpUQZqOMSz1JX0axUzL%2BxlVrnBGK0wekqYG6ShKyf5iRg5%2BY%2F35FueGxIeViMX5ZU5%2B8nFwIGsMl%7Ctkp%3ABFBMjOzO_qRm\"},{\"url\":\"https://www.ebay.com/itm/187538926483?_skw=Apple&itmmeta=01K4KYKPQW7M913YDTWF9EJKQ4&hash=item2baa30eb93:g:VbMAAeSwtSRot5L8&itmprp=enc%3AAQAKAAAA4MHg7L1Zz0LA5DYYmRTS30kFPVExlz%2FTbUuctB71Yk%2FfQV0aiX%2BN2ICzGj8BIeYBUa7tIGv3VKEgsvuXC0PvIFFvjxEBfsALP5m0Rkcclb576wHpV5%2FGunXNmnt9grpWOipLuKMA0RDkORHa96xYJy8rg%2BYGIi2l2d0Iw2K%2FcLiqP7TlRBd1LsXAjnXShdLOq%2BFxcbaNCarcoIJ%2Fp5DgBLl5UK3WHBVGnpUQZqOMSz1JX0axUzL%2BxlVrnBGK0wekqYG6ShKyf5iRg5%2BY%2F35FueGxIeViMX5ZU5%2B8nFwIGsMl%7Ctkp%3ABFBMjOzO_qRm\"}]'\n```\n\nThe script prints a JSON summary with `mode`, `spider_id`, `task_id`, `status`, `parameters`, `file_name` and `message`.\n\n## Troubleshooting\n\n`Unsupported mode` means the mode must be `url`, `category-url`, `keywords`, or `listurl`.\n\n`url must start with https://www.ebay.com/` means the URL is outside the allowed eBay domain.\n\n`keywords cannot be empty` means the keyword is missing.\n\n`Count must be an integer greater than or equal to 0` means the category Count field is invalid.\n\n`count must be an integer greater than or equal to 0` means the quantity field is invalid.\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 array, or the selected mode's object is missing required fields.\n\nMissing `task_id` usually means the authorization header, token, `spider_name`, selected `spider_id`, or `spider_parameters` is wrong.\n\n## Guardrails\n\n- Do not mix Product URL, Category URL, Keyword, and Store URL mode parameters in the same Builder request.\n- Do not submit a Builder request until the mode is clear.\n- Do not put `file_name` inside `spider_parameters`.\n- Do not use an eBay URL from outside `https://www.ebay.com/`.\n- Use only `API TOKEN` and `DATAIFY_API_TOKEN` when referring to authentication.\n- Do not hard-code local Python paths.\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## Quick Start\n\n```bash\npython3 scripts/submit_dataify_ebay_products.py --help\n```\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-ebay-products\",\n  \"version\": \"1.3.0\",\n  \"publishedAt\": 1788253971707\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## Product URL Mode Parameters\n\nUse this section only when the user chooses `url`.\n\n| Field | Required | Default | Location | Notes |\n| --- | --- | --- | --- | --- |\n| `url` | Yes | `https://www.ebay.com/itm/187538926483?_skw=Apple&itmmeta=01K4KYKPQW7M913YDTWF9EJKQ4&hash=item2baa30eb93:g:VbMAAeSwtSRot5L8&itmprp=enc%3AAQAKAAAA4MHg7L1Zz0LA5DYYmRTS30kFPVExlz%2FTbUuctB71Yk%2FfQV0aiX%2BN2ICzGj8BIeYBUa7tIGv3VKEgsvuXC0PvIFFvjxEBfsALP5m0Rkcclb576wHpV5%2FGunXNmnt9grpWOipLuKMA0RDkORHa96xYJy8rg%2BYGIi2l2d0Iw2K%2FcLiqP7TlRBd1LsXAjnXShdLOq%2BFxcbaNCarcoIJ%2Fp5DgBLl5UK3WHBVGnpUQZqOMSz1JX0axUzL%2BxlVrnBGK0wekqYG6ShKyf5iRg5%2BY%2F35FueGxIeViMX5ZU5%2B8nFwIGsMl%7Ctkp%3ABFBMjOzO_qRm` | `spider_parameters` | eBay product URL. |\n| `file_name` | No | `{{TasksID}}` | Builder form field | Use the default when the user does not change it. |\n\n\nAlso ask: \"Do you want to collect multiple eBay product URL groups? If yes, provide multiple `url` values.\"\n\nProduct URL mode handling:\n\n- `url` must start with `https://www.ebay.com/`.\n- Submit `spider_id=ebay_ebay_by-url`.\n- Submit `spider_parameters` as a JSON string containing one or more objects like:\n\n```json\n[{\"url\":\"https://www.ebay.com/itm/187538926483?_skw=Apple&itmmeta=01K4KYKPQW7M913YDTWF9EJKQ4&hash=item2baa30eb93:g:VbMAAeSwtSRot5L8&itmprp=enc%3AAQAKAAAA4MHg7L1Zz0LA5DYYmRTS30kFPVExlz%2FTbUuctB71Yk%2FfQV0aiX%2BN2ICzGj8BIeYBUa7tIGv3VKEgsvuXC0PvIFFvjxEBfsALP5m0Rkcclb576wHpV5%2FGunXNmnt9grpWOipLuKMA0RDkORHa96xYJy8rg%2BYGIi2l2d0Iw2K%2FcLiqP7TlRBd1LsXAjnXShdLOq%2BFxcbaNCarcoIJ%2Fp5DgBLl5UK3WHBVGnpUQZqOMSz1JX0axUzL%2BxlVrnBGK0wekqYG6ShKyf5iRg5%2BY%2F35FueGxIeViMX5ZU5%2B8nFwIGsMl%7Ctkp%3ABFBMjOzO_qRm\"}]\n```\n\n## Category URL Mode Parameters\n\nUse this section only when the user chooses `category-url`.\n\n| Field | Required | Default | Location | Notes |\n| --- | --- | --- | --- | --- |\n| `url` | Yes | `https://www.ebay.com/b/Collectible-Japanese-Bells-1900-Now/165467/bn_3104829` | `spider_parameters` | eBay category URL. |\n| `Count` | No | `60` | `spider_parameters` | Count field required by this collector. Must be an integer greater than or equal to `0`. |\n| `count` | No | `60` | `spider_parameters` | Quantity field. Must be an integer greater than or equal to `0`. |\n| `file_name` | No | `{{TasksID}}` | Builder form field | Use the default when the user does not change it. |\n\n\nAlso ask: \"Do you want to collect multiple eBay category URL groups? If yes, provide multiple groups with `url`, `Count`, and `count`.\"\n\nCategory URL mode handling:\n\n- `url` must start with `https://www.ebay.com/`.\n- `Count` must be an integer greater than or equal to `0`.\n- `count` must be an integer greater than or equal to `0`.\n- Submit both `Count` and `count` exactly as separate fields.\n- Submit `spider_id=ebay_ebay_by-category-url`.\n- Submit `spider_parameters` as a JSON string containing one or more objects like:\n\n```json\n[{\"url\":\"https://www.ebay.com/b/Collectible-Japanese-Bells-1900-Now/165467/bn_3104829\",\"Count\":\"60\",\"count\":\"60\"}]\n```\n\n## Keyword Mode Parameters\n\nUse this section only when the user chooses `keywords`.\n\n| Field | Required | Default | Location | Notes |\n| --- | --- | --- | --- | --- |\n| `keywords` | Yes | `baby toys` | `spider_parameters` | eBay search keyword. |\n| `count` | No | `60` | `spider_parameters` | Quantity field. Must be an integer greater than or equal to `0`. |\n| `file_name` | No | `{{TasksID}}` | Builder form field | Use the default when the user does not change it. |\n\n\nAlso ask: \"Do you want to collect multiple eBay keyword groups? If yes, provide multiple groups with `keywords` and `count`.\"\n\nKeyword mode handling:\n\n- `keywords` cannot be empty.\n- `count` must be an integer greater than or equal to `0`.\n- Submit `spider_id=ebay_ebay_by-keywords`.\n- Submit `spider_parameters` as a JSON string containing one or more objects like:\n\n```json\n[{\"keywords\":\"baby toys\",\"count\":\"60\"}]\n```\n\n## Store URL Mode Parameters\n\nUse this section only when the user chooses `listurl`.\n\n| Field | Required | Default | Location | Notes |\n| --- | --- | --- | --- | --- |\n| `url` | Yes | `https://www.ebay.com/str/kptradingdeals?_trksid=p4429486.m145687.l149086` | `spider_parameters` | eBay store URL. |\n| `count` | No | `60` | `spider_parameters` | Quantity field. Must be an integer greater than or equal to `0`. |\n| `file_name` | No | `{{TasksID}}` | Builder form field | Use the default when the user does not change it. |\n\n\nAlso ask: \"Do you want to collect multiple eBay store URL groups? If yes, provide multiple groups with `url` and `count`.\"\n\nStore URL mode handling:\n\n- `url` must start with `https://www.ebay.com/`.\n- `count` must be an integer greater than or equal to `0`.\n- Submit `spider_id=ebay_ebay_by-listurl`.\n- Submit `spider_parameters` as a JSON string containing one or more objects like:\n\n```json\n[{\"url\":\"https://www.ebay.com/str/kptradingdeals?_trksid=p4429486.m145687.l149086\",\"count\":\"60\"}]\n```\n\nFile v1.3.0:skill-card.md\n\n## Description:\n\nCollect eBay product records by product URL, category URL, keyword, or store URL. Do not use for Amazon, Walmart, or general shopping-search results.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[dataify-server](https://clawhub.ai/user/dataify-server)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nExternal users and developers use this skill to submit Dataify Builder jobs for eBay product collection by product URL, category URL, keyword, or store URL, then wait for the final collected JSON result.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: The helper script imports code from a nearby dataify-task-operations runtime that is outside this skill artifact and can pass that code the user's Dataify API TOKEN.\n\nMitigation: Review the sibling runtime before installation or execution, use a session-scoped DATAIFY_API_TOKEN, and do not paste tokens into chat.\n\nRisk: Running the skill submits requests to Dataify Builder and may consume account credits for eBay product collection.\n\nMitigation: Confirm the selected collection mode, target URLs or keywords, and expected scope before running high-volume or multi-input 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-ebay-products)\n\n## Skill Output:\n\n**Output Type(s):** [Guidance, Shell commands, Configuration, API calls, 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 return a task identifier and status during submission, or the final collected JSON result after asynchronous monitoring completes.]\n\n## Skill Version(s):\n\n1.3.0 (source: 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-ebay-products\ndescription: \"提交 Dataify eBay Product Information Builder 任务，支持四种 eBay 商品采集模式。当用户需要 eBay product information collection tool、采集/抓取/爬取 eBay 商品信息，按 URL、category URL、keyword、store URL 采集 eBay 商品，创建 ebay_ebay_by-url、ebay_ebay_by-category-url、ebay_ebay_by-keywords 或 ebay_ebay_by-listurl 任务，或表达 eBay 产品信息采集/抓取、产品 URL/类别 URL/关键词/店铺网址采集等含义时使用。也用于接收 task_id/status、配置 DATAIFY_API_TOKEN 或排查此 Dataify Builder 请求。\"\n---\n\n# Dataify eBay Products\n\n通过 Dataify Builder 提交 eBay 产品信息采集任务。本技能是四种采集模式的引导封装：\n\n| 模式 | 采集器 ID | 用途 |\n| --- | --- | --- |\n| 产品 URL | `ebay_ebay_by-url` | 通过产品 URL 采集一个或多个 eBay 产品。 |\n| 类别 URL | `ebay_ebay_by-category-url` | 通过类别 URL 采集 eBay 产品。 |\n| 关键词 | `ebay_ebay_by-keywords` | 通过搜索关键词采集 eBay 产品。 |\n| 店铺 URL | `ebay_ebay_by-listurl` | 通过店铺 URL 采集 eBay 产品。 |\n\n提交成功后，向用户提供 `task_id`、返回的或推断的状态，并告知用户前往 [Dataify](https://dashboard.dataify.com?utm_source=skill) 查看结果。\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。\n- 如果用户没有 API TOKEN，告知用户可以在 [Dataify](https://dashboard.dataify.com/login?utm_source=skill) 注册或登录以获取。\n- 如果用户已有 API TOKEN，告知用户可以在 [Dataify](https://dashboard.dataify.com?utm_source=skill) 右上角找到。\n- 用户提供 API TOKEN 后，如果本地未保存 `DATAIFY_API_TOKEN`，询问是否将其保存为 `DATAIFY_API_TOKEN` 以供后续使用。\n- 如果用户希望保存，提供适合其 shell 的命令并要求其执行；不要在未经确认的情况下静默保存 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. 首先询问用户选择采集模式：`url`、`category-url`、`keywords` 或 `listurl`。\n2. 用户选择模式后，仅展示该模式的参数表格和默认值。\n3. 询问用户是否需要在运行任务前修改任何值。\n4. 询问用户是否需要为所选模式采集多组 eBay 产品。\n5. 将最终值规范化为仅包含所选模式的参数对象列表。\n6. 从显式输入或已保存的 `DATAIFY_API_TOKEN` 中获取 Dataify token。\n7. 如果没有可用的 token，要求用户输入 API TOKEN 并询问是否将其保存为 `DATAIFY_API_TOKEN`。\n8. 验证所选模式、URL、关键词、数值和文件名。\n9. 使用所选模式的 `spider_id` 提交 Builder 请求。\n10. 从 Builder 响应中读取 `data.task_id`，并在存在时读取 `data.status` 或 `status`。\n12. 告知用户前往 [Dataify](https://dashboard.dataify.com?utm_source=skill) 查看或管理结果。\n\n## 模式选择\n\n当用户调用此技能时，首先展示以下 Markdown 表格并要求选择一种模式：\n\n| 标签 | 值 |\n| --- | --- |\n| 通过产品 URL 采集 eBay 产品 | `url` |\n| 通过类别 URL 采集 eBay 产品 | `category-url` |\n| 通过关键词采集 eBay 产品 | `keywords` |\n| 通过店铺 URL 采集 eBay 产品 | `listurl` |\n\n询问：\"您想使用哪种采集模式：`url`、`category-url`、`keywords` 还是 `listurl`？\"\n\n在模式明确之前不要提交 Builder 请求。\n\n## 产品 URL 模式参数\n\n仅当用户选择 `url` 时使用本节。\n\n| 字段 | 必填 | 默认值 | 位置 | 说明 |\n| --- | --- | --- | --- | --- |\n| `url` | 是 | `https://www.ebay.com/itm/187538926483?_skw=Apple&itmmeta=01K4KYKPQW7M913YDTWF9EJKQ4&hash=item2baa30eb93:g:VbMAAeSwtSRot5L8&itmprp=enc%3AAQAKAAAA4MHg7L1Zz0LA5DYYmRTS30kFPVExlz%2FTbUuctB71Yk%2FfQV0aiX%2BN2ICzGj8BIeYBUa7tIGv3VKEgsvuXC0PvIFFvjxEBfsALP5m0Rkcclb576wHpV5%2FGunXNmnt9grpWOipLuKMA0RDkORHa96xYJy8rg%2BYGIi2l2d0Iw2K%2FcLiqP7TlRBd1LsXAjnXShdLOq%2BFxcbaNCarcoIJ%2Fp5DgBLl5UK3WHBVGnpUQZqOMSz1JX0axUzL%2BxlVrnBGK0wekqYG6ShKyf5iRg5%2BY%2F35FueGxIeViMX5ZU5%2B8nFwIGsMl%7Ctkp%3ABFBMjOzO_qRm` | `spider_parameters` | eBay 产品 URL。 |\n| `file_name` | 否 | `{{TasksID}}` | Builder 表单字段 | 用户未更改时使用默认值。 |\n\n\n同时询问：\"您是否需要采集多组 eBay 产品 URL？如果是，请提供多个 `url` 值。\"\n\n产品 URL 模式处理：\n\n- `url` 为必填项。如果用户未提供，询问该必填值；不要使用文档示例值代替用户输入。\n- `url` 必须以 `https://www.ebay.com/` 开头。\n- 提交 `spider_id=ebay_ebay_by-url`。\n- 将 `spider_parameters` 作为包含一个或多个对象的 JSON 字符串提交，格式如下：\n\n```json\n[{\"url\":\"https://www.ebay.com/itm/187538926483?_skw=Apple&itmmeta=01K4KYKPQW7M913YDTWF9EJKQ4&hash=item2baa30eb93:g:VbMAAeSwtSRot5L8&itmprp=enc%3AAQAKAAAA4MHg7L1Zz0LA5DYYmRTS30kFPVExlz%2FTbUuctB71Yk%2FfQV0aiX%2BN2ICzGj8BIeYBUa7tIGv3VKEgsvuXC0PvIFFvjxEBfsALP5m0Rkcclb576wHpV5%2FGunXNmnt9grpWOipLuKMA0RDkORHa96xYJy8rg%2BYGIi2l2d0Iw2K%2FcLiqP7TlRBd1LsXAjnXShdLOq%2BFxcbaNCarcoIJ%2Fp5DgBLl5UK3WHBVGnpUQZqOMSz1JX0axUzL%2BxlVrnBGK0wekqYG6ShKyf5iRg5%2BY%2F35FueGxIeViMX5ZU5%2B8nFwIGsMl%7Ctkp%3ABFBMjOzO_qRm\"}]\n```\n\n## 类别 URL 模式参数\n\n仅当用户选择 `category-url` 时使用本节。\n\n| 字段 | 必填 | 默认值 | 位置 | 说明 |\n| --- | --- | --- | --- | --- |\n| `url` | 是 | `https://www.ebay.com/b/Collectible-Japanese-Bells-1900-Now/165467/bn_3104829` | `spider_parameters` | eBay 类别 URL。 |\n| `Count` | 否 | `60` | `spider_parameters` | 此采集器要求的 Count 字段。必须为大于或等于 `0` 的整数。 |\n| `count` | 否 | `60` | `spider_parameters` | 数量字段。必须为大于或等于 `0` 的整数。 |\n| `file_name` | 否 | `{{TasksID}}` | Builder 表单字段 | 用户未更改时使用默认值。 |\n\n\n同时询问：\"您是否需要采集多组 eBay 类别 URL？如果是，请提供多组 `url`、`Count` 和 `count`。\"\n\n类别 URL 模式处理：\n\n- `url` 为必填项。如果用户未提供，询问该必填值；不要使用文档示例值代替用户输入。\n- `url` 必须以 `https://www.ebay.com/` 开头。\n- `Count` 必须为大于或等于 `0` 的整数。\n- `count` 必须为大于或等于 `0` 的整数。\n- 必须将 `Count` 和 `count` 作为独立字段分别提交。\n- 提交 `spider_id=ebay_ebay_by-category-url`。\n- 将 `spider_parameters` 作为包含一个或多个对象的 JSON 字符串提交，格式如下：\n\n```json\n[{\"url\":\"https://www.ebay.com/b/Collectible-Japanese-Bells-1900-Now/165467/bn_3104829\",\"Count\":\"60\",\"count\":\"60\"}]\n```\n\n## 关键词模式参数\n\n仅当用户选择 `keywords` 时使用本节。\n\n| 字段 | 必填 | 默认值 | 位置 | 说明 |\n| --- | --- | --- | --- | --- |\n| `keywords` | 是 | `baby toys` | `spider_parameters` | eBay 搜索关键词。 |\n| `count` | 否 | `60` | `spider_parameters` | 数量字段。必须为大于或等于 `0` 的整数。 |\n| `file_name` | 否 | `{{TasksID}}` | Builder 表单字段 | 用户未更改时使用默认值。 |\n\n\n同时询问：\"您是否需要采集多组 eBay 关键词？如果是，请提供多组 `keywords` 和 `count`。\"\n\n关键词模式处理：\n\n- `keywords` 为必填项。如果用户未提供，询问该必填值；不要使用文档示例值代替用户输入。\n- `keywords` 不能为空。\n- `count` 必须为大于或等于 `0` 的整数。\n- 提交 `spider_id=ebay_ebay_by-keywords`。\n- 将 `spider_parameters` 作为包含一个或多个对象的 JSON 字符串提交，格式如下：\n\n```json\n[{\"keywords\":\"baby toys\",\"count\":\"60\"}]\n```\n\n## 店铺 URL 模式参数\n\n仅当用户选择 `listurl` 时使用本节。\n\n| 字段 | 必填 | 默认值 | 位置 | 说明 |\n| --- | --- | --- | --- | --- |\n| `url` | 是 | `https://www.ebay.com/str/kptradingdeals?_trksid=p4429486.m145687.l149086` | `spider_parameters` | eBay 店铺 URL。 |\n| `count` | 否 | `60` | `spider_parameters` | 数量字段。必须为大于或等于 `0` 的整数。 |\n| `file_name` | 否 | `{{TasksID}}` | Builder 表单字段 | 用户未更改时使用默认值。 |\n\n\n同时询问：\"您是否需要采集多组 eBay 店铺 URL？如果是，请提供多组 `url` 和 `count`。\"\n\n店铺 URL 模式处理：\n\n- `url` 为必填项。如果用户未提供，询问该必填值；不要使用文档示例值代替用户输入。\n- `url` 必须以 `https://www.ebay.com/` 开头。\n- `count` 必须为大于或等于 `0` 的整数。\n- 提交 `spider_id=ebay_ebay_by-listurl`。\n- 将 `spider_parameters` 作为包含一个或多个对象的 JSON 字符串提交，格式如下：\n\n```json\n[{\"url\":\"https://www.ebay.com/str/kptradingdeals?_trksid=p4429486.m145687.l149086\",\"count\":\"60\"}]\n```\n\n## 共享文件名处理\n\n- `file_name` 默认为 `{{TasksID}}`。\n- 如果用户更改了 `file_name`，提交用户提供的值。\n- `file_name` 不能为空。\n- 将 `file_name` 作为 Builder 表单字段发送。\n\n## Dataify Builder 请求\n\n使用表单字段而非手动构建的 URL 编码字符串。\n\n- URL：`https://scraperapi.dataify.com/builder?platform=1`\n- 方法：`POST`\n- Authorization 请求头：`Bearer DATAIFY_API_TOKEN`\n- Content type：`application/x-www-form-urlencoded`\n- 固定字段：\n  - `spider_name=ebay.com`\n  - `spider_errors=true`\n- 模式特定字段：\n  - 产品 URL 模式：`spider_id=ebay_ebay_by-url`\n  - 类别 URL 模式：`spider_id=ebay_ebay_by-category-url`\n  - 关键词模式：`spider_id=ebay_ebay_by-keywords`\n  - 店铺 URL 模式：`spider_id=ebay_ebay_by-listurl`\n- 默认字段：\n  - `file_name={{TasksID}}`\n- 动态字段：\n  - `spider_parameters` 必须为 JSON 字符串数组。\n\n## 脚本\n\n为确保稳定执行，优先使用 Python 3.6 或更新版本运行 `scripts/submit_dataify_ebay_products.py`，而非重写 Builder 流程。\n\n产品 URL 模式：\n\n```powershell\npython3 \".\\scripts\\submit_dataify_ebay_products.py\" --mode url --url \"https://www.ebay.com/itm/187538926483?_skw=Apple&itmmeta=01K4KYKPQW7M913YDTWF9EJKQ4&hash=item2baa30eb93:g:VbMAAeSwtSRot5L8&itmprp=enc%3AAQAKAAAA4MHg7L1Zz0LA5DYYmRTS30kFPVExlz%2FTbUuctB71Yk%2FfQV0aiX%2BN2ICzGj8BIeYBUa7tIGv3VKEgsvuXC0PvIFFvjxEBfsALP5m0Rkcclb576wHpV5%2FGunXNmnt9grpWOipLuKMA0RDkORHa96xYJy8rg%2BYGIi2l2d0Iw2K%2FcLiqP7TlRBd1LsXAjnXShdLOq%2BFxcbaNCarcoIJ%2Fp5DgBLl5UK3WHBVGnpUQZqOMSz1JX0axUzL%2BxlVrnBGK0wekqYG6ShKyf5iRg5%2BY%2F35FueGxIeViMX5ZU5%2B8nFwIGsMl%7Ctkp%3ABFBMjOzO_qRm\"\n```\n\n类别 URL 模式：\n\n```powershell\npython3 \".\\scripts\\submit_dataify_ebay_products.py\" --mode category-url --url \"https://www.ebay.com/b/Collectible-Japanese-Bells-1900-Now/165467/bn_3104829\" --count \"60\"\n```\n\n关键词模式：\n\n```powershell\npython3 \".\\scripts\\submit_dataify_ebay_products.py\" --mode keywords --keywords \"baby toys\" --count \"60\"\n```\n\n店铺 URL 模式：\n\n```powershell\npython3 \".\\scripts\\submit_dataify_ebay_products.py\" --mode listurl --url \"https://www.ebay.com/str/kptradingdeals?_trksid=p4429486.m145687.l149086\" --count \"60\"\n```\n\n覆盖已保存的环境 token 或文件名：\n\n```powershell\npython3 \".\\scripts\\submit_dataify_ebay_products.py\" --mode keywords --keywords \"baby toys\" --file-name \"{{TasksID}}\"\n```\n\n提交多组产品 URL：\n\n```powershell\npython3 \".\\scripts\\submit_dataify_ebay_products.py\" --mode url --params-json '[{\"url\":\"https://www.ebay.com/itm/187538926483?_skw=Apple&itmmeta=01K4KYKPQW7M913YDTWF9EJKQ4&hash=item2baa30eb93:g:VbMAAeSwtSRot5L8&itmprp=enc%3AAQAKAAAA4MHg7L1Zz0LA5DYYmRTS30kFPVExlz%2FTbUuctB71Yk%2FfQV0aiX%2BN2ICzGj8BIeYBUa7tIGv3VKEgsvuXC0PvIFFvjxEBfsALP5m0Rkcclb576wHpV5%2FGunXNmnt9grpWOipLuKMA0RDkORHa96xYJy8rg%2BYGIi2l2d0Iw2K%2FcLiqP7TlRBd1LsXAjnXShdLOq%2BFxcbaNCarcoIJ%2Fp5DgBLl5UK3WHBVGnpUQZqOMSz1JX0axUzL%2BxlVrnBGK0wekqYG6ShKyf5iRg5%2BY%2F35FueGxIeViMX5ZU5%2B8nFwIGsMl%7Ctkp%3ABFBMjOzO_qRm\"},{\"url\":\"https://www.ebay.com/itm/187538926483?_skw=Apple&itmmeta=01K4KYKPQW7M913YDTWF9EJKQ4&hash=item2baa30eb93:g:VbMAAeSwtSRot5L8&itmprp=enc%3AAQAKAAAA4MHg7L1Zz0LA5DYYmRTS30kFPVExlz%2FTbUuctB71Yk%2FfQV0aiX%2BN2ICzGj8BIeYBUa7tIGv3VKEgsvuXC0PvIFFvjxEBfsALP5m0Rkcclb576wHpV5%2FGunXNmnt9grpWOipLuKMA0RDkORHa96xYJy8rg%2BYGIi2l2d0Iw2K%2FcLiqP7TlRBd1LsXAjnXShdLOq%2BFxcbaNCarcoIJ%2Fp5DgBLl5UK3WHBVGnpUQZqOMSz1JX0axUzL%2BxlVrnBGK0wekqYG6ShKyf5iRg5%2BY%2F35FueGxIeViMX5ZU5%2B8nFwIGsMl%7Ctkp%3ABFBMjOzO_qRm\"}]'\n```\n\n脚本会打印包含 `mode`、`spider_id`、`task_id`、`status`、`parameters`、`file_name`、`dashboard_url` 和 `message` 的 JSON 摘要。\n\n## 故障排除\n\n`Missing Dataify API TOKEN` 表示未传递显式 token 且本地未保存 `DATAIFY_API_TOKEN`。告知用户需要提供 Dataify API TOKEN，询问是否将其保存为 `DATAIFY_API_TOKEN`，或告知用户可以在 [Dataify](https://dashboard.dataify.com/login?utm_source=skill) 注册或登录以获取。如果用户已有 token，告知其位于 [Dataify](https://dashboard.dataify.com?utm_source=skill) 右上角。\n\n`Unsupported mode` 表示模式必须为 `url`、`category-url`、`keywords` 或 `listurl`。\n\n`url must start with https://www.ebay.com/` 表示 URL 不在允许的 eBay 域名范围内。\n\n`keywords cannot be empty` 表示缺少关键词。\n\n`Count must be an integer greater than or equal to 0` 表示类别 Count 字段无效。\n\n`count must be an integer greater than or equal to 0` 表示数量字段无效。\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` 或 `spider_parameters` 有误。\n\n## 安全规则\n\n- 不要在同一个 Builder 请求中混合产品 URL、类别 URL、关键词和店铺 URL 模式的参数。\n- 在模式明确之前不要提交 Builder 请求。\n- 不要将 `file_name` 放入 `spider_parameters` 中。\n- 不要使用 `https://www.ebay.com/` 以外的 eBay URL。\n- 提及身份验证时仅使用 `API TOKEN` 和 `DATAIFY_API_TOKEN`。\n- 不要硬编码本地 Python 路径。\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 eBay Products\"\n  short_description: \"Collect eBay Products data and return results\"\n  icon_small: \"./assets/dataify-ebay-products-small.svg\"\n  icon_large: \"./assets/dataify-ebay-products-large.svg\"\n  default_prompt: \"Use $dataify-ebay-products 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: 8 files, 14965 bytes\n\nFiles: agents/openai.yaml (488b), assets/dataify-ebay-products-large.svg (696b), assets/dataify-ebay-products-small.svg (635b), scripts/submit_dataify_ebay_products.py (9481b), skill-card.md (2215b), SKILL.md (16375b), SKILL.zh-CN.md (15524b), _meta.json (140b)\n\nFile v1.2.0:SKILL.md\n\n---\nname: dataify-ebay-products\ndescription: Submit Dataify eBay Product Information Builder tasks for four eBay product collection modes. Use when the user wants the eBay product information collection tool, collect eBay products, scrape eBay product information, crawl eBay product data, collect eBay products by URL, collect eBay products by category URL, collect eBay products by keyword, collect eBay products by store URL, create Dataify ebay_ebay_by-url, ebay_ebay_by-category-url, ebay_ebay_by-keywords, or ebay_ebay_by-listurl tasks, or asks in Chinese with meanings like \"eBay 产品信息采集\", \"eBay 产品信息抓取\", \"eBay产品采集\", \"eBay产品抓取\", \"eBay产品URL采集\", \"eBay类别URL采集\", \"eBay关键词采集\", \"eBay店铺网址采集\", or similar eBay product noun plus collection/scraping action wording. Also use when receiving task_id/status, configuring DATAIFY_API_TOKEN, or troubleshooting this Dataify Builder request.\n---\n\n# Dataify eBay Products\n\nSubmit eBay product information collection jobs through Dataify Builder. This skill is a guided wrapper for four collection modes:\n\n| Mode | Collector ID | Use For |\n| --- | --- | --- |\n| Product URL | `ebay_ebay_by-url` | Collecting one or more eBay products by product URL. |\n| Category URL | `ebay_ebay_by-category-url` | Collecting eBay products by category URL. |\n| Keyword | `ebay_ebay_by-keywords` | Collecting eBay products by search keyword. |\n| Store URL | `ebay_ebay_by-listurl` | Collecting eBay products by store URL. |\n\nAfter a successful submission, give the user the `task_id`, the returned or inferred status, and tell them to visit [Dataify](https://dashboard.dataify.com?utm_source=skill) to view results.\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 without asking the user to re-enter the token.\n- If no token is available locally, tell the user they need to provide a Dataify API TOKEN.\n- If the user does not have an API TOKEN, tell them they can register or log in at [Dataify](https://dashboard.dataify.com/login?utm_source=skill) to get one.\n- If the user already has an API TOKEN, tell them it is available in the top-right area of [Dataify](https://dashboard.dataify.com?utm_source=skill).\n- After the user provides an API TOKEN and no local `DATAIFY_API_TOKEN` is saved, ask whether they want to save it locally as `DATAIFY_API_TOKEN` for future use.\n- If the user wants to save it, give the appropriate command for their shell and ask them to run it; do not silently persist tokens without confirmation.\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. First ask the user to choose a collection mode: `url`, `category-url`, `keywords`, or `listurl`.\n2. After the user chooses a mode, show only that mode's parameter table and defaults.\n3. Ask whether the user wants to change any value before running the task.\n4. Ask whether the user wants to collect multiple eBay product groups for the selected mode.\n5. Normalize the final values into a list of parameter objects for the selected mode only.\n6. Resolve the Dataify token from explicit input or saved `DATAIFY_API_TOKEN`.\n7. If no token is available, ask the user to enter their API TOKEN and ask whether to save it as `DATAIFY_API_TOKEN`.\n8. Validate the selected mode, URLs, keyword, numeric values, and file name.\n9. Submit the Builder request with the selected mode's `spider_id`.\n10. Read `data.task_id` from the Builder response and read `data.status` or `status` when present.\n11. Stop after Builder succeeds.\n12. Tell the user to visit [Dataify](https://dashboard.dataify.com?utm_source=skill) to view or manage results.\n\n## Mode Selection\n\nWhen the user invokes this skill, first show this Markdown table and ask them to choose one mode:\n\n| Label | Value |\n| --- | --- |\n| Collect eBay products by product URL | `url` |\n| Collect eBay products by category URL | `category-url` |\n| Collect eBay products by keyword | `keywords` |\n| Collect eBay products by store URL | `listurl` |\n\nAsk: \"Which collection mode do you want to use: `url`, `category-url`, `keywords`, or `listurl`?\"\n\nDo not submit a Builder request until the mode is clear.\n\n## Product URL Mode Parameters\n\nUse this section only when the user chooses `url`.\n\n| Field | Required | Default | Location | Notes |\n| --- | --- | --- | --- | --- |\n| `url` | Yes | `https://www.ebay.com/itm/187538926483?_skw=Apple&itmmeta=01K4KYKPQW7M913YDTWF9EJKQ4&hash=item2baa30eb93:g:VbMAAeSwtSRot5L8&itmprp=enc%3AAQAKAAAA4MHg7L1Zz0LA5DYYmRTS30kFPVExlz%2FTbUuctB71Yk%2FfQV0aiX%2BN2ICzGj8BIeYBUa7tIGv3VKEgsvuXC0PvIFFvjxEBfsALP5m0Rkcclb576wHpV5%2FGunXNmnt9grpWOipLuKMA0RDkORHa96xYJy8rg%2BYGIi2l2d0Iw2K%2FcLiqP7TlRBd1LsXAjnXShdLOq%2BFxcbaNCarcoIJ%2Fp5DgBLl5UK3WHBVGnpUQZqOMSz1JX0axUzL%2BxlVrnBGK0wekqYG6ShKyf5iRg5%2BY%2F35FueGxIeViMX5ZU5%2B8nFwIGsMl%7Ctkp%3ABFBMjOzO_qRm` | `spider_parameters` | eBay product URL. |\n| `file_name` | No | `{{TasksID}}` | Builder form field | Use the default when the user does not change it. |\n\nThen ask: \"Do you want to change any of these values before I submit the task?\"\n\nAlso ask: \"Do you want to collect multiple eBay product URL groups? If yes, provide multiple `url` values.\"\n\nProduct URL mode handling:\n\n- `url` is required. If the user does not provide it, use the default only after showing it in the parameter confirmation table.\n- `url` must start with `https://www.ebay.com/`.\n- Submit `spider_id=ebay_ebay_by-url`.\n- Submit `spider_parameters` as a JSON string containing one or more objects like:\n\n```json\n[{\"url\":\"https://www.ebay.com/itm/187538926483?_skw=Apple&itmmeta=01K4KYKPQW7M913YDTWF9EJKQ4&hash=item2baa30eb93:g:VbMAAeSwtSRot5L8&itmprp=enc%3AAQAKAAAA4MHg7L1Zz0LA5DYYmRTS30kFPVExlz%2FTbUuctB71Yk%2FfQV0aiX%2BN2ICzGj8BIeYBUa7tIGv3VKEgsvuXC0PvIFFvjxEBfsALP5m0Rkcclb576wHpV5%2FGunXNmnt9grpWOipLuKMA0RDkORHa96xYJy8rg%2BYGIi2l2d0Iw2K%2FcLiqP7TlRBd1LsXAjnXShdLOq%2BFxcbaNCarcoIJ%2Fp5DgBLl5UK3WHBVGnpUQZqOMSz1JX0axUzL%2BxlVrnBGK0wekqYG6ShKyf5iRg5%2BY%2F35FueGxIeViMX5ZU5%2B8nFwIGsMl%7Ctkp%3ABFBMjOzO_qRm\"}]\n```\n\n## Category URL Mode Parameters\n\nUse this section only when the user chooses `category-url`.\n\n| Field | Required | Default | Location | Notes |\n| --- | --- | --- | --- | --- |\n| `url` | Yes | `https://www.ebay.com/b/Collectible-Japanese-Bells-1900-Now/165467/bn_3104829` | `spider_parameters` | eBay category URL. |\n| `Count` | No | `60` | `spider_parameters` | Count field required by this collector. Must be an integer greater than or equal to `0`. |\n| `count` | No | `60` | `spider_parameters` | Quantity field. Must be an integer greater than or equal to `0`. |\n| `file_name` | No | `{{TasksID}}` | Builder form field | Use the default when the user does not change it. |\n\nThen ask: \"Do you want to change any of these values before I submit the task?\"\n\nAlso ask: \"Do you want to collect multiple eBay category URL groups? If yes, provide multiple groups with `url`, `Count`, and `count`.\"\n\nCategory URL mode handling:\n\n- `url` is required. If the user does not provide it, use the default `https://www.ebay.com/b/Collectible-Japanese-Bells-1900-Now/165467/bn_3104829` only after showing it in the parameter confirmation table.\n- `url` must start with `https://www.ebay.com/`.\n- `Count` must be an integer greater than or equal to `0`.\n- `count` must be an integer greater than or equal to `0`.\n- Submit both `Count` and `count` exactly as separate fields.\n- Submit `spider_id=ebay_ebay_by-category-url`.\n- Submit `spider_parameters` as a JSON string containing one or more objects like:\n\n```json\n[{\"url\":\"https://www.ebay.com/b/Collectible-Japanese-Bells-1900-Now/165467/bn_3104829\",\"Count\":\"60\",\"count\":\"60\"}]\n```\n\n## Keyword Mode Parameters\n\nUse this section only when the user chooses `keywords`.\n\n| Field | Required | Default | Location | Notes |\n| --- | --- | --- | --- | --- |\n| `keywords` | Yes | `baby toys` | `spider_parameters` | eBay search keyword. |\n| `count` | No | `60` | `spider_parameters` | Quantity field. Must be an integer greater than or equal to `0`. |\n| `file_name` | No | `{{TasksID}}` | Builder form field | Use the default when the user does not change it. |\n\nThen ask: \"Do you want to change any of these values before I submit the task?\"\n\nAlso ask: \"Do you want to collect multiple eBay keyword groups? If yes, provide multiple groups with `keywords` and `count`.\"\n\nKeyword mode handling:\n\n- `keywords` is required. If the user does not provide it, use the default `baby toys` only after showing it in the parameter confirmation table.\n- `keywords` cannot be empty.\n- `count` must be an integer greater than or equal to `0`.\n- Submit `spider_id=ebay_ebay_by-keywords`.\n- Submit `spider_parameters` as a JSON string containing one or more objects like:\n\n```json\n[{\"keywords\":\"baby toys\",\"count\":\"60\"}]\n```\n\n## Store URL Mode Parameters\n\nUse this section only when the user chooses `listurl`.\n\n| Field | Required | Default | Location | Notes |\n| --- | --- | --- | --- | --- |\n| `url` | Yes | `https://www.ebay.com/str/kptradingdeals?_trksid=p4429486.m145687.l149086` | `spider_parameters` | eBay store URL. |\n| `count` | No | `60` | `spider_parameters` | Quantity field. Must be an integer greater than or equal to `0`. |\n| `file_name` | No | `{{TasksID}}` | Builder form field | Use the default when the user does not change it. |\n\nThen ask: \"Do you want to change any of these values before I submit the task?\"\n\nAlso ask: \"Do you want to collect multiple eBay store URL groups? If yes, provide multiple groups with `url` and `count`.\"\n\nStore URL mode handling:\n\n- `url` is required. If the user does not provide it, use the default `https://www.ebay.com/str/kptradingdeals?_trksid=p4429486.m145687.l149086` only after showing it in the parameter confirmation table.\n- `url` must start with `https://www.ebay.com/`.\n- `count` must be an integer greater than or equal to `0`.\n- Submit `spider_id=ebay_ebay_by-listurl`.\n- Submit `spider_parameters` as a JSON string containing one or more objects like:\n\n```json\n[{\"url\":\"https://www.ebay.com/str/kptradingdeals?_trksid=p4429486.m145687.l149086\",\"count\":\"60\"}]\n```\n\n## Shared File Name Handling\n\n- `file_name` defaults to `{{TasksID}}`.\n- If the user changes `file_name`, submit the user-provided value.\n- `file_name` cannot be empty.\n- Send `file_name` as a Builder form field.\n\n## Dataify Builder Request\n\nUse form fields rather than hand-built URL-encoded strings.\n\n- URL: `https://scraperapi.dataify.com/builder?platform=1`\n- Method: `POST`\n- Authorization header: `Bearer DATAIFY_API_TOKEN`\n- Content type: `application/x-www-form-urlencoded`\n- Fixed fields:\n  - `spider_name=ebay.com`\n  - `spider_errors=true`\n- Mode-specific field:\n  - Product URL mode: `spider_id=ebay_ebay_by-url`\n  - Category URL mode: `spider_id=ebay_ebay_by-category-url`\n  - Keyword mode: `spider_id=ebay_ebay_by-keywords`\n  - Store URL mode: `spider_id=ebay_ebay_by-listurl`\n- Default field:\n  - `file_name={{TasksID}}`\n- Dynamic field:\n  - `spider_parameters` must be a JSON string array.\n\n## Script\n\nFor stable execution, prefer `scripts/submit_dataify_ebay_products.py` with Python 3.6 or newer instead of rewriting the Builder flow.\n\nProduct URL mode:\n\n```powershell\npython3 \".\\scripts\\submit_dataify_ebay_products.py\" --mode url --url \"https://www.ebay.com/itm/187538926483?_skw=Apple&itmmeta=01K4KYKPQW7M913YDTWF9EJKQ4&hash=item2baa30eb93:g:VbMAAeSwtSRot5L8&itmprp=enc%3AAQAKAAAA4MHg7L1Zz0LA5DYYmRTS30kFPVExlz%2FTbUuctB71Yk%2FfQV0aiX%2BN2ICzGj8BIeYBUa7tIGv3VKEgsvuXC0PvIFFvjxEBfsALP5m0Rkcclb576wHpV5%2FGunXNmnt9grpWOipLuKMA0RDkORHa96xYJy8rg%2BYGIi2l2d0Iw2K%2FcLiqP7TlRBd1LsXAjnXShdLOq%2BFxcbaNCarcoIJ%2Fp5DgBLl5UK3WHBVGnpUQZqOMSz1JX0axUzL%2BxlVrnBGK0wekqYG6ShKyf5iRg5%2BY%2F35FueGxIeViMX5ZU5%2B8nFwIGsMl%7Ctkp%3ABFBMjOzO_qRm\"\n```\n\nCategory URL mode:\n\n```powershell\npython3 \".\\scripts\\submit_dataify_ebay_products.py\" --mode category-url --url \"https://www.ebay.com/b/Collectible-Japanese-Bells-1900-Now/165467/bn_3104829\" --count \"60\"\n```\n\nKeyword mode:\n\n```powershell\npython3 \".\\scripts\\submit_dataify_ebay_products.py\" --mode keywords --keywords \"baby toys\" --count \"60\"\n```\n\nStore URL mode:\n\n```powershell\npython3 \".\\scripts\\submit_dataify_ebay_products.py\" --mode listurl --url \"https://www.ebay.com/str/kptradingdeals?_trksid=p4429486.m145687.l149086\" --count \"60\"\n```\n\nTo override the saved environment token or file name:\n\n```powershell\npython3 \".\\scripts\\submit_dataify_ebay_products.py\" --api-token \"YOUR_DATAIFY_API_TOKEN\" --mode keywords --keywords \"baby toys\" --file-name \"{{TasksID}}\"\n```\n\nTo submit multiple product URL groups:\n\n```powershell\npython3 \".\\scripts\\submit_dataify_ebay_products.py\" --mode url --params-json '[{\"url\":\"https://www.ebay.com/itm/187538926483?_skw=Apple&itmmeta=01K4KYKPQW7M913YDTWF9EJKQ4&hash=item2baa30eb93:g:VbMAAeSwtSRot5L8&itmprp=enc%3AAQAKAAAA4MHg7L1Zz0LA5DYYmRTS30kFPVExlz%2FTbUuctB71Yk%2FfQV0aiX%2BN2ICzGj8BIeYBUa7tIGv3VKEgsvuXC0PvIFFvjxEBfsALP5m0Rkcclb576wHpV5%2FGunXNmnt9grpWOipLuKMA0RDkORHa96xYJy8rg%2BYGIi2l2d0Iw2K%2FcLiqP7TlRBd1LsXAjnXShdLOq%2BFxcbaNCarcoIJ%2Fp5DgBLl5UK3WHBVGnpUQZqOMSz1JX0axUzL%2BxlVrnBGK0wekqYG6ShKyf5iRg5%2BY%2F35FueGxIeViMX5ZU5%2B8nFwIGsMl%7Ctkp%3ABFBMjOzO_qRm\"},{\"url\":\"https://www.ebay.com/itm/187538926483?_skw=Apple&itmmeta=01K4KYKPQW7M913YDTWF9EJKQ4&hash=item2baa30eb93:g:VbMAAeSwtSRot5L8&itmprp=enc%3AAQAKAAAA4MHg7L1Zz0LA5DYYmRTS30kFPVExlz%2FTbUuctB71Yk%2FfQV0aiX%2BN2ICzGj8BIeYBUa7tIGv3VKEgsvuXC0PvIFFvjxEBfsALP5m0Rkcclb576wHpV5%2FGunXNmnt9grpWOipLuKMA0RDkORHa96xYJy8rg%2BYGIi2l2d0Iw2K%2FcLiqP7TlRBd1LsXAjnXShdLOq%2BFxcbaNCarcoIJ%2Fp5DgBLl5UK3WHBVGnpUQZqOMSz1JX0axUzL%2BxlVrnBGK0wekqYG6ShKyf5iRg5%2BY%2F35FueGxIeViMX5ZU5%2B8nFwIGsMl%7Ctkp%3ABFBMjOzO_qRm\"}]'\n```\n\nThe script prints a JSON summary with `mode`, `spider_id`, `task_id`, `status`, `parameters`, `file_name`, `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 they need to provide their Dataify API TOKEN, ask whether they want to save it as `DATAIFY_API_TOKEN`, or tell them they can register or log in at [Dataify](https://dashboard.dataify.com/login?utm_source=skill) to get one. If they already have a token, tell them it is in the top-right area of [Dataify](https://dashboard.dataify.com?utm_source=skill).\n\n`Unsupported mode` means the mode must be `url`, `category-url`, `keywords`, or `listurl`.\n\n`url must start with https://www.ebay.com/` means the URL is outside the allowed eBay domain.\n\n`keywords cannot be empty` means the keyword is missing.\n\n`Count must be an integer greater than or equal to 0` means the category Count field is invalid.\n\n`count must be an integer greater than or equal to 0` means the quantity field is invalid.\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 array, or the selected mode's object is missing required fields.\n\nMissing `task_id` usually means the authorization header, token, `spider_name`, selected `spider_id`, or `spider_parameters` is wrong.\n\n## Guardrails\n\n- Do not mix Product URL, Category URL, Keyword, and Store URL mode parameters in the same Builder request.\n- Do not submit a Builder request until the mode is clear.\n- Do not put `file_name` inside `spider_parameters`.\n- Do not use an eBay URL from outside `https://www.ebay.com/`.\n- Use only `API TOKEN` and `DATAIFY_API_TOKEN` when referring to authentication.\n- Do not hard-code local Python paths.\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-ebay-products\",\n  \"version\": \"1.2.0\",\n  \"publishedAt\": 1784190990768\n}\n\nFile v1.2.0:skill-card.md\n\n## Description: <br>\nDataify eBay Products helps agents submit Dataify Builder jobs for eBay product collection by product URL, category URL, keyword, or store URL. <br>\n\nThis skill is ready for commercial/non-commercial use. <br>\n\n## Publisher: <br>\n[dataify-server](https://clawhub.ai/user/dataify-server) <br>\n\n### License/Terms of Use: <br>\nMIT-0 <br>\n\n\n## Use Case: <br>\nExternal users and developers use this skill to configure and submit eBay product collection tasks through Dataify, then receive the resulting task ID, status, parameters, and dashboard link. <br>\n\n### Deployment Geography for Use: <br>\nGlobal <br>\n\n## Known Risks and Mitigations: <br>\nRisk: The skill can submit eBay product collection jobs to Dataify using network access. <br>\nMitigation: Install and invoke it only when the user intends to create Dataify eBay collection tasks, and confirm the collection mode and parameters before submission. <br>\nRisk: The skill uses a Dataify API TOKEN and may rely on a saved DATAIFY_API_TOKEN for future tasks. <br>\nMitigation: Review prompts before use and save DATAIFY_API_TOKEN only after explicit user confirmation in an environment where future Dataify task use is acceptable. <br>\n\n\n## Reference(s): <br>\n- [ClawHub skill page](https://clawhub.ai/dataify-server/skills/dataify-ebay-products) <br>\n- [Dataify dashboard](https://dashboard.dataify.com?utm_source=skill) <br>\n- [Dataify login](https://dashboard.dataify.com/login?utm_source=skill) <br>\n\n\n## Skill Output: <br>\n**Output Type(s):** [text, markdown, shell commands, configuration, guidance] <br>\n**Output Format:** [Markdown guidance with inline shell commands and JSON task-submission summaries] <br>\n**Output Parameters:** [1D] <br>\n**Other Properties Related to Output:** [Successful submissions return task_id, status, parameters, file_name, and a Dataify dashboard URL.] <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-ebay-products\ndescription: \"提交 Dataify eBay Product Information Builder 任务，支持四种 eBay 商品采集模式。当用户需要 eBay product information collection tool、采集/抓取/爬取 eBay 商品信息，按 URL、category URL、keyword、store URL 采集 eBay 商品，创建 ebay_ebay_by-url、ebay_ebay_by-category-url、ebay_ebay_by-keywords 或 ebay_ebay_by-listurl 任务，或表达 eBay 产品信息采集/抓取、产品 URL/类别 URL/关键词/店铺网址采集等含义时使用。也用于接收 task_id/status、配置 DATAIFY_API_TOKEN 或排查此 Dataify Builder 请求。\"\n---\n\n# Dataify eBay Products\n\n通过 Dataify Builder 提交 eBay 产品信息采集任务。本技能是四种采集模式的引导封装：\n\n| 模式 | 采集器 ID | 用途 |\n| --- | --- | --- |\n| 产品 URL | `ebay_ebay_by-url` | 通过产品 URL 采集一个或多个 eBay 产品。 |\n| 类别 URL | `ebay_ebay_by-category-url` | 通过类别 URL 采集 eBay 产品。 |\n| 关键词 | `ebay_ebay_by-keywords` | 通过搜索关键词采集 eBay 产品。 |\n| 店铺 URL | `ebay_ebay_by-listurl` | 通过店铺 URL 采集 eBay 产品。 |\n\n提交成功后，向用户提供 `task_id`、返回的或推断的状态，并告知用户前往 [Dataify](https://dashboard.dataify.com?utm_source=skill) 查看结果。\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。\n- 如果用户没有 API TOKEN，告知用户可以在 [Dataify](https://dashboard.dataify.com/login?utm_source=skill) 注册或登录以获取。\n- 如果用户已有 API TOKEN，告知用户可以在 [Dataify](https://dashboard.dataify.com?utm_source=skill) 右上角找到。\n- 用户提供 API TOKEN 后，如果本地未保存 `DATAIFY_API_TOKEN`，询问是否将其保存为 `DATAIFY_API_TOKEN` 以供后续使用。\n- 如果用户希望保存，提供适合其 shell 的命令并要求其执行；不要在未经确认的情况下静默保存 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. 首先询问用户选择采集模式：`url`、`category-url`、`keywords` 或 `listurl`。\n2. 用户选择模式后，仅展示该模式的参数表格和默认值。\n3. 询问用户是否需要在运行任务前修改任何值。\n4. 询问用户是否需要为所选模式采集多组 eBay 产品。\n5. 将最终值规范化为仅包含所选模式的参数对象列表。\n6. 从显式输入或已保存的 `DATAIFY_API_TOKEN` 中获取 Dataify token。\n7. 如果没有可用的 token，要求用户输入 API TOKEN 并询问是否将其保存为 `DATAIFY_API_TOKEN`。\n8. 验证所选模式、URL、关键词、数值和文件名。\n9. 使用所选模式的 `spider_id` 提交 Builder 请求。\n10. 从 Builder 响应中读取 `data.task_id`，并在存在时读取 `data.status` 或 `status`。\n11. Builder 成功后停止。\n12. 告知用户前往 [Dataify](https://dashboard.dataify.com?utm_source=skill) 查看或管理结果。\n\n## 模式选择\n\n当用户调用此技能时，首先展示以下 Markdown 表格并要求选择一种模式：\n\n| 标签 | 值 |\n| --- | --- |\n| 通过产品 URL 采集 eBay 产品 | `url` |\n| 通过类别 URL 采集 eBay 产品 | `category-url` |\n| 通过关键词采集 eBay 产品 | `keywords` |\n| 通过店铺 URL 采集 eBay 产品 | `listurl` |\n\n询问：\"您想使用哪种采集模式：`url`、`category-url`、`keywords` 还是 `listurl`？\"\n\n在模式明确之前不要提交 Builder 请求。\n\n## 产品 URL 模式参数\n\n仅当用户选择 `url` 时使用本节。\n\n| 字段 | 必填 | 默认值 | 位置 | 说明 |\n| --- | --- | --- | --- | --- |\n| `url` | 是 | `https://www.ebay.com/itm/187538926483?_skw=Apple&itmmeta=01K4KYKPQW7M913YDTWF9EJKQ4&hash=item2baa30eb93:g:VbMAAeSwtSRot5L8&itmprp=enc%3AAQAKAAAA4MHg7L1Zz0LA5DYYmRTS30kFPVExlz%2FTbUuctB71Yk%2FfQV0aiX%2BN2ICzGj8BIeYBUa7tIGv3VKEgsvuXC0PvIFFvjxEBfsALP5m0Rkcclb576wHpV5%2FGunXNmnt9grpWOipLuKMA0RDkORHa96xYJy8rg%2BYGIi2l2d0Iw2K%2FcLiqP7TlRBd1LsXAjnXShdLOq%2BFxcbaNCarcoIJ%2Fp5DgBLl5UK3WHBVGnpUQZqOMSz1JX0axUzL%2BxlVrnBGK0wekqYG6ShKyf5iRg5%2BY%2F35FueGxIeViMX5ZU5%2B8nFwIGsMl%7Ctkp%3ABFBMjOzO_qRm` | `spider_parameters` | eBay 产品 URL。 |\n| `file_name` | 否 | `{{TasksID}}` | Builder 表单字段 | 用户未更改时使用默认值。 |\n\n然后询问：\"您是否需要在提交任务前修改这些值？\"\n\n同时询问：\"您是否需要采集多组 eBay 产品 URL？如果是，请提供多个 `url` 值。\"\n\n产品 URL 模式处理：\n\n- `url` 为必填项。如果用户未提供，仅在参数确认表格中展示后才使用默认值。\n- `url` 必须以 `https://www.ebay.com/` 开头。\n- 提交 `spider_id=ebay_ebay_by-url`。\n- 将 `spider_parameters` 作为包含一个或多个对象的 JSON 字符串提交，格式如下：\n\n```json\n[{\"url\":\"https://www.ebay.com/itm/187538926483?_skw=Apple&itmmeta=01K4KYKPQW7M913YDTWF9EJKQ4&hash=item2baa30eb93:g:VbMAAeSwtSRot5L8&itmprp=enc%3AAQAKAAAA4MHg7L1Zz0LA5DYYmRTS30kFPVExlz%2FTbUuctB71Yk%2FfQV0aiX%2BN2ICzGj8BIeYBUa7tIGv3VKEgsvuXC0PvIFFvjxEBfsALP5m0Rkcclb576wHpV5%2FGunXNmnt9grpWOipLuKMA0RDkORHa96xYJy8rg%2BYGIi2l2d0Iw2K%2FcLiqP7TlRBd1LsXAjnXShdLOq%2BFxcbaNCarcoIJ%2Fp5DgBLl5UK3WHBVGnpUQZqOMSz1JX0axUzL%2BxlVrnBGK0wekqYG6ShKyf5iRg5%2BY%2F35FueGxIeViMX5ZU5%2B8nFwIGsMl%7Ctkp%3ABFBMjOzO_qRm\"}]\n```\n\n## 类别 URL 模式参数\n\n仅当用户选择 `category-url` 时使用本节。\n\n| 字段 | 必填 | 默认值 | 位置 | 说明 |\n| --- | --- | --- | --- | --- |\n| `url` | 是 | `https://www.ebay.com/b/Collectible-Japanese-Bells-1900-Now/165467/bn_3104829` | `spider_parameters` | eBay 类别 URL。 |\n| `Count` | 否 | `60` | `spider_parameters` | 此采集器要求的 Count 字段。必须为大于或等于 `0` 的整数。 |\n| `count` | 否 | `60` | `spider_parameters` | 数量字段。必须为大于或等于 `0` 的整数。 |\n| `file_name` | 否 | `{{TasksID}}` | Builder 表单字段 | 用户未更改时使用默认值。 |\n\n然后询问：\"您是否需要在提交任务前修改这些值？\"\n\n同时询问：\"您是否需要采集多组 eBay 类别 URL？如果是，请提供多组 `url`、`Count` 和 `count`。\"\n\n类别 URL 模式处理：\n\n- `url` 为必填项。如果用户未提供，仅在参数确认表格中展示后才使用默认值 `https://www.ebay.com/b/Collectible-Japanese-Bells-1900-Now/165467/bn_3104829`。\n- `url` 必须以 `https://www.ebay.com/` 开头。\n- `Count` 必须为大于或等于 `0` 的整数。\n- `count` 必须为大于或等于 `0` 的整数。\n- 必须将 `Count` 和 `count` 作为独立字段分别提交。\n- 提交 `spider_id=ebay_ebay_by-category-url`。\n- 将 `spider_parameters` 作为包含一个或多个对象的 JSON 字符串提交，格式如下：\n\n```json\n[{\"url\":\"https://www.ebay.com/b/Collectible-Japanese-Bells-1900-Now/165467/bn_3104829\",\"Count\":\"60\",\"count\":\"60\"}]\n```\n\n## 关键词模式参数\n\n仅当用户选择 `keywords` 时使用本节。\n\n| 字段 | 必填 | 默认值 | 位置 | 说明 |\n| --- | --- | --- | --- | --- |\n| `keywords` | 是 | `baby toys` | `spider_parameters` | eBay 搜索关键词。 |\n| `count` | 否 | `60` | `spider_parameters` | 数量字段。必须为大于或等于 `0` 的整数。 |\n| `file_name` | 否 | `{{TasksID}}` | Builder 表单字段 | 用户未更改时使用默认值。 |\n\n然后询问：\"您是否需要在提交任务前修改这些值？\"\n\n同时询问：\"您是否需要采集多组 eBay 关键词？如果是，请提供多组 `keywords` 和 `count`。\"\n\n关键词模式处理：\n\n- `keywords` 为必填项。如果用户未提供，仅在参数确认表格中展示后才使用默认值 `baby toys`。\n- `keywords` 不能为空。\n- `count` 必须为大于或等于 `0` 的整数。\n- 提交 `spider_id=ebay_ebay_by-keywords`。\n- 将 `spider_parameters` 作为包含一个或多个对象的 JSON 字符串提交，格式如下：\n\n```json\n[{\"keywords\":\"baby toys\",\"count\":\"60\"}]\n```\n\n## 店铺 URL 模式参数\n\n仅当用户选择 `listurl` 时使用本节。\n\n| 字段 | 必填 | 默认值 | 位置 | 说明 |\n| --- | --- | --- | --- | --- |\n| `url` | 是 | `https://www.ebay.com/str/kptradingdeals?_trksid=p4429486.m145687.l149086` | `spider_parameters` | eBay 店铺 URL。 |\n| `count` | 否 | `60` | `spider_parameters` | 数量字段。必须为大于或等于 `0` 的整数。 |\n| `file_name` | 否 | `{{TasksID}}` | Builder 表单字段 | 用户未更改时使用默认值。 |\n\n然后询问：\"您是否需要在提交任务前修改这些值？\"\n\n同时询问：\"您是否需要采集多组 eBay 店铺 URL？如果是，请提供多组 `url` 和 `count`。\"\n\n店铺 URL 模式处理：\n\n- `url` 为必填项。如果用户未提供，仅在参数确认表格中展示后才使用默认值 `https://www.ebay.com/str/kptradingdeals?_trksid=p4429486.m145687.l149086`。\n- `url` 必须以 `https://www.ebay.com/` 开头。\n- `count` 必须为大于或等于 `0` 的整数。\n- 提交 `spider_id=ebay_ebay_by-listurl`。\n- 将 `spider_parameters` 作为包含一个或多个对象的 JSON 字符串提交，格式如下：\n\n```json\n[{\"url\":\"https://www.ebay.com/str/kptradingdeals?_trksid=p4429486.m145687.l149086\",\"count\":\"60\"}]\n```\n\n## 共享文件名处理\n\n- `file_name` 默认为 `{{TasksID}}`。\n- 如果用户更改了 `file_name`，提交用户提供的值。\n- `file_name` 不能为空。\n- 将 `file_name` 作为 Builder 表单字段发送。\n\n## Dataify Builder 请求\n\n使用表单字段而非手动构建的 URL 编码字符串。\n\n- URL：`https://scraperapi.dataify.com/builder?platform=1`\n- 方法：`POST`\n- Authorization 请求头：`Bearer DATAIFY_API_TOKEN`\n- Content type：`application/x-www-form-urlencoded`\n- 固定字段：\n  - `spider_name=ebay.com`\n  - `spider_errors=true`\n- 模式特定字段：\n  - 产品 URL 模式：`spider_id=ebay_ebay_by-url`\n  - 类别 URL 模式：`spider_id=ebay_ebay_by-category-url`\n  - 关键词模式：`spider_id=ebay_ebay_by-keywords`\n  - 店铺 URL 模式：`spider_id=ebay_ebay_by-listurl`\n- 默认字段：\n  - `file_name={{TasksID}}`\n- 动态字段：\n  - `spider_parameters` 必须为 JSON 字符串数组。\n\n## 脚本\n\n为确保稳定执行，优先使用 Python 3.6 或更新版本运行 `scripts/submit_dataify_ebay_products.py`，而非重写 Builder 流程。\n\n产品 URL 模式：\n\n```powershell\npython3 \".\\scripts\\submit_dataify_ebay_products.py\" --mode url --url \"https://www.ebay.com/itm/187538926483?_skw=Apple&itmmeta=01K4KYKPQW7M913YDTWF9EJKQ4&hash=item2baa30eb93:g:VbMAAeSwtSRot5L8&itmprp=enc%3AAQAKAAAA4MHg7L1Zz0LA5DYYmRTS30kFPVExlz%2FTbUuctB71Yk%2FfQV0aiX%2BN2ICzGj8BIeYBUa7tIGv3VKEgsvuXC0PvIFFvjxEBfsALP5m0Rkcclb576wHpV5%2FGunXNmnt9grpWOipLuKMA0RDkORHa96xYJy8rg%2BYGIi2l2d0Iw2K%2FcLiqP7TlRBd1LsXAjnXShdLOq%2BFxcbaNCarcoIJ%2Fp5DgBLl5UK3WHBVGnpUQZqOMSz1JX0axUzL%2BxlVrnBGK0wekqYG6ShKyf5iRg5%2BY%2F35FueGxIeViMX5ZU5%2B8nFwIGsMl%7Ctkp%3ABFBMjOzO_qRm\"\n```\n\n类别 URL 模式：\n\n```powershell\npython3 \".\\scripts\\submit_dataify_ebay_products.py\" --mode category-url --url \"https://www.ebay.com/b/Collectible-Japanese-Bells-1900-Now/165467/bn_3104829\" --count \"60\"\n```\n\n关键词模式：\n\n```powershell\npython3 \".\\scripts\\submit_dataify_ebay_products.py\" --mode keywords --keywords \"baby toys\" --count \"60\"\n```\n\n店铺 URL 模式：\n\n```powershell\npython3 \".\\scripts\\submit_dataify_ebay_products.py\" --mode listurl --url \"https://www.ebay.com/str/kptradingdeals?_trksid=p4429486.m145687.l149086\" --count \"60\"\n```\n\n覆盖已保存的环境 token 或文件名：\n\n```powershell\npython3 \".\\scripts\\submit_dataify_ebay_products.py\" --api-token \"YOUR_DATAIFY_API_TOKEN\" --mode keywords --keywords \"baby toys\" --file-name \"{{TasksID}}\"\n```\n\n提交多组产品 URL：\n\n```powershell\npython3 \".\\scripts\\submit_dataify_ebay_products.py\" --mode url --params-json '[{\"url\":\"https://www.ebay.com/itm/187538926483?_skw=Apple&itmmeta=01K4KYKPQW7M913YDTWF9EJKQ4&hash=item2baa30eb93:g:VbMAAeSwtSRot5L8&itmprp=enc%3AAQAKAAAA4MHg7L1Zz0LA5DYYmRTS30kFPVExlz%2FTbUuctB71Yk%2FfQV0aiX%2BN2ICzGj8BIeYBUa7tIGv3VKEgsvuXC0PvIFFvjxEBfsALP5m0Rkcclb576wHpV5%2FGunXNmnt9grpWOipLuKMA0RDkORHa96xYJy8rg%2BYGIi2l2d0Iw2K%2FcLiqP7TlRBd1LsXAjnXShdLOq%2BFxcbaNCarcoIJ%2Fp5DgBLl5UK3WHBVGnpUQZqOMSz1JX0axUzL%2BxlVrnBGK0wekqYG6ShKyf5iRg5%2BY%2F35FueGxIeViMX5ZU5%2B8nFwIGsMl%7Ctkp%3ABFBMjOzO_qRm\"},{\"url\":\"https://www.ebay.com/itm/187538926483?_skw=Apple&itmmeta=01K4KYKPQW7M913YDTWF9EJKQ4&hash=item2baa30eb93:g:VbMAAeSwtSRot5L8&itmprp=enc%3AAQAKAAAA4MHg7L1Zz0LA5DYYmRTS30kFPVExlz%2FTbUuctB71Yk%2FfQV0aiX%2BN2ICzGj8BIeYBUa7tIGv3VKEgsvuXC0PvIFFvjxEBfsALP5m0Rkcclb576wHpV5%2FGunXNmnt9grpWOipLuKMA0RDkORHa96xYJy8rg%2BYGIi2l2d0Iw2K%2FcLiqP7TlRBd1LsXAjnXShdLOq%2BFxcbaNCarcoIJ%2Fp5DgBLl5UK3WHBVGnpUQZqOMSz1JX0axUzL%2BxlVrnBGK0wekqYG6ShKyf5iRg5%2BY%2F35FueGxIeViMX5ZU5%2B8nFwIGsMl%7Ctkp%3ABFBMjOzO_qRm\"}]'\n```\n\n脚本会打印包含 `mode`、`spider_id`、`task_id`、`status`、`parameters`、`file_name`、`dashboard_url` 和 `message` 的 JSON 摘要。\n\n## 故障排除\n\n`Missing Dataify API TOKEN` 表示未传递显式 token 且本地未保存 `DATAIFY_API_TOKEN`。告知用户需要提供 Dataify API TOKEN，询问是否将其保存为 `DATAIFY_API_TOKEN`，或告知用户可以在 [Dataify](https://dashboard.dataify.com/login?utm_source=skill) 注册或登录以获取。如果用户已有 token，告知其位于 [Dataify](https://dashboard.dataify.com?utm_source=skill) 右上角。\n\n`Unsupported mode` 表示模式必须为 `url`、`category-url`、`keywords` 或 `listurl`。\n\n`url must start with https://www.ebay.com/` 表示 URL 不在允许的 eBay 域名范围内。\n\n`keywords cannot be empty` 表示缺少关键词。\n\n`Count must be an integer greater than or equal to 0` 表示类别 Count 字段无效。\n\n`count must be an integer greater than or equal to 0` 表示数量字段无效。\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` 或 `spider_parameters` 有误。\n\n## 安全规则\n\n- 不要在同一个 Builder 请求中混合产品 URL、类别 URL、关键词和店铺 URL 模式的参数。\n- 在模式明确之前不要提交 Builder 请求。\n- 不要将 `file_name` 放入 `spider_parameters` 中。\n- 不要使用 `https://www.ebay.com/` 以外的 eBay URL。\n- 提及身份验证时仅使用 `API TOKEN` 和 `DATAIFY_API_TOKEN`。\n- 不要硬编码本地 Python 路径。\n- 不要编造结果字段。\n- 任务创建成功后始终引导用户前往 [Dataify](https://dashboard.dataify.com?utm_source=skill)。\n\nFile v1.2.0:agents/openai.yaml\n\ninterface:\n  display_name: \"Dataify eBay Products\"\n  short_description: \"Submit Dataify eBay product tasks by URL, category URL, keyword, or store URL\"\n  icon_small: \"./assets/dataify-ebay-products-small.svg\"\n  icon_large: \"./assets/dataify-ebay-products-large.svg\"\n  default_prompt: \"Use $dataify-ebay-products to submit eBay product Builder tasks by URL, category URL, keyword, or store URL through Dataify and return the task_id and status.\"\n\npolicy:\n  allow_implicit_invocation: true\n\nArchive v1.1.0: 8 files, 15059 bytes\n\nFiles: agents/openai.yaml (488b), assets/dataify-ebay-products-large.svg (696b), assets/dataify-ebay-products-small.svg (635b), scripts/submit_dataify_ebay_products.py (9481b), skill-card.md (2413b), SKILL.md (16375b), SKILL.zh-CN.md (15524b), _meta.json (140b)\n\nFile v1.1.0:SKILL.md\n\n---\nname: dataify-ebay-products\ndescription: Submit Dataify eBay Product Information Builder tasks for four eBay product collection modes. Use when the user wants the eBay product information collection tool, collect eBay products, scrape eBay product information, crawl eBay product data, collect eBay products by URL, collect eBay products by category URL, collect eBay products by keyword, collect eBay products by store URL, create Dataify ebay_ebay_by-url, ebay_ebay_by-category-url, ebay_ebay_by-keywords, or ebay_ebay_by-listurl tasks, or asks in Chinese with meanings like \"eBay 产品信息采集\", \"eBay 产品信息抓取\", \"eBay产品采集\", \"eBay产品抓取\", \"eBay产品URL采集\", \"eBay类别URL采集\", \"eBay关键词采集\", \"eBay店铺网址采集\", or similar eBay product noun plus collection/scraping action wording. Also use when receiving task_id/status, configuring DATAIFY_API_TOKEN, or troubleshooting this Dataify Builder request.\n---\n\n# Dataify eBay Products\n\nSubmit eBay product information collection jobs through Dataify Builder. This skill is a guided wrapper for four collection modes:\n\n| Mode | Collector ID | Use For |\n| --- | --- | --- |\n| Product URL | `ebay_ebay_by-url` | Collecting one or more eBay products by product URL. |\n| Category URL | `ebay_ebay_by-category-url` | Collecting eBay products by category URL. |\n| Keyword | `ebay_ebay_by-keywords` | Collecting eBay products by search keyword. |\n| Store URL | `ebay_ebay_by-listurl` | Collecting eBay products by store URL. |\n\nAfter a successful submission, give the user the `task_id`, the returned or inferred status, and tell them to visit [Dataify](https://dashboard.dataify.com?utm_source=skill) to view results.\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 without asking the user to re-enter the token.\n- If no token is available locally, tell the user they need to provide a Dataify API TOKEN.\n- If the user does not have an API TOKEN, tell them they can register or log in at [Dataify](https://dashboard.dataify.com/login?utm_source=skill) to get one.\n- If the user already has an API TOKEN, tell them it is available in the top-right area of [Dataify](https://dashboard.dataify.com?utm_source=skill).\n- After the user provides an API TOKEN and no local `DATAIFY_API_TOKEN` is saved, ask whether they want to save it locally as `DATAIFY_API_TOKEN` for future use.\n- If the user wants to save it, give the appropriate command for their shell and ask them to run it; do not silently persist tokens without confirmation.\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. First ask the user to choose a collection mode: `url`, `category-url`, `keywords`, or `listurl`.\n2. After the user chooses a mode, show only that mode's parameter table and defaults.\n3. Ask whether the user wants to change any value before running the task.\n4. Ask whether the user wants to collect multiple eBay product groups for the selected mode.\n5. Normalize the final values into a list of parameter objects for the selected mode only.\n6. Resolve the Dataify token from explicit input or saved `DATAIFY_API_TOKEN`.\n7. If no token is available, ask the user to enter their API TOKEN and ask whether to save it as `DATAIFY_API_TOKEN`.\n8. Validate the selected mode, URLs, keyword, numeric values, and file name.\n9. Submit the Builder request with the selected mode's `spider_id`.\n10. Read `data.task_id` from the Builder response and read `data.status` or `status` when present.\n11. Stop after Builder succeeds.\n12. Tell the user to visit [Dataify](https://dashboard.dataify.com?utm_source=skill) to view or manage results.\n\n## Mode Selection\n\nWhen the user invokes this skill, first show this Markdown table and ask them to choose one mode:\n\n| Label | Value |\n| --- | --- |\n| Collect eBay products by product URL | `url` |\n| Collect eBay products by category URL | `category-url` |\n| Collect eBay products by keyword | `keywords` |\n| Collect eBay products by store URL | `listurl` |\n\nAsk: \"Which collection mode do you want to use: `url`, `category-url`, `keywords`, or `listurl`?\"\n\nDo not submit a Builder request until the mode is clear.\n\n## Product URL Mode Parameters\n\nUse this section only when the user chooses `url`.\n\n| Field | Required | Default | Location | Notes |\n| --- | --- | --- | --- | --- |\n| `url` | Yes | `https://www.ebay.com/itm/187538926483?_skw=Apple&itmmeta=01K4KYKPQW7M913YDTWF9EJKQ4&hash=item2baa30eb93:g:VbMAAeSwtSRot5L8&itmprp=enc%3AAQAKAAAA4MHg7L1Zz0LA5DYYmRTS30kFPVExlz%2FTbUuctB71Yk%2FfQV0aiX%2BN2ICzGj8BIeYBUa7tIGv3VKEgsvuXC0PvIFFvjxEBfsALP5m0Rkcclb576wHpV5%2FGunXNmnt9grpWOipLuKMA0RDkORHa96xYJy8rg%2BYGIi2l2d0Iw2K%2FcLiqP7TlRBd1LsXAjnXShdLOq%2BFxcbaNCarcoIJ%2Fp5DgBLl5UK3WHBVGnpUQZqOMSz1JX0axUzL%2BxlVrnBGK0wekqYG6ShKyf5iRg5%2BY%2F35FueGxIeViMX5ZU5%2B8nFwIGsMl%7Ctkp%3ABFBMjOzO_qRm` | `spider_parameters` | eBay product URL. |\n| `file_name` | No | `{{TasksID}}` | Builder form field | Use the default when the user does not change it. |\n\nThen ask: \"Do you want to change any of these values before I submit the task?\"\n\nAlso ask: \"Do you want to collect multiple eBay product URL groups? If yes, provide multiple `url` values.\"\n\nProduct URL mode handling:\n\n- `url` is required. If the user does not provide it, use the default only after showing it in the parameter confirmation table.\n- `url` must start with `https://www.ebay.com/`.\n- Submit `spider_id=ebay_ebay_by-url`.\n- Submit `spider_parameters` as a JSON string containing one or more objects like:\n\n```json\n[{\"url\":\"https://www.ebay.com/itm/187538926483?_skw=Apple&itmmeta=01K4KYKPQW7M913YDTWF9EJKQ4&hash=item2baa30eb93:g:VbMAAeSwtSRot5L8&itmprp=enc%3AAQAKAAAA4MHg7L1Zz0LA5DYYmRTS30kFPVExlz%2FTbUuctB71Yk%2FfQV0aiX%2BN2ICzGj8BIeYBUa7tIGv3VKEgsvuXC0PvIFFvjxEBfsALP5m0Rkcclb576wHpV5%2FGunXNmnt9grpWOipLuKMA0RDkORHa96xYJy8rg%2BYGIi2l2d0Iw2K%2FcLiqP7TlRBd1LsXAjnXShdLOq%2BFxcbaNCarcoIJ%2Fp5DgBLl5UK3WHBVGnpUQZqOMSz1JX0axUzL%2BxlVrnBGK0wekqYG6ShKyf5iRg5%2BY%2F35FueGxIeViMX5ZU5%2B8nFwIGsMl%7Ctkp%3ABFBMjOzO_qRm\"}]\n```\n\n## Category URL Mode Parameters\n\nUse this section only when the user chooses `category-url`.\n\n| Field | Required | Default | Location | Notes |\n| --- | --- | --- | --- | --- |\n| `url` | Yes | `https://www.ebay.com/b/Collectible-Japanese-Bells-1900-Now/165467/bn_3104829` | `spider_parameters` | eBay category URL. |\n| `Count` | No | `60` | `spider_parameters` | Count field required by this collector. Must be an integer greater than or equal to `0`. |\n| `count` | No | `60` | `spider_parameters` | Quantity field. Must be an integer greater than or equal to `0`. |\n| `file_name` | No | `{{TasksID}}` | Builder form field | Use the default when the user does not change it. |\n\nThen ask: \"Do you want to change any of these values before I submit the task?\"\n\nAlso ask: \"Do you want to collect multiple eBay category URL groups? If yes, provide multiple groups with `url`, `Count`, and `count`.\"\n\nCategory URL mode handling:\n\n- `url` is required. If the user does not provide it, use the default `https://www.ebay.com/b/Collectible-Japanese-Bells-1900-Now/165467/bn_3104829` only after showing it in the parameter confirmation table.\n- `url` must start with `https://www.ebay.com/`.\n- `Count` must be an integer greater than or equal to `0`.\n- `count` must be an integer greater than or equal to `0`.\n- Submit both `Count` and `count` exactly as separate fields.\n- Submit `spider_id=ebay_ebay_by-category-url`.\n- Submit `spider_parameters` as a JSON string containing one or more objects like:\n\n```json\n[{\"url\":\"https://www.ebay.com/b/Collectible-Japanese-Bells-1900-Now/165467/bn_3104829\",\"Count\":\"60\",\"count\":\"60\"}]\n```\n\n## Keyword Mode Parameters\n\nUse this section only when the user chooses `keywords`.\n\n| Field | Required | Default | Location | Notes |\n| --- | --- | --- | --- | --- |\n| `keywords` | Yes | `baby toys` | `spider_parameters` | eBay search keyword. |\n| `count` | No | `60` | `spider_parameters` | Quantity field. Must be an integer greater than or equal to `0`. |\n| `file_name` | No | `{{TasksID}}` | Builder form field | Use the default when the user does not change it. |\n\nThen ask: \"Do you want to change any of these values before I submit the task?\"\n\nAlso ask: \"Do you want to collect multiple eBay keyword groups? If yes, provide multiple groups with `keywords` and `count`.\"\n\nKeyword mode handling:\n\n- `keywords` is required. If the user does not provide it, use the default `baby toys` only after showing it in the parameter confirmation table.\n- `keywords` cannot be empty.\n- `count` must be an integer greater than or equal to `0`.\n- Submit `spider_id=ebay_ebay_by-keywords`.\n- Submit `spider_parameters` as a JSON string containing one or more objects like:\n\n```json\n[{\"keywords\":\"baby toys\",\"count\":\"60\"}]\n```\n\n## Store URL Mode Parameters\n\nUse this section only when the user chooses `listurl`.\n\n| Field | Required | Default | Location | Notes |\n| --- | --- | --- | --- | --- |\n| `url` | Yes | `https://www.ebay.com/str/kptradingdeals?_trksid=p4429486.m145687.l149086` | `spider_parameters` | eBay store URL. |\n| `count` | No | `60` | `spider_parameters` | Quantity field. Must be an integer greater than or equal to `0`. |\n| `file_name` | No | `{{TasksID}}` | Builder form field | Use the default when the user does not change it. |\n\nThen ask: \"Do you want to change any of these values before I submit the task?\"\n\nAlso ask: \"Do you want to collect multiple eBay store URL groups? If yes, provide multiple groups with `url` and `count`.\"\n\nStore URL mode handling:\n\n- `url` is required. If the user does not provide it, use the default `https://www.ebay.com/str/kptradingdeals?_trksid=p4429486.m145687.l149086` only after showing it in the parameter confirmation table.\n- `url` must start with `https://www.ebay.com/`.\n- `count` must be an integer greater than or equal to `0`.\n- Submit `spider_id=ebay_ebay_by-listurl`.\n- Submit `spider_parameters` as a JSON string containing one or more objects like:\n\n```json\n[{\"url\":\"https://www.ebay.com/str/kptradingdeals?_trksid=p4429486.m145687.l149086\",\"count\":\"60\"}]\n```\n\n## Shared File Name Handling\n\n- `file_name` defaults to `{{TasksID}}`.\n- If the user changes `file_name`, submit the user-provided value.\n- `file_name` cannot be empty.\n- Send `file_name` as a Builder form field.\n\n## Dataify Builder Request\n\nUse form fields rather than hand-built URL-encoded strings.\n\n- URL: `https://scraperapi.dataify.com/builder?platform=1`\n- Method: `POST`\n- Authorization header: `Bearer DATAIFY_API_TOKEN`\n- Content type: `application/x-www-form-urlencoded`\n- Fixed fields:\n  - `spider_name=ebay.com`\n  - `spider_errors=true`\n- Mode-specific field:\n  - Product URL mode: `spider_id=ebay_ebay_by-url`\n  - Category URL mode: `spider_id=ebay_ebay_by-category-url`\n  - Keyword mode: `spider_id=ebay_ebay_by-keywords`\n  - Store URL mode: `spider_id=ebay_ebay_by-listurl`\n- Default field:\n  - `file_name={{TasksID}}`\n- Dynamic field:\n  - `spider_parameters` must be a JSON string array.\n\n## Script\n\nFor stable execution, prefer `scripts/submit_dataify_ebay_products.py` with Python 3.6 or newer instead of rewriting the Builder flow.\n\nProduct URL mode:\n\n```powershell\npython3 \".\\scripts\\submit_dataify_ebay_products.py\" --mode url --url \"https://www.ebay.com/itm/187538926483?_skw=Apple&itmmeta=01K4KYKPQW7M913YDTWF9EJKQ4&hash=item2baa30eb93:g:VbMAAeSwtSRot5L8&itmprp=enc%3AAQAKAAAA4MHg7L1Zz0LA5DYYmRTS30kFPVExlz%2FTbUuctB71Yk%2FfQV0aiX%2BN2ICzGj8BIeYBUa7tIGv3VKEgsvuXC0PvIFFvjxEBfsALP5m0Rkcclb576wHpV5%2FGunXNmnt9grpWOipLuKMA0RDkORHa96xYJy8rg%2BYGIi2l2d0Iw2K%2FcLiqP7TlRBd1LsXAjnXShdLOq%2BFxcbaNCarcoIJ%2Fp5DgBLl5UK3WHBVGnpUQZqOMSz1JX0axUzL%2BxlVrnBGK0wekqYG6ShKyf5iRg5%2BY%2F35FueGxIeViMX5ZU5%2B8nFwIGsMl%7Ctkp%3ABFBMjOzO_qRm\"\n```\n\nCategory URL mode:\n\n```powershell\npython3 \".\\scripts\\submit_dataify_ebay_products.py\" --mode category-url --url \"https://www.ebay.com/b/Collectible-Japanese-Bells-1900-Now/165467/bn_3104829\" --count \"60\"\n```\n\nKeyword mode:\n\n```powershell\npython3 \".\\scripts\\submit_dataify_ebay_products.py\" --mode keywords --keywords \"baby toys\" --count \"60\"\n```\n\nStore URL mode:\n\n```powershell\npython3 \".\\scripts\\submit_dataify_ebay_products.py\" --mode listurl --url \"https://www.ebay.com/str/kptradingdeals?_trksid=p4429486.m145687.l149086\" --count \"60\"\n```\n\nTo override the saved environment token or file name:\n\n```powershell\npython3 \".\\scripts\\submit_dataify_ebay_products.py\" --api-token \"YOUR_DATAIFY_API_TOKEN\" --mode keywords --keywords \"baby toys\" --file-name \"{{TasksID}}\"\n```\n\nTo submit multiple product URL groups:\n\n```powershell\npython3 \".\\scripts\\submit_dataify_ebay_products.py\" --mode url --params-json '[{\"url\":\"https://www.ebay.com/itm/187538926483?_skw=Apple&itmmeta=01K4KYKPQW7M913YDTWF9EJKQ4&hash=item2baa30eb93:g:VbMAAeSwtSRot5L8&itmprp=enc%3AAQAKAAAA4MHg7L1Zz0LA5DYYmRTS30kFPVExlz%2FTbUuctB71Yk%2FfQV0aiX%2BN2ICzGj8BIeYBUa7tIGv3VKEgsvuXC0PvIFFvjxEBfsALP5m0Rkcclb576wHpV5%2FGunXNmnt9grpWOipLuKMA0RDkORHa96xYJy8rg%2BYGIi2l2d0Iw2K%2FcLiqP7TlRBd1LsXAjnXShdLOq%2BFxcbaNCarcoIJ%2Fp5DgBLl5UK3WHBVGnpUQZqOMSz1JX0axUzL%2BxlVrnBGK0wekqYG6ShKyf5iRg5%2BY%2F35FueGxIeViMX5ZU5%2B8nFwIGsMl%7Ctkp%3ABFBMjOzO_qRm\"},{\"url\":\"https://www.ebay.com/itm/187538926483?_skw=Apple&itmmeta=01K4KYKPQW7M913YDTWF9EJKQ4&hash=item2baa30eb93:g:VbMAAeSwtSRot5L8&itmprp=enc%3AAQAKAAAA4MHg7L1Zz0LA5DYYmRTS30kFPVExlz%2FTbUuctB71Yk%2FfQV0aiX%2BN2ICzGj8BIeYBUa7tIGv3VKEgsvuXC0PvIFFvjxEBfsALP5m0Rkcclb576wHpV5%2FGunXNmnt9grpWOipLuKMA0RDkORHa96xYJy8rg%2BYGIi2l2d0Iw2K%2FcLiqP7TlRBd1LsXAjnXShdLOq%2BFxcbaNCarcoIJ%2Fp5DgBLl5UK3WHBVGnpUQZqOMSz1JX0axUzL%2BxlVrnBGK0wekqYG6ShKyf5iRg5%2BY%2F35FueGxIeViMX5ZU5%2B8nFwIGsMl%7Ctkp%3ABFBMjOzO_qRm\"}]'\n```\n\nThe script prints a JSON summary with `mode`, `spider_id`, `task_id`, `status`, `parameters`, `file_name`, `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 they need to provide their Dataify API TOKEN, ask whether they want to save it as `DATAIFY_API_TOKEN`, or tell them they can register or log in at [Dataify](https://dashboard.dataify.com/login?utm_source=skill) to get one. If they already have a token, tell them it is in the top-right area of [Dataify](https://dashboard.dataify.com?utm_source=skill).\n\n`Unsupported mode` means the mode must be `url`, `category-url`, `keywords`, or `listurl`.\n\n`url must start with https://www.ebay.com/` means the URL is outside the allowed eBay domain.\n\n`keywords cannot be empty` means the keyword is missing.\n\n`Count must be an integer greater than or equal to 0` means the category Count field is invalid.\n\n`count must be an integer greater than or equal to 0` means the quantity field is invalid.\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 array, or the selected mode's object is missing required fields.\n\nMissing `task_id` usually means the authorization header, token, `spider_name`, selected `spider_id`, or `spider_parameters` is wrong.\n\n## Guardrails\n\n- Do not mix Product URL, Category URL, Keyword, and Store URL mode parameters in the same Builder request.\n- Do not submit a Builder request until the mode is clear.\n- Do not put `file_name` inside `spider_parameters`.\n- Do not use an eBay URL from outside `https://www.ebay.com/`.\n- Use only `API TOKEN` and `DATAIFY_API_TOKEN` when referring to authentication.\n- Do not hard-code local Python paths.\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-ebay-products\",\n  \"version\": \"1.1.0\",\n  \"publishedAt\": 1780884352909\n}\n\nFile v1.1.0:skill-card.md\n\n## Description: <br>\nSubmit Dataify eBay Product Information Builder tasks for eBay product collection by product URL, category URL, keyword, or store URL. <br>\n\nThis skill is ready for commercial/non-commercial use. <br>\n\n## Publisher: <br>\n[dataify-server](https://clawhub.ai/user/dataify-server) <br>\n\n### License/Terms of Use: <br>\nMIT-0 <br>\n\n\n## Use Case: <br>\nDevelopers, operators, and e-commerce data users use this skill to submit guided Dataify Builder jobs that collect eBay product information and return a task ID and status for result tracking. <br>\n\n### Deployment Geography for Use: <br>\nGlobal <br>\n\n## Known Risks and Mitigations: <br>\nRisk: The Dataify API TOKEN is sensitive. <br>\nMitigation: Keep DATAIFY_API_TOKEN private, do not call the Builder endpoint without a token, and only save a token locally after user confirmation. <br>\nRisk: Submitted URLs or keywords are sent to Dataify and may consume the user's Dataify account quota. <br>\nMitigation: Review the selected collection mode and parameters before submitting a Builder job. <br>\nRisk: Incorrect mode or parameter values can create an unintended eBay collection task. <br>\nMitigation: Validate the selected mode, eBay URL domain, keyword, count values, and file name before submission. <br>\n\n\n## Reference(s): <br>\n- [ClawHub skill page](https://clawhub.ai/dataify-server/dataify-ebay-products) <br>\n- [Publisher profile](https://clawhub.ai/user/dataify-server) <br>\n- [Dataify dashboard](https://dashboard.dataify.com?utm_source=skill) <br>\n- [Dataify login](https://dashboard.dataify.com/login?utm_source=skill) <br>\n\n\n## Skill Output: <br>\n**Output Type(s):** [text, markdown, shell commands, configuration, API calls] <br>\n**Output Format:** [Markdown guidance with optional shell commands and JSON task submission summaries] <br>\n**Output Parameters:** [1D] <br>\n**Other Properties Related to Output:** [Produces Dataify Builder task details including mode, spider_id, task_id, status, parameters, file_name, dashboard_url, and message when the helper script succeeds.] <br>\n\n## Skill Version(s): <br>\n1.1.0 (source: server release metadata) <br>\n\n## Ethical Considerations: <br>\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment. <br>\n\nFile v1.1.0:SKILL.zh-CN.md\n\n---\nname: dataify-ebay-products\ndescription: \"提交 Dataify eBay Product Information Builder 任务，支持四种 eBay 商品采集模式。当用户需要 eBay product information collection tool、采集/抓取/爬取 eBay 商品信息，按 URL、category URL、keyword、store URL 采集 eBay 商品，创建 ebay_ebay_by-url、ebay_ebay_by-category-url、ebay_ebay_by-keywords 或 ebay_ebay_by-listurl 任务，或表达 eBay 产品信息采集/抓取、产品 URL/类别 URL/关键词/店铺网址采集等含义时使用。也用于接收 task_id/status、配置 DATAIFY_API_TOKEN 或排查此 Dataify Builder 请求。\"\n---\n\n# Dataify eBay Products\n\n通过 Dataify Builder 提交 eBay 产品信息采集任务。本技能是四种采集模式的引导封装：\n\n| 模式 | 采集器 ID | 用途 |\n| --- | --- | --- |\n| 产品 URL | `ebay_ebay_by-url` | 通过产品 URL 采集一个或多个 eBay 产品。 |\n| 类别 URL | `ebay_ebay_by-category-url` | 通过类别 URL 采集 eBay 产品。 |\n| 关键词 | `ebay_ebay_by-keywords` | 通过搜索关键词采集 eBay 产品。 |\n| 店铺 URL | `ebay_ebay_by-listurl` | 通过店铺 URL 采集 eBay 产品。 |\n\n提交成功后，向用户提供 `task_id`、返回的或推断的状态，并告知用户前往 [Dataify](https://dashboard.dataify.com?utm_source=skill) 查看结果。\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。\n- 如果用户没有 API TOKEN，告知用户可以在 [Dataify](https://dashboard.dataify.com/login?utm_source=skill) 注册或登录以获取。\n- 如果用户已有 API TOKEN，告知用户可以在 [Dataify](https://dashboard.dataify.com?utm_source=skill) 右上角找到。\n- 用户提供 API TOKEN 后，如果本地未保存 `DATAIFY_API_TOKEN`，询问是否将其保存为 `DATAIFY_API_TOKEN` 以供后续使用。\n- 如果用户希望保存，提供适合其 shell 的命令并要求其执行；不要在未经确认的情况下静默保存 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. 首先询问用户选择采集模式：`url`、`category-url`、`keywords` 或 `listurl`。\n2. 用户选择模式后，仅展示该模式的参数表格和默认值。\n3. 询问用户是否需要在运行任务前修改任何值。\n4. 询问用户是否需要为所选模式采集多组 eBay 产品。\n5. 将最终值规范化为仅包含所选模式的参数对象列表。\n6. 从显式输入或已保存的 `DATAIFY_API_TOKEN` 中获取 Dataify token。\n7. 如果没有可用的 token，要求用户输入 API TOKEN 并询问是否将其保存为 `DATAIFY_API_TOKEN`。\n8. 验证所选模式、URL、关键词、数值和文件名。\n9. 使用所选模式的 `spider_id` 提交 Builder 请求。\n10. 从 Builder 响应中读取 `data.task_id`，并在存在时读取 `data.status` 或 `status`。\n11. Builder 成功后停止。\n12. 告知用户前往 [Dataify](https://dashboard.dataify.com?utm_source=skill) 查看或管理结果。\n\n## 模式选择\n\n当用户调用此技能时，首先展示以下 Markdown 表格并要求选择一种模式：\n\n| 标签 | 值 |\n| --- | --- |\n| 通过产品 URL 采集 eBay 产品 | `url` |\n| 通过类别 URL 采集 eBay 产品 | `category-url` |\n| 通过关键词采集 eBay 产品 | `keywords` |\n| 通过店铺 URL 采集 eBay 产品 | `listurl` |\n\n询问：\"您想使用哪种采集模式：`url`、`category-url`、`keywords` 还是 `listurl`？\"\n\n在模式明确之前不要提交 Builder 请求。\n\n## 产品 URL 模式参数\n\n仅当用户选择 `url` 时使用本节。\n\n| 字段 | 必填 | 默认值 | 位置 | 说明 |\n| --- | --- | --- | --- | --- |\n| `url` | 是 | `https://www.ebay.com/itm/187538926483?_skw=Apple&itmmeta=01K4KYKPQW7M913YDTWF9EJKQ4&hash=item2baa30eb93:g:VbMAAeSwtSRot5L8&itmprp=enc%3AAQAKAAAA4MHg7L1Zz0LA5DYYmRTS30kFPVExlz%2FTbUuctB71Yk%2FfQV0aiX%2BN2ICzGj8BIeYBUa7tIGv3VKEgsvuXC0PvIFFvjxEBfsALP5m0Rkcclb576wHpV5%2FGunXNmnt9grpWOipLuKMA0RDkORHa96xYJy8rg%2BYGIi2l2d0Iw2K%2FcLiqP7TlRBd1LsXAjnXShdLOq%2BFxcbaNCarcoIJ%2Fp5DgBLl5UK3WHBVGnpUQZqOMSz1JX0axUzL%2BxlVrnBGK0wekqYG6ShKyf5iRg5%2BY%2F35FueGxIeViMX5ZU5%2B8nFwIGsMl%7Ctkp%3ABFBMjOzO_qRm` | `spider_parameters` | eBay 产品 URL。 |\n| `file_name` | 否 | `{{TasksID}}` | Builder 表单字段 | 用户未更改时使用默认值。 |\n\n然后询问：\"您是否需要在提交任务前修改这些值？\"\n\n同时询问：\"您是否需要采集多组 eBay 产品 URL？如果是，请提供多个 `url` 值。\"\n\n产品 URL 模式处理：\n\n- `url` 为必填项。如果用户未提供，仅在参数确认表格中展示后才使用默认值。\n- `url` 必须以 `https://www.ebay.com/` 开头。\n- 提交 `spider_id=ebay_ebay_by-url`。\n- 将 `spider_parameters` 作为包含一个或多个对象的 JSON 字符串提交，格式如下：\n\n```json\n[{\"url\":\"https://www.ebay.com/itm/187538926483?_skw=Apple&itmmeta=01K4KYKPQW7M913YDTWF9EJKQ4&hash=item2baa30eb93:g:VbMAAeSwtSRot5L8&itmprp=enc%3AAQAKAAAA4MHg7L1Zz0LA5DYYmRTS30kFPVExlz%2FTbUuctB71Yk%2FfQV0aiX%2BN2ICzGj8BIeYBUa7tIGv3VKEgsvuXC0PvIFFvjxEBfsALP5m0Rkcclb576wHpV5%2FGunXNmnt9grpWOipLuKMA0RDkORHa96xYJy8rg%2BYGIi2l2d0Iw2K%2FcLiqP7TlRBd1LsXAjnXShdLOq%2BFxcbaNCarcoIJ%2Fp5DgBLl5UK3WHBVGnpUQZqOMSz1JX0axUzL%2BxlVrnBGK0wekqYG6ShKyf5iRg5%2BY%2F35FueGxIeViMX5ZU5%2B8nFwIGsMl%7Ctkp%3ABFBMjOzO_qRm\"}]\n```\n\n## 类别 URL 模式参数\n\n仅当用户选择 `category-url` 时使用本节。\n\n| 字段 | 必填 | 默认值 | 位置 | 说明 |\n| --- | --- | --- | --- | --- |\n| `url` | 是 | `https://www.ebay.com/b/Collectible-Japanese-Bells-1900-Now/165467/bn_3104829` | `spider_parameters` | eBay 类别 URL。 |\n| `Count` | 否 | `60` | `spider_parameters` | 此采集器要求的 Count 字段。必须为大于或等于 `0` 的整数。 |\n| `count` | 否 | `60` | `spider_parameters` | 数量字段。必须为大于或等于 `0` 的整数。 |\n| `file_name` | 否 | `{{TasksID}}` | Builder 表单字段 | 用户未更改时使用默认值。 |\n\n然后询问：\"您是否需要在提交任务前修改这些值？\"\n\n同时询问：\"您是否需要采集多组 eBay 类别 URL？如果是，请提供多组 `url`、`Count` 和 `count`。\"\n\n类别 URL 模式处理：\n\n- `url` 为必填项。如果用户未提供，仅在参数确认表格中展示后才使用默认值 `https://www.ebay.com/b/Collectible-Japanese-Bells-1900-Now/165467/bn_3104829`。\n- `url` 必须以 `https://www.ebay.com/` 开头。\n- `Count` 必须为大于或等于 `0` 的整数。\n- `count` 必须为大于或等于 `0` 的整数。\n- 必须将 `Count` 和 `count` 作为独立字段分别提交。\n- 提交 `spider_id=ebay_ebay_by-category-url`。\n- 将 `spider_parameters` 作为包含一个或多个对象的 JSON 字符串提交，格式如下：\n\n```json\n[{\"url\":\"https://www.ebay.com/b/Collectible-Japanese-Bells-1900-Now/165467/bn_3104829\",\"Count\":\"60\",\"count\":\"60\"}]\n```\n\n## 关键词模式参数\n\n仅当用户选择 `keywords` 时使用本节。\n\n| 字段 | 必填 | 默认值 | 位置 | 说明 |\n| --- | --- | --- | --- | --- |\n| `keywords` | 是 | `baby toys` | `spider_parameters` | eBay 搜索关键词。 |\n| `count` | 否 | `60` | `spider_parameters` | 数量字段。必须为大于或等于 `0` 的整数。 |\n| `file_name` | 否 | `{{TasksID}}` | Builder 表单字段 | 用户未更改时使用默认值。 |\n\n然后询问：\"您是否需要在提交任务前修改这些值？\"\n\n同时询问：\"您是否需要采集多组 eBay 关键词？如果是，请提供多组 `keywords` 和 `count`。\"\n\n关键词模式处理：\n\n- `keywords` 为必填项。如果用户未提供，仅在参数确认表格中展示后才使用默认值 `baby toys`。\n- `keywords` 不能为空。\n- `count` 必须为大于或等于 `0` 的整数。\n- 提交 `spider_id=ebay_ebay_by-keywords`。\n- 将 `spider_parameters` 作为包含一个或多个对象的 JSON 字符串提交，格式如下：\n\n```json\n[{\"keywords\":\"baby toys\",\"count\":\"60\"}]\n```\n\n## 店铺 URL 模式参数\n\n仅当用户选择 `listurl` 时使用本节。\n\n| 字段 | 必填 | 默认值 | 位置 | 说明 |\n| --- | --- | --- | --- | --- |\n| `url` | 是 | `https://www.ebay.com/str/kptradingdeals?_trksid=p4429486.m145687.l149086` | `spider_parameters` | eBay 店铺 URL。 |\n| `count` | 否 | `60` | `spider_parameters` | 数量字段。必须为大于或等于 `0` 的整数。 |\n| `file_name` | 否 | `{{TasksID}}` | Builder 表单字段 | 用户未更改时使用默认值。 |\n\n然后询问：\"您是否需要在提交任务前修改这些值？\"\n\n同时询问：\"您是否需要采集多组 eBay 店铺 URL？如果是，请提供多组 `url` 和 `count`。\"\n\n店铺 URL 模式处理：\n\n- `url` 为必填项。如果用户未提供，仅在参数确认表格中展示后才使用默认值 `https://www.ebay.com/str/kptradingdeals?_trksid=p4429486.m145687.l149086`。\n- `url` 必须以 `https://www.ebay.com/` 开头。\n- `count` 必须为大于或等于 `0` 的整数。\n- 提交 `spider_id=ebay_ebay_by-listurl`。\n- 将 `spider_parameters` 作为包含一个或多个对象的 JSON 字符串提交，格式如下：\n\n```json\n[{\"url\":\"https://www.ebay.com/str/kptradingdeals?_trksid=p4429486.m145687.l149086\",\"count\":\"60\"}]\n```\n\n## 共享文件名处理\n\n- `file_name` 默认为 `{{TasksID}}`。\n- 如果用户更改了 `file_name`，提交用户提供的值。\n- `file_name` 不能为空。\n- 将 `file_name` 作为 Builder 表单字段发送。\n\n## Dataify Builder 请求\n\n使用表单字段而非手动构建的 URL 编码字符串。\n\n- URL：`https://scraperapi.dataify.com/builder?platform=1`\n- 方法：`POST`\n- Authorization 请求头：`Bearer DATAIFY_API_TOKEN`\n- Content type：`application/x-www-form-urlencoded`\n- 固定字段：\n  - `spider_name=ebay.com`\n  - `spider_errors=true`\n- 模式特定字段：\n  - 产品 URL 模式：`spider_id=ebay_ebay_by-url`\n  - 类别 URL 模式：`spider_id=ebay_ebay_by-category-url`\n  - 关键词模式：`spider_id=ebay_ebay_by-keywords`\n  - 店铺 URL 模式：`spider_id=ebay_ebay_by-listurl`\n- 默认字段：\n  - `file_name={{TasksID}}`\n- 动态字段：\n  - `spider_parameters` 必须为 JSON 字符串数组。\n\n## 脚本\n\n为确保稳定执行，优先使用 Python 3.6 或更新版本运行 `scripts/submit_dataify_ebay_products.py`，而非重写 Builder 流程。\n\n产品 URL 模式：\n\n```powershell\npython3 \".\\scripts\\submit_dataify_ebay_products.py\" --mode url --url \"https://www.ebay.com/itm/187538926483?_skw=Apple&itmmeta=01K4KYKPQW7M913YDTWF9EJKQ4&hash=item2baa30eb93:g:VbMAAeSwtSRot5L8&itmprp=enc%3AAQAKAAAA4MHg7L1Zz0LA5DYYmRTS30kFPVExlz%2FTbUuctB71Yk%2FfQV0aiX%2BN2ICzGj8BIeYBUa7tIGv3VKEgsvuXC0PvIFFvjxEBfsALP5m0Rkcclb576wHpV5%2FGunXNmnt9grpWOipLuKMA0RDkORHa96xYJy8rg%2BYGIi2l2d0Iw2K%2FcLiqP7TlRBd1LsXAjnXShdLOq%2BFxcbaNCarcoIJ%2Fp5DgBLl5UK3WHBVGnpUQZqOMSz1JX0axUzL%2BxlVrnBGK0wekqYG6ShKyf5iRg5%2BY%2F35FueGxIeViMX5ZU5%2B8nFwIGsMl%7Ctkp%3ABFBMjOzO_qRm\"\n```\n\n类别 URL 模式：\n\n```powershell\npython3 \".\\scripts\\submit_dataify_ebay_products.py\" --mode category-url --url \"https://www.ebay.com/b/Collectible-Japanese-Bells-1900-Now/165467/bn_3104829\" --count \"60\"\n```\n\n关键词模式：\n\n```powershell\npython3 \".\\scripts\\submit_dataify_ebay_products.py\" --mode keywords --keywords \"baby toys\" --count \"60\"\n```\n\n店铺 URL 模式：\n\n```powershell\npython3 \".\\scripts\\submit_dataify_ebay_products.py\" --mode listurl --url \"https://www.ebay.com/str/kptradingdeals?_trksid=p4429486.m145687.l149086\" --count \"60\"\n```\n\n覆盖已保存的环境 token 或文件名：\n\n```powershell\npython3 \".\\scripts\\submit_dataify_ebay_products.py\" --api-token \"YOUR_DATAIFY_API_TOKEN\" --mode keywords --keywords \"baby toys\" --file-name \"{{TasksID}}\"\n```\n\n提交多组产品 URL：\n\n```powershell\npython3 \".\\scripts\\submit_dataify_ebay_products.py\" --mode url --params-json '[{\"url\":\"https://www.ebay.com/itm/187538926483?_skw=Apple&itmmeta=01K4KYKPQW7M913YDTWF9EJKQ4&hash=item2baa30eb93:g:VbMAAeSwtSRot5L8&itmprp=enc%3AAQAKAAAA4MHg7L1Zz0LA5DYYmRTS30kFPVExlz%2FTbUuctB71Yk%2FfQV0aiX%2BN2ICzGj8BIeYBUa7tIGv3VKEgsvuXC0PvIFFvjxEBfsALP5m0Rkcclb576wHpV5%2FGunXNmnt9grpWOipLuKMA0RDkORHa96xYJy8rg%2BYGIi2l2d0Iw2K%2FcLiqP7TlRBd1LsXAjnXShdLOq%2BFxcbaNCarcoIJ%2Fp5DgBLl5UK3WHBVGnpUQZqOMSz1JX0axUzL%2BxlVrnBGK0wekqYG6ShKyf5iRg5%2BY%2F35FueGxIeViMX5ZU5%2B8nFwIGsMl%7Ctkp%3ABFBMjOzO_qRm\"},{\"url\":\"https://www.ebay.com/itm/187538926483?_skw=Apple&itmmeta=01K4KYKPQW7M913YDTWF9EJKQ4&hash=item2baa30eb93:g:VbMAAeSwtSRot5L8&itmprp=enc%3AAQAKAAAA4MHg7L1Zz0LA5DYYmRTS30kFPVExlz%2FTbUuctB71Yk%2FfQV0aiX%2BN2ICzGj8BIeYBUa7tIGv3VKEgsvuXC0PvIFFvjxEBfsALP5m0Rkcclb576wHpV5%2FGunXNmnt9grpWOipLuKMA0RDkORHa96xYJy8rg%2BYGIi2l2d0Iw2K%2FcLiqP7TlRBd1LsXAjnXShdLOq%2BFxcbaNCarcoIJ%2Fp5DgBLl5UK3WHBVGnpUQZqOMSz1JX0axUzL%2BxlVrnBGK0wekqYG6ShKyf5iRg5%2BY%2F35FueGxIeViMX5ZU5%2B8nFwIGsMl%7Ctkp%3ABFBMjOzO_qRm\"}]'\n```\n\n脚本会打印包含 `mode`、`spider_id`、`task_id`、`status`、`parameters`、`file_name`、`dashboard_url` 和 `message` 的 JSON 摘要。\n\n## 故障排除\n\n`Missing Dataify API TOKEN` 表示未传递显式 token 且本地未保存 `DATAIFY_API_TOKEN`。告知用户需要提供 Dataify API TOKEN，询问是否将其保存为 `DATAIFY_API_TOKEN`，或告知用户可以在 [Dataify](https://dashboard.dataify.com/login?utm_source=skill) 注册或登录以获取。如果用户已有 token，告知其位于 [Dataify](https://dashboard.dataify.com?utm_source=skill) 右上角。\n\n`Unsupported mode` 表示模式必须为 `url`、`category-url`、`keywords` 或 `listurl`。\n\n`url must start with https://www.ebay.com/` 表示 URL 不在允许的 eBay 域名范围内。\n\n`keywords cannot be empty` 表示缺少关键词。\n\n`Count must be an integer greater than or equal to 0` 表示类别 Count 字段无效。\n\n`count must be an integer greater than or equal to 0` 表示数量字段无效。\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` 或 `spider_parameters` 有误。\n\n## 安全规则\n\n- 不要在同一个 Builder 请求中混合产品 URL、类别 URL、关键词和店铺 URL 模式的参数。\n- 在模式明确之前不要提交 Builder 请求。\n- 不要将 `file_name` 放入 `spider_parameters` 中。\n- 不要使用 `https://www.ebay.com/` 以外的 eBay URL。\n- 提及身份验证时仅使用 `API TOKEN` 和 `DATAIFY_API_TOKEN`。\n- 不要硬编码本地 Python 路径。\n- 不要编造结果字段。\n- 任务创建成功后始终引导用户前往 [Dataify](https://dashboard.dataify.com?utm_source=skill)。\n\nFile v1.1.0:agents/openai.yaml\n\ninterface:\n  display_name: \"Dataify eBay Products\"\n  short_description: \"Submit Dataify eBay product tasks by URL, category URL, keyword, or store URL\"\n  icon_small: \"./assets/dataify-ebay-products-small.svg\"\n  icon_large: \"./assets/dataify-ebay-products-large.svg\"\n  default_prompt: \"Use $dataify-ebay-products to submit eBay product Builder tasks by URL, category URL, keyword, or store URL through Dataify and return the task_id and status.\"\n\npolicy:\n  allow_implicit_invocation: true\n\nArchive v1.0.0: 7 files, 10557 bytes\n\nFiles: agents/openai.yaml (488b), assets/dataify-ebay-products-large.svg (696b), assets/dataify-ebay-products-small.svg (635b), scripts/submit_dataify_ebay_products.py (9438b), skill-card.md (2367b), SKILL.md (16178b), _meta.json (140b)\n\nFile v1.0.0:SKILL.md\n\n---\nname: dataify-ebay-products\ndescription: Submit Dataify eBay Product Information Builder tasks for four eBay product collection modes. Use when the user wants the eBay product information collection tool, collect eBay products, scrape eBay product information, crawl eBay product data, collect eBay products by URL, collect eBay products by category URL, collect eBay products by keyword, collect eBay products by store URL, create Dataify ebay_ebay_by-url, ebay_ebay_by-category-url, ebay_ebay_by-keywords, or ebay_ebay_by-listurl tasks, or asks in Chinese with meanings like \"eBay 产品信息采集\", \"eBay 产品信息抓取\", \"eBay产品采集\", \"eBay产品抓取\", \"eBay产品URL采集\", \"eBay类别URL采集\", \"eBay关键词采集\", \"eBay店铺网址采集\", or similar eBay product noun plus collection/scraping action wording. Also use when receiving task_id/status, configuring DATAIFY_API_TOKEN, or troubleshooting this Dataify Builder request.\n---\n\n# Dataify eBay Products\n\nSubmit eBay product information collection jobs through Dataify Builder. This skill is a guided wrapper for four collection modes:\n\n| Mode | Collector ID | Use For |\n| --- | --- | --- |\n| Product URL | `ebay_ebay_by-url` | Collecting one or more eBay products by product URL. |\n| Category URL | `ebay_ebay_by-category-url` | Collecting eBay products by category URL. |\n| Keyword | `ebay_ebay_by-keywords` | Collecting eBay products by search keyword. |\n| Store URL | `ebay_ebay_by-listurl` | Collecting eBay products by store URL. |\n\nAfter a successful submission, give the user the `task_id`, the returned or inferred status, and tell them to visit `https://dataify.com/dashboard/` to view results.\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 without asking the user to re-enter the token.\n- If no token is available locally, tell the user they need to provide a Dataify API TOKEN.\n- If the user does not have an API TOKEN, tell them they can register or log in at `https://dataify.com/login` to get one.\n- If the user already has an API TOKEN, tell them it is available in the top-right area of `https://dataify.com/dashboard/`.\n- After the user provides an API TOKEN and no local `DATAIFY_API_TOKEN` is saved, ask whether they want to save it locally as `DATAIFY_API_TOKEN` for future use.\n- If the user wants to save it, give the appropriate command for their shell and ask them to run it; do not silently persist tokens without confirmation.\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. First ask the user to choose a collection mode: `url`, `category-url`, `keywords`, or `listurl`.\n2. After the user chooses a mode, show only that mode's parameter table and defaults.\n3. Ask whether the user wants to change any value before running the task.\n4. Ask whether the user wants to collect multiple eBay product groups for the selected mode.\n5. Normalize the final values into a list of parameter objects for the selected mode only.\n6. Resolve the Dataify token from explicit input or saved `DATAIFY_API_TOKEN`.\n7. If no token is available, ask the user to enter their API TOKEN and ask whether to save it as `DATAIFY_API_TOKEN`.\n8. Validate the selected mode, URLs, keyword, numeric values, and file name.\n9. Submit the Builder request with the selected mode's `spider_id`.\n10. Read `data.task_id` from the Builder response and read `data.status` or `status` when present.\n11. Stop after Builder succeeds.\n12. Tell the user to visit `https://dataify.com/dashboard/` to view or manage results.\n\n## Mode Selection\n\nWhen the user invokes this skill, first show this Markdown table and ask them to choose one mode:\n\n| Label | Value |\n| --- | --- |\n| Collect eBay products by product URL | `url` |\n| Collect eBay products by category URL | `category-url` |\n| Collect eBay products by keyword | `keywords` |\n| Collect eBay products by store URL | `listurl` |\n\nAsk: \"Which collection mode do you want to use: `url`, `category-url`, `keywords`, or `listurl`?\"\n\nDo not submit a Builder request until the mode is clear.\n\n## Product URL Mode Parameters\n\nUse this section only when the user chooses `url`.\n\n| Field | Required | Default | Location | Notes |\n| --- | --- | --- | --- | --- |\n| `url` | Yes | `https://www.ebay.com/itm/187538926483?_skw=Apple&itmmeta=01K4KYKPQW7M913YDTWF9EJKQ4&hash=item2baa30eb93:g:VbMAAeSwtSRot5L8&itmprp=enc%3AAQAKAAAA4MHg7L1Zz0LA5DYYmRTS30kFPVExlz%2FTbUuctB71Yk%2FfQV0aiX%2BN2ICzGj8BIeYBUa7tIGv3VKEgsvuXC0PvIFFvjxEBfsALP5m0Rkcclb576wHpV5%2FGunXNmnt9grpWOipLuKMA0RDkORHa96xYJy8rg%2BYGIi2l2d0Iw2K%2FcLiqP7TlRBd1LsXAjnXShdLOq%2BFxcbaNCarcoIJ%2Fp5DgBLl5UK3WHBVGnpUQZqOMSz1JX0axUzL%2BxlVrnBGK0wekqYG6ShKyf5iRg5%2BY%2F35FueGxIeViMX5ZU5%2B8nFwIGsMl%7Ctkp%3ABFBMjOzO_qRm` | `spider_parameters` | eBay product URL. |\n| `file_name` | No | `{{TasksID}}` | Builder form field | Use the default when the user does not change it. |\n\nThen ask: \"Do you want to change any of these values before I submit the task?\"\n\nAlso ask: \"Do you want to collect multiple eBay product URL groups? If yes, provide multiple `url` values.\"\n\nProduct URL mode handling:\n\n- `url` is required. If the user does not provide it, use the default only after showing it in the parameter confirmation table.\n- `url` must start with `https://www.ebay.com/`.\n- Submit `spider_id=ebay_ebay_by-url`.\n- Submit `spider_parameters` as a JSON string containing one or more objects like:\n\n```json\n[{\"url\":\"https://www.ebay.com/itm/187538926483?_skw=Apple&itmmeta=01K4KYKPQW7M913YDTWF9EJKQ4&hash=item2baa30eb93:g:VbMAAeSwtSRot5L8&itmprp=enc%3AAQAKAAAA4MHg7L1Zz0LA5DYYmRTS30kFPVExlz%2FTbUuctB71Yk%2FfQV0aiX%2BN2ICzGj8BIeYBUa7tIGv3VKEgsvuXC0PvIFFvjxEBfsALP5m0Rkcclb576wHpV5%2FGunXNmnt9grpWOipLuKMA0RDkORHa96xYJy8rg%2BYGIi2l2d0Iw2K%2FcLiqP7TlRBd1LsXAjnXShdLOq%2BFxcbaNCarcoIJ%2Fp5DgBLl5UK3WHBVGnpUQZqOMSz1JX0axUzL%2BxlVrnBGK0wekqYG6ShKyf5iRg5%2BY%2F35FueGxIeViMX5ZU5%2B8nFwIGsMl%7Ctkp%3ABFBMjOzO_qRm\"}]\n```\n\n## Category URL Mode Parameters\n\nUse this section only when the user chooses `category-url`.\n\n| Field | Required | Default | Location | Notes |\n| --- | --- | --- | --- | --- |\n| `url` | Yes | `https://www.ebay.com/b/Collectible-Japanese-Bells-1900-Now/165467/bn_3104829` | `spider_parameters` | eBay category URL. |\n| `Count` | No | `60` | `spider_parameters` | Count field required by this collector. Must be an integer greater than or equal to `0`. |\n| `count` | No | `60` | `spider_parameters` | Quantity field. Must be an integer greater than or equal to `0`. |\n| `file_name` | No | `{{TasksID}}` | Builder form field | Use the default when the user does not change it. |\n\nThen ask: \"Do you want to change any of these values before I submit the task?\"\n\nAlso ask: \"Do you want to collect multiple eBay category URL groups? If yes, provide multiple groups with `url`, `Count`, and `count`.\"\n\nCategory URL mode handling:\n\n- `url` is required. If the user does not provide it, use the default `https://www.ebay.com/b/Collectible-Japanese-Bells-1900-Now/165467/bn_3104829` only after showing it in the parameter confirmation table.\n- `url` must start with `https://www.ebay.com/`.\n- `Count` must be an integer greater than or equal to `0`.\n- `count` must be an integer greater than or equal to `0`.\n- Submit both `Count` and `count` exactly as separate fields.\n- Submit `spider_id=ebay_ebay_by-category-url`.\n- Submit `spider_parameters` as a JSON string containing one or more objects like:\n\n```json\n[{\"url\":\"https://www.ebay.com/b/Collectible-Japanese-Bells-1900-Now/165467/bn_3104829\",\"Count\":\"60\",\"count\":\"60\"}]\n```\n\n## Keyword Mode Parameters\n\nUse this section only when the user chooses `keywords`.\n\n| Field | Required | Default | Location | Notes |\n| --- | --- | --- | --- | --- |\n| `keywords` | Yes | `baby toys` | `spider_parameters` | eBay search keyword. |\n| `count` | No | `60` | `spider_parameters` | Quantity field. Must be an integer greater than or equal to `0`. |\n| `file_name` | No | `{{TasksID}}` | Builder form field | Use the default when the user does not change it. |\n\nThen ask: \"Do you want to change any of these values before I submit the task?\"\n\nAlso ask: \"Do you want to collect multiple eBay keyword groups? If yes, provide multiple groups with `keywords` and `count`.\"\n\nKeyword mode handling:\n\n- `keywords` is required. If the user does not provide it, use the default `baby toys` only after showing it in the parameter confirmation table.\n- `keywords` cannot be empty.\n- `count` must be an integer greater than or equal to `0`.\n- Submit `spider_id=ebay_ebay_by-keywords`.\n- Submit `spider_parameters` as a JSON string containing one or more objects like:\n\n```json\n[{\"keywords\":\"baby toys\",\"count\":\"60\"}]\n```\n\n## Store URL Mode Parameters\n\nUse this section only when the user chooses `listurl`.\n\n| Field | Required | Default | Location | Notes |\n| --- | --- | --- | --- | --- |\n| `url` | Yes | `https://www.ebay.com/str/kptradingdeals?_trksid=p4429486.m145687.l149086` | `spider_parameters` | eBay store URL. |\n| `count` | No | `60` | `spider_parameters` | Quantity field. Must be an integer greater than or equal to `0`. |\n| `file_name` | No | `{{TasksID}}` | Builder form field | Use the default when the user does not change it. |\n\nThen ask: \"Do you want to change any of these values before I submit the task?\"\n\nAlso ask: \"Do you want to collect multiple eBay store URL groups? If yes, provide multiple groups with `url` and `count`.\"\n\nStore URL mode handling:\n\n- `url` is required. If the user does not provide it, use the default `https://www.ebay.com/str/kptradingdeals?_trksid=p4429486.m145687.l149086` only after showing it in the parameter confirmation table.\n- `url` must start with `https://www.ebay.com/`.\n- `count` must be an integer greater than or equal to `0`.\n- Submit `spider_id=ebay_ebay_by-listurl`.\n- Submit `spider_parameters` as a JSON string containing one or more objects like:\n\n```json\n[{\"url\":\"https://www.ebay.com/str/kptradingdeals?_trksid=p4429486.m145687.l149086\",\"count\":\"60\"}]\n```\n\n## Shared File Name Handling\n\n- `file_name` defaults to `{{TasksID}}`.\n- If the user changes `file_name`, submit the user-provided value.\n- `file_name` cannot be empty.\n- Send `file_name` as a Builder form field.\n\n## Dataify Builder Request\n\nUse form fields rather than hand-built URL-encoded strings.\n\n- URL: `https://scraperapi.dataify.com/builder?platform=1`\n- Method: `POST`\n- Authorization header: `Bearer DATAIFY_API_TOKEN`\n- Content type: `application/x-www-form-urlencoded`\n- Fixed fields:\n  - `spider_name=ebay.com`\n  - `spider_errors=true`\n- Mode-specific field:\n  - Product URL mode: `spider_id=ebay_ebay_by-url`\n  - Category URL mode: `spider_id=ebay_ebay_by-category-url`\n  - Keyword mode: `spider_id=ebay_ebay_by-keywords`\n  - Store URL mode: `spider_id=ebay_ebay_by-listurl`\n- Default field:\n  - `file_name={{TasksID}}`\n- Dynamic field:\n  - `spider_parameters` must be a JSON string array.\n\n## Script\n\nFor stable execution, prefer `scripts/submit_dataify_ebay_products.py` with Python 3.6 or newer instead of rewriting the Builder flow.\n\nProduct URL mode:\n\n```powershell\npython3 \".\\scripts\\submit_dataify_ebay_products.py\" --mode url --url \"https://www.ebay.com/itm/187538926483?_skw=Apple&itmmeta=01K4KYKPQW7M913YDTWF9EJKQ4&hash=item2baa30eb93:g:VbMAAeSwtSRot5L8&itmprp=enc%3AAQAKAAAA4MHg7L1Zz0LA5DYYmRTS30kFPVExlz%2FTbUuctB71Yk%2FfQV0aiX%2BN2ICzGj8BIeYBUa7tIGv3VKEgsvuXC0PvIFFvjxEBfsALP5m0Rkcclb576wHpV5%2FGunXNmnt9grpWOipLuKMA0RDkORHa96xYJy8rg%2BYGIi2l2d0Iw2K%2FcLiqP7TlRBd1LsXAjnXShdLOq%2BFxcbaNCarcoIJ%2Fp5DgBLl5UK3WHBVGnpUQZqOMSz1JX0axUzL%2BxlVrnBGK0wekqYG6ShKyf5iRg5%2BY%2F35FueGxIeViMX5ZU5%2B8nFwIGsMl%7Ctkp%3ABFBMjOzO_qRm\"\n```\n\nCategory URL mode:\n\n```powershell\npython3 \".\\scripts\\submit_dataify_ebay_products.py\" --mode category-url --url \"https://www.ebay.com/b/Collectible-Japanese-Bells-1900-Now/165467/bn_3104829\" --count \"60\"\n```\n\nKeyword mode:\n\n```powershell\npython3 \".\\scripts\\submit_dataify_ebay_products.py\" --mode keywords --keywords \"baby toys\" --count \"60\"\n```\n\nStore URL mode:\n\n```powershell\npython3 \".\\scripts\\submit_dataify_ebay_products.py\" --mode listurl --url \"https://www.ebay.com/str/kptradingdeals?_trksid=p4429486.m145687.l149086\" --count \"60\"\n```\n\nTo override the saved environment token or file name:\n\n```powershell\npython3 \".\\scripts\\submit_dataify_ebay_products.py\" --api-token \"YOUR_DATAIFY_API_TOKEN\" --mode keywords --keywords \"baby toys\" --file-name \"{{TasksID}}\"\n```\n\nTo submit multiple product URL groups:\n\n```powershell\npython3 \".\\scripts\\submit_dataify_ebay_products.py\" --mode url --params-json '[{\"url\":\"https://www.ebay.com/itm/187538926483?_skw=Apple&itmmeta=01K4KYKPQW7M913YDTWF9EJKQ4&hash=item2baa30eb93:g:VbMAAeSwtSRot5L8&itmprp=enc%3AAQAKAAAA4MHg7L1Zz0LA5DYYmRTS30kFPVExlz%2FTbUuctB71Yk%2FfQV0aiX%2BN2ICzGj8BIeYBUa7tIGv3VKEgsvuXC0PvIFFvjxEBfsALP5m0Rkcclb576wHpV5%2FGunXNmnt9grpWOipLuKMA0RDkORHa96xYJy8rg%2BYGIi2l2d0Iw2K%2FcLiqP7TlRBd1LsXAjnXShdLOq%2BFxcbaNCarcoIJ%2Fp5DgBLl5UK3WHBVGnpUQZqOMSz1JX0axUzL%2BxlVrnBGK0wekqYG6ShKyf5iRg5%2BY%2F35FueGxIeViMX5ZU5%2B8nFwIGsMl%7Ctkp%3ABFBMjOzO_qRm\"},{\"url\":\"https://www.ebay.com/itm/187538926483?_skw=Apple&itmmeta=01K4KYKPQW7M913YDTWF9EJKQ4&hash=item2baa30eb93:g:VbMAAeSwtSRot5L8&itmprp=enc%3AAQAKAAAA4MHg7L1Zz0LA5DYYmRTS30kFPVExlz%2FTbUuctB71Yk%2FfQV0aiX%2BN2ICzGj8BIeYBUa7tIGv3VKEgsvuXC0PvIFFvjxEBfsALP5m0Rkcclb576wHpV5%2FGunXNmnt9grpWOipLuKMA0RDkORHa96xYJy8rg%2BYGIi2l2d0Iw2K%2FcLiqP7TlRBd1LsXAjnXShdLOq%2BFxcbaNCarcoIJ%2Fp5DgBLl5UK3WHBVGnpUQZqOMSz1JX0axUzL%2BxlVrnBGK0wekqYG6ShKyf5iRg5%2BY%2F35FueGxIeViMX5ZU5%2B8nFwIGsMl%7Ctkp%3ABFBMjOzO_qRm\"}]'\n```\n\nThe script prints a JSON summary with `mode`, `spider_id`, `task_id`, `status`, `parameters`, `file_name`, `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 they need to provide their Dataify API TOKEN, ask whether they want to save it as `DATAIFY_API_TOKEN`, or tell them they can register or log in at `https://dataify.com/login` to get one. If they already have a token, tell them it is in the top-right area of `https://dataify.com/dashboard/`.\n\n`Unsupported mode` means the mode must be `url`, `category-url`, `keywords`, or `listurl`.\n\n`url must start with https://www.ebay.com/` means the URL is outside the allowed eBay domain.\n\n`keywords cannot be empty` means the keyword is missing.\n\n`Count must be an integer greater than or equal to 0` means the category Count field is invalid.\n\n`count must be an integer greater than or equal to 0` means the quantity field is invalid.\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 array, or the selected mode's object is missing required fields.\n\nMissing `task_id` usually means the authorization header, token, `spider_name`, selected `spider_id`, or `spider_parameters` is wrong.\n\n## Guardrails\n\n- Do not mix Product URL, Category URL, Keyword, and Store URL mode parameters in the same Builder request.\n- Do not submit a Builder request until the mode is clear.\n- Do not put `file_name` inside `spider_parameters`.\n- Do not use an eBay URL from outside `https://www.ebay.com/`.\n- Use only `API TOKEN` and `DATAIFY_API_TOKEN` when referring to authentication.\n- Do not hard-code local Python paths.\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-ebay-products\",\n  \"version\": \"1.0.0\",\n  \"publishedAt\": 1780282817272\n}\n\nFile v1.0.0:skill-card.md\n\n## Description: <br>\nSubmits Dataify eBay Product Information Builder tasks for product URL, category URL, keyword, and store URL collection modes. <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 Dataify Builder jobs that collect eBay product data by product URL, category URL, keyword, or store URL. The skill guides mode selection, validates parameters, handles the Dataify API TOKEN, and returns the submitted task status. <br>\n\n### Deployment Geography for Use: <br>\nGlobal <br>\n\n## Known Risks and Mitigations: <br>\nRisk: The skill submits Dataify eBay product collection jobs using the user's API TOKEN. <br>\nMitigation: Review task parameters before approving execution and only save DATAIFY_API_TOKEN locally when future agent sessions may use that credential for Dataify submissions. <br>\nRisk: Incorrect mode, URL, keyword, count, or file-name values can create an unintended Dataify Builder task. <br>\nMitigation: Confirm the selected collection mode and parameters before submission; the skill validates supported modes, eBay URL scope, non-empty keywords, non-negative counts, and non-empty file names. <br>\n\n\n## Reference(s): <br>\n- [Dataify dashboard](https://dataify.com/dashboard/) <br>\n- [Dataify login](https://dataify.com/login) <br>\n- [Dataify Builder endpoint](https://scraperapi.dataify.com/builder?platform=1) <br>\n\n\n## Skill Output: <br>\n**Output Type(s):** [Text, Markdown, Shell commands, API Calls, Configuration] <br>\n**Output Format:** [Markdown guidance with optional shell commands and JSON task summaries] <br>\n**Output Parameters:** [1D] <br>\n**Other Properties Related to Output:** [Returns the selected mode, spider_id, task_id, status, submitted parameters, file name, dashboard URL, and a completion message when the Builder request succeeds.] <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 eBay Products\"\n  short_description: \"Submit Dataify eBay product tasks by URL, category URL, keyword, or store URL\"\n  icon_small: \"./assets/dataify-ebay-products-small.svg\"\n  icon_large: \"./assets/dataify-ebay-products-large.svg\"\n  default_prompt: \"Use $dataify-ebay-products to submit eBay product Builder tasks by URL, category URL, keyword, or store URL through Dataify and return the task_id and status.\"\n\npolicy:\n  allow_implicit_invocation: true","readmeExcerpt":"Skill: Dataify eBay Products Owner: dataify-server Summary: Collect eBay Products data and return results Tags: latest:1.3.0 Version history: v1.3.0 | 2026-09-01T09:12:51.707Z | user 默认返回最终采集结果，完善异步等待下载与安全恢复；修复空目标误执行、Quick Start、Token 配置和触发路由冲突，并补齐发布前自动化测试 v1.2.0 | 2026-07-16T08:36:30.768Z | user 新增能力路由与异步任务闭环，修复失效引用、Token 泄漏和 Skill 元数据兼容性 v1.1.0 | 2026-06-08T02:05:52.909Z | user 补全中文文档，更新目录结构 v1.0.0 | 2026-06-01T03:","codeSnippets":[],"executableExamples":[{"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_dataify_ebay_products.py\" --mode url --url \"https://www.ebay.com/itm/187538926483?_skw=Apple&itmmeta=01K4KYKPQW7M913YDTWF9EJKQ4&hash=item2baa30eb93:g:VbMAAeSwtSRot5L8&itmprp=enc%3AAQAKAAAA4MHg7L1Zz0LA5DYYmRTS30kFPVExlz%2FTbUuctB71Yk%2FfQV0aiX%2BN2ICzGj8BIeYBUa7tIGv3VKEgsvuXC0PvIFFvjxEBfsALP5m0Rkcclb576wHpV5%2FGunXNmnt9grpWOipLuKMA0RDkORHa96xYJy8rg%2BYGIi2l2d0Iw2K%2FcLiqP7TlRBd1LsXAjnXShdLOq%2BFxcbaNCarcoIJ%2Fp5DgBLl5UK3WHBVGnpUQZqOMSz1JX0axUzL%2BxlVrnBGK0wekqYG6ShKyf5iRg5%2BY%2F35FueGxIeViMX5ZU5%2B8nFwIGsMl%7Ctkp%3ABFBMjOzO_qRm\""},{"language":"powershell","snippet":"python3 \".\\scripts\\submit_dataify_ebay_products.py\" --mode category-url --url \"https://www.ebay.com/b/Collectible-Japanese-Bells-1900-Now/165467/bn_3104829\" --count \"60\""},{"language":"powershell","snippet":"python3 \".\\scripts\\submit_dataify_ebay_products.py\" --mode keywords --keywords \"baby toys\" --count \"60\""},{"language":"powershell","snippet":"python3 \".\\scripts\\submit_dataify_ebay_products.py\" --mode listurl --url \"https://www.ebay.com/str/kptradingdeals?_trksid=p4429486.m145687.l149086\" --count \"60\""}],"parameters":null,"dependencies":[],"permissions":[],"extractedFiles":[{"path":"SKILL.md","content":"---\nname: dataify-ebay-products\ndescription: \"Collect eBay product records by product URL, category URL, keyword, or store URL. Do not use for Amazon, Walmart, or general shopping-search results.\"\n---\n\n# Dataify eBay Products\n\nSubmit eBay product information collection jobs through Dataify Builder. This skill is a guided wrapper for four collection modes:\n\n| Mode | Collector ID | Use For |\n| --- | --- | --- |\n| Product URL | `ebay_ebay_by-url` | Collecting one or more eBay products by product URL. |\n| Category URL | `ebay_ebay_by-category-url` | Collecting eBay products by category URL. |\n| Keyword | `ebay_ebay_by-keywords` | Collecting eBay products by search keyword. |\n| Store URL | `ebay_ebay_by-listurl` | Collecting eBay products by store URL. |\n\nAfter submission, continue monitoring the returned `task_id` and return the final result by default.\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 without asking the user to re-enter the token.\n- If the user does not have an API TOKEN, tell them they can register or log in at [Dataify](https://dashboard.dataify.com/login?utm_source=skill) to get one.\n- If the user wants to save it, give the appropriate command for their shell and ask them to run it; do not silently persist tokens without confirmation.\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. First ask the user to choose a collection mode: `url`, `category-url`, `keywords`, or `listurl`.\n2. After the user chooses a mode, show only that mode's parameter table and defaults.\n3. Ask whether the user wants to change any value before running the task.\n4. Ask whether the user wants to collect multiple eBay product groups for the selected mode.\n5. Normalize the final values into a list of parameter objects for the selected mode only.\n8. Validate the selected mode, URLs, keyword, numeric values, and file name.\n9. Submit the Builder request with the selected mode's `spider_id`.\n10. Read `data.task_id` from the Builder response and read `data.status` or `status` when present.\n## Mode Selection\n\nWhen the user invokes this skill, first show this Markdown table and ask them to choose one mode:\n\n| Label | Value |\n| --- | --- |\n| Collect eBay products by product URL | `url` |\n| Collect eBay products by category URL | `category-url` |\n| Collect eBay products by keyword | `keywords` |\n| Collect eBay products by store URL | `listurl` |\n\nAsk: \"Which collection mode do you want to use: `url`, `category-url`, `keywords`, or `lis"},{"path":"_meta.json","content":"{\n  \"ownerId\": \"kn74z5hmmwk21kw8tpphd9w21x86bkdf\",\n  \"slug\": \"dataify-ebay-products\",\n  \"version\": \"1.3.0\",\n  \"publishedAt\": 1788253971707\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## Product URL Mode Parameters\n\nUse this section only when the user chooses `url`.\n\n| Field | Required | Default | Location | Notes |\n| --- | --- | --- | --- | --- |\n| `url` | Yes | `https://www.ebay.com/itm/187538926483?_skw=Apple&itmmeta=01K4KYKPQW7M913YDTWF9EJKQ4&hash=item2baa30eb93:g:VbMAAeSwtSRot5L8&itmprp=enc%3AAQAKAAAA4MHg7L1Zz0LA5DYYmRTS30kFPVExlz%2FTbUuctB71Yk%2FfQV0aiX%2BN2ICzGj8BIeYBUa7tIGv3VKEgsvuXC0PvIFFvjxEBfsALP5m0Rkcclb576wHpV5%2FGunXNmnt9grpWOipLuKMA0RDkORHa96xYJy8rg%2BYGIi2l2d0Iw2K%2FcLiqP7TlRBd1LsXAjnXShdLOq%2BFxcbaNCarcoIJ%2Fp5DgBLl5UK3WHBVGnpUQZqOMSz1JX0axUzL%2BxlVrnBGK0wekqYG6ShKyf5iRg5%2BY%2F35FueGxIeViMX5ZU5%2B8nFwIGsMl%7Ctkp%3ABFBMjOzO_qRm` | `spider_parameters` | eBay product URL. |\n| `file_name` | No | `{{TasksID}}` | Builder form field | Use the default when the user does not change it. |\n\n\nAlso ask: \"Do you want to collect multiple eBay product URL groups? If yes, provide multiple `url` values.\"\n\nProduct URL mode handling:\n\n- `url` must start with `https://www.ebay.com/`.\n- Submit `spider_id=ebay_ebay_by-url`.\n- Submit `spider_parameters` as a JSON string containing one or more objects like:\n\n```json\n[{\"url\":\"https://www.ebay.com/itm/187538926483?_skw=Apple&itmmeta=01K4KYKPQW7M913YDTWF9EJKQ4&hash=item2baa30eb93:g:VbMAAeSwtSRot5L8&itmprp=enc%3AAQAKAAAA4MHg7L1Zz0LA5DYYmRTS30kFPVExlz%2FTbUuctB71Yk%2FfQV0aiX%2BN2ICzGj8BIeYBUa7tIGv3VKEgsvuXC0PvIFFvjxEBfsALP5m0Rkcclb576wHpV5%2FGunXNmnt9grpWOipLuKMA0RDkORHa96xYJy8rg%2BYGIi2l2d0Iw2K%2FcLiqP7TlRBd1LsXAjnXShdLOq%2BFxcbaNCarcoIJ%2Fp5DgBLl5UK3WHBVGnpUQZqOMSz1JX0axUzL%2BxlVrnBGK0wekqYG6ShKyf5iRg5%2BY%2F35FueGxIeViMX5ZU5%2B8nFwIGsMl%7Ctkp%3ABFBMjOzO_qRm\"}]\n```\n\n## Category URL Mode Parameters\n\nUse this section only when the user chooses `category-url`.\n\n| Field | Required | Default | Location | Notes |\n| --- | --- | --- | --- | --- |\n| `url` | Yes | `https://www.ebay.com/b/Collectible-Japanese-Bells-1900-Now/165467/bn_3104829` | `spider_parameters` | eBay category URL. |\n| `Count` | No | `60` | `spider_parameters` | Count field required by this collector. Must be an integer greater than or equal to `0`. |\n| `count` | No | `60` | `spider_parameters` | Quantity field. Must be an integer greater than or equal to `0`. |\n| `file_name` | No | `{{TasksID}}` | Builder form field | Use the default when the user does not change it. |\n\n\nAlso ask: \"Do you want to collect multiple eBay category URL groups? If yes, provide multiple groups with `url`, `Count`, and `count`.\"\n\nCategory URL mode handling:\n\n- `url` must start with `https://www.ebay.com/`.\n- `Count` must be an integer greater than or equal to `0`.\n- `count` must be an integer greater than or equal to `0`.\n- Submit both `Count` and `count` exactly as separate fields.\n- Submit `spider_id=ebay_ebay_by-category-url`.\n- Submit `spider_parameters` as a JSON string containing one or more objects like:\n\n```json\n[{\"url\":\"https://www."},{"path":"skill-card.md","content":"## Description:\n\nCollect eBay product records by product URL, category URL, keyword, or store URL. Do not use for Amazon, Walmart, or general shopping-search results.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[dataify-server](https://clawhub.ai/user/dataify-server)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nExternal users and developers use this skill to submit Dataify Builder jobs for eBay product collection by product URL, category URL, keyword, or store URL, then wait for the final collected JSON result.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: The helper script imports code from a nearby dataify-task-operations runtime that is outside this skill artifact and can pass that code the user's Dataify API TOKEN.\n\nMitigation: Review the sibling runtime before installation or execution, use a session-scoped DATAIFY_API_TOKEN, and do not paste tokens into chat.\n\nRisk: Running the skill submits requests to Dataify Builder and may consume account credits for eBay product collection.\n\nMitigation: Confirm the selected collection mode, target URLs or keywords, and expected scope before running high-volume or multi-input 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-ebay-products)\n\n## Skill Output:\n\n**Output Type(s):** [Guidance, Shell commands, Configuration, API calls, 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 return a task identifier and status during submission, or the final collected JSON result after asynchronous monitoring completes.]\n\n## Skill Version(s):\n\n1.3.0 (source: release evidence)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment."},{"path":"SKILL.zh-CN.md","content":"---\nname: dataify-ebay-products\ndescription: \"提交 Dataify eBay Product Information Builder 任务，支持四种 eBay 商品采集模式。当用户需要 eBay product information collection tool、采集/抓取/爬取 eBay 商品信息，按 URL、category URL、keyword、store URL 采集 eBay 商品，创建 ebay_ebay_by-url、ebay_ebay_by-category-url、ebay_ebay_by-keywords 或 ebay_ebay_by-listurl 任务，或表达 eBay 产品信息采集/抓取、产品 URL/类别 URL/关键词/店铺网址采集等含义时使用。也用于接收 task_id/status、配置 DATAIFY_API_TOKEN 或排查此 Dataify Builder 请求。\"\n---\n\n# Dataify eBay Products\n\n通过 Dataify Builder 提交 eBay 产品信息采集任务。本技能是四种采集模式的引导封装：\n\n| 模式 | 采集器 ID | 用途 |\n| --- | --- | --- |\n| 产品 URL | `ebay_ebay_by-url` | 通过产品 URL 采集一个或多个 eBay 产品。 |\n| 类别 URL | `ebay_ebay_by-category-url` | 通过类别 URL 采集 eBay 产品。 |\n| 关键词 | `ebay_ebay_by-keywords` | 通过搜索关键词采集 eBay 产品。 |\n| 店铺 URL | `ebay_ebay_by-listurl` | 通过店铺 URL 采集 eBay 产品。 |\n\n提交成功后，向用户提供 `task_id`、返回的或推断的状态，并告知用户前往 [Dataify](https://dashboard.dataify.com?utm_source=skill) 查看结果。\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。\n- 如果用户没有 API TOKEN，告知用户可以在 [Dataify](https://dashboard.dataify.com/login?utm_source=skill) 注册或登录以获取。\n- 如果用户已有 API TOKEN，告知用户可以在 [Dataify](https://dashboard.dataify.com?utm_source=skill) 右上角找到。\n- 用户提供 API TOKEN 后，如果本地未保存 `DATAIFY_API_TOKEN`，询问是否将其保存为 `DATAIFY_API_TOKEN` 以供后续使用。\n- 如果用户希望保存，提供适合其 shell 的命令并要求其执行；不要在未经确认的情况下静默保存 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. 首先询问用户选择采集模式：`url`、`category-url`、`keywords` 或 `listurl`。\n2. 用户选择模式后，仅展示该模式的参数表格和默认值。\n3. 询问用户是否需要在运行任务前修改任何值。\n4. 询问用户是否需要为所选模式采集多组 eBay 产品。\n5. 将最终值规范化为仅包含所选模式的参数对象列表。\n6. 从显式输入或已保存的 `DATAIFY_API_TOKEN` 中获取 Dataify token。\n7. 如果没有可用的 token，要求用户输入 API TOKEN 并询问是否将其保存为 `DATAIFY_API_TOKEN`。\n8. 验证所选模式、URL、关键词、数值和文件名。\n9. 使用所选模式的 `spider_id` 提交 Builder 请求。\n10. 从 Builder 响应中读取 `data.task_id`，并在存在时读取 `data.status` 或 `status`。\n12. 告知用户前往 [Dataify](https://dashboard.dataify.com?utm_source=skill) 查看或管理结果。\n\n## 模式选择\n\n当用户调用此技能时，首先展示以下 Markdown 表格并要求选择一种模式：\n\n| 标签 | 值 |\n| --- | --- |\n| 通过产品 URL 采集 eBay 产品 | `url` |\n| 通过类别 URL 采集 eBay 产品 | `category-url` |\n| 通过关键词采集 eBay 产品 | `keywords` |\n| 通过店铺 URL 采集 eBay 产品 | `listurl` |\n\n询问：\"您想使用哪种采集模式：`url`、`category-url`、`keywords` 还是 `listurl`？\"\n\n在模式明确之前不要提交 Builder 请求。\n\n## 产品 URL 模式参数\n\n仅当用户选择 `url` 时使用本节。\n\n| 字段 | 必填 | 默认值 | 位置 | 说明 |\n| --- | --- | --- | --- | --- |\n| `url` | 是 | `https://www.ebay.com/itm/187538926483?_skw=Apple&itmmeta=01K4KYKPQW7M913YDTWF9EJKQ4&hash=item2baa30eb93:g:VbMAAeSwtSRot5L8&itmprp=enc%3AAQAKAAAA4MHg7L1Zz0LA5DYYmRTS30kFPVExlz%2FTbUuctB71Yk%2FfQV0aiX%2BN2ICzGj8BIeYBUa7tIGv3VKEgsvuXC0PvIFFvjxEBfsALP5m0Rkcclb576wH"}],"languages":[],"docsSourceLabel":"CLAWHUB","editorialOverview":null,"editorialQuality":{"score":100,"threshold":65,"status":"thin","wordCount":1281,"uniquenessScore":40,"reasons":["uniqueness-below-45"]}},"media":{"evidence":{"source":"no-media","verified":false,"confidence":"low","updatedAt":"2026-10-12T02:31:46.936Z","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-12T02:31:46.936Z","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-14T05:37:07.428Z","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"}]}}}