X Community Tweets Scraper avatar

X Community Tweets Scraper

Pricing

from $5.00 / 1,000 community tweet scrapeds

Go to Apify Store
X Community Tweets Scraper

X Community Tweets Scraper

Collect a current public timeline snapshot from an X Community URL or numeric ID. Each row includes tweet text, author, engagement, media, timestamp, and source URL. No user cookies or X login are required.

Pricing

from $5.00 / 1,000 community tweet scrapeds

Rating

0.0

(0)

Developer

Khadin Akbar

Khadin Akbar

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

4 hours ago

Last modified

Share

X Community Tweets Scraper collects a current public timeline snapshot from one or more X Community URLs or numeric Community IDs. Each input Community produces one normalized record per public tweet, with tweet text, author identity, engagement counts, media fields, timestamps, and source URLs. The output is a one-record-per-tweet dataset that is useful for reviewing a public Community snapshot, feeding analysis workflows, and preserving provenance from the provider route that supplied each row.

Best fit and connected workflows

This Actor fits workflows that start with a public X Community and end with structured tweet-level data. It works well when you need:

  • A fresh snapshot of posts from a specific Community URL or Community ID.
  • Structured fields for author, engagement, media, hashtags, mentions, and outbound links.
  • A dataset that can be reviewed directly in Apify, exported, or passed into downstream analysis.
  • An Apify Actor usable through Apify MCP for agent-driven data collection.

This Actor is especially practical when the workflow begins with a Community link and the next step is analysis, categorization, enrichment, or reporting on the returned tweet records.

focused workflow

X Community Tweets Scraper is designed as a focused workflow.

Practical scenario

Maya, a community manager, has the URL for a public X Community where members discuss product feedback. She runs the Actor with that Community URL and leaves the default settings in place. The dataset returns tweet text, author username, author name, created time, like count, reply count, repost count, view count, media presence, and the source Community URL. Maya uses the returned tweet URLs and engagement fields to review recent discussion themes, then exports the dataset for a weekly report.

Input

The Actor accepts one or more public X Community URLs or numeric IDs. One run reads one current provider snapshot per Community, and each Community input produces tweet rows from that snapshot.

FieldTypePurpose
communitiesarray of stringsPublic X Community URLs or numeric IDs. Required. Accepts 1 to 10 Communities.
maxTweetsPerCommunityintegerMaximum rows kept from each Community snapshot. Range 1 to 20. Default: 20.
deduplicateTweetsbooleanRemoves repeated tweet IDs within the current run. Default: true.
providerOrderstringProvider routing order for a controlled test or recovery attempt. Values: auto, scrapecreators-first, sociavault-first. Default: auto.

Focused input example

{
"communities": [
"https://x.com/i/communities/1699807431709041070"
],
"maxTweetsPerCommunity": 10,
"deduplicateTweets": true,
"providerOrder": "auto"
}

Output

Every dataset row is one public Community tweet. The dataset contains normalized tweet, author, engagement, media, freshness, and provenance fields.

FieldTypeMeaning
recordTypestringDataset entity type. Always tweet.
communityIdstringNumeric Community ID that supplied the tweet.
communityUrlstringCanonical Community URL.
tweetIdstringStable X post ID.
tweetUrlstringCanonical direct tweet URL.
textstring or nullPublic tweet text when available.
createdAtstring or nullTweet creation time in ISO 8601 format when parseable.
languagestring or nullLanguage code when provided.
sourceClientstring or nullHuman-readable source application.
conversationIdstring or nullConversation root ID when available.
isReplybooleanWhether the tweet belongs to a reply conversation.
isQuotebooleanWhether the tweet is marked as a quote post.
authorUsernamestring or nullPublic username without the @ symbol.
authorNamestring or nullPublic display name.
authorUrlstring or nullCanonical author profile URL.
authorFollowersCountinteger or nullPublic follower count when available.
authorFollowingCountinteger or nullPublic following count when available.
authorVerifiedboolean or nullBlue verification state when available.
viewCountinteger or nullViews or impressions when returned.
likeCountinteger or nullPublic like count.
replyCountinteger or nullPublic reply count.
repostCountinteger or nullPublic repost count.
quoteCountinteger or nullPublic quote count.
bookmarkCountinteger or nullPublic bookmark count when returned.
hasMediabooleanWhether attached media was returned.
mediaUrlsarray of stringsPublic media asset URLs attached to the tweet.
mediaTypesarray of stringsMedia categories such as photo, video, or animated_gif.
hashtagsarray of stringsHashtags without the # symbol.
mentionedUsernamesarray of stringsMentioned usernames without the @ symbol.
outboundUrlsarray of stringsExpanded external links in the tweet when available.
providerstringProvider route that supplied the row: scrapecreators or sociavault.
scrapedAtstringISO 8601 collection timestamp.

Illustrative output record

