Meta Ads API: Access, Tokens, Objects, First Call

By Mika ReyesPublished 7 min read

The short answer

The Meta Ads API is Meta's Marketing API, the part of the Graph API at graph.facebook.com that creates and reads ads. To use it you need a Meta app with the Marketing API product, the ads_management permission, and Full Access in the Marketing API Access Tier for production volume. Calls need a user or system user access token and follow ad account, campaign, ad set, ad.

The Meta Ads API is Meta's Marketing API: the set of Graph API endpoints at graph.facebook.com that create, change, and report on ads across Facebook, Instagram, and Meta's other apps. Getting production access takes three things: a Meta app with the Marketing API product, the ads_management permission, and Full Access in what Meta now calls the Marketing API Access Tier.

This guide is for developers at marketing platforms, AI content tools, and vertical SaaS products that want to run ads for their own customers. It covers access, tokens, the object model, and a first call, and links to the deeper guides in this series.

What is the Meta Ads API?

The Meta Ads API is the Marketing API, Meta's interface for automating advertising. Meta's Marketing API overview puts it in one line: "Use the Marketing API to automate advertising across Meta technologies."

People search for it under several names. They all point at the same API:

Name people use What it refers to
Meta Ads API The Marketing API
Facebook Ads API The Marketing API, from before the Meta rename
Facebook API for marketing Usually the Marketing API; sometimes the Pages API for organic posts
Graph API The wider API the Marketing API is part of. See our Facebook Graph API guide

The Marketing API has its own version schedule, but Meta often ships versions alongside the Graph API: Graph API v26.0 and Marketing API v26.0 launched together on July 29, 2026, per Meta's announcement. The examples below use v26.0.

How do I access the Meta Ads API?

Access to the Meta Ads API comes in layers: an app, a permission, an access tier, and a role on the ad account. Each layer can block you on its own, and passing one doesn't pass the others.

  1. Create a Meta app of the Business type in the App Dashboard and add the Marketing API product.
  2. Request ads_management (and ads_read if you only report). Meta's permissions reference says ads_management "allows your app to both read and manage the Ads account it owns" or one its owner grants you.
  3. Get Advanced Access to the permission if you manage other people's ad accounts. Meta's access levels page says Standard Access permissions "can only be requested from app users who have a role on the requesting app," and that "Business Verification is required to get Advanced Access."
  4. Upgrade the Marketing API Access Tier from Limited Access to Full Access through App Review.
  5. Have the person who authorizes hold a role on the ad account. A token can only reach ad accounts its owner can reach.

Our Meta app review guide covers what the review asks for and how long it takes.

What is Marketing API access, and which tier do I need?

The Marketing API Access Tier is a feature separate from the ads_management permission, and it sets your rate limits and system user quota. Adding the Marketing API product puts you on Limited Access by default. Meta's authorization guide calls that tier "for development only."

Meta renamed the feature on May 4, 2026. "Ads Management Standard Access" became the Marketing API Access Tier, Standard became Limited, and Advanced became Full. Jiaqi Sun explained the reason in Meta's announcement:

"The old name caused persistent confusion: developers frequently mixed AMSA up with the separate ads_management permission."

You can hold Advanced Access to ads_management and still be on Limited Access in the tier. Here is what each tier gets you, per Meta's authorization and rate limiting docs:

Limited Access (default) Full Access (App Review)
Intended for Development only Production apps for live advertisers
Ads management quota per ad account per hour 300 + 40 × active ads 100,000 + 40 × active ads
System users per business 1, plus 1 admin system user 10, plus 1 admin system user
To qualify Automatic 500+ Marketing API calls in 15 days, error rate under 15% on the last 500

The same announcement lowered the call threshold from 1,500 to 500 and dropped the screen recording from the upgrade request. The full limits are in our Meta Marketing API rate limit guide.

Which access token does the Meta Ads API use?

Every Meta Ads API call needs an access token, either a user access token or a system user access token. Meta's authentication guide says "Every Marketing API call requires an access token as a parameter."

Token Belongs to Lifetime, per Meta Use it when
User access token A person, through Facebook Login Short-lived: an hour or two. Long-lived: about 60 days Your customers connect their own ad accounts
System user access token A system user in a business portfolio Non-expiring, or 60 days if you opt in Your own server works on your own business's assets

A platform that runs ads for its customers usually gets a user token from each customer through Facebook Login. A system user is for the assets your own business portfolio owns or has been shared. The details are in our guides to the Meta Ads API access token and the Meta system user access token.

How is a Meta ad account structured?

