Boost post as ad
Creates a paid ad from an existing published post, keeping the post's engagement. By default it provisions the whole hierarchy (campaign, ad set, ad).
Attach shape (Meta). Send adSetId to put the ad under an EXISTING ad set instead, so that ad set keeps its learning phase. It then owns budget, schedule and targeting, and sending any of those alongside adSetId is a 400 rather than a silent drop. budget is required only without adSetId.
instagramAccountId, destinationType and adSetId are Meta-only and return 400 on other platforms.
Retries. Boosts are NOT idempotent and can take minutes when Meta requires re-hosting an Instagram video, so do not retry on client timeout. Send an Idempotency-Key header to make retries safe: same key and body replays the original 201, and distinct keys always create distinct ads. Without the header, an identical request is treated as a retry: while one is in flight it returns 409, and within 10 minutes of a completed boost it returns the already-created ad instead of creating another. To intentionally duplicate an ad, send distinct Idempotency-Keys (or vary the body, e.g. the name).
Headers
Optional client-generated unique key (e.g. a UUID) that makes retries safe. Same key + same body replays the original response; same key + different body → 422; key still processing → 409.
Request body
Example request
{
"currency": "USD"
}Response
Ad created
Example response
{
"ad": {
"configuredStatus": "ACTIVE",
"creativeType": "video",
"metrics": {
"actions": {
"link_click": 160,
"post_engagement": 300,
"offsite_conversion.fb_pixel_purchase": 42
},
"actionValues": {
"offsite_conversion.fb_pixel_purchase": 2456.78,
"offsite_conversion.fb_pixel_add_to_cart": 980.5
},
"costPerAction": {
"link_click": 0.1052,
"offsite_conversion.fb_pixel_purchase": 4.0114
}
},
"platformObjective": "OUTCOME_SALES",
"optimizationGoal": "OFFSITE_CONVERSIONS",
"costType": "CPC",
"servingStatuses": [
"ACCOUNT_TOTAL_BUDGET_HOLD"
],
"platformAdAccountName": "Zernio - previously Late",
"bidAmount": 5,
"roasAverageFloor": 2,
"promotedObject": {
"custom_event_type": "PURCHASE"
},
"creative": {
"servingHoldReasons": [
"UNDER_REVIEW"
]
}
}
}Changes
Changed in 7 of the 26 revisions of this API.1218
- ●
added the new
page_likesenum value to thead/goalresponse property for the response status201response-property-enum-value-added
This revision also has 1 change that name no endpoint, such as unreferenced schemas being removed. See the revision's changelog
- ●
- ○
added the optional property
ad/creative/creativeIdto the response with the201statusresponse-optional-property-added
- ○
- ▲
the
currencyrequest property's minLength was increased from0to3request-property-min-length-increased
- ●
the
currencyrequest property's maxLength was set to3request-property-max-length-set
This revision also has 2 changes that name no endpoint, such as unreferenced schemas being removed. See the revision's changelog
- ▲
- ○
added the new optional
headerrequest parameterIdempotency-Keynew-optional-request-parameter
- ○
added the non-success response with the status
409response-non-success-status-added
- ○
- ○
added the optional property
ad/metrics/anyOf[AdMetrics]/costPerActionto the response with the201statusresponse-optional-property-added
- ○
added the optional property
ad/metrics/anyOf[AdMetrics]/inlineLinkClickCtrto the response with the201statusresponse-optional-property-added
- ○
added the optional property
ad/metrics/anyOf[AdMetrics]/inlineLinkClicksto the response with the201statusresponse-optional-property-added
- ○
added the optional property
ad/metrics/anyOf[AdMetrics]/outboundClicksto the response with the201statusresponse-optional-property-added
- ○
added the optional property
ad/metrics/anyOf[AdMetrics]/outboundClicksCtrto the response with the201statusresponse-optional-property-added
- ○
added the optional property
ad/metrics/anyOf[AdMetrics]/uniqueClicksto the response with the201statusresponse-optional-property-added
- ○
added the optional property
ad/metrics/anyOf[AdMetrics]/uniqueCtrto the response with the201statusresponse-optional-property-added
- ○
- ○
request property
bidAmountdeprecatedrequest-property-deprecated
- ○
request property
bidStrategydeprecatedrequest-property-deprecated
- ○
request property
roasAverageFloordeprecatedrequest-property-deprecated
- ○
added
MetaAdsPlatformDatato theplatformSpecificDatarequest propertyoneOflistrequest-property-one-of-added
- ○
- ○
added the new optional request property
adSetIdnew-optional-request-property
- ○
added the new optional request property
destinationTypenew-optional-request-property
- ○
added the new optional request property
instagramAccountIdnew-optional-request-property
- ○
the request property
budgetbecame optionalrequest-property-became-optional
- ○