Meta Business Suite data API: Page, inbox, leads
Meta Business Suite is Meta Platforms' free, official app for running a business presence across Meta's own apps, and the successor to the old Facebook Pages Manager app. An admin picks a Facebook Page and manages it together with its linked Instagram professional account and WhatsApp Business number, and businesses that exist only on Instagram can be run from it too. Its main screens are a content calendar and post-detail views of everything the Page has published, with eligible posts boosted into paid promotion from the same place; a unified inbox that merges Messenger, Instagram Direct and WhatsApp conversations into one thread list with folders, customer tags and inbox search; a Leads Center that gathers Instant Form leads into a leads list and individual lead cards linked back to the conversation they came from; a contacts tab whose customer cards keep labels, notes and the sales stage of each lead; and Page insights tracking how posts perform and who interacts with them. Listed in the US Play Store, it is the day-to-day tool for small businesses and the Page admins who handle social customer service, lead follow-up and posting from a phone. It competes with third-party social media suites such as Hootsuite, Sprout Social, Agorapulse and Buffer as the free, first-party option built by Meta itself.
One Facebook Page is the root record: page_id together with ig_business_id and wa_id binds the Page to its linked Instagram and WhatsApp identities, while flags such as has_linked_ig_account, has_linked_whats_app and is_ig_only_presence describe how that presence is wired, alongside asset_name, asset_type and profile pictures. Published content hangs off that id as post rows carrying boostPostStatus, bizPostContentType, productType, postMedias and insightUserData — what went live, in which format, whether it can be boosted, and the insight actors attached to it, down to their profilePicUri avatars.
The messaging side is per-channel conversation state. messenger_connected, instagram_connected and whatsapp_connected mark which channels are ready to sync; inbox threads are keyed by thread_id with last_message_id, last_message_timestamp_ms, thread_type and sync cursors such as msys_sync_cursor and sync_status, and each thread row is filled in with customerTags, folder, snippetWithEntities and blockedByViewerStatus. Leads resolve through lead_id, with an optional thread_id tying a lead back to its conversation, and customers through contact_id and business_id, whose contact card — opened from inbox search or the contacts tab — carries labels, notes, profile, about, CTA and lead-opportunity stage.
Integrations build directly on that: helpdesks mirror Messenger, Instagram and WhatsApp thread state into one agent queue so no customer message sits unread in a channel nobody watches; CRMs pick up lead cards and contact cards as they arrive and open opportunities with labels, notes and lead context attached instead of someone re-typing from the inbox; marketing dashboards track a Page's posts by boost status and content type to see what is live, what is promoted and how the posting cadence runs week to week. openData Studio makes this Page, inbox, lead and contact data callable as open data for those builds.
Screenshots
API surface
The endpoints and request/response examples below are reconstructed from the app's interface — illustrative, not a live capture.
Fetch business Page asset
GET
/v1/business/assets/{asset_id}opendataLoads the currently scoped business presence (Facebook Page and linked Instagram / WhatsApp identities) that every other Suite screen hangs off, including the page-scoped access token that authenticates the session.
Auth: Page-scoped access token for the selected business asset, sent as the access_token query parameter alongside sdk and format flags.
- page_id
- asset_id
- asset_name
- asset_type
- auth_token
- bpn_id
- ig_business_id
- wa_id
- profile_pic_url
- ig_profile_pic_url
- has_linked_ig_account
- has_linked_whats_app
- has_presence_node
- is_ig_only_presence
- is_facebook_profile
- is_tool_ready
- scope_id
GET /v1/business/assets/17841400000000000?fields=page_id,asset_id,asset_name,asset_type,auth_token,ig_business_id,wa_id,profile_pic_url,ig_profile_pic_url,has_linked_ig_account,has_linked_whats_app,is_ig_only_presence,is_facebook_profile,is_tool_ready,has_presence_node,scope_id,bpn_id&format=json&sdk=android&access_token=<page-access-token> HTTP/1.1{ "page_id": 17841400000000000, "asset_id": 17841400000000000, "asset_name": "Example Bakery", "asset_type": "PAGE", "auth_token": "<page-access-token>", "bpn_id": 1234567890, "ig_business_id": 17841405309200000, "wa_id": 15551234567, "profile_pic_url": "https://cdn.example.net/p200x200/page.jpg", "ig_profile_pic_url": "https://cdn.example.net/t51.2885-19/ig.jpg", "has_linked_ig_account": true, "has_linked_whats_app": true, "has_presence_node": true, "is_ig_only_presence": false, "is_facebook_profile": false, "is_tool_ready": true, "scope_id": 17841400000000000 }List Page posts
POST
/v1/content/posts/listopendataReturns the Page's published-content list (feed posts, boost eligibility, media and per-post insight actors) that powers the Suite content calendar and post-detail screens.
Auth: Page-scoped access token from the current business session; the posts read is submitted as a named document over the app's GraphQL transport.
- id
- boostPostStatus
- bizPostContentType
- productType
- postMedias
- insightUserData
- profilePicUri
POST /v1/content/posts/list HTTP/1.1 Content-Type: application/json {"page_id": "17841400000000000", "access_token": "<page-access-token>"}{ "data": { "page": { "id": "17841400000000000", "posts": { "nodes": [ { "id": "17841400000000000_122118000000000000", "boostPostStatus": "ELIGIBLE", "bizPostContentType": "PHOTO", "productType": "FEED", "postMedias": [{"uri": "https://cdn.example.net/post.jpg"}], "insightUserData": [{"profilePicUri": "https://cdn.example.net/p50x50/user.jpg"}] } ] } } } }Validate unified-inbox channel readiness
POST
/v1/inbox/channels/validateopendataTells the comms hub whether Messenger, Instagram Direct and WhatsApp threads are ready to sync for this Page, gating the unified inbox.
Auth: Page-scoped access token from the signed-in admin session; the readiness check identifies the Android client surface.
- page_id
- instagram_connected
- messenger_connected
- whatsapp_connected
- client_surface
- client_time_unix_seconds
- validation_tracking_id
- client_channels
POST /v1/inbox/channels/validate HTTP/1.1 Content-Type: application/json {"page_id": "17841400000000000", "query_params": {"client_channels": {"instagram_connected": true, "messenger_connected": true, "whatsapp_connected": true}, "client_surface": "android_app", "client_time_unix_seconds": 1758500000, "validation_tracking_id": "trk-01"}, "access_token": "<page-access-token>"}{ "data": { "inbox_channel_readiness": { "messenger": {"is_ready": true}, "instagram": {"is_ready": true}, "whatsapp": {"is_ready": false} } } }Validate inbox thread list (Messenger / IG / WhatsApp)
POST
/v1/inbox/threads/validateosintUploads the local Messenger / Instagram Direct / WhatsApp thread snapshot (ids, last-message cursors, sync epoch) so the server can confirm the unified inbox, and hydrates each thread with customer tags, folder and snippet.
Auth: Page-scoped access token from the signed-in admin session; the consistency check carries the local per-channel sync snapshot.
- thread_id
- last_message_id
- last_message_timestamp_ms
- thread_type
- thread_subtype
- authority_level
- parent_thread_key
- msys_sync_cursor
- sync_status
- sync_epoch_id
- sync_network_channel
- sync_failure_count
- db_treads
- ui_treads
- id
- pageCommItemId
- customerTags
- folder
- snippetWithEntities
- blockedByViewerStatus
POST /v1/inbox/threads/validate HTTP/1.1 Content-Type: application/json {"query_params": {"validation_tracking_id": "trk-01", "client_time_unix_seconds": 1758500000, "messenger": {"sync_status": "COMPLETE", "msys_sync_cursor": "cursor-abc", "sync_failure_count": 0, "sync_epoch_id": "99", "sync_network_channel": 1, "db_treads": [{"thread_id": "1234567890", "last_message_id": "mid.$cAAAA", "last_message_timestamp_ms": "1758499900000", "thread_type": 1, "authority_level": 0}], "ui_treads": [{"thread_id": "1234567890", "last_message_id": "mid.$cAAAA"}], "thread_ids": []}, "instagram": {}, "whatsapp": {}}, "access_token": "<page-access-token>"}{ "data": { "inbox_thread_validation": { "is_consistent": true } }, "thread": { "id": "t_1234567890", "pageCommItemId": "17841400000000000", "customerTags": [{"name": "VIP"}], "folder": "INBOX", "snippetWithEntities": {"text": "Hi, is the order ready?"}, "blockedByViewerStatus": "NOT_BLOCKED" } }Fetch lead card
POST
/v1/leads/cards/getosintLoads a single Instant Form / Lead Center record for the Page (optional thread id linking the lead to the unified inbox) used by the lead-card and leads-list surfaces.
Auth: Page-scoped access token; the lead read is scoped to the Page id of the current business session.
- lead_id
- page_id
- include_details
- include_thread_id
- thread_id
POST /v1/leads/cards/get HTTP/1.1 Content-Type: application/json {"page_id": "17841400000000000", "lead_id": "l:123456789012345", "include_details": true, "include_thread_id": true, "access_token": "<page-access-token>"}{ "data": { "lead": { "lead_id": "l:123456789012345", "page_id": "17841400000000000", "include_details": true, "include_thread_id": true, "thread_id": "t_1234567890" } } }Fetch customer contact card
POST
/v1/contacts/cards/getosintHydrates the CRM contact card (identity, labels, notes, profile, about, CTA, lead-opportunity stage) shown when a Page admin opens a customer from inbox search or the contacts tab.
Auth: Page-scoped access token; the contact read takes an identity input scoped to the business asset.
- contact_id
- business_id
- type
- surface
- include_about
- include_config
- include_cta
- include_identity
- include_labels
- include_notes
- include_profile
- include_tos
- include_lead_opportunity
- business_asset_id
- business_assets
POST /v1/contacts/cards/get HTTP/1.1 Content-Type: application/json {"identity": {"contact_id": "c:9876543210", "business_id": "17841400000000000", "type": "FACEBOOK"}, "surface": "INBOX", "include_about": true, "include_config": true, "include_cta": true, "include_identity": true, "include_labels": true, "include_notes": true, "include_profile": true, "include_tos": true, "include_lead_opportunity": true, "business_assets": [{"business_asset_id": "17841400000000000"}], "access_token": "<page-access-token>"}{ "data": { "contact": { "contact_id": "c:9876543210", "business_id": "17841400000000000", "type": "FACEBOOK", "surface": "INBOX", "include_about": true, "include_labels": true, "include_notes": true, "include_profile": true, "include_lead_opportunity": true, "business_asset_id": "17841400000000000" } } }
Data categories
- business-assets
- posts
- inbox
- leads
- contacts
- page-insights
Where teams use this data
Unified-inbox helpdesks
Support platforms mirror Messenger, Instagram and WhatsApp thread state — thread type, unread counts, sync cursors — into one agent queue, so no customer message sits unread in a channel nobody watches.
Lead-capture pipelines
CRMs fetch lead cards and customer contact cards the moment they arrive, opening opportunities with labels, notes and lead context attached instead of someone re-typing from the inbox.
Page content monitoring
Marketing dashboards list a Page's posts with boost status and content type, tracking what is live, what is promoted and how the posting cadence looks across weeks.
Frequently asked questions
What data API does the Meta Business Suite app use?
The Android client is a first-party graph client. Versioned reads load the scoped business asset (illustrated here as GET /v1/business/assets/{asset_id}), and named GraphQL documents cover Page posts, unified-inbox readiness and thread validation, leads and customer contacts. Response models keep wire field names such as page_id, ig_business_id, wa_id and auth_token.
How is the Meta Business Suite API authenticated?
Requests carry a page-scoped access token issued after a Page admin signs in. The token of the currently selected business asset is sent as the access_token parameter, together with sdk and format flags. There is no public developer key — these are first-party calls scoped to the managed Page.
Which customer data does the unified inbox expose?
A thread-validation call uploads per-channel snapshots (thread_id, last_message_id, last_message_timestamp_ms) for Messenger, Instagram Direct and WhatsApp so the server can confirm sync state, and each thread row is hydrated with id, pageCommItemId, customerTags, folder, snippetWithEntities and blockedByViewerStatus. The contact card additionally reads contact_id, labels, notes and lead-opportunity flags.
Does the app expose Page insights and ads?
Insights, yes — page-insights is one of the app's data categories, and each post row from the content list already carries boostPostStatus (boost eligibility) plus insightUserData actors with profilePicUri. The surface documented here spans business assets, posts, inbox, leads and contacts; it does not include a separate ads-management endpoint.
Apps similar to Meta Business Suite
- Hootsuite — An enterprise social media management platform whose current plans bundle Talkwalker-powered listening.
- Buffer — A simple, quick-to-learn scheduling tool whose free plan covers three social channels.
- Sprout Social — A premium social media suite with strong native analytics and reporting, aimed at larger teams.
- Later — An Instagram-first visual planning tool that also offers a link-in-bio feature.
- Agorapulse — An engagement-focused suite that pulls messages, comments and mentions from across networks into one inbox.
- Loomly — A calendar-first tool that leans into helping teams decide what to post, not just when to post it.
- SocialBee — A scheduler that organizes posts into content categories and recycles them so the publishing queue never runs dry.
- Sendible — An agency-oriented scheduler whose entry plan covers six social profiles with unlimited users.
Topics
- Meta Business Suite API
- Pages Manager data API
- Facebook Page posts endpoint
- unified inbox threads API
- Facebook leads contact card
- page access token auth
- page_id ig_business_id
- Meta business asset API
Need this app's data API integrated?
We deliver scoped integrations for any named app — from USD 500 with source-code handoff, or hosted access billed per call. Tell us the data you need.
- NDA + SOW on every engagement
- Delivery in 3–7 days
- Payment only after acceptance
- Work scoped to authorized use