Platform features

Meta ads: everything you can do

Every Meta (Facebook and Instagram) ads capability available through Creator OS, 157 in all, explained in plain English and grouped by job. They all work with your workspace's Creator OS API key at https://creatoros-production-5658.up.railway.app, need the Ads add-on, and are also reachable from Claude or ChatGPT (the ads_ MCP tools, including ads_read and ads_request for anything without its own tool) and from the CLI (creatoros ads:call). Items marked Partial work on Meta with a limit, explained under them.

Set up once

1. Connect a Facebook Page

On the Connect page in Creator OS, connect Facebook and pick the Page your ads should run as. Switch Pages any time without signing in again.

2. Link Instagram to that Page

In Meta Business Suite, Settings, Accounts, Instagram accounts: link your Instagram account to the same Page. That Instagram becomes the identity your ads run as on Instagram.

3. Have an ad account with a card

In Meta Ads Manager, make sure the ad account has a payment method (Billing). Without one, nothing can deliver.

4. Connect Meta ads

Under Ad accounts on the Connect page (Ads add-on), connect Meta. It runs through your Page, or through Facebook Login for Business if you have no Page connected.

5. Check it

GET /v1/ads/instagram-accounts shows which Instagram your ads will run as. GET /v1/ads/accounts shows the ad account, its currency and billing status.

How the pieces fit

  +------------------+      linked in Meta       +----------------------+
  |  Facebook Page   | ------------------------> |  Instagram account   |
  |  (Connect page)  |   Business Suite          |  (ads run as this)   |
  +------------------+                           +----------------------+
           |
           | Meta ads connection (Creator OS, Ads add-on)
           v
  +------------------+     +-------------+     +-----------+     +--------+
  |  Ad account      | --> |  Campaign   | --> |  Ad set   | --> |  Ad    |
  |  act_...  + card |     |  goal       |     |  budget,  |     |  creative
  +------------------+     |  (budget)   |     |  audience |     |  + link |
                           +-------------+     +-----------+     +--------+

Campaign, ad set and ad ids are Meta's own (the same ones Ads Manager shows); ads you work with through Creator OS are ad_ ids, audiences aud_, connections acc_. Budgets are whole units of the ad account's currency.

Connect & accounts

GET/v1/ads/accounts

Lists the ad accounts the connected login can use.

Meta ad accounts look like act_123. Business-login connections include the owning Business Manager.

POST/v1/ads/accounts

Creates a brand new Meta ad account inside the customer's own Business Manager.

Meta only. Needs business admin access and business_management. A payment method must be added in Ads Manager before ads run.

PATCH/v1/ads/accounts

Renames a Meta ad account, sets its total spending cap, or sets its default EU ad disclosure names.

Meta accounts only; other platforms return 400.

GET/v1/ads/accounts/finance

Shows a Meta ad account's balance, lifetime spend, spending cap and payment source.

Meta only.

GET/v1/ads/instagram-accounts

Lists the Instagram accounts an ad can run as for a Meta ad account.

Meta only.

GET/v1/connect/meta/ads

Connects a Meta ads account (use facebook or instagram as the platform), either through the Facebook login or Facebook Login for Business.

loginMode=business uses Facebook Login for Business and needs no posting account. Pass pageId to pick the Page for ads and lead forms.

WEBConnect page: Facebook Page picker

Lists the Facebook Pages the person granted during connect so one can be picked.

Creator OS shows its own Page picker after the Facebook sign-in; no API call needed.

GET/v1/accounts/{accountId}/facebook-page

Lists the Facebook Pages a connected account can use, including the selected one.

PUT/v1/accounts/{accountId}/facebook-page

Switches which Facebook Page is active for a connected account.

Business & access

GET/v1/ads/accounts/users

Lists the people in a Business Manager who have access to a Meta ad account.

Meta only.

POST/v1/ads/accounts/users

Gives a Business Manager person a role on a Meta ad account (admin, advertise, analyze, draft).

