The Meta Marketing API is Meta's API for automating advertising across Facebook, Instagram, Messenger and WhatsApp, with functions for creating ads, managing them and analysing performance. Every app starts on the Limited access tier, which is heavily rate-limited and meant for development, and you need App Review to move to Full access for live advertisers.
It lets you create campaigns, ad sets and ads programmatically and adjust them based on real-time performance data. Here's how it's organised, how access works since Meta renamed its tiers and the version rules to build around.
What the Marketing API controls
The API mirrors the structure you already know from Ads Manager:
| Object | What it holds |
|---|---|
| Campaign | The highest level in an ad account. It should represent a single objective, and that objective is enforced on every ad inside it |
| Ad set | Budget, billing, schedule, targeting and optimisation goal. Everything here applies to all ads in the set |
| Ad creative | The visual elements only. Creatives can't be changed once created, and each ad account has a creative library to reuse them |
| Ad | Everything needed to show the ad on Facebook, Instagram, Messenger and WhatsApp, including the creative |
Meta suggests one ad set per audience, so you can control how much you spend on each audience and see metrics for each. Ads in WhatsApp Status are also available through the Marketing API.
Limited access vs Full access
Meta has renamed its Marketing API Access Tier labels: what was Standard Access is now Limited Access, and Advanced Access is now Full Access. It also lowered the bar for Full Access from 1,500 to 500 Marketing API calls in the past 15 days.
| Limited access (default) | Full access | |
|---|---|---|
| How you get it | Automatically when you add the Marketing API product to your app | Click Upgrade for the Marketing API Access Tier feature and pass App Review |
| Rate limits | Heavily rate-limited per ad account; for development only | Lightly rate-limited per ad account |
| Business Manager | Limited access to Business Manager and Catalog APIs | Access to all Business Manager and Catalog APIs |
| System users | 1 system user and 1 admin system user | 10 system users and 1 admin system user |
| Creating Pages | Not possible through the API | Not possible through the API |
One warning from Meta's docs that's easy to overlook: calls on any access level are made against production data. There's no sandbox tier where test calls can't touch real ad accounts, so be careful what your code changes.
Which permissions to ask for
- Managing ads on accounts you own or have been given access to: the ads_management permission plus the Marketing API Access Tier feature.
- Reading ad reports only: the ads_read permission plus the Marketing API Access Tier feature.
- Both, across different clients: ads_management and ads_read together.
- Only your own ad account: standard access to those permissions is enough. Managing other people's ad accounts needs advanced access.
If you're managing someone else's ads, you prompt them for the permission and your app gets access when they click Allow. Business Verification is required if your app will access sensitive data. If you only want to study other advertisers' ads without code, the public Facebook Ads Library is enough.
Rate limits for ads management
For the Ads Management API, Meta calculates the hourly call allowance from a base number plus an amount for each active ad. With Limited access it's 300 plus 40 per active ad. With Full access it's 100,000 plus 40 per active ad. The Ads Insights API has its own, separate formula.
Version rules you can't ignore
| Rule | What Meta's docs say |
|---|---|
| Current version | v26.0 |
| How often | New versions roughly every four months |
| Grace period | The previous version is supported for at least 90 days after a new one ships |
| Unversioned calls | Invalid. They fail on Marketing API endpoints |
| Auto-upgrade | Since May 2024, calls to a deprecated version may be upgraded to the next one, but only for endpoints that version didn't change |
That unversioned rule is the big difference from the wider Graph API, where a call without a version falls back to your app's default. With the Marketing API, a missing version means a failed call.
Want AI doing the heavy lifting in your marketing?
I build the systems that handle the boring 80 percent, so you get your week back. Done properly, with the human kept in.
Who should use it
- Agencies and tools managing many ad accounts.
- Businesses pulling ad results into their own dashboards or CRM.
- Anyone creating ads in bulk from a product feed or spreadsheet.
If you're a small business running a handful of campaigns, Ads Manager and its app will do the job without any code. For lead ads specifically, a CRM with a lead ads connection is a simpler route than building on the API.
My verdict
The Marketing API is powerful but unforgiving. Plan for App Review early, because Limited access is for development only, always send a version number, and put a calendar reminder in roughly every four months to check the changelog. Do those three things and an integration built today will keep running.
Frequently asked questions
What is the Meta Marketing API?
It's Meta's API for automating advertising across its technologies, with functions for ad creation, management and performance analysis.
What is the difference between Limited and Full access?
Limited access is granted automatically, is heavily rate-limited and is for development only. Full access needs App Review and is lightly rate-limited per ad account.
How do I qualify for Full access on the Marketing API?
Meta has lowered the qualification threshold for Full Access from 1,500 to 500 Marketing API calls in the past 15 days, alongside its other App Review requirements.
What happens if I don't set a Marketing API version?
Meta says unversioned calls are invalid and fail on Marketing API endpoints.
How often does the Marketing API change version?
Meta releases Marketing API versions approximately every four months and supports the previous version for at least 90 days.


