Spaces

Coming next

Snapchat Ads API for AI agents

The Snapchat Ads API in Spaces is coming next and is not available yet. When it opens, the same ads routes and MCP tools that run Meta today will build paused Snapchat campaigns, read spend and results and pause ads, with a confirmation before anything spends.

Snapchat will join the same Ads API as Meta and TikTok. The calls and the safety rules will not change. What changes is what Snapchat itself allows, and on Snapchat that mostly comes down to media, places and conversions.

If you are planning an integration, the notes below are the ones to design around. Where Snapchat cannot do something through Spaces, the API will tell you in the response.

What a request will look like

# 1. Spend and results by ad for the last seven days, best return first.
GET https://api.spacesos.com/v1/ads/accounts/{ad_account_id}/insights?level=ad&date_preset=last_7d&sort=roas
Authorization: Bearer spc_live_…

# 2. Pause an ad made in Snapchat Ads Manager. Say what it is with level.
POST https://api.spacesos.com/v1/ads/accounts/{ad_account_id}/objects/{ad_id}/pause
Authorization: Bearer spc_live_…
Idempotency-Key: pause-weak-ad-1
{ "level": "ad" }

Coming next, and shortened: reading a week of results on a Snapchat ad account, then pausing an ad that Spaces did not create. Amounts are in the ad account's currency.

What will be different from Meta

  • Spaces cannot upload images or videos to Snapchat yet. The owner uploads them once in Snapchat Ads Manager, and create_ad uses them from there.
  • Snapchat ads need a video or a full-screen image.
  • Ads post as one of your Snapchat profiles, which list_ad_pages returns.
  • Snapchat targets countries, regions and postcodes rather than cities.
  • Sending sales and leads back to Snapchat is not available through Spaces yet. Keep the Snapchat Pixel or Snapchat’s own setup in Ads Manager for that.
  • pause_ad_object needs level (campaign, ad_set or ad) for objects Spaces did not create.

Reading and pausing first

Many businesses already have Snapchat campaigns they built by hand. The tools that read and pause are the ones that need nothing new from the owner: get_ad_insights for spend and results by account, campaign, ad set or ad, list_ad_campaigns, list_ad_sets and list_ads for what is there, and pause_ad_object to stop something straight away. Pausing never spends money, so it needs no confirmation.

What will stay the same

Everything Spaces builds starts paused, and a change that spends answers confirmation_required until the person says yes. The owner’s daily budget cap and monthly spend cap apply, a key can only lower them, and with no caps set nothing can be turned on.

How a change that spends gets approved

  1. Call the tool as normal, for example launch_ad_campaign or a budget increase on update_ad_set.
  2. Spaces changes nothing and answers with status confirmation_required, a plain summary of the change against the caps, and preview links for each ad.
  3. Show the summary and previews to the person. If the ad account is set so a person approves, send them approve_url instead.
  4. After a clear yes, call confirm_ad_change with the confirmation id. It needs the ads:spend scope, and Spaces checks the caps again before it acts.
  5. If the person says no, call cancel_ad_change. list_ad_confirmations shows what is waiting and what was decided.

The caps sit above all of this. The owner sets a daily budget cap, which limits the total daily budget set to run, and a monthly spend cap, at which Spaces pauses the campaigns it runs. update_ad_limits can lower either one. Nothing can raise them except the owner, in the dashboard.

The tools, as they will work on Snapchat Ads

Tools marked “asks first” can spend money, so they answer with a confirmation before they change anything. One-line summaries of every tool are on the ads API page.

Launch

