X Communities Latest Posts Scraper avatar

X Communities Latest Posts Scraper

Pricing

from $0.15 / 1,000 community posts

Go to Apify Store
X Communities Latest Posts Scraper

X Communities Latest Posts Scraper

Search public X Communities by keyword, Community ID, or URL. Choose newest-first or the source's top-ranked order, then save post text, Community details, author data, timestamps, engagement, media, and post links when available.

Pricing

from $0.15 / 1,000 community posts

Rating

0.0

(0)

Developer

Maxime Dupré

Maxime Dupré

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

4 days ago

Last modified

Share

🧭 Find the latest posts in X Communities

Researchers, community managers, and data teams can search public X Communities by one keyword or by one or more Community IDs or URLs. The Actor saves each post as a structured dataset row with its text, source Community, author details, time, engagement counts, media references, and public links when available. The source Community stays with each row, so you can see where a post came from.

Use cases

🗂️ Public X Community post rows

Each saved row represents one public post. A row can include the post text, source Community, author data, engagement counts, media references, language, and conversation context when the source exposes them. Optional fields may be absent.

The first eligible match is saved right away. If another submitted Community, URL, or keyword finds the same post later, that later match is ignored. The saved row keeps the source context from the first match.

▶️ Search or collect Community posts

Run steps

  1. Set Find posts by to Community or Keyword.
  2. Enter one or more public Community IDs or URLs, or enter one keyword or phrase.
  3. Choose Newest first or Top ranked.
  4. Set Maximum posts when you want a smaller run. Leave it empty to return all available results until the source is exhausted.
  5. Run the Actor and open the dataset.

Post order

Newest first uses publication time. Top ranked uses the source's top or high-engagement order when available.

⚙️ Input

Choose one way to find posts. Use Community for one or more public X Community IDs or URLs. Use Keyword for one keyword or phrase. The post order and optional maximum apply to either choice.

Input fields

FieldTypeWhat it does
findBystringChooses Community or Keyword search.
communitiesstring[]Lists one or more public X Community IDs or URLs. Each saved row keeps its source Community.
keywordstringSets one keyword or phrase for matching posts. Run a separate search for each keyword.
sortBystringSets Newest first or Top ranked. Top ranked uses the source's top or high-engagement order when available.
maxItemsintegerStops after this many eligible posts. Leave it empty to return all available results until the source is exhausted.

Example input

This is the public input from a successful current-beta run that uses the prefilled keyword:

{
"findBy": "Keyword",
"keyword": "open source",
"sortBy": "latest",
"maxItems": 10
}

🧾 Output

Every run uses the same Community post row shape. A field may be absent when X does not expose it. The output link opens the run dataset.

Run output

FieldTypeWhat it does
datasetstringOpens the run's default dataset, where the Community post rows are saved.

Community post

FieldTypeWhat it does
postIdstringGives the stable public ID of the post.
textstringGives the public post text when available.
postedAtstringGives the public publication time when available.
postUrlstringGives the direct public post URL when available.
communityobjectHolds the public source Community.
community.idstringGives the stable public ID of the source Community.
community.namestringGives the public Community name when available.
community.urlstringGives the canonical public Community URL when available.
authorobjectHolds public identity and profile details for the author.
author.idstringGives the stable public author ID when available.
author.usernamestringGives the author's public username when available.
author.displayNamestringGives the author's public display name when available.
author.verifiedbooleanSays whether the source marks the author as verified when available.
author.avatarUrlstringGives the author's public avatar URL when available.
author.biostringGives the author's public biography when available.
author.locationstringGives the author's public location when available.
author.followersCountintegerGives the author's public follower count when available.
author.createdAtstringGives the public account creation time when available.
engagementobjectHolds public engagement counts for the post.
engagement.likeCountintegerGives the public number of likes when available.
engagement.repostCountintegerGives the public number of reposts when available.
engagement.replyCountintegerGives the public number of replies when available.
engagement.quoteCountintegerGives the public number of quote posts when available.
engagement.viewCountintegerGives the public number of views when available.
engagement.bookmarkCountintegerGives the public number of bookmarks when available.
mediaobject[]Lists public references and available details for attached images or videos.
media[].typestringGives the attached media type.
media[].urlstringGives the public media URL when available.
media[].previewImageUrlstringGives the public preview image URL when available.
media[].widthintegerGives the media width in pixels when available.
media[].heightintegerGives the media height in pixels when available.
media[].durationMsintegerGives the video duration in milliseconds when available.
media[].altTextstringGives the public alternative text when available.
languagestringGives the public language metadata when available.
contextobjectHolds public conversation, reply, quote, and sensitive-content context.
context.conversationIdstringGives the public conversation ID when available.
context.replyToPostIdstringGives the ID of the post being replied to when available.
context.replyToAuthorIdstringGives the ID of the replied-to author when available.
context.quotePostIdstringGives the ID of the quoted post when available.
context.quotePostUrlstringGives the public URL of the quoted post when available.
context.possiblySensitivebooleanSays whether the source marks the post as possibly sensitive.

