POST /v1/projects/:projectId/ads/:platform/campaigns/:campaignId/{pause,resume}
Pause or resume a campaign. Layers translates the verb to the platform's status enum.
POST
/v1/projects/:projectId/ads/{platform}/campaigns/:campaignId/pausePhase 1stable
- Auth
- Bearer
- Scope
- ads:write:lifecycle
POST
/v1/projects/:projectId/ads/{platform}/campaigns/:campaignId/resumePhase 1stable
- Auth
- Bearer
- Scope
- ads:write:lifecycle
Verb-style lifecycle endpoints. Layers translates per-platform (Meta ACTIVE/PAUSED, TikTok ENABLE/DISABLE, Apple ENABLED/PAUSED) so partners don't reason about platform status enums.
Same shape applies to adsets and ads:
POST …/adsets/:adsetId/{pause,resume}POST …/ads/:adId/{pause,resume}
Request
curl -X POST https://api.layers.com/v1/projects/$PROJECT_ID/ads/meta/campaigns/$CAMPAIGN_ID/pause \
-H "Authorization: Bearer $LAYERS_API_KEY"Response
202 { jobId, verdictId, status, platformStatus }. platformStatus is the platform-native value Layers translated to (PAUSED on Meta, DISABLE on TikTok, etc.).
Errors
| Code | When |
|---|---|
AUTHORITY_DENIED | structural axis (for delete) or tactical axis (for pause/resume) is off. |
NOT_FOUND | Campaign / adset / ad not in this org or platform. |