AMZ Downloader Extraction API
The Extraction API from AMZ Downloader — 3 operation(s) for extraction.
The Extraction API from AMZ Downloader — 3 operation(s) for extraction.
Every API here is available over the APIs.io API and to AI agents over MCP.
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
find_apisBrowse and filter every API in the catalog.get_api_artifactsOne API's artifacts, grouped by type.get_openapiThe primary OpenAPI for this API.find_similar_apisAPIs that look like this one.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.curl "https://apis.io/api/v1/apis/amzdownloader-com:amzdownloader-com-extraction-api"
curl "https://apis.io/api/v1/apis?limit=25"
Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.
openapi: 3.2.0
info:
title: AMZ Downloader Extraction API
version: 1.0.0
description: Extract Amazon product media, inspect asynchronous jobs, and convert Amazon HLS video. REST and MCP share customer accounts and credits. Successful media retrievals and conversions each cost 1 credit; polling, failures, and idempotent replays are free.
servers:
- url: https://amzdownloader.com/api/v1
security:
- bearerAuth: []
tags:
- name: Extraction
paths:
/scrapes:
post:
operationId: createScrape
summary: Extract product media
description: Extract product images, variant images, and videos. Returns a cached result or an asynchronous job. Costs 1 credit on success, including cache hits. Polling is free. Use an idempotency key for retries.
tags:
- Extraction
parameters:
- name: Idempotency-Key
in: header
required: false
schema:
type: string
minLength: 1
maxLength: 128
pattern: ^[!-~]+$
description: Reuse for retries of the same request. Replays do not consume additional credits.
requestBody:
required: true
content:
application/json:
schema:
type: object
properties:
url:
type: string
format: uri
maxLength: 2048
description: HTTPS Amazon product URL containing an ASIN.
include:
type: object
properties:
productImages:
type: boolean
default: true
variantImages:
type: boolean
default: true
productVideos:
type: boolean
default: true
relatedVideos:
type: boolean
default: true
creatorVideos:
type: boolean
default: true
required: []
additionalProperties: false
renderMode:
type: string
enum:
- auto
- static
- interactive
default: auto
refresh:
type: boolean
default: false
description: Request fresh extraction instead of an available cached result.
required:
- url
additionalProperties: false
responses:
'200':
description: Cached completed result
content:
application/json:
schema:
$ref: '#/components/schemas/MediaResponse'
'202':
description: Extraction queued or processing
content:
application/json:
schema:
$ref: '#/components/schemas/JobResponse'
'400':
description: Invalid request
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'401':
description: Missing, invalid, or revoked API key
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'402':
description: Insufficient credits
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'404':
description: Resource unavailable to this account
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'409':
description: Idempotency conflict or request still running
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'410':
description: Job expired
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'413':
description: Request too large
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'415':
description: Expected application/json
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'422':
description: Amazon extraction could not be completed; reserved credits released
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'429':
description: Rate or concurrency limit exceeded; retry after the indicated delay
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'502':
description: Extraction or conversion service failed
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'503':
description: Service unavailable; retry after the indicated delay
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
/scrapes/{jobId}:
get:
operationId: getScrape
summary: Get extraction status
tags:
- Extraction
parameters:
- name: jobId
in: path
required: true
schema:
type: string
format: uuid
description: Customer-owned public job ID.
responses:
'200':
description: Current job status
content:
application/json:
schema:
$ref: '#/components/schemas/JobResponse'
'400':
description: Invalid request
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'401':
description: Missing, invalid, or revoked API key
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'402':
description: Insufficient credits
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'404':
description: Resource unavailable to this account
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'409':
description: Idempotency conflict or request still running
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'410':
description: Job expired
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'413':
description: Request too large
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'415':
description: Expected application/json
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'422':
description: Amazon extraction could not be completed; reserved credits released
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'429':
description: Rate or concurrency limit exceeded; retry after the indicated delay
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'502':
description: Extraction or conversion service failed
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'503':
description: Service unavailable; retry after the indicated delay
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
/scrapes/{jobId}/result:
get:
operationId: getScrapeResult
summary: Get extraction result
tags:
- Extraction
parameters:
- name: jobId
in: path
required: true
schema:
type: string
format: uuid
description: Customer-owned public job ID.
responses:
'200':
description: Completed result; no additional charge
content:
application/json:
schema:
$ref: '#/components/schemas/MediaResponse'
'202':
description: Extraction is still pending
content:
application/json:
schema:
$ref: '#/components/schemas/JobResponse'
'400':
description: Invalid request
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'401':
description: Missing, invalid, or revoked API key
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'402':
description: Insufficient credits
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'404':
description: Resource unavailable to this account
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'409':
description: Idempotency conflict or request still running
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'410':
description: Job expired
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'413':
description: Request too large
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'415':
description: Expected application/json
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'422':
description: Amazon extraction could not be completed; reserved credits released
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'429':
description: Rate or concurrency limit exceeded; retry after the indicated delay
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'502':
description: Extraction or conversion service failed
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
'503':
description: Service unavailable; retry after the indicated delay
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
components:
schemas:
MediaResponse:
type: object
properties:
status:
const: completed
jobId:
type:
- string
- 'null'
format: uuid
requestId:
type: string
cache:
type: object
additionalProperties: true
billing:
type: object
additionalProperties: true
data:
$ref: '#/components/schemas/ProductMedia'
required:
- status
- data
Error:
type: object
properties:
error:
type: object
properties:
code:
type: string
message:
type: string
required:
- code
- message
additionalProperties: false
requestId:
type: string
required:
- error
- requestId
JobResponse:
type: object
properties:
status:
type: string
enum:
- queued
- processing
- completed
- failed
- expired
jobId:
type:
- string
- 'null'
format: uuid
statusUrl:
type: string
resultUrl:
type: string
requestId:
type: string
cache:
type: object
properties:
hit:
type: boolean
required: []
additionalProperties: false
billing:
type: object
additionalProperties: true
required:
- status
ProductMedia:
type: object
properties:
version:
type: string
source:
type: object
properties:
asin:
type: string
marketplace:
type: string
canonicalUrl:
type: string
fetchedAt:
type: string
format: date-time
parserVersion:
type: string
renderMode:
type: string
enum:
- auto
- static
- interactive
default: auto
additionalProperties: true
product:
type: object
properties:
asin:
type: string
title:
type: string
additionalProperties: true
media:
type: object
properties:
productImages:
type: array
items:
type: object
additionalProperties: true
variantImages:
type: array
items:
type: object
additionalProperties: true
productVideos:
type: array
items:
type: object
additionalProperties: true
relatedVideos:
type: array
items:
type: object
additionalProperties: true
customerReviewVideos:
type: array
items:
type: object
additionalProperties: true
creatorVideos:
type: array
items:
type: object
additionalProperties: true
allVideos:
type: array
items:
type: object
additionalProperties: true
additionalProperties: true
counts:
type: object
additionalProperties: true
warnings:
type: array
items:
type: string
required:
- source
- product
- media
- counts
- warnings
securitySchemes:
bearerAuth:
type: http
scheme: bearer
description: Customer API key created in /dashboard/api-keys. Never place keys in query strings.