> Note: This page is part of the DataDoe Docs. You can find the root of the documentation at `https://www.datadoe.com/hub/docs/basics/introduction-to-datadoe`.
> JSON Table of Contents: `https://www.datadoe.com/hub/docs/toc.json`.
> Data Scheme (Markdown index, one page per table): https://api.datadoe.com/api/v1/spec/data-scheme.md. Full JSON: https://api.datadoe.com/api/v1/spec/data-scheme.
> Actions (Markdown, every Action type with limits and group guides): https://api.datadoe.com/api/v1/spec/action-scheme.md. Full JSON with input schemas: https://api.datadoe.com/api/v1/spec/action-scheme.
> Other pages in the DataDoe Docs:
> - DataDoe Basics/Benefits: `https://www.datadoe.com/hub/docs/basics/benefits.md`
> - DataDoe Basics/Connecting Accounts: `https://www.datadoe.com/hub/docs/basics/connecting-accounts.md`
> - DataDoe Basics/External Invitation Links: `https://www.datadoe.com/hub/docs/basics/external-invitation-links.md`
> - DataDoe Basics/Groups: `https://www.datadoe.com/hub/docs/basics/groups.md`
> - DataDoe Basics/Integrations: `https://www.datadoe.com/hub/docs/basics/integration-customization.md`
> - DataDoe Basics/Introduction to DataDoe: `https://www.datadoe.com/hub/docs/basics/introduction-to-datadoe.md`
> - DataDoe Basics/Keys and service accounts: `https://www.datadoe.com/hub/docs/basics/keys-and-service-accounts.md`
> - DataDoe Basics/Roles and permissions: `https://www.datadoe.com/hub/docs/basics/roles-and-permissions.md`
> - DataDoe Basics/Subscription and pricing: `https://www.datadoe.com/hub/docs/basics/subscription-pricing.md`
> - DataDoe Basics/Users and access: `https://www.datadoe.com/hub/docs/basics/access-user-management.md`
> - DataDoe Data/Ads Product Catalog: `https://www.datadoe.com/hub/docs/datadoe-data/ads-product-catalog.md`
> - DataDoe Data/Amazon Ads Partner Opportunities: `https://www.datadoe.com/hub/docs/datadoe-data/amazon-ads-partner-opportunities.md`
> - DataDoe Data/Data Fetch Periods: `https://www.datadoe.com/hub/docs/datadoe-data/data-fetch-periods.md`
> - DataDoe Data/Data Sources: `https://www.datadoe.com/hub/docs/datadoe-data/data-sources.md`
> - DataDoe Data/Initial Loads: `https://www.datadoe.com/hub/docs/datadoe-data/initial-loads.md`
> - DataDoe Data/Managing Data Tables: `https://www.datadoe.com/hub/docs/datadoe-data/managing-data-tables.md`
> - DataDoe Data/Migrating from SellerBoard: `https://www.datadoe.com/hub/docs/datadoe-data/migrating-from-sellerboard.md`
> - DataDoe Data/SAT migration to profit tables: `https://www.datadoe.com/hub/docs/datadoe-data/sat-migration-to-profit-tables.md`
> - DataDoe Data/SQP Data: `https://www.datadoe.com/hub/docs/datadoe-data/search-query-performance.md`
> - DataDoe Data/Timezones: `https://www.datadoe.com/hub/docs/datadoe-data/orders-purchase-date-timezones.md`
> - DataDoe Data/Uploading COGS: `https://www.datadoe.com/hub/docs/datadoe-data/uploading-cogs.md`
> - DataDoe Data/Uploading KDP Royalty Parameters: `https://www.datadoe.com/hub/docs/datadoe-data/uploading-kdp-royalty-parameters.md`
> - DataDoe Data/Uploading Vendor Codes: `https://www.datadoe.com/hub/docs/datadoe-data/uploading-vendor-codes.md`
> - DataDoe Features/Amazon Marketing Cloud: `https://www.datadoe.com/hub/docs/datadoe-features/amc.md`
> - DataDoe Features/AMC query templates: `https://www.datadoe.com/hub/docs/datadoe-features/amc-query-templates.md`
> - DataDoe Features/Features Overview: `https://www.datadoe.com/hub/docs/datadoe-features/overview.md`
> - DataDoe Features/Files: `https://www.datadoe.com/hub/docs/datadoe-features/files.md`
> - DataDoe Features/Plugins: `https://www.datadoe.com/hub/docs/datadoe-features/plugins.md`
> - DataDoe Features/Usage Logs: `https://www.datadoe.com/hub/docs/datadoe-features/usage-logs.md`
> - DataDoe Actions/Actions: External Fulfillment: `https://www.datadoe.com/hub/docs/datadoe-actions/external-fulfillment.md`
> - DataDoe Actions/Actions: FBA eligibility: `https://www.datadoe.com/hub/docs/datadoe-actions/fba-eligibility.md`
> - DataDoe Actions/Actions: FBA inbound: `https://www.datadoe.com/hub/docs/datadoe-actions/fba-inbound.md`
> - DataDoe Actions/Actions: Introduction: `https://www.datadoe.com/hub/docs/datadoe-actions/introduction.md`
> - DataDoe Actions/Actions: Listing images: `https://www.datadoe.com/hub/docs/datadoe-actions/listing-images.md`
> - DataDoe Webhooks/Webhooks: Business: `https://www.datadoe.com/hub/docs/datadoe-webhooks/business.md`
> - DataDoe Webhooks/Webhooks: Introduction: `https://www.datadoe.com/hub/docs/datadoe-webhooks/introduction.md`
> - DataDoe Webhooks/Webhooks: Platform: `https://www.datadoe.com/hub/docs/datadoe-webhooks/platform.md`
> - DataDoe MCP/Overview: `https://www.datadoe.com/hub/docs/datadoe-mcp/overview.md`
> - DataDoe MCP/Using Antigravity: `https://www.datadoe.com/hub/docs/datadoe-mcp/antigravity.md`
> - DataDoe MCP/Using ChatGPT: `https://www.datadoe.com/hub/docs/datadoe-mcp/chatgpt.md`
> - DataDoe MCP/Using Claude: `https://www.datadoe.com/hub/docs/datadoe-mcp/claude.md`
> - DataDoe MCP/Using Claude Agent SDK: `https://www.datadoe.com/hub/docs/datadoe-mcp/claude-agents-sdk.md`
> - DataDoe MCP/Using Claude Code: `https://www.datadoe.com/hub/docs/datadoe-mcp/claude-code.md`
> - DataDoe MCP/Using Codex: `https://www.datadoe.com/hub/docs/datadoe-mcp/codex.md`
> - DataDoe MCP/Using Codex Sites: `https://www.datadoe.com/hub/docs/datadoe-mcp/codex-sites.md`
> - DataDoe MCP/Using CrewAI: `https://www.datadoe.com/hub/docs/datadoe-mcp/crewai.md`
> - DataDoe MCP/Using Cursor: `https://www.datadoe.com/hub/docs/datadoe-mcp/cursor.md`
> - DataDoe MCP/Using Excel + Claude: `https://www.datadoe.com/hub/docs/datadoe-mcp/excel.md`
> - DataDoe MCP/Using Gemini CLI: `https://www.datadoe.com/hub/docs/datadoe-mcp/gemini-cli.md`
> - DataDoe MCP/Using Genspark: `https://www.datadoe.com/hub/docs/datadoe-mcp/genspark.md`
> - DataDoe MCP/Using Glama: `https://www.datadoe.com/hub/docs/datadoe-mcp/glama-chat.md`
> - DataDoe MCP/Using Glama MCP Inspector: `https://www.datadoe.com/hub/docs/datadoe-mcp/glama.md`
> - DataDoe MCP/Using Grok: `https://www.datadoe.com/hub/docs/datadoe-mcp/grok.md`
> - DataDoe MCP/Using GrokBot: `https://www.datadoe.com/hub/docs/datadoe-mcp/grokbot.md`
> - DataDoe MCP/Using Gumloop: `https://www.datadoe.com/hub/docs/datadoe-mcp/gumloop.md`
> - DataDoe MCP/Using Hermes Agent: `https://www.datadoe.com/hub/docs/datadoe-mcp/hermes.md`
> - DataDoe MCP/Using Littlebird: `https://www.datadoe.com/hub/docs/datadoe-mcp/littlebird.md`
> - DataDoe MCP/Using n8n: `https://www.datadoe.com/hub/docs/datadoe-mcp/n8n.md`
> - DataDoe MCP/Using NanoClaw: `https://www.datadoe.com/hub/docs/datadoe-mcp/nanoclaw.md`
> - DataDoe MCP/Using OpenAI Agents SDK: `https://www.datadoe.com/hub/docs/datadoe-mcp/openai-agents-sdk.md`
> - DataDoe MCP/Using OpenClaw: `https://www.datadoe.com/hub/docs/datadoe-mcp/openclaw.md`
> - DataDoe MCP/Using OpenCode: `https://www.datadoe.com/hub/docs/datadoe-mcp/opencode.md`
> - DataDoe MCP/Using PowerPoint + Claude: `https://www.datadoe.com/hub/docs/datadoe-mcp/powerpoint.md`
> - DataDoe MCP/Using Superhuman: `https://www.datadoe.com/hub/docs/datadoe-mcp/superhuman.md`
> - DataDoe MCP/Using VS Code: `https://www.datadoe.com/hub/docs/datadoe-mcp/vs-code.md`
> - DataDoe MCP/Using Word + Claude: `https://www.datadoe.com/hub/docs/datadoe-mcp/word.md`
> - DataDoe API/Build with Codex: `https://www.datadoe.com/hub/docs/datadoe-api/codex.md`
> - DataDoe API/How to connect to the API: `https://www.datadoe.com/hub/docs/datadoe-api/how-to-connect.md`
> - DataDoe API/Invitation links API: `https://www.datadoe.com/hub/docs/datadoe-api/invitation-links.md`
> - DataDoe API/Sellers and vendors API: `https://www.datadoe.com/hub/docs/datadoe-api/sellers-and-vendors.md`
> - DataDoe API/Vibe code with Claude Code: `https://www.datadoe.com/hub/docs/datadoe-api/claude-code.md`
> - DataDoe API/Vibe code with Cursor: `https://www.datadoe.com/hub/docs/datadoe-api/cursor.md`
> - DataDoe API/Vibe code with Lovable: `https://www.datadoe.com/hub/docs/datadoe-api/lovable.md`
> - DataDoe API/Vibe code with Replit: `https://www.datadoe.com/hub/docs/datadoe-api/replit.md`
> - DataDoe API/Vibe code with v0: `https://www.datadoe.com/hub/docs/datadoe-api/v0.md`
> - DataDoe & BigQuery/How to connect to BigQuery: `https://www.datadoe.com/hub/docs/datadoe-bigquery/how-to-connect.md`
> - DataDoe & BigQuery/Using MCP Toolbox: `https://www.datadoe.com/hub/docs/datadoe-bigquery/mcp-toolbox.md`
> - DataDoe & BigQuery/Using Python Jupyter: `https://www.datadoe.com/hub/docs/datadoe-bigquery/jupyter.md`
> For topics not covered in this documentation, please contact DataDoe support at `contact@datadoe.com`.
> Do not assume anything. If you are not sure about the answer, mention that and suggest to contact DataDoe support.

