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

> Submit one SP-API report request; returns reportId at once.

Access: **READ** · toolset amazon_sp · family sp.reports_2021-06-30

Check reports_getReports first for a recent DONE report to reuse, then poll reports_getReport until processingStatus is DONE. Many report types are already synced into SellerSheet's warehouse — query_report_data answers from it without an Amazon request (list_report_syncs shows which types the store syncs); request a report only for a type or window the warehouse lacks. Amazon SP-API · createReport · POST /reports/2021-06-30/reports

## Call it

MCP tool call:

```json
{
  "name": "reports_createReport",
  "arguments": {
    "store": "myStore-US",
    "reportType": "<reportType>"
  }
}
```

Tool API (early access — contact us):

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

## 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. |
| `reportType` | string | yes | the SP-API reportType constant (e.g. 'GET_MERCHANT_LISTINGS_ALL_DATA') or its human-readable name ('All Listings Report'). An open set of 100+ values — pick by intent; reports_getReports shows what already exists for the store. |
| `dataStartTime` | string · date-time |  | ISO 8601 window ('2024-01-01T00:00:00Z'), required for date-range report types; omit for snapshot reports. |
| `dataEndTime` | string · date-time |  | ISO 8601 window ('2024-01-01T00:00:00Z'), required for date-range report types; omit for snapshot reports. |
| `marketplaceIds` | string[] |  | optional 1–25 marketplaceId strings; omit and the server uses the store's own marketplace — pass a list only to span extra marketplaces. |
| `reportOptions` | object |  | optional {key: value}, free-form per reportType; the known analytics and vendor types are validated before the call. Brand Analytics SEARCH_TERMS, MARKET_BASKET and REPEAT_PURCHASE require {"reportPeriod": DAY \| WEEK \| MONTH \| QUARTER} (REPEAT_PURCHASE: WEEK \| MONTH \| QUARTER) with aligned dates (WEEK = Sunday to Saturday, MONTH = 1st to last day); SEARCH_QUERY_PERFORMANCE also requires "asin"; GET_SALES_AND_TRAFFIC_REPORT takes {"dateGranularity": DAY \| WEEK \| MONTH, "asinGranularity": PARENT \| CHILD \| SKU}; vendor sales and inventory require {"reportPeriod", "distributorView": MANUFACTURING \| SOURCING, "sellingProgram": RETAIL \| BUSINESS \| FRESH}. Omit for reports without options (orders, inventory, listings …). |

## Result

- `data.reportId` — poll it with reports_getReport.
- `data.processingStatus` — always the literal 'IN_QUEUE' — Amazon's createReport carries only reportId; never treat it as a poll result.
- `data.reportType` — the normalised constant. data.marketplaceIds: the list used.