The Meta Ads API models every ad as ad account → campaign → ad set → ad, with the creative attached to the ad. Each level owns different settings, and the Marketing API overview describes them this way:

Object What it holds
Ad account Billing, currency, time zone, and the creative library. ID format act_<digits>
Campaign One objective, such as Page post engagement
Ad set Budget, schedule, billing, targeting, and optimization goal
Ad creative The visual elements. Meta says you can't change them once created
Ad Ties a creative to an ad set so it can deliver

Meta recommends one ad set per audience and several ads per ad set to test variations. Ad accounts themselves sit in a business portfolio or belong to a person directly. To build each level by API, see our guides to creating an ad account with the Meta API and creating a campaign, ad set, and ad. To read results back, see the Facebook Ads Insights API and the Facebook Lead Ads API.

How do I make my first Meta Ads API call?

List the ad accounts your token can reach, then read one account's campaigns. Get a user token with ads_read or ads_management from the Graph API Explorer for a quick test.

curl -G "https://graph.facebook.com/v26.0/me/adaccounts" \
  --data-urlencode "fields=name,account_status,currency" \
  --data-urlencode "access_token=$ACCESS_TOKEN"

Each result has an id in act_<digits> form. Use it to read campaigns:

curl -G "https://graph.facebook.com/v26.0/act_1234567890/campaigns" \
  --data-urlencode "fields=name,status,objective" \
  --data-urlencode "access_token=$ACCESS_TOKEN"

An empty data array means the account has no campaigns. Writes go to the same edges with POST. Create campaigns with status=PAUSED while testing, because an active ad with a budget spends real money.

What breaks once real customers connect?

A Meta Ads API integration usually breaks at the edges a solo test never touches: other people's accounts, roles, and quotas. Manuel, founder of Climent Media, described it in his Marketing API access write-up (updated September 2026):

"Everything works when the only user is the developer."

The usual causes, in the order you'll meet them:

  • Permission level. Standard Access only works for people with a role on your app. A customer gets an error until you have Advanced Access.
  • Ad account role. The person who connected needs a role on the ad account you're calling.
  • Tier quota. Limited Access allows 300 ads management calls per ad account per hour plus 40 per active ad, which a sync job uses up fast.
  • Version sunsets. Old Marketing API versions stop working on Meta's schedule, and the v26.0 announcement tells developers to "migrate all calls to the latest API version."

Is there a faster way to add Meta ads to a product?

Adeli exposes Meta (Facebook) Ads through its own API, so your product doesn't hold the Meta app or carry the reviews. Adeli's Ads endpoints work on a customer's Facebook connection: list businesses and ad accounts, create an ad account, read the campaign tree with spend and reach, pull daily insights, activate or pause ads, and read lead form submissions.

  • Grants. Adeli's Ads authorization requests ads_management, business_management, pages_manage_ads, and leads_retrieval. It doesn't request ads_read.
  • Safe creates. Create campaign promotes a post the Page already published, and everything is created paused until you activate it.
  • Live data. Adeli stores no campaign structure and no metrics, so every figure is as fresh as the response.

Meta's access tier and the customer's ad-account role still apply on top of these grants. If you're building an AI marketing platform or vertical SaaS, the Ads endpoints use the same API key as the rest of Adeli. The same Facebook connection also publishes to the customer's Facebook Page through Adeli's posting API, so paid and organic run from one integration.

faq

Frequently asked questions

Is the Meta Ads API the same as the Facebook Ads API?

Yes. Meta's official name is the Marketing API, and it covers ads on Facebook, Instagram, Messenger, and the rest of Meta's apps. "Facebook Ads API" and "Meta Ads API" are the names people search for. The requests all go to graph.facebook.com.

Where is the Meta Ads API documentation?

Meta publishes it on Meta for Developers under Marketing API: an overview, an authorization guide, the rate limiting page, and a reference for every object such as the ad account, campaign, ad set, and ad. The changelog lists what each version adds and removes.

How do I check the Meta Ads API status?

Meta runs a status page at metastatus.com for its business products, with an entry for the Marketing API. If the status page is clear and calls still fail, read the error code first: throttling, expired tokens, and version deprecations all look like outages from the outside.

Is there a Meta Ads API key?

No. The Marketing API has no single API key. Your app has an App ID and App Secret, and every call carries an access token for a person or a system user who has access to the ad account.

Power your next project
with one ads & social media API

Give your users publishing, scheduling, and analytics through one integration your team can actually maintain.

Try with agents

Start with free credits. No credit card required.