Skip to content

Ad automation · 11 min read

Amazon Ads API Reporting: Profiles, Auth and Limits

How Amazon Ads API reporting works: authorization with Login with Amazon, profiles and headers, the create, poll and download flow, version 3 versus Reporting v1 and Marketing Stream, limits, throttling and data freshness.

By Published Updated

A blueprint-style sequence diagram of a report request, repeated status checks and a final file download.

Amazon Ads API reporting in five steps

A report request in the Amazon Ads API follows the same five steps whichever reporting surface you use:

  1. Get consent. The advertiser authorizes your Login with Amazon (LwA) application. You trade the one-time code for an access token and a refresh token.
  2. Pick the account. Call GET /v2/profiles on the right regional host and keep the profile ID (or, for some APIs, the account ID).
  3. Create the report. Send a date range, the report type or fields you want, and a format. The response holds a report ID and the status PENDING.
  4. Poll. Check the report until its status is COMPLETED.
  5. Download. Fetch the file from the pre-signed link in the response and load it.

Everything below was checked against Amazon’s developer documentation on 2026-10-14 (page names are listed under Sources). Amazon changes these pages often, so treat them as the authority and this article as a map.

How does Amazon Ads API authorization work?

Two parties take part: the advertiser, who grants consent, and a client application registered with Login with Amazon and approved by Amazon Ads for API access (authorization overview). The flow is OAuth 2.0:

  1. The advertiser opens a consent URL tied to your client ID. Amazon serves it from one of three regional hosts, with the scope advertising::campaign_management for most uses.
  2. Login with Amazon redirects back to your return URL with an authorization code. Exchange it within 5 minutes.
  3. Post the code, client ID and client secret to the token URL. You receive an access token (valid for 60 minutes) and a refresh token. Amazon states the resulting tokens are valid across all regions.
  4. Later, post the refresh token to the same token URL to mint new access tokens without asking the advertiser again.

Refresh tokens deserve a calendar entry. Amazon states that tokens issued on or after 30 July 2026 expire 365 days after the advertiser’s consent, while earlier tokens stay valid until revoked (refresh tokens). A lapsed or revoked token returns HTTP 400 with invalid_grant. In a pipeline that looks like a silent data gap unless something alerts on it.

Profiles, headers and regional hosts

A profile is an advertiser account in one marketplace. GET /v2/profiles needs no scope header, returns at most 5,000 items, and lists only profiles in the region of the host you call (profiles). Each profile carries a country code, currency code and time zone. Store them: they decide how to read dates and money in that marketplace’s reports.

The three API hosts are advertising-api.amazon.com (North America), advertising-api-eu.amazon.com (Europe) and advertising-api-fe.amazon.com (Far East). Each covers a defined list of marketplaces (first call guide).

Header names are not uniform across Amazon’s pages. The authorization overview names Amazon-Advertising-API-ClientId; the version 3 tutorial and first-call guide name Amazon-Ads-ClientId. The profile ID goes in Amazon-Advertising-API-Scope, and the account ID in Amazon-Ads-AccountId, which the first-call guide lists for reporting and cross-product operations. Copy header names from the reference page of the endpoint you call, not from another guide.

How do Amazon Ads API v3 reports work?

Version 3 uses one endpoint to create reports, POST /reporting/reports, with the content type application/vnd.createasyncreportrequest.v3+json (get started with version 3 reports). The body names the date range, the ad product, a reportTypeId such as spCampaigns, a groupBy level, the columns you want, a timeUnit of DAILY or SUMMARY, and a format (GZIP_JSON).

Then:

  • Poll with GET /reporting/reports/{reportId}. The status moves from PENDING or PROCESSING to COMPLETED. Amazon says generation can take up to three hours. The response also has a failureReason field, so log it.
  • Download from the url field, a link to S3. Decompress the gzip and read JSON.

Three details trip people up:

  • You only get the columns you request. Use date with DAILY, and startDate and endDate with SUMMARY.
  • A duplicate request with identical parameters while one is outstanding returns status 425, meaning too soon. Wait for the first report.
  • Campaign names and budgets belong in an export, joined on the ID, rather than in reports (reporting overview).

Report types, date ranges and retention

Version 3 organizes reports by what you group on: campaign, ad group, ad, targeting, search term, placement, advertised product, purchased product, gross and invalid traffic, and several DSP-specific types, with availability that varies by ad product (report types). Sponsored Products, Sponsored Brands, Sponsored Display, Sponsored Television and DSP each have their own reportTypeId. The Amazon DSP explainer covers what the DSP side measures.

