Skip to main content

Facebook feed API: user timeline and group posts

GET /api/v1/feed · GetSocialAPI

One endpoint for small feed pages of a user timeline or a group feed — convenient when you don't need large ~100-post pages.

Request​

ParameterInRequiredDescription
user_idqueryone ofNumeric user id — profile timeline
group_idqueryone ofNumeric group id — group feed
per_pagequerynoPage size, 3–20 (default 10)
afterquerynoCursor from page_info.end_cursor of the previous page; omit for the first page

Pass exactly one of user_id / group_id.

Response​

The shape matches the target:

  • user: data.profile.timeline_feed_units — Story nodes and page_info, up to ~10 posts per request (see per_page)
  • group: data.group_address.group_feed — the same Story nodes and page_info as group posts
# user: page 1 (10 posts)
curl -H "X-API-Key: $KEY" \
"https://api.getsocialapi.com/fb/api/v1/feed?user_id=100053723115450"
# user: page 2
curl -H "X-API-Key: $KEY" \
"https://api.getsocialapi.com/fb/api/v1/feed?user_id=100053723115450&after=<end_cursor>"
# group: 10 posts per page
curl -H "X-API-Key: $KEY" \
"https://api.getsocialapi.com/fb/api/v1/feed?group_id=800246542990860&per_page=10"

Behavior details​

  • user pages: the service requests 10 upstream; Facebook may return a post or two more — the response is not trimmed (trimming would lose posts at page seams; per-page cursors do not exist upstream).
  • group pages: Facebook hard-caps its native page at ~2 posts; the service stitches several native pages up to per_page — up to 2 duplicate edges can appear at the seam. Dedupe by node.cache_id.
  • A page may occasionally come back short — follow has_next_page instead of counting posts.
  • Cursor: reusable, not session-bound; take end_cursor only from the connection's page_info.

Python SDK: client.fb.feed(user_id=..., group_id=..., per_page=..., after=...); see Facebook SDK.

Errors​

HTTPCase
400 + {{"error": "Invalid Cursor…"}}broken/foreign after (FB code 1675011)
400neither or both of user_id/group_id; per_page outside 3–20
401 / 429see Rate limits
502upstream Facebook error (after retries)
503no live slots (Retry-After: 15)
Partial errors

Facebook can attach a non-empty errors[] to a 200 response while still returning data — treat it as "data present, but check the field" and keep paging.