Why you need the ID
A Page can change its username; its numeric ID never changes. The Ads Library, the Graph API and most Facebook data endpoints take the ID, not the name, so one lookup saves a broken integration later.
Paste a Facebook Page URL or username to get its numeric Page ID, with a copy button, and the API call that returns the same data.
facebook.com/MazdaItalia. The username alone (MazdaItalia) works too, and so does a profile.php?id=… link.A Page can change its username; its numeric ID never changes. The Ads Library, the Graph API and most Facebook data endpoints take the ID, not the name, so one lookup saves a broken integration later.
On Facebook, open the Page → About → Page transparency, where the Page ID is listed. Page admins also see it in Meta Business Suite → Settings. This finder reads the same public ID in one step.
The finder resolves public Pages (businesses, brands, creators, media). It doesn't look up personal profiles and never shows contact details.
Any public Page address Facebook uses, with or without https:// and www., from the desktop or the mobile site:
facebook.com/MazdaItaliahttps://www.facebook.com/MazdaItalia/m.facebook.com/MazdaItaliafacebook.com/profile.php?id=100064753658454facebook.com/pages/Some-Page/123456789MazdaItalia (the username alone)Every check is one call to the SocialAPIs REST API. Use the same call to resolve a list of Pages from any language or from n8n, Make and Zapier, then pass each ID to the Page posts, reels and details endpoints.
GET /facebook/pages/id with link · 1 credit per call · your key goes in the x-api-token header, never in the URL.
curl -G "https://api.socialapis.io/facebook/pages/id" \
--max-time 100 \
--fail-with-body \
-H "x-api-token: $SOCIALAPIS_API_KEY" \
--data-urlencode "link=https://www.facebook.com/MazdaItalia"import os
import requests
response = requests.get(
"https://api.socialapis.io/facebook/pages/id",
headers={"x-api-token": os.environ["SOCIALAPIS_API_KEY"]},
params={
"link": "https://www.facebook.com/MazdaItalia",
},
timeout=100,
)
response.raise_for_status()
print(response.json())// Node 18+, as an ES module (e.g. main.mjs)
async function get(url, params) {
const query = new URLSearchParams(params).toString();
const response = await fetch(query ? `${url}?${query}` : url, {
headers: { "x-api-token": process.env.SOCIALAPIS_API_KEY },
signal: AbortSignal.timeout(100000),
});
if (!response.ok) throw new Error(`HTTP ${response.status}: ${await response.text()}`);
return response.json();
}
const data = await get("https://api.socialapis.io/facebook/pages/id", {
link: "https://www.facebook.com/MazdaItalia",
});
console.log(data);import java.net.URI;
import java.net.URLEncoder;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.nio.charset.StandardCharsets;
import java.time.Duration;
import java.util.Map;
import java.util.stream.Collectors;
public class Main {
private static final HttpClient CLIENT = HttpClient.newBuilder()
.connectTimeout(Duration.ofSeconds(10))
.build();
public static void main(String[] args) throws Exception {
String body = get("https://api.socialapis.io/facebook/pages/id", Map.of(
"link", "https://www.facebook.com/MazdaItalia"));
System.out.println(body);
}
static String get(String url, Map<String, String> params) throws Exception {
String query = params.entrySet().stream()
.map(e -> URLEncoder.encode(e.getKey(), StandardCharsets.UTF_8) + "="
+ URLEncoder.encode(e.getValue(), StandardCharsets.UTF_8))
.collect(Collectors.joining("&"));
HttpRequest request = HttpRequest.newBuilder(URI.create(query.isEmpty() ? url : url + "?" + query))
.header("x-api-token", System.getenv("SOCIALAPIS_API_KEY"))
.timeout(Duration.ofSeconds(100))
.GET()
.build();
HttpResponse<String> response = CLIENT.send(request, HttpResponse.BodyHandlers.ofString());
if (response.statusCode() / 100 != 2) {
throw new RuntimeException("HTTP " + response.statusCode() + ": " + response.body());
}
return response.body();
}
}package main
import (
"fmt"
"io"
"log"
"net/http"
"net/url"
"os"
"time"
)
func main() {
body, err := get("https://api.socialapis.io/facebook/pages/id", url.Values{
"link": {"https://www.facebook.com/MazdaItalia"},
})
if err != nil {
log.Fatal(err)
}
fmt.Println(string(body))
}
func get(endpoint string, params url.Values) ([]byte, error) {
if len(params) > 0 {
endpoint += "?" + params.Encode()
}
req, err := http.NewRequest(http.MethodGet, endpoint, nil)
if err != nil {
return nil, err
}
req.Header.Set("x-api-token", os.Getenv("SOCIALAPIS_API_KEY"))
client := &http.Client{Timeout: 100 * time.Second}
resp, err := client.Do(req)
if err != nil {
return nil, err
}
defer resp.Body.Close()
body, err := io.ReadAll(resp.Body)
if err != nil {
return nil, err
}
if resp.StatusCode/100 != 2 {
return nil, fmt.Errorf("HTTP %d: %s", resp.StatusCode, body)
}
return body, nil
}# pip install socialapis-sdk
import os
from socialapis import Facebook
client = Facebook(api_token=os.environ["SOCIALAPIS_API_KEY"])
response = client.get_page_id("https://www.facebook.com/MazdaItalia")
print(response)// npm install socialapis-sdk
import { Facebook } from "socialapis-sdk";
const client = new Facebook({ apiToken: process.env.SOCIALAPIS_API_KEY });
const response = await client.getPageId("https://www.facebook.com/MazdaItalia");
console.log(response);Set SOCIALAPIS_API_KEY to your key first (export SOCIALAPIS_API_KEY=…). The answer is { "facebook_id": "…" }; pass that id as profile_id to the Page posts, reels, videos and albums endpoints.
A numeric identifier (for example 100064753658454) that Facebook assigns to every Page. Unlike the username in the Page's address, it never changes, which is why the Ads Library, the Graph API and data endpoints use it to identify a Page.
Open the Page on Facebook, go to About → Page transparency: the Page ID is listed there. If you manage the Page, Meta Business Suite → Settings → Page info shows it too. Meta's Graph API returns it with GET /{page-username}?fields=id, which needs an app and an access token. This finder reads the same public ID from the Page URL in one step.
Search the Page's ads in Meta's Ads Library (view_all_page_id=…), call the Graph API for Pages you manage, and use it as profile_id in the SocialAPIs Facebook Page posts, reels, videos and albums endpoints, which take the ID rather than the URL.
The desktop and mobile addresses of a public Page (facebook.com/…, m.facebook.com/…, fb.com/…), the username alone, profile.php?id=… links and the older facebook.com/pages/Name/123 form. Groups, events, posts, videos and personal profiles aren't Pages and are refused before any call.
Without an account you get a few free checks a day to try it. Signed in, each check is one API call on your own account: 1 credit, with no daily limit beyond your plan. The free plan includes 200 calls a month, no credit card; paid plans start at $4.99 a month.
Use the API: call GET /facebook/pages/id with link for each Page, from a script, a spreadsheet or a no-code tool like n8n, Make or Zapier, and store the ID next to the Page. The code below is the exact call this finder makes. SocialAPIs covers public Facebook and Instagram data.
Free plan: 200 calls a month, no credit card. Paid plans from $4.99 a month. Facebook and Instagram data, one x-api-token header.
Facebook follower count · Facebook ad checker · Instagram follower count