Lifecycle
POST /api/v1/jobs returns a job ID and reservation. Poll GET /api/v1/jobs/{id} until the status is succeeded, failed or cancelled; inspect delivered and failed records before downloading.
The Amazon API creates parsing jobs, reports live progress and returns export files for ecommerce research and catalog workflows.




{
"schema_version": "1.0",
"status": "succeeded",
"outcome": "full",
"has_failures": false,
"marketplace": "amazon",
"input_type": "product_url_list",
"mode": "full_product",
"delivered_records": 1,
"records_delivered": 1,
"records_failed": 0,
"charged_units": 5,
"sample": {
"asin": "B0060OUV5Y",
"title": "La Roche-Posay Cicaplast Balm B5 Cream",
"brand": "La Roche-Posay",
"price": 18.99,
"currency": "USD",
"stock_status": "in_stock",
"stock_text": "In Stock",
"product_url": "https://www.amazon.com/dp/B0060OUV5Y",
"rating": 4.7,
"reviews_count": 20743
},
"exports": {
"jsonl": "/api/v1/jobs/{job_id}/download/jsonl",
"csv": "/api/v1/jobs/{job_id}/download/csv",
"xlsx": "/api/v1/jobs/{job_id}/download/xlsx",
"md": "/api/v1/jobs/{job_id}/download/md"
}
}
# Amazon product sample | ASIN | Product | Price (USD) | | --- | --- | --- | | B0060OUV5Y | La Roche-Posay Cicaplast Balm B5 Cream | 18.99 | Illustrative row. Run a live preview for current data.
curl -X POST https://parseshelf.com/api/v1/jobs \
-H 'Authorization: Bearer $PARSESHELF_KEY' \
-H 'Content-Type: application/json' \
-d '{"marketplace":"amazon","input_type":"product_url_list","input_value":"https://www.amazon.com/dp/B0060OUV5Y","mode":"full_product","target_count":20}'
Build the integration around explicit states instead of treating a successful HTTP response as complete data.
POST /api/v1/jobs returns a job ID and reservation. Poll GET /api/v1/jobs/{id} until the status is succeeded, failed or cancelled; inspect delivered and failed records before downloading.
A job can deliver listing-level fallback rows when a richer product page did not render. Use the quality summary to decide whether the output is sufficient; if you need richer fields, rerun the selected ASINs in full_product mode.
Handle 400 validation, 401/403 authentication or access, 404 missing jobs/exports, 429 capacity limits and 5xx provider failures. Use the response message as operator context and retry only transient capacity/provider failures.
The public job-create request accepts an optional Idempotency-Key. Reusing the same key with the same request returns the original job without reserving units twice; reusing it for different input returns 409. Persist the returned job ID alongside your request key.
The public v1 contract is polling-based and does not claim webhook delivery. Use the paginated /api/v1/jobs/{job_id}/rows endpoint when you need canonical records before downloading; store the job ID, source URL, mode and run date for reconciliation.
Start with the public contract; request organization-specific documents when a pilot is approved.
API keys are shown once, stored hashed, scoped to the owning workspace and revocable. Keep them in a secret manager and never in a browser URL.
Review acceptable use →The v1 row contract names asin, product_url, stock_status and stock_text; delivered, failed and partial rows remain visible in job metadata and exports.
Compare the free sample, reviewed sample, pilot and self-serve plans only after confirming your input and field coverage.
Compare plans →For a procurement review, include your marketplace, expected rows, cadence, retention needs and required export fields.
Request procurement packetOpen a screenshot to inspect the actual path from input to output and observed intelligence.
Send a POST request to /api/v1/jobs with marketplace set to amazon. Choose input_type based on the source: search_url for Amazon search pages, category_url for category pages, product_url_list for direct product URLs, or asin_list for bulk ASIN enrichment.
Use listing_only when you need discovery rows and ranking positions. Use full_product when you need product page fields such as brand, bullets, images, product details, stock text, shipping information, variants and review signals.
The job status endpoint exposes status, delivered record counts, charged units, speed and export readiness. This lets a script wait for completion without guessing when Amazon data is ready.
The dashboard shows the same lifecycle for non-technical users. That makes ParseShelf easier to roll out because product researchers and developers do not need separate tools.
Use the download endpoint when status is succeeded. JSONL is line-oriented for pipelines, CSV is portable for BI tools, XLSX is easiest for spreadsheet users and Markdown helps produce quick internal reports.
All export formats come from the same normalized rows, so a team can inspect a spreadsheet and ship a JSONL pipeline without reconciling two schemas.
Use POST /api/v1/schedules when the same Amazon input should be refreshed on a predictable interval. The minimum interval is 60 minutes and the maximum is 30 days; each due run becomes a normal job with its own status, units, quality receipt and downloadable exports.
Schedules do not hide delivery behind a webhook. Poll or store the returned job ID, use Idempotency-Key when retrying job creation, and pause or delete a schedule through the matching schedule endpoint.
Start with one small input and compare the delivered fields with the report, catalog or pipeline you actually need.
Keep the job ID, source URL, mode and run date with downstream exports so operators and developers can audit the same result.