Skip to main content

What is Amazon Marketing Cloud in DataDoe?

Amazon Marketing Cloud (AMC) lets AI agents and integrations run SQL against the AMC instance of a Seller or Vendor, through DataDoe MCP or the REST API. You can start from ready-made query templates or write your own SQL, save workflows with optional schedules, start on-demand queries, poll for results, and download Amazon result files. You can also create AMC audiences for Sponsored Ads with Actions.

AMC is in beta and available to every organization. You do not need to request access: enable AMC for a Seller or Vendor as described below.

How do I enable AMC?

  1. Connect Amazon Ads for the Seller or Vendor on the same marketplace (see below for the supported AMC access paths).
  2. On the Accounts page (opens in a new tab), click AMC in the account's row (or Manage AMC in the account details). It opens the account's Amazon Marketing Cloud page. Only the organization owner can enable or change AMC. When DataDoe offers more than one option, pick one first (see below). Then click the button below the options: Enable self-service, Connect instance, or Create instance, depending on the option. For self-service AMC, DataDoe asks you to confirm first, because enabling creates the AMC instance in your Amazon Ads account if it does not exist yet. For an existing instance in your AMC account, DataDoe also asks you to confirm first (see Can I connect an existing AMC instance?).
  3. Enable starts setup in the background. We email organization owners when AMC is ready (unless they turned off this email); you do not need to wait in DataDoe. Queries and workflows then run through MCP or the REST API. Until AMC is enabled for a Seller or Vendor, AMC tools and routes for it return HTTP 404 AMC_NOT_FOUND with a message saying AMC is not connected.
  4. To validate, start, or cancel queries and to create, update, or delete workflows, set the Seller or Vendor's Access level to Read and write on the Accounts page (opens in a new tab). With the default Read only access, you can read the schema, workflows, and results, but those operations return HTTP 403 AMC_FORBIDDEN.

Which Amazon AMC accounts does DataDoe support?

Amazon has several AMC access paths. See Amazon's AMC overview (opens in a new tab):

  • AMC accounts listed for the Amazon login of the Ads connection (usually provisioned by Amazon after a request through an Amazon Ads account executive or partner, and common for agencies and brands with their own AMC account): DataDoe connects an existing instance of that AMC account as it is, or creates a new, empty dedicated instance in it when the account can create instances through the Amazon Ads API.
  • Self-service AMC for Sponsored Ads advertisers: one standard instance per Sponsored Ads account and marketplace, also used by AMC in the Amazon Ads console. DataDoe connects that instance, or creates it if it does not exist yet.

DataDoe always offers the self-service AMC instance of the Ads connection's Sponsored Ads account. If the Ads connection also has AMC accounts on the marketplace, for example an agency's AMC account, the organization owner picks one option: Brand's self-service instance, or, under the name of each AMC account, one of its existing instances that already includes the Sponsored Ads account or a New dedicated instance. Without such accounts, self-service AMC is the only option.

Amazon paid features and subscriptions, such as Amazon Insights, belong to one instance. A new dedicated instance does not have the paid features of another instance, so pick the instance you subscribed in: the brand's self-service instance, or the existing instance in your AMC account.

What to know about self-service AMC:

  • Amazon requires the AMC terms to be accepted for the account's region (North America, Europe, Far East). Until then, DataDoe shows AMC terms required. See What if DataDoe shows AMC terms required?
  • The instance is shared with the AMC console: workflows and results created there are also visible through DataDoe, and deleting a workflow through DataDoe deletes it in the console too.
  • Amazon does not allow deleting self-service instances through the API. Disconnecting AMC in DataDoe only removes the DataDoe connection; the instance, its workflows, and schedules stay in your Amazon Ads account.

Can I connect an existing AMC instance?

Yes, when the Amazon login of the account's Ads connection can see the AMC account that holds the instance. DataDoe lists the existing instances under the name of their AMC account, above its New dedicated instance option, with every advertiser the instance serves.

  • DataDoe lists only finished, standard instances that already include the account's Sponsored Ads account. DataDoe never adds advertisers to an instance it did not create. Other instances of the AMC account appear under … more instances can't be connected, with the reason: add the Sponsored Ads account to the instance in the AMC console, then reload the page. An instance that is already connected in DataDoe is not listed.
  • DataDoe connects the instance as it is, with its workflows, schedules, data history, advertisers, and paid feature subscriptions. It does not rename, configure, or replace anything in it.
  • Before Enable, the owner confirms that DataDoe users and AI agents with AMC write access can create, change, and delete workflows and schedules on the instance, including those created in the AMC console. Executions of the last 30 days, including console runs, appear in results.
  • Shared instances: when the instance serves more advertisers than this account (another brand, or a DSP advertiser of the same brand), everyone with access to this account in DataDoe, including AI agents through MCP, can query the data of all of them. DataDoe lists those advertisers and Enable stays disabled until the owner confirms this.
  • If the Amazon login loses access to the instance, the status becomes AMC access required. If the Sponsored Ads account is removed from the instance, setup fails with instructions: add it again in the AMC console, then click Retry.
  • Disconnecting deletes nothing: the instance, its workflows (including those created through DataDoe), schedules, paid feature subscriptions, and data stay in your AMC account.

