Use for Dataify Amazon global product collection Builder tasks. Trigger when the user says or asks for Amazon 全球产品详情采集工具, Amazon global product collection to...
---
name: dataify-amazon-global-product
description: Use for Dataify Amazon global product collection Builder tasks. Trigger when the user says or asks for Amazon 全球产品详情采集工具, Amazon global product collection tool, Amazon global product details collection tool, Amazon global product collection, Amazon global product scraping, Amazon global product harvesting, or Amazon global product crawling, especially with product URL, category URL, keyword, keyword brand, brand, or similar Amazon global product task keywords. Supports creating Amazon global product tasks by product URL, category URL, keyword, or keyword and brand; returning the task_id; configuring or reusing the DATAIFY_API_TOKEN environment variable; and troubleshooting Dataify Builder request failures.
---
# Dataify Amazon Global Product
Submit Amazon global product collection jobs through Dataify Builder, then stop. After a successful submission, give the user the `task_id` and tell them to visit [Dataify](https://dashboard.dataify.com?utm_source=skill) to view results.
This skill covers four Amazon global product collection modes:
| Mode | Use for | Builder `spider_id` |
| --- | --- | --- |
| `product-url` | Collect global Amazon product details by product URL. | `amazon_global-product_by-url` |
| `category-url` | Collect global Amazon product details from a category URL. | `amazon_global-product_by-category-url` |
| `keyword` | Collect global Amazon product details from a keyword search. | `amazon_global-product_by-keywords` |
| `keyword-brand` | Collect global Amazon product details from a keyword and brand filter. | `amazon_global-product_by-keywords-brand` |
## API TOKEN Handling
Use `DATAIFY_API_TOKEN` as the long-term saved token name.
- If the user provides a token in the request, use it for this run.
- If no token is provided, first check whether `DATAIFY_API_TOKEN` is already saved locally in the environment.
- If `DATAIFY_API_TOKEN` is saved locally, use it.
- If no token is available locally, tell the user to get an API TOKEN from [Dataify](https://dashboard.dataify.com?utm_source=skill).
- Do not call the Builder endpoint without a token.
- Always call it `API TOKEN` in user-facing instructions. Prefer the environment variable name `DATAIFY_API_TOKEN` for saved local use.
PowerShell examples for saving the token for the current session:
```powershell
$env:DATAIFY_API_TOKEN = "YOUR_DATAIFY_API_TOKEN"
```
For a persistent user-level variable on Windows:
```powershell
[Environment]::SetEnvironmentVariable("DATAIFY_API_TOKEN", "YOUR_DATAIFY_API_TOKEN", "User")
```
## Core Workflow
1. Identify the collection mode from the user's request: `product-url`, `category-url`, `keyword`, or `keyword-brand`.
2. Before submitting, show the user the required values, optional values, and defaults for that mode.
3. Always display submitted parameters as a Markdown table; do not use a plain sentence or bullet list for parameter confirmation.
4. Ask: "Do you want to change any of these values before I submit the task?"
5. Normalize and validate the final values for the chosen mode.
6. Resolve the Dataify token from explicit input or saved `DATAIFY_API_TOKEN`.
7. If no token is available, tell the user to get an API TOKEN from [Dataify](https://dashboard.dataify.com?utm_source=skill).
8. Submit a Builder request to create the task.
9. Read `data.task_id` from the Builder response.
10. Stop after Builder succeeds.
11. Tell the user to visit [Dataify](https://dashboard.dataify.com?utm_source=skill) to view or manage results.
If the user has already provided some values, show those values in place of the defaults and only ask whether the remaining/defaulted values should be changed.
## Parameter Checklists
### Product URL
| Field | Required | Default | Notes |
| --- | --- | --- | --- |
| `url` | Yes | `https://www.amazon.com/dp/B0CHHSFMRL/` | Amazon product URL. |
| `file_name` | No | `{{TasksID}}` | Builder form field. Can be changed by the user. |
Submit `spider_parameters` as an array with one object, for example `[{"url":"https://www.amazon.com/dp/B0CHHSFMRL/"}]`.
### Category URL
| Field | Required | Default | Notes |
| --- | --- | --- | --- |
| `url` | Yes | `https://www.amazon.com/s?i=luggage-intl-ship` | Amazon category URL. |
| `maximum` | Yes | `5` | Integer greater than or equal to `0`. |
| `sort_by` | No | `Best Sellers` | Dropdown-style option. |
| `get_sponsored` | No | `true` | Dropdown-style option: `true` or `false`. |
| `file_name` | No | `{{TasksID}}` | Builder form field. Can be changed by the user. |
Show all `sort_by` options as a Markdown table with both `Label` and `Value` columns before asking the user to choose.
| Label | Value |
| --- | --- |
| `Best Sellers` | `Best Sellers` |
| `Newest Arrivals` | `Newest Arrivals` |
| `Avg. Customer Review` | `Avg. Customer Review` |
| `Price: High to Low` | `Price: High to Low` |
| `Price: Low to High` | `Price: Low to High` |
| `Featured` | `Featured` |
Show all `get_sponsored` options as a Markdown table with both `Label` and `Value` columns before asking the user to choose.
| Label | Value |
| --- | --- |
| `Include Sponsored Products` | `true` |
| `Exclude Sponsored Products` | `false` |
Accepted `sort_by` display values and submitted values:
- best sellers or `Best Sellers` -> `Best Sellers`
- newest arrivals or `Newest Arrivals` -> `Newest Arrivals`
- average customer review or `Avg. Customer Review` -> `Avg. Customer Review`
- price high to low or `Price: High to Low` -> `Price: High to Low`
- price low to high or `Price: Low to High` -> `Price: Low to High`
- featured recommendations or `Featured` -> `Featured`
### Keyword
| Field | Required | Default | Notes |
| --- | --- | --- | --- |
| `keyword` | Yes | `coffee` | Amazon search keyword. |
| `domain` | Yes | `https://www.amazon.com` | Amazon domain. |
| `lowest_price` | No | `20` | Integer greater than or equal to `0`. |
| `highest_price` | No | `50` | Integer greater than or equal to `0`, and must not be less than `lowest_price`. |
| `page_turning` | No | `2` | Integer greater than or equal to `0`. |
| `file_name` | No | `{{TasksID}}` | Builder form field. Can be changed by the user. |
Require `highest_price >= lowest_price`.
### Keyword Brand
| Field | Required | Default | Notes |
| --- | --- | --- | --- |
| `keyword` | Yes | `shirts` | Amazon search keyword. |
| `brands` | Yes | `Adidas` | Brand filter. |
| `page_turning` | Yes | `2` | Integer greater than or equal to `0`. |
| `file_name` | No | `{{TasksID}}` | Builder form field. Can be changed by the user. |
## Dataify Builder Request
Use form fields rather than hand-built URL-encoded strings.
- Method: `POST`
- Authorization header: `Bearer DATAIFY_API_TOKEN`
- Content type: `application/x-www-form-urlencoded`
- Fixed fields:
- `spider_name=amazon.com`
- `spider_errors=true`
- Dynamic fields:
- The Builder URL depends on the chosen mode.
- `spider_id` must match the chosen mode.
- `spider_parameters` must be a JSON string, not a raw object.
- `file_name` defaults to `{{TasksID}}` and can be changed by the user.
- Send `file_name` as the Builder form field, not as a downloaded output name.
Builder URL by mode:
| Mode | URL |
| --- | --- |
| `product-url` | `https://scraperapi.dataify.com/builder` |
| `category-url` | `https://scraperapi.dataify.com/builder?platform=1` |
| `keyword` | `https://scraperapi.dataify.com/builder?platform=1` |
| `keyword-brand` | `https://scraperapi.dataify.com/builder?platform=1` |
## Script
For stable execution, prefer `scripts/submit_amazon_global_product.py` with Python 3.6 or newer instead of rewriting the Builder flow. The script writes and reads UTF-8 text.
```powershell
python3 ".\scripts\submit_amazon_global_product.py" product-url
python3 ".\scripts\submit_amazon_global_product.py" category-url --url "https://www.amazon.com/s?i=luggage-intl-ship" --maximum 5 --sort-by "Best Sellers" --get-sponsored true
python3 ".\scripts\submit_amazon_global_product.py" keyword --keyword "coffee" --domain "https://www.amazon.com"
python3 ".\scripts\submit_amazon_global_product.py" keyword-brand --keyword "shirts" --brands "Adidas" --page-turning 2
```
If `python3` is not available, use the local Python 3 command for that machine, such as `python`. The script checks the runtime version and tells the user to use Python 3.6 or newer if the active interpreter is too old.
To override the saved environment token or default file name for one run:
```powershell
python3 ".\scripts\submit_amazon_global_product.py" keyword --api-token "YOUR_DATAIFY_API_TOKEN" --keyword "coffee" --file-name "amazon-global-coffee"
```
The script prints a JSON summary with `task_id`, submitted parameters, `dashboard_url`, and `message`.
## Troubleshooting
`Missing Dataify API TOKEN` means no explicit token was passed and `DATAIFY_API_TOKEN` is not saved locally. Tell the user to get an API TOKEN from [Dataify](https://dashboard.dataify.com?utm_source=skill).
`URL cannot be empty` means no usable URL was provided.
`Keyword cannot be empty` means no usable keyword was provided.
`Brands cannot be empty` means no usable brand value was provided.
`Domain cannot be empty` means no usable domain was provided.
`Maximum must be greater than or equal to 0` means the requested maximum count is invalid.
`Page turning must be greater than or equal to 0` means the requested page count is invalid.
`Lowest price must be greater than or equal to 0` means the requested lowest price is invalid.
`Highest price must be greater than or equal to 0` means the requested highest price is invalid.
`Highest price cannot be less than lowest price` means the price range must be corrected before submission.
`Unsupported sort_by` means the category sort option must be one of the accepted display values or submitted values.
`get_sponsored must be true or false` means the sponsored option must be corrected before submission.
`File name cannot be empty` means no usable `file_name` was provided.
`Necessary parameters is empty!` usually means the Builder request was not submitted as form fields, `spider_parameters` was not a JSON string, or the object is missing required mode parameters.
Missing `task_id` usually means the authorization header, token, `spider_name`, or `spider_id` is wrong.
## Guardrails
- Do not invent result fields.
- Always direct the user to [Dataify](https://dashboard.dataify.com?utm_source=skill) after successful task creation.
don't have the plugin yet? install it then click "run inline in claude" again.
added explicit intent, inputs, and decision points sections; reorganized parameter checklists and troubleshooting into tables; clarified edge cases for validation, auth failures, and network errors; preserved original procedure and builder flow; added outcome signal section; included guardrails summary.
submit amazon global product collection jobs through dataify builder api, then stop. use this skill when the user asks to collect amazon global product details by product url, category url, keyword search, or keyword with brand filter. after successful submission, return the task_id and direct the user to the dataify dashboard to monitor and retrieve results.
required inputs:
product-url, category-url, keyword, or keyword-brandexternal connection:
https://scraperapi.dataify.com/builder (base endpoint)https://dataify.com/dashboard/ (for result viewing)authentication:
DATAIFY_API_TOKEN environment variable (long-term storage) or explicit token in requestsetup guidance:
DATAIFY_API_TOKEN environment variable for persistent use (powershell examples included in procedure step 6)identify the collection mode from user request: product-url, category-url, keyword, or keyword-brand.
retrieve the parameter checklist for the identified mode from the parameter checklists section.
if the user has provided some values already, display those values in place of defaults; otherwise display all defaults. always display parameters as a markdown table with columns for field name, required status, user-provided value (or default), and notes.
ask the user: "do you want to change any of these values before i submit the task?"
collect any requested changes from the user and update the parameter values.
normalize and validate the final parameter values according to the rules in the parameter checklists section (e.g., ensure highest_price >= lowest_price, ensure sort_by is one of the accepted values, ensure all required fields are non-empty).
resolve the dataify api token: first check for explicit token in request, then check DATAIFY_API_TOKEN environment variable, then stop and tell user to get a token from dataify.com if neither is available.
construct the dataify builder request as form fields (not url-encoded string): set method to post, authorization header to Bearer {DATAIFY_API_TOKEN}, content-type to application/x-www-form-urlencoded, fixed fields to spider_name=amazon.com and spider_errors=true, dynamic fields to mode-specific spider_id, spider_parameters as json string, and file_name (defaults to {{TasksID}}). select builder url based on mode (product-url uses https://scraperapi.dataify.com/builder; category-url, keyword, and keyword-brand use https://scraperapi.dataify.com/builder?platform=1).
submit the builder request to the selected endpoint.
parse the response json and extract data.task_id.
stop. tell the user the task was submitted successfully, provide the task_id, and direct them to https://dataify.com/dashboard/ to view results.
if user provides explicit api token in request: use that token for this run only; do not save it to the environment.
else if DATAIFY_API_TOKEN is saved in environment:
use the saved token.
else:
tell the user to obtain an api token from dataify.com and either pass it explicitly or save it to the DATAIFY_API_TOKEN environment variable.
if mode is category-url or keyword:
show the user the full table of sort_by or price range options and ask them to choose from the provided values before submission.
if user provides lowest_price but not highest_price (or vice versa):
use the default value for the missing parameter.
if highest_price < lowest_price after validation:
reject the submission and ask the user to correct the price range.
if the builder request fails (e.g., 4xx or 5xx http status, network timeout, malformed response): report the error to the user and suggest checking the token, parameter values, and network connectivity. do not retry automatically.
if the response does not contain data.task_id:
report that task creation failed and suggest checking the authorization header, token, spider_name, and spider_id.
on success:
data.task_id present12345abc. view results at https://dataify.com/dashboard/."on authentication failure:
DATAIFY_API_TOKEN environment variable or pass it explicitly."on validation failure:
on network or server failure:
optional: python script output
task_id, submitted_parameters, dashboard_url, messagethe user knows the skill worked when:
| field | required | default | notes |
|---|---|---|---|
url |
yes | https://www.amazon.com/dp/B0CHHSFMRL/ |
amazon product url |
file_name |
no | {{TasksID}} |
builder form field, user changeable |
submit spider_parameters as json array with one object, e.g. [{"url":"https://www.amazon.com/dp/B0CHHSFMRL/"}].
| field | required | default | notes |
|---|---|---|---|
url |
yes | https://www.amazon.com/s?i=luggage-intl-ship |
amazon category url |
maximum |
yes | 5 |
integer >= 0 |
sort_by |
no | Best Sellers |
dropdown option, see table below |
get_sponsored |
no | true |
true or false |
file_name |
no | {{TasksID}} |
builder form field, user changeable |
before asking user to choose sort_by, show this table:
| label | value |
|---|---|
| Best Sellers | Best Sellers |
| Newest Arrivals | Newest Arrivals |
| Avg. Customer Review | Avg. Customer Review |
| Price: High to Low | Price: High to Low |
| Price: Low to High | Price: Low to High |
| Featured | Featured |
accepted display values for sort_by: "best sellers", "newest arrivals", "average customer review", "price high to low", "price low to high", "featured recommendations". map these to the value column above.
before asking user to choose get_sponsored, show this table:
| label | value |
|---|---|
| Include Sponsored Products | true |
| Exclude Sponsored Products | false |
| field | required | default | notes |
|---|---|---|---|
keyword |
yes | coffee |
amazon search keyword |
domain |
yes | https://www.amazon.com |
amazon domain |
lowest_price |
no | 20 |
integer >= 0 |
highest_price |
no | 50 |
integer >= 0, must be >= lowest_price |
page_turning |
no | 2 |
integer >= 0 |
file_name |
no | {{TasksID}} |
builder form field, user changeable |
enforce highest_price >= lowest_price. if user provides both, reject submission if constraint is violated.
| field | required | default | notes |
|---|---|---|---|
keyword |
yes | shirts |
amazon search keyword |
brands |
yes | Adidas |
brand filter |
page_turning |
yes | 2 |
integer >= 0 |
file_name |
no | {{TasksID}} |
builder form field, user changeable |
Bearer DATAIFY_API_TOKEN in request headerapplication/x-www-form-urlencodedspider_name=amazon.com, spider_errors=truespider_id (mode-specific), spider_parameters (json string, not raw object), file_name (defaults to {{TasksID}})builder url by mode:
| mode | url |
|---|---|
| product-url | https://scraperapi.dataify.com/builder |
| category-url | https://scraperapi.dataify.com/builder?platform=1 |
| keyword | https://scraperapi.dataify.com/builder?platform=1 |
| keyword-brand | https://scraperapi.dataify.com/builder?platform=1 |
spider_id by mode:
| mode | spider_id |
|---|---|
| product-url | amazon_global-product_by-url |
| category-url | amazon_global-product_by-category-url |
| keyword | amazon_global-product_by-keywords |
| keyword-brand | amazon_global-product_by-keywords-brand |
save token for current session:
$env:DATAIFY_API_TOKEN = "YOUR_DATAIFY_API_TOKEN"
save token persistently at user level on windows:
[Environment]::SetEnvironmentVariable("DATAIFY_API_TOKEN", "YOUR_DATAIFY_API_TOKEN", "User")
prefer the script scripts/submit_amazon_global_product.py (python 3.6+) for stable execution instead of hand-building the builder flow. script reads and writes utf-8 text.
usage examples:
python3 ".\scripts\submit_amazon_global_product.py" product-url
python3 ".\scripts\submit_amazon_global_product.py" category-url --url "https://www.amazon.com/s?i=luggage-intl-ship" --maximum 5 --sort-by "Best Sellers" --get-sponsored true
python3 ".\scripts\submit_amazon_global_product.py" keyword --keyword "coffee" --domain "https://www.amazon.com"
python3 ".\scripts\submit_amazon_global_product.py" keyword-brand --keyword "shirts" --brands "Adidas" --page-turning 2
override saved token or file name:
python3 ".\scripts\submit_amazon_global_product.py" keyword --api-token "YOUR_DATAIFY_API_TOKEN" --keyword "coffee" --file-name "amazon-global-coffee"
if python3 is not available, try python. script checks runtime version and tells user to upgrade to python 3.6+ if interpreter is too old.
script outputs json to stdout: task_id, submitted_parameters, dashboard_url, message.
| error | cause | resolution |
|---|---|---|
missing dataify api token |
no token provided and DATAIFY_API_TOKEN not in environment |
get token from https://dataify.com and save to environment or pass explicitly |
url cannot be empty |
product or category url was not provided | provide a valid amazon url |
keyword cannot be empty |
keyword was not provided | provide a search keyword |
brands cannot be empty |
brand filter was not provided | provide at least one brand |
domain cannot be empty |
domain was not provided | provide an amazon domain, e.g. https://www.amazon.com |
maximum must be greater than or equal to 0 |
maximum count is negative | provide a non-negative integer |
page turning must be greater than or equal to 0 |
page count is negative | provide a non-negative integer |
lowest price must be greater than or equal to 0 |
lowest price is negative | provide a non-negative number |
highest price must be greater than or equal to 0 |
highest price is negative | provide a non-negative number |
highest price cannot be less than lowest price |
price range is inverted | ensure highest_price >= lowest_price |
unsupported sort_by |
sort option not recognized | use one of the accepted display values or submitted values from the category url parameter checklist |
get_sponsored must be true or false |
sponsored option is invalid | use true to include or false to exclude |
file name cannot be empty |
file_name was not provided | provide a non-empty file name or use default {{TasksID}} |
necessary parameters is empty |
required parameters missing or spider_parameters not a json string |
verify all required fields are provided and spider_parameters is json-encoded |
missing task_id in response |
authorization, token, spider_name, or spider_id is wrong | check bearer token, verify token is valid, confirm spider_id matches mode, verify spider_name is amazon.com |
| http 401 or 403 | token is invalid or expired | obtain a fresh token from https://dataify.com |
| http 5xx or timeout | server error or network issue | retry after a few seconds, check network connectivity, contact dataify support if persistent |
DATAIFY_API_TOKEN or tokens passed for single-run use.