{
"recordType": "tweet",
"communityId": "1699807431709041070",
"communityUrl": "https://x.com/i/communities/1699807431709041070",
"tweetId": "2071625893093789997",
"tweetUrl": "https://x.com/ash_twtz/status/2071625893093789997",
"text": "Community discussion starts here.",
"createdAt": "2026-07-14T12:30:00.000Z",
"language": "en",
"sourceClient": "Twitter for iPhone",
"conversationId": "2071625893093789997",
"isReply": false,
"isQuote": false,
"authorId": "123456789",
"authorUsername": "ash_twtz",
"authorName": "Ash",
"authorUrl": "https://x.com/ash_twtz",
"authorAvatarUrl": "https://pbs.twimg.com/profile_images/example_normal.jpg",
"authorBio": "Builder and community member.",
"authorFollowersCount": 1200,
"authorFollowingCount": 350,
"authorVerified": true,
"viewCount": 8660,
"likeCount": 173,
"replyCount": 55,
"repostCount": 3,
"quoteCount": 2,
"bookmarkCount": 10,
"hasMedia": false,
"mediaUrls": [],
"mediaTypes": [],
"hashtags": [
"buildinpublic"
],
"mentionedUsernames": [
"apify"
],
"outboundUrls": [
"https://example.com"
],
"provider": "scrapecreators",
"scrapedAt": "2026-07-14T12:35:00.000Z"
}

How it works

This Actor reads one current provider snapshot per supplied Community and normalizes the returned public tweet data into a dataset record per tweet. The live contract shows two provider routes: ScrapeCreators and SociaVault. The default provider order is auto, which tries ScrapeCreators first and then SociaVault when both owner-managed secrets are available. No X account cookie or user login is required.

The Actor also persists a compact OUTPUT record and a RUN_SUMMARY record in the key-value store, so you can inspect both the dataset and the run-level summary after execution.

Pricing

X Community Tweets Scraper uses Pay per event plus Apify platform usage.

The charged events are:

  • Actor start
  • Community tweet scraped

The tweet event is the primary event. Lowering maxTweetsPerCommunity reduces how many tweet events can be charged because fewer records are kept from each Community snapshot. For example, a run that saves twenty tweets produces twenty tweet events plus one start event.

For the current pricing details, open the live Pricing tab in Apify Console. Platform compute and usage are billed separately under the Pay per event plus usage model.

Use with AI agents (MCP)

This Actor is available as an Apify Actor usable through Apify MCP. The precise tool purpose is to collect a structured public snapshot of X Community tweets from one or more Community URLs or IDs and return normalized dataset rows with provenance.

Actor identity: khadinakbar/x-community-tweets-scraper

Collect the current public snapshot for this X Community URL, return the latest tweet records, and summarize the author, engagement, media, and provenance fields for each row.

Output interpretation for agents:

  • tweetUrl identifies each public post.
  • text, authorUsername, authorName, and createdAt capture the tweet content and attribution.
  • likeCount, replyCount, repostCount, quoteCount, and viewCount represent visible engagement when returned.
  • hasMedia, mediaUrls, and mediaTypes describe attached media.
  • communityUrl, provider, and scrapedAt show source Community, provider route, and collection time.

Provenance and scope:

  • Each row is one public Community tweet from the current snapshot.
  • provider records which provider route supplied the row.
  • The Actor works from public Community inputs, and the dataset preserves source URLs for traceability.

Pagination and cost guidance:

  • maxTweetsPerCommunity keeps at most 20 rows per Community snapshot.
  • The setting controls how many tweet records are kept, which also affects event charges.
  • It is a snapshot collector, so agent workflows should treat the dataset as the current public view for the supplied Communities.

API example

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({
token: process.env.APIFY_TOKEN,
});
const run = await client.actor('khadinakbar/x-community-tweets-scraper').call({
communities: ['https://x.com/i/communities/1699807431709041070'],
maxTweetsPerCommunity: 10,
deduplicateTweets: true,
providerOrder: 'auto',
});
const datasetId = run.defaultDatasetId;
const { items } = await client.dataset(datasetId).listItems();
console.log(items);

Best results and outcome guidance

Start with the canonical Community URL or numeric Community ID. Use maxTweetsPerCommunity to keep the snapshot focused, and leave deduplicateTweets enabled when overlapping Community inputs might surface the same post more than once. When you need a controlled provider routing test, set providerOrder explicitly. For analysis workflows, use the tweet URL, text, author fields, and engagement counts together so each row stays tied to one public post.

Continue the workflow

Design note

I found that every output row is defined as one public Community tweet, and the dataset schema marks recordType with the fixed value tweet. That makes the record shape easy to reason about when mapping rows into downstream analysis.

FAQ

Can I pass a profile URL, handle, hashtag, or keyword query?

This Actor accepts Community URLs or numeric Community IDs. The input schema is built around public X Community sources.

How many Communities can I include in one run?

The input schema accepts 1 to 10 Communities.

How many tweets can the Actor keep per Community?

The configured range is 1 to 20, and the current contract sets the default to 20.

Which provider routes are available?

The dataset schema shows scrapecreators and sociavault. The live manifest also says auto tries ScrapeCreators first and then SociaVault when both owner-managed secrets are available.

What records are written besides the dataset?

The Actor also writes a compact OUTPUT record and a detailed RUN_SUMMARY record.

Responsible use

Use this Actor only with public data you are authorized to collect and process. Respect applicable law, platform terms, and Community rules. Keep usage aligned with public snapshots and source URLs, and review the returned fields before using them in reporting, automation, or AI workflows.