Layers
Partner APIAPI referenceAds

PATCH /v1/projects/:projectId/ads/:platform/adsets/:adsetId/budget

Update an adset's daily or lifetime budget. Cents universally.

View as Markdown
PATCH/v1/projects/:projectId/ads/{platform}/adsets/:adsetId/budget
Phase 1stable
Auth
Bearer
Scope
ads:write:budgets

Same shape as PATCH …/campaigns/:id/budget but at the adset grain. Apple uses "adgroup" for this entity — partner contract uses adsets uniformly and Layers translates.

curl -X PATCH https://api.layers.com/v1/projects/$PROJECT_ID/ads/meta/adsets/$ADSET_ID/budget \
  -H "Authorization: Bearer $LAYERS_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "dailyBudgetCents": 2500 }'

Authority: gated by the tactical axis on the parent campaign.

See PATCH …/campaigns/:id/budget for full body / response / error documentation — the contract is identical.

CBO vs ABO interplay

On Meta with CBO (campaign budget optimization), adset-level budget is ignored — the campaign's budget is the source. PATCHing adset budget on a CBO campaign returns PLATFORM_REJECTED. Use GET …/campaigns/:id to read budgetMode (CBO or ABO) before deciding which endpoint to call.

On this page