Meta only.

DELETE/v1/ads/accounts/users

Removes a person's access to a Meta ad account.

Meta only.

GET/v1/accounts/{accountId}/tracking-tags/{tagId}/users

Lists the people in the business who have access to the pixel.

Needs business_management; pixels on personal ad accounts return an empty list.

POST/v1/accounts/{accountId}/tracking-tags/{tagId}/users

Gives a business person access to the pixel.

Needs business_management; fails for pixels on personal ad accounts.

GET/v1/ads/businesses

Lists the Meta Business Managers the connected person belongs to.

Meta only. Business-login connections may return an empty list.

GET/v1/ads/businesses/users

Lists the people and system users in a Meta Business Manager.

Meta only. Must be an admin of that business.

GET/v1/ads/page-users

Lists the people in a business who have roles on a Facebook Page.

Meta only.

POST/v1/ads/page-users

Gives a business person a role on a Facebook Page, such as permission to advertise.

Meta only. Partners must do this after a Page is shared with them.

DELETE/v1/ads/page-users

Removes a person's role on a Facebook Page.

Meta only.

GET/v1/accounts/{accountId}/business-partners

Lists the businesses (like agencies) allowed to act on the Facebook Page, plus its linked Instagram account.

POST/v1/accounts/{accountId}/business-partners

Shares a Facebook Page with a partner business so it can run ads for that Page from its own ad accounts.

The Page must belong to a Business Manager first. Then assign people with POST /v1/ads/page-users.

DELETE/v1/accounts/{accountId}/business-partners

Removes a partner business's access to the Facebook Page.

Campaigns

GET/v1/ads/campaigns

Lists campaigns with their combined spend and results.

includeEmpty=true (Meta only) also shows campaigns that have no ads yet.

POST/v1/ads/campaigns

Creates an empty campaign that ad sets and ads can be added to later.

On Meta a budget here means campaign-level budget; special ad categories are Meta-only.

POST/v1/ads/campaigns/bulk-status

Pauses or resumes up to 50 campaigns at once.

GET/v1/ads/campaigns/{campaignId}

Reads one campaign's live settings straight from Meta: budget, objective, schedule, issues.

Meta only.

PUT/v1/ads/campaigns/{campaignId}

Changes a campaign's name, budget, bid strategy or spending cap.

Budget edits only work on campaign-level budget campaigns (ad-set budgets return 409).

DELETE/v1/ads/campaigns/{campaignId}

Deletes a whole campaign along with its ad sets and ads.

Works for Meta and Google. Send accountId to delete an empty Meta campaign.

POST/v1/ads/campaigns/{campaignId}/duplicate

Copies a campaign with all its ad sets, ads and targeting, paused for review.

Uses Meta's native copy feature.

PUT/v1/ads/campaigns/{campaignId}/status

Pauses or resumes a campaign, leaving its ad sets' and ads' own switches alone.

GET/v1/ads/high-demand-periods

Lists scheduled budget boosts for a campaign or ad set, such as for a sale.

Meta only.

POST/v1/ads/high-demand-periods

Schedules a temporary budget increase ahead of time, like for Black Friday.

Meta only. Times must fall on 15-minute marks.

Ad sets

GET/v1/ads/ad-sets

Lists ad sets, optionally filtered by campaign.

live=true reads Meta's on/off switches in real time.

GET/v1/ads/ad-sets/{adSetId}

Reads one ad set's live settings from Meta, including its learning-phase status, budget and targeting.

Meta only.

PUT/v1/ads/ad-sets/{adSetId}

Edits an ad set: budget, status, bid strategy, value rules or delivery settings.

Budget edits only on ad-set-budget campaigns; value rule sets are Meta-only.

DELETE/v1/ads/ad-sets/{adSetId}

Deletes an ad set and its ads, leaving the campaign in place.

POST/v1/ads/ad-sets/{adSetId}/duplicate

Copies an ad set, with its ads by default, paused for review.

