# reports_getReport (https://sellersheetai.com/docs/mcp-api/tools/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

Access: **READ** · toolset amazon_sp · family 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

MCP tool call:

```json
{
  "name": "reports_getReport",
  "arguments": {
    "store": "myStore-US",
    "reportId": "<reportId>"
  }
}
```

Tool API (early access — contact us):

```bash
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>"}'
```

## 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. |
| `reportId` | string | yes | Amazon report ID returned by reports_createReport or reports_getReports. |

## Result

- `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*: string

## Params (Amazon schema; getReportDocument)

- reportDocumentId*: string enableContentEncodingUrlHeader: boolean

## Gotchas

- 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.