Facebook ID vs Page ID vs Group ID: The Difference

Published

Facebook assigns separate numeric IDs to profiles, Pages and Groups. Learn how each appears in URLs, which Graph API calls expect which, and why they differ.

A Facebook ID identifies a personal profile, a Page ID identifies a business or creator Page, and a Group ID identifies a Group. All three are numeric strings issued by Facebook, but they belong to separate object types in Meta's data model and are never interchangeable. Pass a Page ID where the Graph API expects a user ID and the call fails or returns the wrong object.

Why Facebook uses three different numeric identifiers

Facebook is not one kind of thing. A personal profile, a Page, and a Group behave differently: a profile has friends, a Page has followers and an admin team, a Group has members and a privacy setting. Because each object type supports a different set of fields and permissions, Meta's Graph API treats them as distinct node types. The numbers themselves look similar, usually a long run of digits, which is exactly why they get confused.

The practical consequence shows up the moment you write code or set up an integration. A Graph API request for /{page-id}/feed returns the posts a Page has published. The same request shape pointed at a user ID will not return a stranger's timeline, because user feeds are gated behind permissions that Meta no longer grants for arbitrary accounts. The error you get back is often unhelpfully generic, so the fastest way to debug it is to confirm which object type your number actually refers to before you touch anything else.

What each identifier looks like in a URL

URL structure is the most reliable clue available to anyone without API access, because Facebook has kept these patterns fairly stable.

Personal profiles appear either as facebook.com/username when the account has set a vanity username, or as facebook.com/profile.php?id=100001234567890 when it has not. That profile.php?id= form hands you the numeric user ID directly. Profiles created after Facebook moved to its newer ID space commonly start with 1000, though that is a convention rather than a guarantee you should build logic on.

Pages use facebook.com/PageName or the older facebook.com/pages/Some-Name/123456789012345 format, where the trailing number is the Page ID. Many Pages now also surface under facebook.com/profile.php?id= since Meta unified parts of the Page and profile experience, which is a genuine source of ambiguity: seeing profile.php?id= no longer proves you are looking at a personal profile.

Groups are the clearest case. They live at facebook.com/groups/123456789012345 or facebook.com/groups/some-vanity-name. If the path segment after /groups/ is numeric, that is the Group ID, visible without any tool at all.

Comparison table: profile UID, Page ID, Group ID

Property Profile UID (user) Page ID Group ID
Graph API node type User Page Group
Typical URL form /profile.php?id=<number> or /username /PageName, legacy /pages/Name/<number> /groups/<number> or /groups/vanity
Changes if the vanity name changes No No No
Readable by a third-party app without permission No, user IDs are app-scoped Largely yes for public Page fields Limited, depends on Group privacy
Same value across different apps No, each app sees its own scoped ID Yes, Page IDs are global Yes, Group IDs are global
Common legitimate use Login identity inside your own app Publishing, insights, ads, messaging Group content management by admins

The row that trips up most developers is app-scoped IDs. Since Graph API v2.0, the user ID your application receives for a person is specific to your application. Two apps looking at the same human being get two different numbers. Page IDs and Group IDs do not work this way: they are global and stable, which is why Page IDs are safe to store in a spreadsheet and user IDs usually are not. Meta documents this behaviour in its Graph API reference, which is worth reading before you design any schema that stores Facebook identifiers.

Definition: what a Facebook Page ID actually is

A Facebook Page ID is the permanent numeric identifier Facebook assigns to a Page object at the moment the Page is created. It is the canonical address of that Page inside Meta's platform. Unlike the Page's display name, its vanity URL, or its category, the Page ID cannot be edited by an admin and does not change when the Page is rebranded, merged into a different name, or moved between Business Manager assets. In the Graph API it functions as the node identifier: endpoints such as /{page-id}, /{page-id}/posts, and /{page-id}/insights all take it as the path parameter. Ads Manager, Business Suite, and the Conversions API refer to the same value when they ask you to identify a Page. Because it is global rather than app-scoped, the same Page ID resolves identically for every app and every developer, which makes it the correct value to record when you need a durable reference to a Page.

Which ID does each Graph API call expect?

