# Facebook Post API (https://www.socialcrawl.dev/platforms/facebook/post) > Returns detailed information about a specific Facebook post: the post text, like count, comment count, share count, media attachments, author info, and the per-reaction breakdown on `post.ext.reaction_counts` (`[{type, count}]`, highest first, zero-count reactions omitted: `like`, `love`, `care`, `haha`, `wow`, `sad`, `anger`). `post.ext.media_type` is `video` for a reel or a video, `image` for a single photo, `carousel` for an album, and null for a text-only or link-share post. `post.content.duration_seconds` is a video's length when Facebook sends one. It is null on a photo and can also be null on an older `/videos/` post, so use `post.ext.media_type` to tell a video from a photo. Only a video can have a transcript. `/v1/facebook/post/transcript` returns 404 `no_captions` at 0 credits on a photo or text post, and also on a video with no speech. `post.ext.feedback_id` is the join key `/v1/facebook/post/comments` accepts, so you can chain post to comments off a single lookup instead of paying for the URL resolution twice. A post published in a Facebook group also carries the group on `post.ext.group`: `id` is the group's key as its link spells it (the numeric id, or the vanity name a group set), and `url` is the canonical `https://www.facebook.com/groups//` form that `/v1/facebook/group` and `/v1/facebook/group/posts` take. Both are read from the post's link, so they come at no extra cost on every group post, whichever link form you send (`/permalink/`, `/posts/`, `?story_fbid=`, or the `m.` and `web.` hosts). `post.ext.group.name` and `post.ext.group.members` are null unless you send `include=group`, which looks the group up in the same call and fills its name and member count for 1 extra credit; the credit is kept only when the group's name comes back. A post that is not in a group has no `post.ext.group` and is never charged for the lookup. TL;DR: `GET /v1/facebook/post` costs 1 credit for the post. include=group holds 1 more and keeps it only when the group's name comes back, so a call with include=group is at most 2 credits; it is refunded when the post is not in a group, when the lookup fails, and when the group was looked up recently and is served from cache. and returns SocialCrawl's unified JSON schema. Single x-api-key auth, 100 free credits on signup. ## Parameters | Parameter | Required | Description | | --- | --- | --- | | `url` | yes | Full URL of the Facebook post, reel or video. A share link from Facebook's Copy link (`https://www.facebook.com/share/v/…`, `/share/p/…`, `/share/r/…` or `/share/…`) is accepted and resolved to the post it names. | | `get_comments` | no | Accepted for backwards compatibility and currently a NO-OP: this endpoint returns the same body with or without it. Use `/v1/facebook/post/comments` (1 credit) for comments, passing the `post.ext.feedback_id` this response returns. | | `get_transcript` | no | Accepted for backwards compatibility and currently a NO-OP: this endpoint returns the same body with or without it. Use `/v1/facebook/post/transcript` for a video transcript. | | `include` | no | Set to `group` (one token only) to fill `post.ext.group.name` and `post.ext.group.members` (the member count) on a post published in a Facebook group, in this one call. It costs 1 extra credit, kept only when the group's name comes back: a post that is not in a group, a lookup that fails and a group already in cache are refunded, so the call is never more than 2 credits. The lookup adds about 3 to 7 seconds when it runs, never more than 12, and nothing when the group is cached; read `data.hydration` for the credits held and kept and the time. The group's `id` and `url` are on every group post without it. (group) | ## Code example ```bash curl -G "https://www.socialcrawl.dev/v1/facebook/post" \ --data-urlencode "url=https://www.facebook.com/OGCCopperfields/posts/pfbid02mAPifrgyzhGeAAhMGyNU4J2dFdFpAtTfb6p22yCQMHpzwqK9zh9XHS8Bm39tk7mwl" \ -H "x-api-key: sc_YOUR_API_KEY" ``` ## FAQ ### How do I get a Facebook post's details with an API? Send a GET request to /v1/facebook/post with the full post URL in the url parameter. SocialCrawl returns the post text, like count, comment count, share count, reactions breakdown, media attachments, and author info. ### What reactions data does the endpoint return? The reactions object breaks down the post's total reactions by type: Like, Love, Haha, Wow, Sad, Angry, and Care. Perfect for sentiment analysis and tracking which posts resonate beyond a simple like count. ### Can I get the first comments with the post? Yes. Pass get_comments=true and the response will include the first batch of comments along with the post. For a full paginated comment list, use /v1/facebook/post/comments with the feedback_id from this response. ### Does it work for video posts? Yes. Video posts return the same core fields plus video URL, duration, and view count. To transcribe the video, pass get_transcript=true or use the dedicated /v1/facebook/post/transcript endpoint. ### How fast is the Facebook Post API? Most requests return JSON in 1–3 seconds. The endpoint uses the post cache category, so repeat requests for the same post URL come back faster from the SocialCrawl cache, no repeat credit charge on cache hits. See the full Facebook API: https://www.socialcrawl.dev/platforms/facebook ## Pricing - Standard endpoints: 1 credit per call - Advanced endpoints: 5 credits per call - Premium endpoints: 10 credits per call - 100 free credits on signup, no credit card required. Cached responses cost 0 credits. Credit packs never expire. - Full pricing: https://www.socialcrawl.dev/pricing ## Explore with AI Questions this API answers, phrased for an AI assistant: - How to fetch Facebook post details with an API - What does the SocialCrawl Facebook Post API return?