If the account is ineligible after Ads is connected, use the contact form (opens in a new tab).

What if DataDoe shows AMC terms required?

DataDoe reaches self-service AMC with the Amazon login that authorized the account's Amazon Ads connection in DataDoe. AMC terms required means Amazon answers those requests with "Terms and conditions must be accepted to continue" for the account's region (North America, Europe, Far East).

That login can differ from the one you use in the AMC console, for example when the account was added with an invitation link or someone else connected Amazon Ads. If the AMC console shows nothing to accept, your console login has most likely accepted the terms already. Use one of these options:

  1. Reauthorize the Ads connection with your login. On the Accounts page (opens in a new tab), click the refresh icon next to the account's Ads Connection (on the Sellers, Vendors, or Ads tab, or in the account details), sign in to Amazon with the login you use in the AMC console, and pick the same Ads account. This keeps the connection, its data, and AMC. From then on your login authorizes the Ads connection, so it needs to keep access to that Ads account in Amazon.
  2. Ask the person who authorized the Ads connection to accept the terms. They sign in to the Amazon Ads console with their own login, open the advertiser account, go to Measurement & Reporting > Amazon Marketing Cloud (or the Amazon Marketing Cloud console (opens in a new tab)), and accept the terms for the region if Amazon shows them.

DataDoe then usually resumes setup automatically within a few minutes: it checks the instance about every 5 minutes, and waits an hour after a failed automatic attempt. Use Restore access on the account's AMC page to retry right away.

How do I disconnect AMC?

  1. On the Accounts page (opens in a new tab), click AMC in the account's row. Only the organization owner can disconnect AMC.
  2. Click Disconnect AMC and confirm. While DataDoe is creating a new dedicated instance (status Creating instance), wait until that step finishes.
  3. Disconnecting runs in the background. The status shows Disconnecting until it finishes.

To switch between self-service AMC, an existing instance, and a dedicated instance, disconnect AMC, wait until disconnecting finishes, then click Enable AMC again and pick the other option.

You must disconnect AMC before you delete a Seller, Vendor, or Amazon Ads only account, or change its Ads connection. Until then, the delete button in the account's row on the Accounts page is disabled.

Disconnecting a dedicated instance (created by DataDoe in an AMC account) deletes it: DataDoe cancels running queries and deletes the instance's workflows, schedules, and the instance itself. AMC audiences created in that instance may stop being available in Sponsored Ads. Disconnecting self-service AMC or an existing instance only removes the DataDoe connection; the instance, its workflows, schedules, and paid feature subscriptions stay in your Amazon Ads or AMC account, and DataDoe changes nothing on Amazon. After any disconnect, past results are no longer available through DataDoe.

How much does it cost?

AMC itself is free for advertisers. Retrieving an AMC query result through DataDoe costs 5 AI Tokens (list price), charged once per execution the first time its files are returned. It is currently promotional at 0 AI Tokens. Starting and validating queries, failed and cancelled executions, and fetching the same result again are free. See Subscription and pricing.

If your AI Token balance runs out, Amazon keeps running your workflows and schedules (DataDoe never pauses them). Retrieving a result that has not been charged yet returns the no-tokens error (HTTP 402, the same error other paid operations return) until you refill your balance. Results stay available until their expiresAt, so refill before then. Results that were already retrieved and charged can be fetched again for free. Starting a query is free and never checks your balance.

What limits does Amazon apply?

Use on-demand queries for testing and one-off reports. For recurring reports, save the SQL as a workflow with a schedule.

  • 30 on-demand executions per day per instance. Every on-demand start counts, with sql and with workflowId alike; only scheduled runs are exempt. Validation (dry run) does not count. Amazon does not document when the day resets. Over the limit, starting a query fails with HTTP 429 AMC_AD_HOC_LIMIT_REACHED; retry later.
  • 10 executions running in parallel per instance. Further executions wait in Amazon's queue. A self-service or existing instance shares this, and the 30 daily on-demand executions, with runs started in the AMC console.

