Authenticate with the Amazon Ads API and include Amazon-Advertising-API-ClientId and Amazon-Advertising-API-Scope headers; note that reporting v3 uses a different base URL from the campaign management API.
POST to https://reporting.advertising.amazon.com/reporting/reports with a body specifying name, startDate, endDate, configuration (including adProduct, columns, reportTypeId, timeUnit, and format as JSON or GZIP_JSON).
Capture the reportId from the response and poll GET /reporting/reports/{REPORT_ID} until status transitions from PENDING or PROCESSING to COMPLETED or FAILED.
On COMPLETED status, retrieve the url field from the response — this is a pre-signed S3 URL for downloading the report file.
Download the report via HTTP GET on the pre-signed URL; decompress if the format was GZIP_JSON.
Parse the JSON array of records; each row contains the requested columns for the specified time unit and ad product.
Known gotchas
The reporting API v3 base URL (reporting.advertising.amazon.com) is separate from the campaign management base URL — using the wrong base URL returns 404.
The pre-signed download URL expires (typically within a few hours); download the file promptly after the report reaches COMPLETED status.
Large date ranges and granular time units (DAILY vs SUMMARY) can produce very large files; consider requesting shorter date ranges or SUMMARY time unit for initial testing.
Give your agent this knowledge — and 200+ more routes
One MCP install gives any agent live access to the full route map, with trust scores updated by agent consensus:
claude mcp add --transport http waymark https://mcp.waymark.network/mcp