# ads_create_async_report (https://sellersheetai.com/docs/mcp-api/tools/ads_create_async_report)

> Request an Amazon Advertising performance report (async — not immediately available; poll with ads_get_async_report until status=COMPLETED, then read data.report rows).

Access: **READ** · toolset amazon_ads · family ads.reporting

Amazon Ads API · createAsyncReport · POST /reporting/reports Docs: https://advertising.amazon.com/API/docs/en-us/offline-report-prod-3p#tag/Asynchronous-Reports/operation/createAsyncReport

## Call it

MCP tool call:

```json
{
  "name": "ads_create_async_report",
  "arguments": {
    "store": "myStore-US",
    "countryCode": "<countryCode>",
    "body": {}
  }
}
```

Tool API (early access — contact us):

```bash
curl -X POST https://api.sellersheetai.com/api/v1/tools/ads_create_async_report \
  -H "Authorization: Bearer $SELLERSHEET_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"store":"myStore-US","countryCode":"<countryCode>","body":{}}'
```

## Arguments

| Name | Type | Required | Description |
|---|---|---|---|
| `store` | string | yes | the store ref `<store>-<CC>` (name-country, e.g. 'myStore-US') — one of get_user_context's store_refs, verbatim. |
| `countryCode` | string | yes | the Ads profile's 2-letter country code (e.g. 'US'). |
| `body` | object | yes | {name, startDate, endDate, configuration: {adProduct, reportTypeId, format: 'GZIP_JSON', groupBy: [...], columns: [...], timeUnit: 'SUMMARY'\|'DAILY', filters?}}. startDate / endDate: 'YYYY-MM-DD'; most report types look back at most 95 days. |

## Result

- `data.reportId` — pass to ads_get_async_report.
- `data.status` — the status at creation.

## Gotchas

- configuration.adProduct must match the reportTypeId's family: an sp* type needs SPONSORED_PRODUCTS, sb* needs SPONSORED_BRANDS, sd* needs SPONSORED_DISPLAY — a mismatched pair is rejected.
- A DSP report's filters need a real advertiserId ({"field": "advertiserId", "values": ["<id>"]}) — get one from ads_dsp_advertisers first.
- Commonly used report types: spCampaigns (groupBy campaign, SUMMARY, campaign totals; or campaign+campaignPlacement; or campaign+adGroup DAILY for a daily trend), spTargeting (groupBy targeting, SUMMARY), spSearchTerm (groupBy searchTerm, SUMMARY), spAdvertisedProduct / spPurchasedProduct (DAILY, ASIN-level), spGrossAndInvalids (groupBy campaign, DAILY), sbCampaigns / sdCampaigns (groupBy campaign, SUMMARY, adProduct SPONSORED_BRANDS / SPONSORED_DISPLAY respectively).
- Reports take minutes and can take up to 3 hours — poll every 5-10 minutes, never in a tight loop.