AMZ Downloader Media API
The Media API from AMZ Downloader — 2 operation(s) for media.
The Media API from AMZ Downloader — 2 operation(s) for media.
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-media-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 Media 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: Media
paths:
/products/{asin}/media:
get:
operationId: getProductMedia
summary: Get cached product media
description: Read cached product media without starting extraction. Costs 1 credit on success. Use create scrape to refresh.
tags:
- Media
parameters:
- name: asin
in: path
required: true
schema:
type: string
pattern: ^[A-Za-z0-9]{10}$
- name: marketplace
in: query
required: false
schema:
type: string
enum:
- amazon.com
- amazon.ca
- amazon.com.mx
- amazon.com.br
- amazon.co.uk
- amazon.de
- amazon.fr
- amazon.it
- amazon.es
- amazon.nl
- amazon.se
- amazon.pl
- amazon.com.be
- amazon.ie
- amazon.co.jp
- amazon.in
- amazon.com.au
- amazon.sg
- amazon.ae
- amazon.sa
- amazon.com.tr
- amazon.eg
- amazon.co.za
default: amazon.com
- name: include
in: query
required: false
schema:
type: string
description: 'Comma-separated groups: productImages, variantImages, productVideos, relatedVideos, creatorVideos. Defaults to all groups.'
- name: renderMode
in: query
required: false
schema:
type: string
enum:
- auto
- static
- interactive
default: auto
- 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.
responses:
'200':
description: Cached media
content:
application/json:
schema:
$ref: '#/components/schemas/MediaResponse'
'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'
/videos/convert:
post:
operationId: convertVideo
summary: Convert Amazon video
description: Convert an Amazon media HLS URL into an MP4 URL. Costs 1 credit on success, including cached conversion results. Use an idempotency key for retries.
tags:
- Media
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: 4096
description: Amazon media HTTPS URL ending in .m3u8.
country:
type: string
pattern: ^[A-Za-z]{2}$
description: Optional two-letter country code.
required:
- url
additionalProperties: false
responses:
'200':
description: Converted MP4 URL
content:
application/json:
schema:
$ref: '#/components/schemas/ConversionResponse'
'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
ConversionResponse:
type: object
properties:
url:
type: string
format: uri
source:
type: string
cache:
type: object
properties:
hit:
type: boolean
required: []
additionalProperties: false
requestId:
type: string
billing:
type: object
additionalProperties: true
required:
- url
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.