Meta uses its native copy feature; can reschedule and move the copy to another campaign.

PUT/v1/ads/ad-sets/{adSetId}/status

Pauses or resumes one ad set without touching its siblings or campaign.

Ads

GET/v1/ads

Lists your ads with spend, clicks and other results over a date range.

Can filter by Facebook Page, Meta ad ID, or the boosted Facebook/Instagram post behind an ad.

GET/v1/ads/{adId}

Shows one ad with its creative, targeting, status and performance.

Accepts the Meta ad ID or the Facebook/Instagram post ID behind the ad. Statuses refresh every 15 to 60 minutes unless live=true.

PUT/v1/ads/{adId}

Edits an ad: status, budget, targeting or creative, and pushes the change to the platform.

Docs say all fields are supported on Meta (Facebook and Instagram).

DELETE/v1/ads/{adId}

Cancels an ad on the platform while keeping its history.

POST/v1/ads/{adId}/duplicate

Makes a paused copy of one ad, optionally into a different ad set.

Meta only. Can reuse the original post so likes and comments carry over.

PUT/v1/ads/{adId}/status

Pauses or resumes a single ad without touching its ad set or campaign.

POST/v1/ads/create

Creates a complete paid ad (campaign, ad set, ad) with your own images, video and text.

Supports Meta plus other networks; validateOnly lets you dry-run on Meta without creating anything.

Boosting

POST/v1/ads/boost

Turns an existing Facebook or Instagram post into a paid ad, keeping its likes and comments.

Can also boost into WhatsApp, Messenger or Instagram DM chats. Not safe to retry without an Idempotency-Key.

GET/v1/ads/instagram-posts

Lists Instagram posts you can boost, without connecting Instagram separately.

Meta only. Older connections may need to reconnect with Instagram access.

GET/v1/ads/partnership-contentPartial

Lists creators' Instagram posts you are allowed to run as partnership ads.

Private beta. Needs the instagram_branded_content_ads_brand permission and an Instagram business account.

GET/v1/ads/partnership-permissionsPartial

Lists which creators have allowed you to run partnership ads with their posts.

Private beta. Needs the instagram_branded_content_ads_brand permission.

POST/v1/ads/partnership-permissionsPartial

Asks a creator for permission to run partnership ads, or revokes it.

Private beta. The creator must approve in Instagram.

Creatives & media

GET/v1/ads/{adId}/media

Returns direct links to the images and videos used in an ad.

Reads Meta live; links expire (images about a day, videos about 12 days).

GET/v1/ads/{adId}/preview

Shows how an existing ad looks in each placement, like feed or stories.

