What is Amazon Marketing Cloud in DataDoe?
Amazon Marketing Cloud (AMC) lets AI agents and integrations run SQL against a dedicated AMC instance for a Seller or Vendor, through DataDoe MCP or the REST API. You can save workflows with optional schedules, start on-demand queries, poll for results, and download Amazon result files.
AMC is available by request only. To request access, use our contact form (opens in a new tab).
Until access is granted, AMC tools and REST routes are not available for the organization.
How do I enable AMC after access is granted?
- Connect Amazon Ads for the Seller or Vendor. The Ads identity must have an AMC account that can create new instances for that marketplace (see below).
- Open the account on the Accounts page (opens in a new tab) and enable AMC. Only the organization owner can enable or change AMC.
- Enable starts setup in the background. We email organization owners when the dedicated instance is ready; you do not need to wait in DataDoe. Queries and workflows then run through MCP or the REST API.
Which Amazon AMC accounts does DataDoe support?
Amazon has several AMC access paths. See Amazon's AMC overview (opens in a new tab):
- Self-service for Sponsored Ads advertisers: typically one default instance in the Amazon Ads console. DataDoe does not attach that instance.
- DSP advertisers: access is usually requested through an Amazon Ads account executive. That path is not enough on its own.
- AMC accounts that can create new instances through the Amazon Ads API: this is the path DataDoe uses.
DataDoe currently supports only the last of these: Ads identities whose AMC accounts Amazon returns as able to create new instances for the same marketplace. DataDoe then creates a dedicated instance. It does not import existing instances, and it does not support agency or manager accounts.
If the account is ineligible after Ads is connected, use the contact form (opens in a new tab).
How much does it cost?
An on-demand AMC query costs 2 AI Tokens (list price). It is currently promotional at 0 AI Tokens, including failed and cancelled executions. Validation is always 0 AI Tokens. See Subscription and pricing.
Amazon also limits each dedicated instance to 30 ad-hoc executions per day. Recurring work should use workflow schedules.
How to run an AMC query?
Typical runtime is 15 minutes or more. Poll no faster than 5 seconds. Download URLs last about 10 minutes — download immediately when they appear.
Provide either sql or workflowId, never both. Raw ad-hoc SQL is never persisted. Reuse requestId only with an identical payload.
Using MCP
- Connect DataDoe to Claude, ChatGPT, or another MCP-capable agent.
- Read the live schema with
amc_schema_find. - Dry-run the query with
amc_query_validate(sqlorworkflowId, never both). - Start the query with
amc_query_start. - If the response
outcomeisOPERATION, pollamc_operation_getuntil the operation is terminal. IfrecoveryStatusisAWAITING_CLIENT_PAYLOAD, resubmit the identical payload andrequestId— do not start a second execution. - Poll
amc_query_result_getuntildeliveryStatusisAVAILABLE, then download the files immediately. - Cancel a pending or running query with
amc_query_cancelwhen needed.
You can also list past results with amc_query_results_find.
Saved SQL lives in workflows (amc_workflows_find / amc_workflows_create / amc_workflows_update / amc_workflows_delete). Create, update, and delete return accepted operation state — poll amc_operation_get. Updates and deletes require the latest expectedStateHash from amc_workflows_find.
Using API
The easiest way to run AMC with the API is to paste this page URL into your coding AI agent and ask it to generate the code for you.
Authenticate every REST request with the datadoe-api-key header. Do not use X-Api-Key or Authorization.
1POST /api/v1/amc/query-executions
2Content-Type: application/json
3datadoe-api-key: YOUR_API_KEY- Set up your DataDoe API connection.
- Read the live schema with
GET /amc/schema. - Dry-run with
POST /amc/query-validations(sqlorworkflowId, never both). - Start the query with
POST /amc/query-executions. - If
outcomeisOPERATION, pollGET /amc/operations/:operationIduntil the operation is terminal. IfrecoveryStatusisAWAITING_CLIENT_PAYLOAD, resubmit the identical payload andrequestId. - Poll
GET /amc/query-results/:resultIduntildeliveryStatusisAVAILABLE, then download immediately. - Cancel with
POST /amc/query-results/:resultId/cancellationwhen needed.
List past results with GET /amc/query-results. Workflows: GET|POST /amc/workflows, PATCH /amc/workflows/:workflowId, POST /amc/workflows/:workflowId/deletion.
See the DataDoe API docs (opens in a new tab) for request and response schemas.
What do execution and delivery statuses mean?
Each result has two independent statuses:
executionStatus: Amazon query progress —PENDING,RUNNING,SUCCEEDED,FAILED,CANCELLED.deliveryStatus: whether result files are ready —WAITING,AVAILABLE,FAILED,EXPIRED,CANCELLED.
rowCount may be null until Amazon reports it.
Cancelling a query whose delivery is still WAITING sets deliveryStatus to CANCELLED. If files are already AVAILABLE, delivery is left unchanged. Cancelling an already-terminal result returns an error. Cancel is idempotent after a successful cancel.
Empty privacy-threshold results are ordinary result files.
What should I know about workflow ids?
DataDoe workflow ids must match AMC_SLUG_PATTERN: lowercase alphanumeric characters and - only, 1–64 characters. Amazon also allows _ and .; those ids cannot be addressed through DataDoe. amc_workflows_find / GET /amc/workflows omit invalid ids and workflows without SQL. meta.skippedCount is how many rows were omitted from data.