Limits are set per report type. For campaign reports, Amazon lists a maximum date range of 31 days and these retention periods (campaign reports):

Ad product Campaign report retention
Sponsored Products 95 days
Sponsored Television 95 days
Sponsored Display 65 days
Sponsored Brands 60 days

A backfill is therefore a series of requests of at most 31 days each, and history older than the retention window cannot be recovered from the API. Keep what you load.

Reporting API v1: how it differs from v3

Amazon’s version 3 pages carry a notice that the API will be deprecated on 30 June 2027 and point to the Reporting API v1 (Reporting v1 overview, quickstart). The main differences:

  • Fields instead of report types. You request dimension and metric fields such as campaign.id, date.value and metric.impressions. Time is a dimension, so a daily report means including date.value.
  • Different endpoints. Create with POST /adsApi/v1/create/reports, check with POST /adsApi/v1/retrieve/reports. Statuses are PENDING, PROCESSING, COMPLETED and FAILED, and Amazon recommends checking about once per minute.
  • Several accounts per request. One request can name up to five accounts, including manager accounts (helpful concepts).
  • Partitioned output. PARTITIONED_GZIP_JSON and PARTITIONED_CSV split a report into parts of up to 1 GB uncompressed, each with its own link (file formats).
  • Redefined metrics. Conversion metrics lose the 1d, 7d, 14d and 30d suffixes and are reported on the traffic date, not the conversion date. Amazon warns that some DSP metrics now use broader definitions that include halo conversions, so mappings need review.

The v1 pages in Sources do not state a maximum date range or retention window. Check the API reference before sizing backfills.

What is Amazon Marketing Stream?

Amazon Marketing Stream pushes advertising data to AWS instead of making you poll for it. Amazon’s reporting overview describes version 2 as the primary programmatic reporting surface and recommends it for new integrations and recurring reporting at scale (reporting overview).

Item Stream version 1 Stream version 2
Destination Amazon Data Firehose or an SQS queue S3 bucket you own, plus an SQS notification queue
Format JSON Apache Parquet
Values Deltas per time window Total value per time window
Frequency Hourly Intervals as short as 15 minutes
Datasets Per ad product, such as sp-traffic and sp-conversion Unified, such as ads-performance-v1 (hourly) and ads-converted-product-v1 (daily)
Status Shut off after 30 June 2027 Recommended for new integrations

Source for the table: Stream overview, datasets and v1 data guide.

Version 2 delivers at least once and with no ordering guarantee. A restated record arrives again as a new version of the same key, and you keep the row with the highest streamBatch.version (data delivery). A new subscription also receives historical data for the dataset’s restatement period. Amazon’s overview says there is no polling or throttling with Stream, and an automated backfill of up to 70 days on subscription creation.

What are the Amazon Ads API rate limits for reports?

Amazon returns HTTP 429 when you send too many requests, with a Retry-After header giving the seconds to wait (rate limiting). Report limits depend on the size of the report queue in each region, so they drop at busy times. Amazon recommends exponential backoff, longer backoff for report generation, and spreading backfills across the day in smaller slices.

For Reporting v1, Amazon documents one running report per advertiser, which it says allows roughly 100 reports per day. A request made while another is running is queued or gets a 429. Practical rules:

  • Serialize report requests per advertiser account.
  • Honour Retry-After and add jitter to your own backoff.
  • Persist the report ID as soon as you receive it, so a crash during polling does not create a duplicate request.
  • Run backfills in small slices, outside busy hours.

How fresh is Amazon Ads API data?

Amazon states that initial impression and click data for sponsored ads is available through the API within 12 hours, and recommends waiting at least five days for accurate click data, since its invalid traffic system monitors for up to 30 days. Conversion data is refreshed and validated at daily, weekly and monthly intervals and can change for up to 60 days back. Amazon recommends re-retrieving reports monthly (reporting overview).

Loading a day once is therefore not enough. Re-pull a rolling window of recent days on every run and a wider window less often, and merge on a natural key so repeats are harmless. Idempotent ad reporting pipelines covers the load pattern. For how restated attributed sales change a ratio such as ACOS, see ACOS vs TACoS.

Which Amazon Ads API reporting surface fits?

Need Fit according to Amazon’s documentation
Recurring data at scale, intraday freshness, many accounts Stream version 2
Ad hoc or scheduled reports with chosen dimensions Reporting API v1
An existing integration on version 3 Keep it running and plan the migration before 30 June 2027
Campaign names, budgets, status Exports, joined on IDs

