ads_sp_get_budget_recommendations
Sponsored Products: the recommended daily budget and missed opportunities for existing campaigns — campaigns that are budget-capped, losing impressions/clicks/sales because they ru
readAmazon Adsads.sp
n out of budget. (Distinct from ads_get_budget_recommendation, which covers a new campaign, before it exists.) Amazon Ads API · getBudgetRecommendations · POST /sp/campaigns/budgetRecommendations Docs: https://advertising.amazon.com/API/docs/en-us/sponsored-products/3-0/openapi/prod#tag/Budget-recommendations-and-missed-opportunities/operation/getBudgetRecommendations
Call it
In an AI client (MCP)
{
"name": "ads_sp_get_budget_recommendations",
"arguments": {
"store": "myStore-US",
"countryCode": "<countryCode>",
"campaignIds": []
}
}From code (Tool API)
curl -X POST https://api.sellersheetai.com/api/v1/tools/ads_sp_get_budget_recommendations \
-H "Authorization: Bearer $SELLERSHEET_API_KEY" \
-H "Content-Type: application/json" \
-d '{"store":"myStore-US","countryCode":"<countryCode>","campaignIds":[]}'Early access — the Tool API is open on request, contact us.
Arguments
| Name | Type | Description |
|---|---|---|
storerequired | string | the store ref `<store>-<CC>` (name-country, e.g. 'myStore-US') — one of get_user_context's store_refs, verbatim. |
countryCoderequired | string | the Ads profile's 2-letter country code (e.g. 'US'). |
campaignIdsrequired | string[] | 1-100 campaign id strings, from ads_query_campaign. |
Result
Every tool answers {notification, data, human_action}; data carries:
- Amazon's payload in data.result.
data.result.budgetRecommendationsSuccessResults— [{index, campaignId, suggestedBudget, sevenDaysMissedOpportunities {startDate, endDate, percentTimeInBudget, estimatedMissed*Lower/Upper}}].data.result.budgetRecommendationsErrorResults— per-campaign failures {index, campaignId, code, details}.
Gotchas
- sevenDaysMissedOpportunities reflects the campaign's last ACTIVE period. For a long-paused campaign that window can be YEARS old — always show startDate/endDate next to the numbers.
- percentTimeInBudget = -1.0 with null dates is the "no data" sentinel (never served / long paused) — it is NOT 0%, never render it as a percent.
- Apply a raise with ads_update_campaign_budget.