# ads_create_associated_budget_rules_for_campaigns (https://sellersheetai.com/docs/mcp-api/tools/ads_create_associated_budget_rules_for_campaigns)

> Attach budget rules to one campaign.

Access: **DESTRUCTIVE** · toolset amazon_ads · family ads.sp

Afterwards verify with ads_list_associated_budget_rules_for_campaigns. Amazon Ads API · CreateAssociatedBudgetRulesForSPCampaigns · POST /sp/campaigns/{campaignId}/budgetRules Amazon Ads API · CreateAssociatedBudgetRulesForSBCampaigns · POST /sb/campaigns/{campaignId}/budgetRules Amazon Ads API · CreateAssociatedBudgetRulesForSDCampaigns · POST /sd/campaigns/{campaignId}/budgetRules Docs: https://advertising.amazon.com/API/docs/en-us/sponsored-products/3-0/openapi/prod#tag/BudgetRules/operation/CreateAssociatedBudgetRulesForSPCampaigns Docs: https://advertising.amazon.com/API/docs/en-us/sponsored-brands/3-0/openapi/prod#tag/Budget-rules/operation/CreateAssociatedBudgetRulesForSBCampaigns Docs: https://advertising.amazon.com/API/docs/en-us/sponsored-display/3-0/openapi#tag/Budget-Rules/operation/CreateAssociatedBudgetRulesForSDCampaigns Gate: approve — interactive: show the change (Amazon's preview first where one exists), wait for an explicit approve; autopilot: only when the seller's own words asked for this change; otherwise ask.

## Call it

MCP tool call:

```json
{
  "name": "ads_create_associated_budget_rules_for_campaigns",
  "arguments": {
    "store": "myStore-US",
    "countryCode": "<countryCode>",
    "adProduct": "<adProduct>",
    "body": {},
    "campaignId": "<campaignId>"
  }
}
```

Tool API (early access — contact us):

```bash
curl -X POST https://api.sellersheetai.com/api/v1/tools/ads_create_associated_budget_rules_for_campaigns \
  -H "Authorization: Bearer $SELLERSHEET_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"store":"myStore-US","countryCode":"<countryCode>","adProduct":"<adProduct>","body":{},"campaignId":"<campaignId>"}'
```

## 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. |
| `countryCode` | string | yes | the Ads profile's 2-letter country code (e.g. 'US'). |
| `adProduct` | string | yes | SPONSORED_PRODUCTS \| SPONSORED_BRANDS \| SPONSORED_DISPLAY. |
| `body` | object | yes | {budgetRuleIds: [...]} (max 25). |
| `campaignId` | string | yes | the campaign to attach rules to. |

## Result

- 207, one result per item; an item whose code is not "Ok" (or that is listed under error / failures) failed — read its details.
- `data.result.responses` — per id sent, {ruleId, code, details}.

## Gotchas

- A campaign holds at most 250 rules, and every rule attached to one campaign must have a unique name.