How much does a Facebook data API cost?
At SocialAPIs most calls cost 1 credit, and plans are flat: Free 200 calls a month, Pro $4.99 for 1,500, Ultra $49 for 30,000 and Mega $179 for 120,000 a month, about $1.49 per 1,000 calls on the largest plan. No bandwidth or compute fees.
Meta's official option
Meta's APIs (Graph API, Ad Library API) are free to call, but they only cover your own accounts and, for ads, political / issue and EU ads.
How to do it with SocialAPIs
A few calls cost more because they do more work, and the price is listed per endpoint: for example /facebook/pages/details costs 1 credit; 5 credits when exact_followers_count=true. Every response says what it charged (X-SocialAPIs-Credits-Deducted header), and GET /usage shows your balance (Free to call).
Endpoints
GET /facebook/pages/details1 credit; 5 credits when exact_followers_count=true
Get Facebook page details.
Params:
link(required),exact_followers_count,page_sectionFacebook Page Details: docs and playgroundMCP:
facebook_page→detailsGET /usageFree
Get current credit usage and plan info. Free — does not consume credits.
curl -G "https://api.socialapis.io/usage" \
--max-time 100 \
--fail-with-body \
-H "x-api-token: $SOCIALAPIS_API_KEY"import os
import requests
response = requests.get(
"https://api.socialapis.io/usage",
headers={"x-api-token": os.environ["SOCIALAPIS_API_KEY"]},
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/usage", {});
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/usage", Map.of());
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/usage", url.Values{})
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 Account
client = Account(api_token=os.environ["SOCIALAPIS_API_KEY"])
response = client.get_usage()
print(response)// npm install socialapis-sdk
import { Account } from "socialapis-sdk";
const client = new Account({ apiToken: process.env.SOCIALAPIS_API_KEY });
const response = await client.getUsage();
console.log(response);Your API key goes in the x-api-token header (here from the SOCIALAPIS_API_KEY environment variable). Get a free key.
Good to know
- Paid plans have a 14-day money-back guarantee.
- Need more in a month: a top-up or the next plan. Enterprise: custom volume and an SLA.
- Comparing providers? The compare pages put per-1,000 prices side by side, with sources.