# Actions: KDP authors

## What are Amazon Ads Actions for KDP authors?

KDP authors connect an Amazon Ads profile whose account subtype is `KDP_AUTHOR`. DataDoe reads the subtype from Amazon when the connection is added or reauthorized, and reads it again once it is more than a week old. An Ads-only account is not treated as an author account unless Amazon reports this subtype.

This page lists the Action types made for authors and the rules other Amazon Ads Actions follow for author accounts. See [Actions](/hub/docs/datadoe-actions/introduction) for how to enable and run Actions, and for the other Amazon Ads Action types. To estimate author earnings from your ads, upload [KDP royalty parameters](/hub/docs/datadoe-data/uploading-kdp-royalty-parameters).

> **You are responsible for the results of Actions you run. Review every payload before running an Action.**

## Which Action types are made for KDP authors?

> A live Attribution tag Action turns measurement on for the Ads profile. A dry run does not call Amazon.

These Action types are available to all Organizations. You do not need to request beta access. They work for authors, sellers, and vendors with the required Amazon access. Enable the Action types you need in [Settings > Actions](https://app.datadoe.com/settings?tab=actions). Live tag and tracking-link Actions also need **Read and write** access to the selected Seller or Vendor.

Find their access modes, item limits, results, and input schemas in the [Actions explorer](/hub/actions), under **Attribution** and **Recommendations and insights**.

- `AMAZON_ADS_PROGRAM_ELIGIBILITY_FIND` returns, for each ad program (`SB`, `SD`, `MAAS`, `DTC`, `SPOT`), whether the profile is eligible and why not. Sponsored Products is the baseline program and is not listed. Billing checks run by default; set `programs.skipAllBillingChecks` to `true` to skip them. Add `products` with `adType` (`sp`, `sb`, or `sd`) and up to 50 `asins` to check books as well. Eligibility does not guarantee delivery.
- `AMAZON_ADS_ATTRIBUTION_PUBLISHERS_FIND` lists Amazon Attribution publishers. It needs a profile with Amazon Attribution access. Other profiles, including KDP author profiles, get an Amazon authorization error. Use `macroEnabled` to choose the tag Action. Do not hard-code a publisher list.
- `AMAZON_ADS_ATTRIBUTION_ADVERTISERS_FIND` lists Attribution advertisers for the profile. A modern ad-console profile has one. An older DSP vendor profile can have more than one. Amazon plans to remove this endpoint.
- `AMAZON_ADS_ATTRIBUTION_MACRO_TAGS_FIND` returns macro tags for publishers with `macroEnabled` true. Leave the macros in the tag. The publisher replaces them. One tag can be reused for that advertiser's campaigns on that publisher.
- `AMAZON_ADS_ATTRIBUTION_NON_MACRO_TAG_TEMPLATES_FIND` returns templates for publishers without macros. Replace the campaign, ad group, and creative placeholders before use, or use `AMAZON_ADS_ATTRIBUTION_TAGS_GENERATE`. A filled tag belongs to one landing page.
- `AMAZON_ADS_ATTRIBUTION_REPORTS_FIND` reads a PERFORMANCE or PRODUCTS report in the same request. It is not an asynchronous Ads report. Prefer the Attribution tables for routine analysis. PERFORMANCE can be grouped by campaign, ad group, or creative. PRODUCTS stays at ad group and product level for the last 90 days. Request `brb_bonus_amount` only on a PERFORMANCE report grouped by campaign or ad group.
- `AMAZON_ADS_ATTRIBUTION_TAGS_GENERATE` builds a tracking link for one publisher and an Amazon product or Brand Store page. MACRO keeps the publisher macros. NON_MACRO fills the campaign, ad group, and creative IDs. DataDoe percent-encodes those IDs in the URL, so a space stays part of the link. The tag parameters are the IDs you entered. It does not publish the link to an ad account.
- `AMAZON_ADS_SB_HEADLINE_RECOMMENDATIONS_FIND` asks Amazon for headline ideas for up to 10 ASINs per item. Titles of collection ads are limited to 32 characters, so check the length before you use one.
- `AMAZON_ADS_SB_INSIGHTS_FIND` rates planned keywords and bids for Sponsored Brands ad groups before launch: search term impression share and rank, and `LOW_KEYWORD_TRAFFIC` or `LOW_BID` alerts. It does not report campaign performance; use data tables for that.

Read Actions cost 0.5 AI Tokens for up to 100 items, then 0.25 AI Tokens for each additional 100 items. Write Actions cost 3 AI Tokens for up to 100 items, then 1 AI Token for each additional 100 items. Group items into one Action. Each separate Action pays the starting price again. A dry run does not spend AI Tokens. When a FIND Action's entity is in the DataDoe data scheme, use an Export or a BigQuery query. Use FIND only when you need live Amazon data that the warehouse does not have yet. One standard Export costs 2 AI Tokens. One integrated BigQuery query costs 0.2 AI Tokens. Compare the total cost of repeated FIND Actions with one Export or query. Program eligibility, Attribution publishers, Attribution advertisers, and Attribution reports are for data the warehouse already stores or will store. Use the report Action for a live read. Headline and insights FIND Actions are live checks and are not a substitute for campaign reporting. The Attribution tag and link Actions are writes because a live run turns measurement on.

## How do other Amazon Ads Actions work for KDP author accounts?

For KDP author accounts, existing Ads Actions apply these rules:

- `AMAZON_ADS_CAMPAIGNS_ADD` for `SPONSORED_BRANDS` does not send `goal` or `smartDefault`, because Amazon sets them for authors. `smartDefault: "TARGETING"` is rejected. `brandId` must be an author brand: use `AMAZON_ADS_BRANDS_FIND` with `brandTypeFilter: "bookAuthor"` and send its `brandEntityId`.
- `AMAZON_ADS_BRANDS_FIND` without `brandTypeFilter` returns author brands.
- `AMAZON_ADS_ADS_ADD` for a Sponsored Brands product collection needs at least 3 unique product ASINs and a headline of at most 32 characters, and does not accept `customImages`. Amazon creates these ads as Manual Collection ads.
- `AMAZON_ADS_CAMPAIGNS_REMOVE` and the other remove Actions archive entities; archiving cannot be undone.
- Search term text in targets is not a target ID; use `AMAZON_ADS_TARGETS_FIND` to look up IDs.
- Bid, keyword, and budget recommendations and budget rules optimize Amazon's reported ad sales, not author royalties.