Amazon may change these limits. See Amazon's workflow execution guide (opens in a new tab).

How to run an AMC query?

Runtime depends on the query. Amazon documents that executions typically take at least 15 minutes; simple COUNT/aggregations can finish in under a minute — treat this as a range, not a guarantee. Poll no faster than 5 seconds. Cancel while delivery is WAITING if you do not want to wait; once AVAILABLE the result stays. Through MCP, download URLs are served by DataDoe, need no authentication headers, and last 15 minutes; files larger than 25 MB redirect to an Amazon URL. Through the REST API, they are Amazon URLs that last about 10 minutes. Download immediately when they appear.

Provide exactly one of sql, workflowId, or templateId. Raw ad-hoc SQL is never persisted (AMC audience Actions store their audience SQL with the Action). Reuse requestId only with an identical payload.

For an EXPLICIT time window, timeWindowStart and timeWindowEnd are UTC instants (ending in Z), also when you set timeWindowTimeZone.

When validation returns valid: false, each entry in diagnostics has code, severity, and message; the message carries Amazon's error text, for example the line and column and the column or table that was not found. Validation waits up to 15 seconds for Amazon; if it returns AMC_UPSTREAM_UNAVAILABLE, retry with the same requestId.

Query templates

DataDoe maintains ready-made AMC query templates, such as new-to-brand customers by ASIN, keyword halo sales, ad product overlap, path to conversion, cross-sell, and customer value. Start with a template before writing SQL: run it by templateId, or copy its SQL, edit it, and send it as sql. Templates are free; result pricing is the same as for your own SQL.

Some templates need an Amazon paid feature (Amazon Insights). Checking a template with your sellerOrVendorId shows whether the AMC instance has every data source it needs. A template whose data sources are missing is rejected with HTTP 422 AMC_TEMPLATE_DATA_SOURCES_UNAVAILABLE before anything runs in Amazon.

Using MCP

  1. Connect DataDoe to Claude, ChatGPT, or another MCP-capable agent.
  2. Find a template with amc_query_templates_find and read it with amc_query_template_get (pass sellerOrVendorId to check availability). For custom SQL, read the live schema with amc_schema_find.
  3. Dry-run the query with amc_query_validate (exactly one of sql, workflowId, or templateId).
  4. Start the query with amc_query_start.
  5. If the response outcome is OPERATION, poll amc_operation_get until the operation is terminal; when it SUCCEEDED, its resourceId is the resultId. If recoveryStatus is AWAITING_CLIENT_PAYLOAD, resubmit the identical payload and requestId — do not start a second execution.
  6. Poll amc_query_result_get until deliveryStatus is AVAILABLE, then download each files[].downloadUrl with a plain GET request (no authentication headers). Call amc_query_result_get again for new URLs.
  7. Cancel a pending or running query with amc_query_cancel when needed.

You can also list past results with amc_query_results_find. Results of schedules and AMC console runs appear within an hour. Listing results for a specific Seller or Vendor (sellerOrVendorId) first imports its recent Amazon runs, at most every 5 minutes.

Saved SQL lives in workflows (amc_workflows_find / amc_workflows_create / amc_workflows_update / amc_workflows_delete). To schedule a template, call amc_workflows_create with templateId instead of sql; the template's current SQL is copied into the workflow, and amc_workflows_find shows which template and version a workflow uses. 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.

http
1POST /api/v1/amc/query-executions
2Content-Type: application/json
3datadoe-api-key: YOUR_API_KEY
  1. Set up your DataDoe API connection.
  2. Find a template with GET /amc/query-templates and read it with GET /amc/query-templates/:templateId (add sellerOrVendorId to check availability). For custom SQL, read the live schema with GET /amc/schema.
  3. Dry-run with POST /amc/query-validations (exactly one of sql, workflowId, or templateId).
  4. Start the query with POST /amc/query-executions.
  5. If outcome is OPERATION (HTTP 202), poll GET /amc/operations/:operationId until the operation is terminal; when it SUCCEEDED, its resourceId is the resultId. If recoveryStatus is AWAITING_CLIENT_PAYLOAD, resubmit the identical payload and requestId.
  6. Poll GET /amc/query-results/:resultId until deliveryStatus is AVAILABLE, then download immediately.
  7. Cancel with POST /amc/query-results/:resultId/cancellation when needed.