Example row

This complete row comes from the successful current-beta keyword run. Optional fields not exposed in this row are absent.

{
"postId": "2093601699877249200",
"community": {
"id": "1929843531566268760",
"url": "https://x.com/i/communities/1929843531566268760"
},
"text": "Stacked dev , made grok trenches bot \n\nHe 100x Ed in 48h \n\n50$ to 5k \n\nOpen sourced \n\nThis bond and RIP \n\nAPsZ9cXdHXkj1dfuG622X5xeCMJapJ7LBPuLKvi8pump",
"postedAt": "2026-08-29T07:28:37.000Z",
"postUrl": "https://x.com/WojakWal/status/2093601699877249200",
"author": {
"id": "1587518588218384384",
"username": "WojakWal",
"displayName": "WOJAK WAL",
"verified": true,
"avatarUrl": "https://pbs.twimg.com/profile_images/2042821165706588160/H2ufw4cf_normal.jpg",
"bio": "tg: https://t.co/PcPx8otYXF \n\neverything i share is NFA",
"followersCount": 3978,
"createdAt": "2022-11-01T18:55:16.000Z"
},
"engagement": {
"likeCount": 4,
"repostCount": 0,
"replyCount": 2,
"quoteCount": 0,
"viewCount": 243,
"bookmarkCount": 0
},
"language": "en",
"context": {
"conversationId": "2093601699877249200",
"quotePostId": "2093451510126465047",
"quotePostUrl": "https://twitter.com/slash1sol/status/2093451510126465047"
}
}

💳 Pricing

This Actor uses pay-per-event pricing. One charge applies to each public X Community post saved to the dataset. Set Maximum posts to control how many rows the run can save. Leaving it empty returns all available results until the source is exhausted.

🔌 Integrations

Read the dataset in Apify or through the standard dataset API after a run. See the walkthrough:

❓ FAQ

Can I search by a keyword?

Yes. Enter one keyword or phrase in Keyword. Run a separate search for each keyword.

Can I use more than one Community?

Yes. In Community mode, enter one or more public Community IDs or URLs. Each saved row keeps its source Community.

What does Top ranked mean?

It uses the source's top or high-engagement order when available. Newest first uses publication time.

What happens when the same post is found twice?

The first eligible match is saved immediately. A later match for the same post is ignored, and the saved row keeps the first match's source context.

What happens when Maximum posts is empty?

The Actor returns all available results until the source is exhausted.

Do I need an X login, cookies, or API key?

No. The Actor is designed to access public X Community content without buyer-supplied X login credentials, cookies, or API keys.

Does it download attached media?

No. It returns public media references and available details. It does not download or mirror the media files.

Can it read private or deleted Communities?

No. Private, deleted, restricted, and other non-public Community content is outside the Actor's scope.

📝 Changelog

0.0: Initial release

🆘 Support

For issues, questions, or feature requests, file a ticket and I'll fix or implement it in less than 24h 🫡

Made with ❤️ by Maxime Dupré