reports_getReport
Get one report's status; when DONE it returns a presigned download URL (data.documentUrl), never the rows — download and process the file yourself (no inline document, preview or s
readAmazon Seller (SP-API)sp.reports_2021-06-30
heet copy), then write only the curated result with write_sheet. Reports take 1–15 minutes depending on type and date range. Amazon SP-API · getReport · GET /reports/2021-06-30/reports/{reportId} Amazon SP-API · getReportDocument · GET /reports/2021-06-30/documents/{reportDocumentId}
Call it
In an AI client (MCP)
{
"name": "reports_getReport",
"arguments": {
"store": "myStore-US",
"reportId": "<reportId>"
}
}From code (Tool API)
curl -X POST https://api.sellersheetai.com/api/v1/tools/reports_getReport \
-H "Authorization: Bearer $SELLERSHEET_API_KEY" \
-H "Content-Type: application/json" \
-d '{"store":"myStore-US","reportId":"<reportId>"}'Early access — the Tool API is open on request, contact us.
Arguments
| Name | Type | Description |
|---|---|---|
storerequired | string | the store ref `<store>-<CC>` (name-country, e.g. 'myStore-US') — one of get_user_context's store_refs, verbatim. |
reportIdrequired | string | Amazon report ID returned by reports_createReport or reports_getReports. |
Result
Every tool answers {notification, data, human_action}; data carries:
data.reportId— same as input.data.processingStatus— 'IN_QUEUE' | 'IN_PROGRESS' | 'DONE' | 'CANCELLED' | 'FATAL'data.reportType— SP-API constant for this report.data.reportName— human-readable report name — use it to label output.data.documentUrl— (DONE) presigned S3 URL for the raw document.data.compressionAlgorithm— (DONE) 'GZIP' or null — how documentUrl bytes are compressed.data.urlExpiresInSeconds— (DONE) documentUrl TTL, typically 300.data.error_details— (FATAL/CANCELLED) why Amazon rejected it.
Params (Amazon schema; getReport)
reportId*: stringParams (Amazon schema; getReportDocument)
reportDocumentId*: string
enableContentEncodingUrlHeader: booleanGotchas
- data.compressionAlgorithm GZIP means the bytes are raw gzip (the URL forces identity encoding) — decompress them yourself. A body starting with { or [ is a JSON analytics report (Brand Analytics, Sales & Traffic) — read its dataBy… arrays; anything else is a tab-separated file with a header row. Never read a whole report into context. The URL expires after data.urlExpiresInSeconds (~300 s); call again for a fresh one. Without shell or URL access, give the user the link — the server never returns report contents.
Workflow
- 1. Read data.processingStatus. 2. DONE: download data.documentUrl yourself and analyze it. 3. IN_QUEUE or IN_PROGRESS: wait 2–5 minutes, then call again. 4. FATAL or CANCELLED: read data.error_details. A FATAL with no error document is usually Amazon's regeneration cooldown (an identical report finished recently) — reuse the newest DONE report from reports_getReports instead of re-creating it.