Facebook API platforms: a map of every Meta developer API, what each is for, and how you get in
Meta runs one HTTP API and calls it a dozen platforms. Underneath Pages, Instagram, Messenger, WhatsApp, Threads and the ads stack is the same Graph API with the same versioning, the same access-token model and the same App Review. Understand that once and the rest is a matter of which nodes you are allowed to touch. This is the map, current to Graph API v26.0.
- v26.0
- Current Graph API version
- ~2 years
- How long each version is supported
- 200 / hr
- Calls per user, platform rate limit
- 4,800 ×
- Page calls per engaged user, per day
- $0
- Per call, every API except WhatsApp
- 15 Jun 2026
- Page impressions removed from all versions
Released 29 July 2026
Then calls roll to the next oldest
Multiplied by your app’s active users
Business Use Case limit for Pages
WhatsApp bills per template message
Replaced by media views
On this page+
One API underneath: how the Graph API works
Every Meta platform is the Graph API: a versioned HTTP interface at graph.facebook.com (with graph.instagram.com and graph.threads.net as sibling hosts for the Instagram Login and Threads paths) where nodes are things — a Page, a post, a user, an ad account — edges are the connections between them — a Page’s /feed, a post’s /comments — and fields are the properties you ask for with ?fields=. Reads are GETs, writes are POSTs, and every call carries an access token whose type decides what it can see.
| Token type | Represents | Used for |
|---|---|---|
| User access token | A person who logged in with Facebook or Instagram | Reading their profile, listing the Pages they admin, exchanging for Page tokens |
| Page access token | A Page, derived from an admin’s user token via /me/accounts | Publishing to the Page, reading its insights, Messenger for the Page |
| App access token | Your app itself | Webhook subscriptions, app settings, debugging tokens |
| System user token | A machine user inside a Business Manager | Server-to-server automation with no human login, especially Marketing and WhatsApp |
| Client token | The app, from client-side code | Limited SDK calls; never a substitute for the above |
Versions ship a few times a year — v25.0 on 18 February 2026, v26.0 on 29 July 2026 — and each is guaranteed for roughly two years. Deprecations announced with a version usually apply to that version immediately and to all older versions about 90 days later, so “we pinned an old version” buys a quarter, not immunity.
The platforms, one row each
| Platform | What it is for | Key nodes and edges | Access needed |
|---|---|---|---|
| Graph API (core) | The foundation: users, Pages, groups, events, photos, videos, comments, webhooks | /me, /{page-id}, /{object-id}/comments, /{app-id}/subscriptions | Facebook Login; permissions per node |
| Pages API | Publish to and manage Facebook Pages, read Page insights, moderate comments | /{page-id}/feed, /photos, /videos, /video_reels, /insights, /conversations | pages_show_list, pages_manage_posts, pages_read_engagement, pages_manage_metadata |
| Instagram Platform | Publish posts, Reels, carousels and Stories; read insights; comments; direct messages | /{ig-user-id}/media, /media_publish, /insights, /messages | Instagram Login or Facebook Login; instagram_business_* or instagram_* permissions |
| Messenger Platform | Bots and inboxes for Facebook Page messaging; handover to human agents; calling | /{page-id}/messages, /messenger_profile, /pass_thread_control | pages_messaging; App Review; 24-hour window with message tags |
| WhatsApp Business Platform | Business messaging on WhatsApp via the Meta-hosted Cloud API; templates, Flows, AI agents | /{phone-number-id}/messages, /message_templates | A WhatsApp Business Account, Business Verification; per-template-message pricing; the On-Premises API retired in October 2025 |
| Threads API | Publish text, image, video and carousel posts to Threads; read replies and insights | /{threads-user-id}/threads, /threads_publish, /threads_insights | threads_basic, threads_content_publish, threads_manage_insights; separate host graph.threads.net |
| Marketing API | Create and manage ads: campaigns, ad sets, ads, audiences, creatives, reporting | /act_{ad-account-id}/campaigns, /adsets, /ads, /insights | ads_management, ads_read; access levels tied to ad spend and app history |
| Conversions API | Send web, app and offline events server-side for ads attribution | /{pixel-id}/events | A Meta Pixel or dataset; system user token |
| Facebook Login / Login for Business | Authenticate users and, for business apps, collect Page and asset permissions in one dialog | /oauth/access_token, /me/accounts, /me/businesses | App configured as Consumer or Business type |
| Business Management API | Manage Business Manager assets: Pages, ad accounts, system users, partners | /{business-id}/owned_pages, /system_users, /client_ad_accounts | business_management; Business Verification |
| Live Video API | Create and control live broadcasts on Pages and profiles | /{page-id}/live_videos | publish_video |
| Webhooks | Push notifications for changes on Pages, Instagram, WhatsApp, Messenger, Threads | App dashboard subscriptions plus /{object}/subscribed_apps | HTTPS endpoint, verification handshake, signature validation |
| Meta Content Library and API | Research access to public content across Facebook and Instagram | Query interface, not the Graph API | Academic and non-profit researchers via ICPSR |
| Commerce Platform | Catalogs, shops and checkout | /{catalog-id}/products, shop endpoints | Shrinking: a batch of commerce endpoints is removed with v26.0 and from all versions on 27 October 2026 |
“Platforms” also means something smaller
In an app’s dashboard, Settings → Basic → Add platform lists Website, iOS, Android, Windows, Page Tab and others. Those are the client surfaces your app runs on, and registering one is what lets the SDK for that surface log in. They are unrelated to the API platforms above, but the shared word sends a lot of searches to the wrong documentation.
The access ladder
Every platform shares one path from “I made an app” to “real users can use it”:
- 1Create an app of the right type
Business apps get the business permissions (Pages, Instagram, WhatsApp, ads); Consumer apps get Facebook Login and user-data permissions. The type cannot be changed later, so pick Business for anything that touches a Page.
- 2Add products and request permissions
Each product lists the permissions it needs. Request only those. Every extra permission is another App Review item and another reason to be declined.
- 3Build under Standard Access
Permissions work immediately for anyone with a role on the app — admins, developers, testers — and for the Pages and accounts they own. This is enough to build and demo the whole integration.
- 4Complete Business Verification
Required for most business permissions before Advanced Access. Upload registration documents for the legal entity behind the app. Days to weeks.
- 5Submit App Review for Advanced Access
Per permission: a description of how it is used, a screencast of the flow, a privacy policy URL, and for some, a data-handling questionnaire. Expect at least one round of “please show us where in the video this happens”.
- 6Pass Tech Provider verification if you serve other businesses
Apps that act on behalf of clients — agencies, SaaS tools — are Tech Providers and go through an additional verification. It is also what unlocks higher rate limits on the Marketing API.
- 7Keep passing the annual Data Use Checkup
Once a year you re-certify how each permission is used. Miss it and the permissions are revoked.
Rate limits: which one applies to your call
Meta has two limit systems and every call falls under exactly one. The response headers X-App-Usage and X-Business-Use-Case-Usage tell you which, and how close you are.
| System | Applies to | Limit | Error code |
|---|---|---|---|
| Platform rate limits | Calls with a user or app token that are not a Business Use Case | 200 calls an hour × the number of users your app had in the last 24 hours, per app | 4 (app), 17 (user) |
| Business Use Case — Pages | Calls with a Page token | 4,800 × the Page’s engaged users in the last 24 hours, per app-Page pair | 32 for Pages, with X-Business-Use-Case-Usage detail |
| Business Use Case — Instagram | Instagram Platform calls | 200 calls an hour per app-user pair | 4 with subcode, plus per-account messaging limits |
| Business Use Case — Marketing API | Ads calls | Tiered by access level; Development is low, Standard scales with spend | 17, 613, 80004 |
| Cloud API sends | Throughput per phone number, tiered by quality rating and volume | 130429, 131056 |
The practical rule: spread reads across the day, batch where the API allows (/?batch=[...] takes up to 50 requests), and use webhooks instead of polling for anything that changes — comments, messages, Page mentions all push. Publishing is rarely the thing that hits limits; polling insights every minute is.
What changed in 2025–26 that will break old code
- Impressions are gone. Instagram removed
impressionsand Reelplayson 21 April 2025 in favour ofviews. Facebook Pages began removingpage_impressions,post_impressionsandpage_fanson 15 November 2025, finishing across every version on 15 June 2026, replaced bypage_media_view,post_media_viewandpage_follows. - Instagram Basic Display API is dead. It shut down on 4 December 2024. Anything reading a personal Instagram account’s media through it has been broken since; the replacement is Instagram API with Instagram Login on a professional account.
- WhatsApp On-Premises API retired in October 2025; the Cloud API is the only path, and pricing moved from per-conversation to per-template-message in mid-2025.
- Advantage+ Shopping and App campaigns can no longer be created or edited through the Marketing API from v25.0, extending to all versions after 90 days.
- Commerce endpoints are being removed with v26.0 and from all versions on 27 October 2026.
- Webhook mTLS moved to Meta’s own certificate authority in 2026; endpoints that pin certificates need the new root in their trust store.
Publishing to a Page, as a worked example
The most common reason to touch the Facebook platform is to post to a Page, and it shows how the pieces fit. Log in with Facebook and the pages_show_list, pages_manage_posts and pages_read_engagement permissions. Call /me/accounts to list the Pages the user admins, each with its own Page access token. Then:
# A text or link post
curl -X POST "https://graph.facebook.com/v26.0/{page-id}/feed" \
-d "message=We are open late on Saturdays from this week." \
-d "link=https://example.com/hours" \
-d "access_token=$PAGE_ACCESS_TOKEN"
# A photo post — a different edge and a different body shape
curl -X POST "https://graph.facebook.com/v26.0/{page-id}/photos" \
-d "url=https://cdn.example.com/storefront.jpg" \
-d "message=New hours, same coffee." \
-d "access_token=$PAGE_ACCESS_TOKEN"Text goes to /feed, photos to /photos, video to /videos over a resumable upload, Reels to /video_reels with a two-phase start-and-finish. The Pages API also accepts a scheduled_publish_time with published=false, one of the few native scheduling primitives on any social network. What it does not do is keep the Page token alive forever, fan the same post out to five Pages, or reconcile which of them failed — which is the layer a publishing API adds on top.
Where PostMCP fits
PostMCP sits on the Pages and Instagram Platform corners of this map, plus the Threads API. It holds the app registration, the App Review approvals and the Page and Instagram tokens, and exposes publishing to every Page and professional account you connect as one REST call or MCP tool — the /feed-versus-/photos split, the Reels two-phase publish, token refresh and per-Page failure handling included. It does not touch Messenger, WhatsApp, the Marketing API or the Conversions API. For those you build against Meta directly, and the map above is where to start. The Facebook API reference documents what PostMCP does with the Pages API, and the Instagram API and Threads API pages cover the other two.
Frequently asked questions
What are the Facebook API platforms?+
Products Meta builds on its single Graph API: the core Graph API, Pages API, Instagram Platform, Messenger Platform, WhatsApp Business Platform, Threads API, Marketing API, Conversions API, Facebook Login and Login for Business, Business Management API, Live Video API, Webhooks, the Meta Content Library for researchers and a shrinking Commerce Platform. Each is a set of nodes, permissions and an App Review checklist on the same HTTP interface.
Is the Facebook API free?+
Yes, per call. The Graph API, Pages API, Instagram Platform, Threads API and Marketing API charge nothing; they rate-limit instead. The exception is the WhatsApp Business Platform, which bills per template message delivered, with free-form replies free inside an open 24-hour customer service window.
Which Graph API version is current?+
v26.0, released on 29 July 2026, following v25.0 on 18 February 2026. Each version is supported for about two years, and deprecations announced with a version typically reach all older versions roughly 90 days later.
How do I get access to the Facebook API?+
Create a Meta app of the Business type, add the product you need, and request its permissions. They work immediately under Standard Access for accounts with a role on the app. To serve real users, complete Business Verification and submit each permission for App Review with a screencast and privacy policy; agencies and SaaS tools also complete Tech Provider verification.
What is the difference between the Graph API and the Marketing API?+
The Marketing API is a collection of Graph API endpoints under ad accounts — campaigns, ad sets, ads, audiences, insights — with its own access levels tied to spend and app history. Same host, same tokens, same versioning; different nodes and a stricter review.
What are the Facebook API rate limits?+
Two systems. Platform rate limits allow 200 calls an hour multiplied by your app’s active users. Business Use Case limits apply to Page tokens at 4,800 calls per engaged user per day, to Instagram at 200 calls per user per hour, and to the Marketing API by access tier. Response headers report usage; error codes 4, 17 and 32 signal the ceilings.
Can I schedule Facebook Page posts through the API?+
Yes. The Pages API accepts published=false with a scheduled_publish_time on feed posts, one of the few networks with a native scheduling primitive. Publishing platforms such as PostMCP add what it lacks: one call to many Pages, token refresh, per-Page failure handling, and the same schedule applied to Instagram, Threads and other networks.
Sources, checked September 6, 2026
- 01Meta for Developers — Graph API rate limiting
- 02Meta for Developers — Page Insights API updates (impressions deprecation)
- 03Meta for Developers — Marketing API changelog
- 04Meta for Developers — Instagram Platform overview
- 05Meta for Developers — About the WhatsApp Business Platform
- 06Meta for Developers — Messenger Platform
- 07Unalsoft — Graph API v26.0 placement and commerce endpoint changes
Limits, prices and metric names on this page are the vendors’ own at the date above. When one moves upstream we update the figure and the date together.
Publish to every Page you manage with one call
PostMCP holds the Meta app, the review approvals and the Page tokens. You send content and a schedule — to Facebook, Instagram, Threads and four more networks. 20 posts a month free.
More platform guides
Social media APIsSocial media analytics APIs: what every network exposes, what it costs, and what it quietly deleted
A network-by-network map of the social media analytics APIs: YouTube Analytics, Instagram and Facebook insights, Threads insights, X metrics, LinkedIn Community Management, TikTok Display and Research, Bluesky. Who can use each, what they return, what they cost, and the metrics that were deleted in 2025–26.
ReadInstagram DMsInstagram Messaging API: the rules, windows and rate limits to know before you send a single DM
How the Instagram Messaging API works in 2026: the two login paths, the professional-account and App Review requirements, the 24-hour window and 7-day human_agent tag, every published rate limit (100 messages a second, 750 private replies an hour), webhook payloads and the send call.
Read