Sales, orders and inventory for the seller’s own business come from a different API with different credentials. Selling Partner API vs Amazon Ads API shows how the two fit together, and the Amazon platform page covers the wider Amazon advertising picture. If you are deciding whether to build the extraction at all, marketing ETL explained lays out the moving parts.

Where Vexio fits

Vexio builds and operates Amazon Ads extraction as part of custom advertising data pipeline engagements: authorization and token renewal, report creation and polling with throttle-aware retries, backfills inside the documented limits, a rolling re-pull of recent days, and loading into a warehouse such as BigQuery or PostgreSQL. Which reporting surface to target is settled during scoping, based on freshness needs and your cloud stack. See the advertising data pipelines page or request a demo.

Sources

Checked on 2026-10-14. Amazon Ads API documentation:

FAQ

Questions this guide answers.

Reporting is asynchronous. The advertiser authorizes your Login with Amazon application, you identify the account with a profile ID, create a report request, poll its status until it is completed, then download the file from a pre-signed link. Amazon documents version 3 reporting, the newer Reporting API v1 and Amazon Marketing Stream as the available surfaces.

A profile represents an advertiser account in one marketplace. You list profiles with GET /v2/profiles on the regional host that covers the marketplace. Most calls need the profile ID in the Amazon-Advertising-API-Scope header, and each profile also carries a country code, currency code and time zone that you should store for reading report dates and money.

Amazon states that a version 3 report can take up to three hours to generate. Initial sponsored ads impression and click data is available within 12 hours, and conversion data can change for up to 60 days. Poll with a delay between requests, and do not resend an identical request while one is outstanding, because Amazon answers with status 425.

Amazon's version 3 pages state that the reporting API will be deprecated on 30 June 2027, and its overview lists version 2 reporting and Amazon Marketing Stream version 1 with the same shut-off date. For new work, Amazon points to the Reporting API v1 for scheduled reports and Marketing Stream version 2 for recurring reporting at scale.

Amazon says report limits are dynamic and depend on the size of the report queue in each region, so they tighten at busy times. A 429 response includes a Retry-After header. Use exponential backoff, spread backfills through the day, and note that Reporting API v1 allows one running report per advertiser at a time.

Amazon Marketing Stream is a push service that delivers advertising data to AWS destinations you own instead of requiring repeated API calls. Version 1 delivered JSON deltas to Amazon Data Firehose or SQS. Version 2 writes Parquet files with total values to an S3 bucket, with an SQS notification for each delivery, at intervals as short as 15 minutes.

Further reading
  • Ad automation · 14 Oct 2026 · 10 min

    Amazon SP-API vs Amazon Ads API: Which Data Is Where

    The Selling Partner API covers orders, inventory and sales reports; the Amazon Ads API covers campaigns and ad performance. Who can use each, how authorization differs, how SP-API reports work, and how to join them for TACoS.

    Read the article →

  • Cloud and DevOps · 14 Oct 2026 · 9 min

    Marketing ETL Explained: Pipelines, ELT and Build vs Buy

    What marketing ETL means, why advertising data needs more care than ordinary ETL, how ETL differs from ELT, typical sources and destinations, a pipeline checklist, and how to decide between building and buying.

    Read the article →

  • Cloud and DevOps · 14 Oct 2026 · 10 min

    Idempotent Ad Reporting Pipelines: Backfills and Late Data

    How to make ad reporting loads safe to retry: natural keys, MERGE versus partition overwrite in BigQuery, re-pulling restated and late-arriving data, a loaded-dates ledger, backfills within API limits, and retries.

    Read the article →

  • Glossary · 14 Oct 2026 · 8 min

    ACOS vs TACoS: Formulas, Definitions and an Example

    ACOS measures how efficient ads are on the sales they get credit for. TACoS measures ad spend against all sales. Formulas, a worked example with made-up numbers, and how attribution windows and halo sales change both.

    Read the article →

  • Retail media · 14 Oct 2026 · 8 min

    Amazon DSP Explained: Access, Audiences and Reporting

    Amazon DSP is Amazon Ads' programmatic buying product, which Amazon says has evolved into Amazon Ads Agent. How it differs from sponsored ads, who can use it, what Amazon states about fees and minimums, and how reporting works.

    Read the article →

Talk to us

Want this applied to your own case?

Tell us what you run or want to build. We reply by email to arrange a demo or a scoping conversation.

WhatsApp
Message us
Web
vexio.ai