Amazon Ads
Amazon Ads: reporting/reports/{report Id} API
Amazon Ads: reporting/reports/{report Id} API.
MCP tool name
nexscope_data_amazon_ads_developer_proxy_reporting_reports_report_idMCP endpoint
https://api.nexscope.ai/mcpJSON-RPC method
tools/callAuthentication
Use OAuth 2.1 Authorization Code with PKCE and the mcp:tools scope. API keys remain supported as a compatibility option.
Authorization: Bearer nk-xxxxxxxxxxxxxxxxxIf authentication fails, ask the user to open API Access and copy a valid key.
Call this MCP tool
Initialize an MCP 2025-11-25 Streamable HTTP session at https://api.nexscope.ai/mcp, then use tools/call.
{
"jsonrpc": "2.0",
"id": "data-amazon-ads-developer-proxy-reporting-reports-report-id-1",
"method": "tools/call",
"params": {
"name": "nexscope_data_amazon_ads_developer_proxy_reporting_reports_report_id",
"arguments": {
"body": "{\"reportTypeId\":\"spCampaigns\"}",
"contentType": "application/vnd.createasyncreportrequest.v3+json",
"method": "GET"
}
}
}MCP 2025-11-25 · Streamable HTTPProgress is delivered on the original POST SSE response. GET SSE carries notifications; reconnecting must query existing asynchronous work rather than submit again.
Arguments
| Name | Type | Required | Description |
|---|---|---|---|
connectionId | integer | required | An Amazon Ads connection owned by the authenticated Nexscope user. Example: {} |
reportId | string | required | Report ID created; creation skipped after passed in. Example: {} |
name | string | optional | Report display name. Example: {} |
timeUnit | string | optional | `DAILY` or `SUMMARY`. Example: SUMMARY |
format | string | optional | Report file format. Example: GZIP_JSON |
filters | array | optional | Field and value enumerations are based on the corresponding report-type file. Example: {} |
pollInterval | integer | optional | Polling interval in seconds. Example: 30 |
maxAttempts | integer | optional | Maximum number of polls, default waiting window of approximately 10 minutes. Example: 20 |
skipDepCheck | boolean | optional | Skip dependency checking. Example: false |
serveExtractedFileHttp | boolean | optional | Whether to start the native temporary HTTP service. Example: true |
serveHost | string | optional | Native service binding address. Example: {} |
servePort | integer | optional | 0 indicates the system allocated port. Example: 0 |
serveSeconds | integer | optional | The number of seconds the local link remains alive. Example: 300 |
includeAmazonSourceUrl | boolean | optional | Whether to return the Amazon presigned source URL. Example: false |
confirmationToken | string | optional | For mutations, first preview without a token, then confirm using the returned single-use token. Example: {} |
Response fields
Treat structuredContent as the programmatic API response payload.
| Name | Type | Required | Description |
|---|---|---|---|
success | boolean | optional | Whether downloaded and decompressed successfully. Example: {} |
reportId | string | optional | Amazon reporting ID. Example: {} |
status | string | optional | `PENDING`, `PROCESSING`, `COMPLETED` or `FAILED`. Example: {} |
reportTypeId | string | optional | The type of report requested. Example: {} |
pollAttempts | integer | optional | Number of times polled. Example: {} |
elapsedSeconds | number | optional | The number of seconds elapsed. Example: {} |
downloadPath | string | optional | The downloaded or decompressed local file path. Example: {} |
extractedFileHttpUrl | string | optional | Native temporary file URL (if enabled). Example: {} |
serveExpiresAt | string | optional | Native URL expiration time (if returned). Example: {} |
failureReason | string | optional | Reason for upstream failure when `FAILED`. Example: {} |
resumeHint.mode | string | optional | `poll-only`。 Example: {} |
resumeHint.params | object | optional | Reuse the same reportId and increase maxAttempts to continue polling. Example: {} |
Examples
Example arguments
{
"body": "{\"reportTypeId\":\"spCampaigns\"}",
"contentType": "application/vnd.createasyncreportrequest.v3+json",
"method": "GET"
}Example structuredContent
{
"code": 0,
"cost": "-1",
"data": {},
"msg": null,
"time": "2026-01-01 00:00:00",
"traceId": null,
"ts": "0"
}