List past results with GET /amc/query-results (filter template runs with templateId). Workflows: GET|POST /amc/workflows (POST accepts templateId instead of sql), PATCH /amc/workflows/:workflowId, POST /amc/workflows/:workflowId/deletion.

Every write request (validate, start, cancel, and workflow create, update, delete) needs a requestId (UUID) and a sellerOrVendorId in the JSON body. GET /amc/query-results/:resultId and GET /amc/operations/:operationId need sellerOrVendorId as a query parameter. See the DataDoe API docs (opens in a new tab) for request and response schemas.

Can I create AMC audiences?

Yes, for Sponsored Ads. AMC audiences are groups of shoppers that you select with SQL, for example shoppers who added a product to the cart but did not buy it. Use them to increase bids in Sponsored Products and Sponsored Brands campaigns, or as targets in Sponsored Display. DSP audiences are not supported.

AMC audiences are Actions, not AMC queries: AMAZON_ADS_AMC_AUDIENCES_ADD, AMAZON_ADS_AMC_LOOKALIKE_AUDIENCES_ADD, AMAZON_ADS_AMC_AUDIENCES_UPDATE, AMAZON_ADS_AMC_AUDIENCES_REMOVE, AMAZON_ADS_AMC_AUDIENCES_FIND, and AMAZON_ADS_TARGETABLE_AUDIENCES_FIND. An organization owner enables them under Settings > Actions, and they need AMC enabled for the Seller or Vendor.

Amazon builds an audience in the background and makes it available in Sponsored Ads about 24 to 48 hours after it is ready. DataDoe does not attach it to campaigns later on its own: your AI agent checks the audience, finds its Sponsored Ads ID, and attaches it with the Amazon Ads campaign or target Actions. Audience queries do not return results files and are not counted as AMC query results.

Creating or updating an audience costs 5 AI Tokens per audience (currently promotional 0). Finding and deleting audiences is free.

What errors can AMC return?

AMC errors share one JSON shape: status, entityType (AMC), code, message, retryable, requiredAction, and config. The most common codes:

  • AMC_INVALID_REQUEST (400): the request does not match the schema, for example both sql and workflowId.
  • AMC_TEMPLATE_DATA_SOURCES_UNAVAILABLE (422): the AMC instance lacks a data source the template needs, usually an Amazon paid feature; config lists the missing data sources and paid features. Validation reports the same code as a diagnostic.
  • AMC_FEATURE_DISABLED (403): AMC is turned off for the organization.
  • AMC_FORBIDDEN (403): the Seller or Vendor needs Read and write access for this operation.
  • AMC_NOT_FOUND (404): the Seller or Vendor has no AMC connection, or the result, operation, or workflow does not exist. When AMC is not connected, the message says so and explains how the organization owner enables AMC in DataDoe.
  • AMC_IDEMPOTENCY_CONFLICT (409): a requestId was reused with a different payload.
  • AMC_AD_HOC_LIMIT_REACHED and AMC_UPSTREAM_RATE_LIMITED (429), AMC_UPSTREAM_UNAVAILABLE (503): Amazon limits or outages. They are retryable; REST responses carry a Retry-After header.

Running out of AI Tokens returns the shared no-tokens error (HTTP 402).

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.

When executionStatus is FAILED, failureReason explains why, for example the SQL error Amazon reported. Each result also includes amazonExecutionId, the execution id shown in the AMC console, which you can use as a filter when listing results.

Cancelling a query whose delivery is still WAITING sets deliveryStatus to CANCELLED. If files are already AVAILABLE, delivery is left unchanged. Cancelling a SUCCEEDED or FAILED result returns AMC_INVALID_REQUEST. Cancel is idempotent after a successful cancel.

Empty privacy-threshold results are ordinary result files.

What should I know about workflow ids?

Workflows that already exist in your AMC instance, including ones created in the AMC console, keep their Amazon ids: letters (including uppercase), digits, ., - and _, up to 128 characters. You can list, validate, start, update and delete them by that id.

Workflows you create through DataDoe, and new schedules, must use ids that match AMC_SLUG_PATTERN: lowercase alphanumeric characters and - only, 1–64 characters, not starting or ending with -. Existing schedule ids can be kept in updates.

Some workflows created with AMC console tools are stored by Amazon without SQL text. They are listed with sql: null; you can run and delete them and change their schedules, but you cannot replace their definition with SQL through DataDoe.

amc_workflows_find / GET /amc/workflows omit ids outside Amazon's format. meta.skippedCount is how many rows were omitted from data.