MCP toolSnapchat AdsREST
list_ad_pagesYour Snapchat profilesGET /v1/ads/accounts/{ad_account_id}/pages
list_ad_pixelsGET /v1/ads/accounts/{ad_account_id}/pixels
create_ad_campaignPOST /v1/ads/accounts/{ad_account_id}/campaigns
create_ad_setPOST /v1/ads/accounts/{ad_account_id}/ad-sets
create_adPOST /v1/ads/accounts/{ad_account_id}/ads
upload_ad_imageUpload in Ads Manager for nowPOST /v1/ads/accounts/{ad_account_id}/images
upload_ad_videoUpload in Ads Manager for nowPOST /v1/ads/accounts/{ad_account_id}/videos
get_ad_previewGET /v1/ads/accounts/{ad_account_id}/ads/{ad_id}/preview
launch_ad_campaignAsks firstPOST /v1/ads/accounts/{ad_account_id}/campaigns/{campaign_id}/launch
search_ad_targetingGET /v1/ads/accounts/{ad_account_id}/targeting-search
estimate_ad_reachPOST /v1/ads/accounts/{ad_account_id}/reach-estimate

Moderate

MCP toolSnapchat AdsREST
update_ad_limitsPATCH /v1/ads/accounts/{ad_account_id}/limits
update_ad_campaignAsks firstPATCH /v1/ads/accounts/{ad_account_id}/campaigns/{campaign_id}
update_ad_setAsks firstPATCH /v1/ads/accounts/{ad_account_id}/ad-sets/{ad_set_id}
pause_ad_objectlevel needed if Spaces did not create itPOST /v1/ads/accounts/{ad_account_id}/objects/{object_id}/pause
resume_ad_objectAsks firstPOST /v1/ads/accounts/{ad_account_id}/objects/{object_id}/resume
create_ad_routineAsks firstPOST /v1/ads/accounts/{ad_account_id}/routines
list_ad_routinesGET /v1/ads/routines
update_ad_routinePATCH /v1/ads/routines/{routine_id}
delete_ad_routineDELETE /v1/ads/routines/{routine_id}
list_ad_confirmationsGET /v1/ads/confirmations
get_ad_confirmationGET /v1/ads/confirmations/{confirmation_id}
confirm_ad_changePOST /v1/ads/confirmations/{confirmation_id}/confirm
cancel_ad_changePOST /v1/ads/confirmations/{confirmation_id}/cancel

Report

MCP toolSnapchat AdsREST
list_ad_campaignsGET /v1/ads/accounts/{ad_account_id}/campaigns
list_ad_setsGET /v1/ads/accounts/{ad_account_id}/ad-sets
list_adsGET /v1/ads/accounts/{ad_account_id}/ads
get_ad_reviewGET /v1/ads/accounts/{ad_account_id}/ads/{ad_id}/review
get_ad_insightsGET /v1/ads/accounts/{ad_account_id}/insights
send_ad_conversionsNot available yetPOST /v1/ads/accounts/{ad_account_id}/conversions

Connect and caps

MCP toolSnapchat AdsREST
list_ad_networksGET /v1/ads/networks
create_ads_connect_linkPOST /v1/ads/connect-link
list_ad_accountsGET /v1/ads/accounts
get_ad_accountGET /v1/ads/accounts/{ad_account_id}
update_ad_accountPATCH /v1/ads/accounts/{ad_account_id}
disconnect_ad_accountDELETE /v1/ads/accounts/{ad_account_id}

FAQ

Can I call the Snapchat Ads API today?

Not yet. Snapchat Ads is coming next, and a Snapchat ad account cannot be connected until it opens. Meta is in early access now on the same routes.

Why can I not upload media to Snapchat through Spaces?

Spaces cannot upload images or videos to Snapchat yet. Upload them in Snapchat Ads Manager, and your code or agent uses them in ads from there.

Can I send conversions to Snapchat?

Not through Spaces yet. Keep using the Snapchat Pixel or Snapchat’s own setup in Ads Manager.

Can I target a city on Snapchat?

Snapchat targets countries, regions and postcodes rather than cities. search_ad_targeting finds them by name.

Will the confirmation flow be the same?

Yes. Turning something on or raising a running budget answers confirmation_required, and confirm_ad_change carries it out after the person says yes.

How will I know when Snapchat opens?

list_ad_networks will show it as live. You can also write to hello@spacesos.com to be told.

Useful next: Snapchat Ads for owners, Snapchat Ads from your AI agent, Meta Ads API, open now, Every ads tool, Spaces docs.