X(Twitter) Community Posts Scraper avatar

X(Twitter) Community Posts Scraper

Pricing

from $4.99 / 1,000 results

Go to Apify Store
X(Twitter) Community Posts Scraper

X(Twitter) Community Posts Scraper

Collect posts from an X Community feed—text, media, and engagement—into structured rows for research or reporting.

Pricing

from $4.99 / 1,000 results

Rating

0.0

(0)

Developer

PowerAI

PowerAI

Maintained by Community

Actor stats

1

Bookmarked

2

Total users

1

Monthly active users

5 days ago

Last modified

Share

X Community Posts Scraper

Gather posts from an X (Twitter) Community—the same kinds of items people see in that Community’s feed—into dataset rows. Each row is one post with nested text, media, author, Community context, and engagement details when available.

Who it’s for

  • Community managers reviewing what is being shared in a space they run.
  • Researchers & analysts who need exports instead of manual scrolling.
  • Social & comms teams tracking conversations around a topic or brand Community.

What you can do with it

  • Collect many posts in one run until you reach the limit you set or there is nothing more to load.
  • Choose how the feed is presented (standard stream vs. one that emphasizes photos and video).
  • Optionally influence ordering when the product exposes sort options (relevance, newest, or likes).
  • Match rows to your inputs via communityId, searchType, and optional rankingMode on each row, plus scrapedAt.

How it works (in plain terms)

You enter the Community’s numeric id (the same id you see in the Community’s URL or similar places). You also pick which feed view to use and, if you want, a sort order. The tool loads posts in successive batches until your maximum is reached or the feed ends—you do not need to manage paging yourself.

Input

FieldRequiredWhat it means
Community ID (communityId)YesWhich Community’s posts to export.
Feed type (searchType)YesRegular community stream (Default) or a media-focused stream (Media).
Sort order (rankingMode)NoWhen available: Relevance, Recency, or Likes.
Maximum results (maxResults)NoUpper limit on how many post rows to collect (default 50).

Output

Each dataset row combines the post payload with a few export fields you chose at run time.

  • Post identity & surface fields: __typename, rest_id, posting source, views (count and state when shown), edit_control when edits apply, and flags such as is_translatable when present.
  • Community context (author): author_community_relationship bundles the poster’s relationship to the Community (role, e.g. Member), the author under user_results, and a rich community_results snapshot—Community name, description, member_count, rules, banner imagery, members_facepile_results, admin/creator highlights, join policies, and similar nested details when returned.
  • Lighter Community pointers: community_relationship (e.g. moderation/pin-related hints) and community_results with id_str and viewer relationship blocks.
  • Author (standard tweet core): core.user_results with profile legacy fields (screen_name, name, avatars, counts, entities, etc.).
  • Content & engagement: legacy holds full_text, created_at, conversation_id_str, entities / extended_entities (photos, videos with video_info.variants, etc.), and counters such as favorites, reposts, replies, quotes, bookmarks; plus is_quote_status, quoted_status_id_str, and quoted_status_permalink when the post quotes another.
  • Quoted post body: when present, quoted_status_result.result repeats a full nested post (same general shape—core, legacy, views, optional Community community_results, and further nesting such as another quoted tweet inside).
  • Export metadata (added per row): communityId, searchType, optional rankingMode, scrapedAt.

Rows are often very large; field names and nesting mirror what X returns for Community timelines and may change over time.

Sample output (one dataset row, heavily trimmed)

The snippet below keeps real field names from a typical row but omits most nested objects and long strings.

{
"__typename": "Tweet",
"rest_id": "2036575486533575164",
"author_community_relationship": {
"community_results": {
"result": {
"__typename": "Community",
"name": "Generative AI",
"description": "Share AI-generated creations, news, tips and more.",
"member_count": 245906,
"id_str": "1601841656147345410"
}
},
"role": "Member",
"user_results": {
"result": {
"__typename": "User",
"rest_id": "2030621483081617408",
"legacy": {
"screen_name": "Magical_idol8",
"name": "まほアカプレミア"
}
}
}
},
"community_relationship": {
"rest_id": "2036575486533575164"
},
"community_results": {
"result": {
"__typename": "Community",
"id_str": "1601841656147345410"
}
},
"core": {
"user_results": {
"result": {
"__typename": "User",
"rest_id": "2030621483081617408",
"legacy": {
"screen_name": "Magical_idol8",
"name": "まほアカプレミア"
}
}
}
},
"edit_control": {
"edit_tweet_ids": ["2036575486533575164"],
"is_edit_eligible": false
},
"legacy": {
"created_at": "Tue Mar 24 22:46:48 +0000 2026",
"full_text": "おはようございます!…",
"conversation_id_str": "2036575486533575164",
"favorite_count": 104,
"retweet_count": 49,
"reply_count": 43,
"quote_count": 8,
"is_quote_status": true,
"quoted_status_id_str": "2036214605626875983"
},
"quoted_status_result": {
"result": {
"__typename": "Tweet",
"rest_id": "2036214605626875983",
"legacy": {
"full_text": "おはようございます!…",
"favorite_count": 222
}
}
},
"source": "<a href=\"https://mobile.twitter.com\" rel=\"nofollow\">Twitter Web App</a>",
"views": {
"count": "8287",
"state": "EnabledWithCount"
},
"communityId": "1601841656147345410",
"searchType": "Default",
"rankingMode": "Relevance",
"scrapedAt": "2026-03-25T09:15:09.894Z"
}

Good to know

  • The Community id must be correct; private or restricted Communities may return few or no rows.
  • Pinned content may also appear in the main list—duplicates are reduced when possible, but always validate in your own pipeline if you need strict uniqueness.
  • Respect X’s rules and applicable laws when using exported data.