GET / PATCH /v1/projects/:projectId/ads/:platform/defaults
Read or update the layer-level defaults block — the fallback authority for campaigns without per-campaign authority pinned.
/v1/projects/:projectId/ads/{platform}/defaults- Auth
- Bearer
- Scope
- ads:read
/v1/projects/:projectId/ads/{platform}/defaults- Auth
- Bearer
- Scope
- ads:write:policy
The defaults block is the layer-level authority fallback — campaigns without a per-campaign authority pin inherit from here. Per-campaign authority overrides defaults.
PATCH from a partner key is gated by the customer's policy. With layer:write scope per the parity flavor (LOCK 1), partners can adjust defaults, though some customers configure their layer to refuse partner-issued defaults changes.
GET response
{
"layerId": "lyr_8b3c1d2e-4f5a-46b7-9c8d-0e1f2a3b4c5d",
"platform": "meta",
"defaults": {
"creative": "auto",
"tactical": "draft",
"structural": "off"
},
"killSwitchActive": false,
"lastModifiedAt": "2026-05-08T14:32:11Z",
"lastModifiedBy": {
"actorType": "user",
"actorOrganizationId": "org_2481fa5c..."
}
}killSwitchActive — if true, every write to the layer is denied regardless of axis state. The kill switch is customer-only writable; partners cannot trip or release it. Partners observe it here passively.
PATCH body
defaultsobjectrequired`{ creative?, tactical?, structural? }`. Partial updates allowed.
Errors
| Code | When |
|---|---|
AUTHORITY_DENIED | Customer's layer policy refuses partner-issued defaults changes. |
FORBIDDEN_SCOPE | Key lacks ads:write:policy. |
See also
GET / PATCH /v1/projects/:projectId/ads/:platform/campaigns/:campaignId/authority
Read or update a campaign's bucket-mode authority block (creative / tactical / structural axes).
PATCH /v1/projects/:projectId/ads/:platform/adsets/:adsetId/budget
Update an adset's daily or lifetime budget. Cents universally.