FB Page Advanced — WhatsApp Link Eligibility
Pricing
Pay per usage
FB Page Advanced — WhatsApp Link Eligibility
Checks Facebook cookies for Page WhatsApp-link eligibility, ban reason, page name and linked number via the business inbox + GraphQL.
Pricing
Pay per usage
Rating
0.0
(0)
Developer
Ratul Islam
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
8 days ago
Last modified
Categories
Share
fb-page-advanced — WhatsApp Link Eligibility (Advanced Check)
What does fb-page-advanced do?
fb-page-advanced takes raw Facebook login cookies and tells you, per cookie, whether its Facebook Page is eligible for a WhatsApp link — plus the ban reason, the page name, and any already-linked WhatsApp number. It ports the proven /fb/page-advanced endpoint and pageAdvanced background sweep from the SheetSubmit backend, using plain fetch plus regex extraction (no browser, no crawler). It does not post, message, or change anything on the account: it only reads the business inbox page and one read-only GraphQL query.
Why use fb-page-advanced?
- Batch screening: check up to 25 cookies per run and get one uniform result item per cookie.
- Stable error codes: every item uses the shared workspace envelope, so
error.code(invalid_cookie,session_challenge,invalid_page,rate_limited, …) is safe to branch on whileerror.messagetext may change. - Negative answers are data: a Page that exists but is not eligible still returns
ok: truewitheligible: falseand abanReason— only "could not perform the check" becomeserror. - Platform-native: Apify Proxy on every request (Facebook blocks bare datacenter IPs), scheduling, API access, dataset exports, and run monitoring come free with the platform.
How the check works
GET https://business.facebook.com/latest/inbox/wecwith a desktop Chrome user agent and the cookie.- Extract the Page ID from the final URL plus nine HTML patterns (
pageID,page_id,localScopeID,assetID,selectedPageId,ownerId,business_id,actorID), falling back to the cookie'sc_user; extract thefb_dtsgtoken fromDTSGInitData. POST https://business.facebook.com/api/graphql/withx-fb-friendly-name: WhatsAppOnboardingUnifiedInboxSurfaceQuery(doc_id 27161030553583658) and readdata.xfb_is_page_eligible_for_wa_link(is_eligible,ban_reason,page_whatsapp_number) plusdata.page.name.
What data can fb-page-advanced extract?
| Field | Type | Description |
|---|---|---|
eligible | boolean | null | true when the Page can take a WhatsApp link; false for a found-but-ineligible Page; null when the check failed |
pageName | string | null | Page name from GraphQL, e.g. "Example Fashion House" |
linkedNumber | string | null | WhatsApp number already linked to the Page, if any |
banReason | string | null | Why the Page is ineligible (e.g. "Not eligible for this page") |
error | object | null | { code, message, retryable } — null on success |
input | string | null | Echo of the cookie's c_user, so you can join results back to your rows |
You can download the dataset in various formats such as JSON, HTML, CSV, or Excel. The key-value store record OUTPUT holds the run summary (total, succeeded, failed, errorsByCode, timing).
How to check WhatsApp eligibility in bulk
- Log in to Facebook in your browser and copy the full Cookie request header of a logged-in session (it must contain
c_userandxs). - Open the Actor, paste one cookie per line into Facebook cookies (max 25), keep Proxy configuration on Apify Proxy.
- Click Start, then open the Dataset tab for per-cookie items and the Key-value store → OUTPUT record for totals.
- Branch on the result:
ok: true→ useeligible/banReason;ok: false→ readerror.code—invalid_cookiemeans grab a fresh cookie,rate_limited/upstream_error/service_unavailablemean retry later.
Can I run it from code?
Yes — via the API tab: start a run with { "cookies": ["<cookie-header>"], "proxyConfiguration": { "useApifyProxy": true } }, poll to SUCCEEDED, then fetch the default dataset items.
How much does it cost to check eligibility?
Each cookie costs two lightweight HTTP requests (one page load, one GraphQL call) — a 25-cookie run finishes in well under a minute of compute. Proxy traffic is the only metered extra; keep batches full (25 cookies) to amortize the run overhead.
Input
See the input tab for full configuration options. cookies is required (1–25 raw cookie headers). Each entry must be a non-empty string of at most 50 000 characters. proxyConfiguration defaults to Apify Proxy and is required in practice — runs without a proxy are blocked by Facebook.
{"cookies": ["c_user=61592912563278; xs=27%3Aabcdef%3A2%3A1786607116%3A-1%3A-1; dpr=2;"],"proxyConfiguration": { "useApifyProxy": true }}
Output
Success — Page found and eligible:
{"ok": true,"actor": "fb-page-advanced","input": "61592912563278","eligible": true,"pageName": "Example Fashion House","linkedNumber": null,"banReason": null,"friendCount": null,"error": null,"checkedAt": "2026-10-13T12:00:00.000Z","runId": "abc123XYZ"}
Found but not eligible (still ok: true):
{"ok": true,"actor": "fb-page-advanced","input": "61592912563278","eligible": false,"pageName": null,"linkedNumber": null,"banReason": "Not eligible for this page","friendCount": null,"error": null,"checkedAt": "2026-10-13T12:00:00.000Z","runId": "abc123XYZ"}
Failure — dead cookie (branch on error.code):
{"ok": false,"actor": "fb-page-advanced","input": "61592912563278","eligible": null,"pageName": null,"linkedNumber": null,"banReason": null,"friendCount": null,"error": {"code": "invalid_cookie","message": "Cookie was rejected or expired (Facebook showed a login page). Get a fresh logged-in cookie and retry.","retryable": false},"checkedAt": "2026-10-13T12:00:00.000Z","runId": "abc123XYZ"}
Tips
- Fresh cookies win:
xstokens expire. If many items returninvalid_cookieat once, re-export the headers and re-run. - Respect
retryable: back off and retryrate_limited/upstream_error/service_unavailable; do not retryinvalid_cookie,session_challenge, orinvalid_pagewithout new input. invalid_pagemeans no Page: the cookie logs in fine but owns no usable Page for the advanced surface — check it with the simple Actor instead.- Keep cookies secret: never paste them into issues or logs; the Actor only echoes
c_user, never cookie values.
FAQ, disclaimers, and support
Is this an official Facebook / WhatsApp API?
No. It reads the same internal surfaces the Business Suite web app uses. Facebook may change them; upstream_error items signal exactly that.
Do you extract private user data?
Our Actors are ethical and do not extract any private user data, such as email addresses, gender, or location. They only extract what the user has chosen to share publicly. We therefore believe that our Actors, when used for ethical purposes by Apify users, are safe. However, you should be aware that your results could contain personal data. Personal data is protected by the GDPR in the European Union and by other regulations around the world. You should not scrape personal data unless you have a legitimate reason to do so. If you're unsure whether your reason is legitimate, consult your lawyers. Only check cookies for accounts you own or are authorized to manage.
Something failed — where do I get help?
See the Issues tab for feedback, and the API tab for programmatic access. Include the error.code (never the cookie) when reporting a problem.