Matching the identifier to the endpoint is most of the work. A few patterns cover the majority of real tasks.

  • Reading a Page's public details: GET /{page-id}?fields=name,category,link. Needs a Page ID and an access token.
  • Publishing to a Page: POST /{page-id}/feed. Needs a Page access token, which is itself obtained through a user token held by a Page admin.
  • Page analytics: GET /{page-id}/insights. Page ID only. A user ID here returns nothing useful.
  • The authenticated person: GET /me, which resolves to the app-scoped user ID attached to the token. You rarely need to type a user ID by hand.
  • Group content, for admins of that Group: GET /{group-id}/feed, subject to the Groups API permissions Meta currently grants.

If you are reaching for a stranger's user ID to make an API call, that is usually a sign the approach is wrong rather than a sign you need a better lookup method. Meta deliberately closed off reading arbitrary user profiles. The legitimate uses of a profile UID are narrower: identifying your own account, matching a logged-in user inside your own application, or confirming which account a given URL points to.

How to get each ID in practice

For a Page or a profile that uses a vanity URL, the number is not in the address bar and you need to resolve it. The Facebook UID finder on 2uid.net takes a profile or Page URL and returns the numeric identifier, which saves digging through page source. For Groups, read the number straight out of the URL whenever the path is numeric.

Manual methods still have their place. Opening the page source and searching for identifier fields often reveals the number, though Facebook changes its markup frequently enough that no single search string stays reliable for long. If you administer the asset, the most durable answer is inside Meta Business Suite: Page settings display the Page ID without ambiguity, and that value is authoritative in a way that scraped markup is not.

Developers with a registered app have a cleaner route. The Graph API Explorer resolves a vanity name to its node and shows you the type, so you learn whether you are holding a Page or a user in the same step. That matters more than the number itself, because the type determines every subsequent call.

Common mistakes worth avoiding

Three errors account for a lot of wasted debugging time. The first is treating any long number from a Facebook URL as a user ID, when it may well be a Page or Group. The second is assuming a profile UID collected in one context will work in another; app-scoping breaks that assumption quietly. The third is storing a vanity username as the primary key for an account, then losing the reference when the owner renames the Page. Store the numeric ID and keep the username as a display field.

There is also a boundary worth stating plainly. Numeric IDs are identifiers, not keys to private data. Knowing a profile's UID does not grant access to content the owner has restricted, and no lookup tool changes that. If you need information a person has chosen not to publish, the identifier is not the missing piece.

If you want the broader background on the profile identifier specifically, the companion piece on what a Facebook UID is and why it matters goes deeper on permanence and legitimate use cases. For how the same problem looks on other platforms, the cross-platform guide to social media user IDs compares Facebook's model against Instagram, TikTok, X, and YouTube.

Frequently asked questions

Can a Page ID and a profile UID ever be the same number?

No. Facebook issues identifiers from a shared space but never assigns the same value to two objects. A given number resolves to exactly one object, and that object has exactly one type: user, Page, or Group.

Why does a Page URL sometimes look like profile.php?id=?

Meta unified parts of the Page and profile experience, so some Pages are served under that path. The URL pattern alone is no longer proof of object type. Checking the object through the Graph API, or through a tool that reports the type, is the reliable way to tell.

Does a Group ID change if the Group switches from public to private?

No. Privacy settings control who can see content; they do not reissue the identifier. The Group ID stays the same for the life of the Group, though what the API will return to you may change considerably.

Do I need a Facebook developer account to find these IDs?

Not for simple lookups. Group IDs are often visible in the URL, and a tool such as the 2uid.net Facebook UID finder handles Pages and profiles with vanity URLs. A developer account becomes necessary when you want to make API calls rather than just read an identifier.

What is an app-scoped user ID?

It is a per-application identifier for the same person. When someone logs into your app with Facebook, your app receives a user ID unique to your app. A different app receives a different number for the same person, which prevents cross-app tracking by ID matching.

Is a Page ID the same as a Business Manager ID?

No. A Business Manager (now Meta Business Suite) ID identifies the business entity that owns assets. One business ID can own many Pages, each with its own Page ID. Ads Manager also uses a separate ad account ID. Keep the three distinct in any records you maintain.

Can I look up the UID of a locked or private profile?

Treat that as out of scope. Public identifiers can sometimes be resolved from public URLs, but anything a person has restricted stays restricted, and claims that a lookup tool defeats privacy settings should be read sceptically.