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

What the Meta Ads API (Marketing API) is, how to get access with ads_management and the Marketing API Access Tier, which token to use, and your first call.

Canonical page: https://www.tryadeli.com/blog/meta-ads-api
Last updated: 2026-10-26

By Mika Reyes, Co-founder, Adeli. Published 2026-10-26.

## 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](https://developers.facebook.com/docs/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](https://www.tryadeli.com/blog/facebook-graph-api) |

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](https://developers.facebook.com/blog/post/2026/07/29/introducing-graph-api-v26-and-marketing-api-v26/). 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](https://developers.facebook.com/apps/) and add the Marketing API product.
2. **Request `ads_management`** (and `ads_read` if you only report). Meta's [permissions reference](https://developers.facebook.com/docs/permissions) 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](https://developers.facebook.com/docs/graph-api/overview/access-levels) 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](https://www.tryadeli.com/blog/meta-app-review-time) 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](https://developers.facebook.com/docs/marketing-api/get-started/authorization) 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](https://developers.meta.com/blog/updates-to-ads-management-standard-access-feature/):

> "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](https://developers.facebook.com/docs/marketing-api/overview/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](https://www.tryadeli.com/blog/meta-marketing-api-rate-limit).

## 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](https://developers.facebook.com/docs/marketing-api/get-started/authentication) 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](https://www.tryadeli.com/blog/meta-ads-api-access-token) and the [Meta system user access token](https://www.tryadeli.com/blog/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](https://www.tryadeli.com/blog/create-ad-account-meta-api) and [creating a campaign, ad set, and ad](https://www.tryadeli.com/blog/facebook-ads-api-create-campaign). To read results back, see the [Facebook Ads Insights API](https://www.tryadeli.com/blog/facebook-ads-insights-api) and the [Facebook Lead Ads API](https://www.tryadeli.com/blog/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](https://developers.facebook.com/tools/explorer/) for a quick test.

```bash
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:

```bash
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](https://climentmedia.com/learn/meta-marketing-api-access/) (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](https://www.tryadeli.com/docs/api/ads) 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](https://www.tryadeli.com/docs/api/ads/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](https://www.tryadeli.com/use-cases/ai-marketing-platforms) or [vertical SaaS](https://www.tryadeli.com/use-cases/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](https://www.tryadeli.com/product/facebook) through Adeli's [posting API](https://www.tryadeli.com/social-media-posting-api), so paid and organic run from one integration.

## 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.

## Related Adeli pages

- [Social Media and Ads API for AI Marketing Platforms](https://www.tryadeli.com/use-cases/ai-marketing-platforms.md): Run posting, analytics, inbox, and Meta ads for your customers' accounts through one API, without months of platform reviews.
- [Facebook API for Developers](https://www.tryadeli.com/product/facebook.md): Publish, schedule, and read analytics for Facebook Pages through one API. Adeli owns the Facebook developer app, token refresh, and Meta review. Free to start.
- [Social Media API for Vertical SaaS Platforms](https://www.tryadeli.com/use-cases/vertical-saas.md): Give your small-business customers posting, scheduling, analytics, inbox, and Meta ads inside your vertical SaaS, through one API.
- [All posts on the Adeli blog](https://www.tryadeli.com/blog.md)

## About the author

Mika Reyes is the CEO behind Adeli and a tech and AI content creator. She was previously co-founder and CEO of Parallax, which was acquired by Phantom, and a product lead at LinkedIn. She is a Forbes 30 Under 30 honoree.