Meta only (uses Meta's ad previews).

GET/v1/ads/creatives

Lists the saved ad designs (creatives) in a Meta ad account.

Meta only. Any listed creative can be reused when creating ads.

POST/v1/ads/creatives

Saves a reusable ad design (image or carousel, text, link) without launching an ad.

Meta only. Setting a Meta 'Promotion' is not supported through the API.

GET/v1/ads/creatives/{creativeId}

Shows one saved ad design's details.

Meta only.

PUT/v1/ads/creatives/{creativeId}

Renames a saved ad design.

Meta creatives can only be renamed; make a new one to change content.

DELETE/v1/ads/creatives/{creativeId}

Deletes a saved ad design that no ad is using.

Meta only.

GET/v1/ads/images

Lists images stored in a Meta ad account's image library.

Meta only.

POST/v1/ads/images

Uploads an image file into a Meta ad account for use in ads.

Meta only. Max 30 MB.

GET/v1/ads/videos

Lists videos stored in a Meta ad account, including ones uploaded outside our app.

Meta only. Preview links expire.

POST/v1/ads/videos

Uploads a video into a Meta ad account so several ads can reuse it.

Meta only. Large videos must be sent by URL; processing can take minutes.

DELETE/v1/ads/videos/{videoId}

Removes a video from a Meta ad account's video library.

Meta only.

POST/v1/ads/preview

Shows how an ad design would look in each placement before creating it.

Meta only.

Lead ads

GET/v1/ads/lead-forms

Lists the instant lead forms on the connected Facebook Page.

Needs the Ads add-on and pages_manage_ads.

POST/v1/ads/lead-forms

Creates an instant lead form (questions, privacy link, thank-you screen) on the Facebook Page.

Not safe to retry: a retry makes a second form.

GET/v1/ads/lead-forms/{formId}

Shows one lead form in full, including its thank-you screen.

Only forms on the Page the account manages.

DELETE/v1/ads/lead-forms/{formId}

Archives a lead form (Meta has no permanent delete).

GET/v1/ads/lead-forms/{formId}/leads

Lists the people who filled out one lead form.

Needs leads_retrieval.

POST/v1/ads/lead-forms/{formId}/test-leads

Submits a fake test lead to check your lead handling before spending money.

Meta allows one test lead per form at a time.

DELETE/v1/ads/lead-forms/{formId}/test-leads

Deletes a form's test lead so another can be submitted.

Only test leads can be deleted.

GET/v1/ads/leads

Lists every lead captured across all forms, newest first, ready to feed a CRM.

Meta leads are captured in real time from Meta's lead webhook.

Messaging & call ads

POST/v1/ads/call

Creates an ad with a 'Call now' button that dials your phone number.

Meta only. Builds campaign, ad set and ad in one call.

POST/v1/ads/messaging

Creates an ad that opens a chat in WhatsApp, Messenger or Instagram DMs instead of a website.

Meta only. Replaces the older click-to-WhatsApp endpoint.

POST/v1/ads/ctwa

Creates a click-to-WhatsApp ad (older endpoint).

Deprecated: use POST /v1/ads/messaging with destination whatsapp. No reference entry of its own in the docs.

Audiences

GET/v1/ads/audiences

Lists custom audiences (customer lists, website visitors, lookalikes, saved targeting) for an ad account.

POST/v1/ads/audiences

Creates an audience: customer list, website visitors, lookalike, engagement or a saved targeting preset.

Website, lookalike and Meta engagement audiences are Meta-only.

GET/v1/ads/audiences/{audienceId}

Shows one audience with fresh details from Meta.

PUT/v1/ads/audiences/{audienceId}

Renames an audience or edits a saved targeting preset.

Platform audience updates are Meta-only for now; audience rules cannot change.

DELETE/v1/ads/audiences/{audienceId}

Deletes an audience from the platform and from our records.

POST/v1/ads/audiences/{audienceId}/users

Uploads customer emails and phone numbers into a customer-list audience, scrambled for privacy first.

Phone numbers are used on Meta only. Max 10,000 people per request.

Targeting & forecasting

POST/v1/ads/targeting/reach-estimate

Estimates how many people a targeting setup could reach before you spend anything.

Uses Meta's delivery estimate.

GET/v1/ads/targeting/search

Looks up targeting options by name, like cities, interests, behaviors, income or job titles.

Behaviors and work position/employer/industry are Meta-only; Meta income tiers are US-only.

POST/v1/ads/rf-predictions

Gets a price quote for guaranteed reach and frequency (how many people, how often) before buying.

Meta only. Nothing is bought; quotes expire.

GET/v1/ads/rf-predictions/{predictionId}

Shows a reach and frequency quote or reservation.

Meta only.

DELETE/v1/ads/rf-predictions/{predictionId}

Cancels a reach and frequency reservation and releases the locked price.

Meta only.

POST/v1/ads/rf-predictions/{predictionId}/reserve

Locks in a reach and frequency quote so it can be bought when creating the ad.

Meta only. Use the new reserved ID when creating the ad.

GET/v1/ads/value-rule-sets

Lists value rules, which tell Meta to bid more or less for certain audiences.

Meta only. Works only on ad sets using lowest cost or cost cap bidding.

POST/v1/ads/value-rule-sets

Creates value rules to bid higher or lower for groups like a location, age or gender.

Meta only. Works only on ad sets using lowest cost or cost cap bidding. Max 6 per ad account.

GET/v1/ads/value-rule-sets/{valueRuleSetId}

Shows one set of value rules.

Meta only.

PUT/v1/ads/value-rule-sets/{valueRuleSetId}

Replaces a whole set of value rules.

Meta only. Full replace: rules you leave out are deleted.

DELETE/v1/ads/value-rule-sets/{valueRuleSetId}

Deletes a set of value rules.

Meta only. Detach it from ad sets first.

Reporting & insights

GET/v1/ads/{adId}/analytics

Shows one ad's results over time, optionally split by age, gender, country, placement or device.

Demographic breakdowns are Meta and TikTok only.

GET/v1/ads/campaigns/{campaignId}/analytics

Shows a whole campaign's results over time, optionally split by age, gender, placement or creative.

Meta breakdowns are fetched live at campaign level.

GET/v1/ads/insights

Runs a custom live report on any campaign, ad set, ad or account with the fields and splits you choose.

Meta fields and breakdowns are passed through as-is; use async reports for long ranges.

POST/v1/ads/insights/reports

Starts a large background report for long date ranges or big accounts.

Meta only.

GET/v1/ads/insights/reports/{reportRunId}

Checks progress of a background report and returns the rows when done.

Meta only. Use the same connection that started it.

GET/v1/ads/activity

Shows the ad account's change history: who changed what and when.

Meta only.

GET/v1/ads/library

Searches the public Meta Ad Library to research competitors' ads.

No connected account needed. Non-political ads only appear if they ran in the EU or UK in the past year.

GET/v1/ads/studies

Lists the ad account's A/B tests and lift studies.

Meta only. Read-only.

GET/v1/ads/timeline

Returns day-by-day spend and results for an account, ready for a chart.

Meta ads connection also includes ads from the linked Facebook/Instagram accounts.

GET/v1/ads/tree

Shows campaigns, their ad sets and ads as a tree with totals at each level.

Can filter by Facebook Page (Meta only). Deleted ads stay in totals.

Pixels & conversions

POST/v1/ads/conversions

Sends sales, sign-ups or other conversions from your server to the ad platform so it can credit your ads.

Meta via the Conversions API; destination is the pixel (dataset) ID. Personal data is scrambled before sending.

GET/v1/ads/conversions/quality

Shows how well your conversion data matches real people (Meta's Event Match Quality score).

Meta and Pinterest only; web events only.

GET/v1/accounts/{accountId}/conversion-destinations

Lists where conversions can be sent: pixels on Meta.

For Meta these are pixels; use the id as destinationId on POST /v1/ads/conversions.

GET/v1/accounts/{accountId}/tracking-tags

Lists the Meta Pixels the connected ads account can see.

accountId must be the Meta Ads (metaads) connection, not a Facebook/Instagram posting account.

POST/v1/accounts/{accountId}/tracking-tags

Creates a new Meta Pixel and returns the code to put on your website.

Creating it does not install it. Not safe to retry: each call makes a new pixel.

GET/v1/accounts/{accountId}/tracking-tags/{tagId}

Shows one pixel in full, including its install code and when it last fired.

PATCH/v1/accounts/{accountId}/tracking-tags/{tagId}

Renames a pixel or changes its automatic matching and cookie settings.

Meta has no API to delete a pixel.

GET/v1/accounts/{accountId}/tracking-tags/{tagId}/diagnostics

Shows the pixel's health warnings from Meta Events Manager.

GET/v1/accounts/{accountId}/tracking-tags/{tagId}/events

Lists the pixel's custom conversions (e.g. 'purchase on thank-you page').

On Meta these are custom conversions stored per ad account.

POST/v1/accounts/{accountId}/tracking-tags/{tagId}/events

Creates a custom conversion on the pixel, such as a lead or purchase on a certain page.

Meta: reuses an existing one with the same name.

PATCH/v1/accounts/{accountId}/tracking-tags/{tagId}/events/{eventId}Partial

Edits a conversion event on the pixel.

On Meta only the name and default value can change; other fields return 400.

DELETE/v1/accounts/{accountId}/tracking-tags/{tagId}/events/{eventId}

Removes a conversion event from the pixel.

Meta archives it rather than deleting it.

GET/v1/accounts/{accountId}/tracking-tags/{tagId}/install

Checks whether the pixel is installed on a connected Shopify store or WordPress site.

Needs a connected Shopify or WordPress account.

POST/v1/accounts/{accountId}/tracking-tags/{tagId}/install

Installs the Meta Pixel on a connected Shopify store or WordPress site with no code edits.

Shopify sends page views, add to cart, checkout and purchase events. Older Shopify connections may need to re-approve.

DELETE/v1/accounts/{accountId}/tracking-tags/{tagId}/install

Removes the pixel from a connected Shopify store or WordPress site.

GET/v1/accounts/{accountId}/tracking-tags/{tagId}/partnersPartial

Lists other businesses (like agencies) the pixel is shared with.

Read-only on Meta: sharing with a new partner is not possible through the API.

GET/v1/accounts/{accountId}/tracking-tags/{tagId}/shared-accounts

Lists the ad accounts a pixel is shared with.

POST/v1/accounts/{accountId}/tracking-tags/{tagId}/shared-accounts

Shares a pixel with another ad account so its campaigns can use it.

You must administer both the pixel's Business Manager and the target ad account.

DELETE/v1/accounts/{accountId}/tracking-tags/{tagId}/shared-accounts

Stops sharing a pixel with an ad account.

GET/v1/accounts/{accountId}/tracking-tags/{tagId}/stats

Shows how many events the pixel has received.

Meta rows are passed through as-is.

GET/v1/ads/{adId}/tracking-tags

Shows the tracking parameters (like UTM tags) added to an ad's links.

Not pixels. On Meta this is the creative's url_tags.

PATCH/v1/ads/{adId}/tracking-tags

Sets the tracking parameters (like UTM tags) on an ad's links.

Meta rebuilds the creative behind the scenes; some post-based creatives need the creative fields resent.

GET/v1/accounts/{accountId}/custom-conversions

Lists a Meta ad account's custom conversions, including archived ones.

Meta ads connection only.

POST/v1/accounts/{accountId}/custom-conversions

Creates a Meta custom conversion (e.g. 'visited thank-you page') for ads to optimize toward.

Reuses an existing one with the same name and pixel instead of duplicating.

POST/v1/whatsapp/conversions

Reports a sale or lead from a WhatsApp chat back to Meta so it is credited to the click-to-WhatsApp ad.

Uses the ad click ID captured on the chat's first message.

Catalogs & shopping

GET/v1/ads/catalogs

Lists the product catalogs in a Meta Business Manager.

Meta only.

POST/v1/ads/catalogs

Creates a product catalog used for catalog ads, Facebook/Instagram Shops and WhatsApp.

Meta only (Meta Commerce catalogs). Needs catalog_management for changes.

GET/v1/ads/catalogs/{catalogId}

Shows one product catalog.

Meta only; parameters are not documented.

DELETE/v1/ads/catalogs/{catalogId}

Deletes a catalog and every product in it.

Ads and WhatsApp numbers using it lose their catalog.

GET/v1/ads/catalogs/{catalogId}/batches/{handle}

Checks the result of a bulk product update.

Meta only.

GET/v1/ads/catalogs/{catalogId}/feeds

Lists the product feeds (spreadsheet files) that fill a catalog.

Meta only.

POST/v1/ads/catalogs/{catalogId}/feeds

Creates a product feed that pulls a product file from a web link, optionally on a schedule.

Meta only.

GET/v1/ads/catalogs/{catalogId}/feeds/{feedId}/uploads

Lists past imports of a product feed and their results.

Meta only.

POST/v1/ads/catalogs/{catalogId}/feeds/{feedId}/uploads

Tells Meta to import a product file into the feed right now.

Processing happens in the background.

GET/v1/ads/catalogs/{catalogId}/product-sets

Lists product sets, the groups of products a catalog ad promotes.

Meta only.

POST/v1/ads/catalogs/{catalogId}/product-sets

Creates a product set using a filter, like certain SKUs or a brand.

Meta only.

PUT/v1/ads/catalogs/{catalogId}/product-sets/{productSetId}

Renames a product set or changes its filter.

Meta only.

DELETE/v1/ads/catalogs/{catalogId}/product-sets/{productSetId}

Deletes a product set.

Meta only.

GET/v1/ads/catalogs/{catalogId}/products

Lists the products in a catalog, or looks one up by SKU.

Meta only.

POST/v1/ads/catalogs/{catalogId}/products

Adds one product to a catalog.

Meta only (Meta Commerce catalogs). Needs catalog_management for changes.

POST/v1/ads/catalogs/{catalogId}/products/batch

Adds, updates or deletes up to 5,000 products in one go.

Processed in the background; check results with the batches endpoint.

GET/v1/ads/catalogs/{catalogId}/products/{productId}

Shows one product in a catalog.

Meta only.

PUT/v1/ads/catalogs/{catalogId}/products/{productId}

Updates some fields of a product.

The SKU cannot change.

DELETE/v1/ads/catalogs/{catalogId}/products/{productId}

Removes a product from a catalog.

Meta only.

POST/v1/commerce/catalog-syncs

Keeps a Meta product catalog automatically in sync with a connected Shopify store.

Related endpoints list, read, run and delete syncs under /v1/commerce/catalog-syncs.

Comments

GET/v1/ads/{adId}/comments

Lists the comments people left on an ad, including ads that never appeared as normal posts.

Pick Facebook or Instagram side with placement. Instagram comments need the Instagram account connected too.

Compliance (DSA)

GET/v1/ads/dsa-defaults

Shows the default 'paid for by' and 'benefits' names used for ads shown in the EU.

Meta accounts only.

GET/v1/ads/dsa-recommendations

Shows Meta's suggested names for the EU 'paid for by' and 'benefits' disclosures.

Meta accounts only. Never applied automatically.

Other

GET/v1/ads/labels

Lists the labels used to group campaigns, ad sets and ads in the ad account.

Works on Meta (adlabels) and Google, despite sitting in the Google group.

GET/v1/ads/advertisable-applications

Lists the mobile apps a Meta ad account can promote with app install ads.

Meta only.

GET/v1/ads/ios-fourteen-campaign-limits

Shows how many iOS app campaigns Meta allows for an app on an ad account.

Meta only; for iOS 14+ app promotion.

EVENTlead.received

Instantly notifies you when someone submits a Meta lead form.

Includes the answers plus form, ad and campaign IDs. Subscribe with POST /v1/webhooks (events: ["lead.received"]).

EVENTad.status_changed

Notifies you when a Meta ad, ad set or campaign changes status, such as approved, rejected or with issues.

Meta only. Needs ads access on the team. Subscribe with POST /v1/webhooks (events: ["ad.status_changed"]).

EVENTaccount.ads.initial_sync_completed

Notifies you when the first 90-day import of an ads account finishes.

Subscribe with POST /v1/webhooks (events: ["account.ads.initial_sync_completed"]).

EVENTaccount.ads.sync_failed

Warns you when an ad account's ads stop syncing for 24 hours.

Fires once per episode; any ads platform. Subscribe with POST /v1/webhooks (events: ["account.ads.sync_failed"]).

EVENTaccount.ads.sync_recovered

Tells you when an ad account that stopped syncing is working again.

Subscribe with POST /v1/webhooks (events: ["account.ads.sync_recovered"]).

More

Request and response fields for the most common calls are in the Ads API reference; the Ads guide covers every network, money rules and errors.