Facebook Post Comments API
Top-level comments on a public Facebook post, with author, reaction count and reply count, in Facebook's "Most relevant" order. The first page is the head of the thread Facebook renders into the post, usually two comments; pass pagination.cursor back for the next ten. The post's full comment total is on /v1/facebook/post. Use /v1/facebook/comment-replies for the replies under one comment. likeCount is only as precise as Facebook publishes it: comment reactions ship in abbreviated form ("2.4K") with no exact figure anywhere in the payload, so counts above about a thousand are rounded at source. Calls cost 1 credit each. A cache hit is free, and a failed or empty response is never charged.
Try it
Prefilled with the request that produced the example below. No key yet? Get a free key.
Request
/v1/facebook/post-comments| Parameter | Type | Required | Description |
|---|---|---|---|
| url | string | yes | Full post, video, or reel URL |
| cursor | string | no | pagination.cursor from a previous response |
Also accepts cache_max_age (a hit costs 0 credits) and include_raw (returns the untouched upstream payload under raw).
curl "$API/v1/facebook/post-comments?url=https%3A%2F%2Fwww.facebook.com%2Freel%2F2166091230582141%2F&cache_max_age=7d" \
-H "x-api-key: $KEY"const query = new URLSearchParams({
url: 'https://www.facebook.com/reel/2166091230582141/',
cache_max_age: '7d',
});
const response = await fetch(`${API}/v1/facebook/post-comments?${query}`, {
headers: { 'x-api-key': KEY },
});
const body = await response.json();
if (!body.success) throw new Error(body.error.code);
// 1 credit, 0 on a cache hit
console.log(body.data, body.meta.creditsCharged);import os, httpx
r = httpx.get(
f"{os.environ['API']}/v1/facebook/post-comments",
params={
"url": "https://www.facebook.com/reel/2166091230582141/",
"cache_max_age": "7d",
},
headers={"x-api-key": os.environ["KEY"]},
timeout=30,
)
body = r.json()
if not body["success"]:
raise RuntimeError(body["error"]["code"])
print(body["data"], body["meta"]["creditsCharged"])Example response
Captured on , with raw removed and lists cut to two items. A live call returns current data.
{
"success": true,
"data": {
"items": [
{
"platform": "facebook",
"id": "2082653245809386",
"postId": "2166091230582141",
"parentId": null,
"text": "The small breath she took beforehand got my anxiety up",
"authorId": "example-user-1",
"authorHandle": null,
"authorName": "Example User 1",
"authorAvatarUrl": "https://example.com/media/1.jpg",
"likeCount": 46,
"replyCount": 10,
"isPinned": null,
"isAuthorReply": false,
"publishedAt": "2025-11-08T02:07:24.000Z"
},
{
"platform": "facebook",
"id": "1330988758174347",
"postId": "2166091230582141",
"parentId": null,
"text": "It's November, where are the Basketball post , we wear Nike's too. ALSO WHY DOESN'T Jalen Brunson have a signature shoe... ????",
"authorId": "example-user-2",
"authorHandle": null,
"authorName": "Example User 2",
"authorAvatarUrl": "https://example.com/media/2.jpg",
"likeCount": 22,
"replyCount": 4,
"isPinned": null,
"isAuthorReply": false,
"publishedAt": "2025-11-03T02:13:02.000Z"
}
]
},
"pagination": {
"cursor": "WyJabVZsWkdKaFkyczZNVE01TXpRMk1URXhOVFE0TVRreU53PT0iLCJNVG94TnpreU5UUTNPVE0yT2dGX2dQSFBtZWk1NU9jQlYzYUVPN0lWSTRIUS1MYkdJNUIxQTFTeEl5UV9XcEw0TFRFM1FQWkl2bnFnRE1PX0h0ZXM3S0M5ME5ReGhCZ0FqcEF1NGJMcmJsX1M0ZEhvZkY5VVJoSXVLSzExZkt5bUFjMjNDc2t0ZUZRSmV5TnFPVDhZSkpaYzE0Si0wLTVoc3FDZm5qOVFSM0JNV3lTa2FrSmhFRlBveUVXRXNWd1VMQ05LajBkWktVdlE0YURJOWNmUDhXTlczS0o2akw0M2JETEluVVl3My1FTk84S2V1X0QzRkZ2SlBva0R5RV9ISlBSQ0owZzMwdEw5dWU2MXdPMjlueHpraXU2V3N3MjhRYWozQUNkUmFrVnRNYXE5VFpsamt5QzdkUWdYc0hnSHctcjR1NW9pY1JpZ0t3aHYzZXRDRXNMdlJ0OEs4NUQ2MlFGSnFLMHRUMGZZT3dyQWZlMUlGdE84NmpmUlZqOGFqQmtfSGVKNjVkUy0tYk45dlZRaWhSR1VxbHZEa3d5dkNrdG1zMkZQY2o4Y2hwbW9WNE5yMTNqTzM2SHc4ai11TWNuNlZzZUZTQSIsIjIxNjYwOTEyMzA1ODIxNDEiLCIxMDAwNDQ1NDE1NDQ4MjkiXQ.1LEEfbJJ0AsolFD0ChTVyA",
"hasMore": true,
"count": 2
},
"meta": {
"platform": "facebook",
"endpoint": "facebook.postComments",
"creditsCharged": 1,
"cached": false,
"cacheAgeSeconds": null,
"durationMs": 2983,
"requestId": "req_g2quasm5lbb2ln9ezrtq"
}
}Returns
Returns a list of Comment in data.items.
Cost and behaviour
| Credits | 1 per live request, 0 on a cache hit |
| Cacheable | yes: cache_max_age accepts a cached copy |
| Batchable | yes: usable as a target in POST /v1/jobs/batch |
| Subscribable | no |
Other Facebook endpoints
- /v1/facebook/ad-library/ad Ad details
- /v1/facebook/ad-library/ad-transcript Ad video transcript
- /v1/facebook/ad-library/advertisers Find advertisers running ads
- /v1/facebook/ad-library/page-ads All ads for one advertiser
- /v1/facebook/ad-library/search Search the Meta Ad Library
- /v1/facebook/city-events Get the events of a city
- /v1/facebook/comment-replies Replies to a comment
- /v1/facebook/event Event details