X Community Members Scraper avatar

X Community Members Scraper

Pricing

from $5.00 / 1,000 community member founds

Go to Apify Store
X Community Members Scraper

X Community Members Scraper

Scrape X (Twitter) Community members and community profiles: handles, bios, followers, rules, creator. No login or cookies. MCP-ready. $0.005 per member.

Pricing

from $5.00 / 1,000 community member founds

Rating

0.0

(0)

Developer

Khadin Akbar

Khadin Akbar

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

0

Monthly active users

4 hours ago

Last modified

Share

X Community Members Scraper - Members & Community Profile

Use this Apify Actor to collect X Community profile records and member records from one or more X Community URLs or numeric community IDs. It accepts community input, returns one record per community profile and one record per member, and surfaces the fields used for audience mapping: community name, description, member count, creation date, rules, creator handle, member role, usernames, bios, follower counts, verification status, locations, and profile URLs. The Actor is usable through Apify MCP and returns one dataset item per persisted community or member record.

Best fit and connected workflows

This Actor fits workflows that begin with an X Community URL or community ID and end with a normalized roster or community profile export.

It is a practical route for:

  • community research, where you need the community profile plus rules and topic context,
  • outreach and lead generation, where active members and featured members provide a current participant list,
  • recruiting and talent discovery, where member bios, follower counts, and profile URLs support qualification,
  • AI agent workflows, where the Actor can be called through Apify MCP and the resulting dataset can move into downstream analysis or enrichment steps.

If you already have a community reference from an X workflow, this Actor turns that identifier into structured profile and member records in one dataset. The workflow is a clean fit when a team begins with a community URL, then passes the resulting dataset into CRM enrichment, spreadsheet review, or an LLM-based summarization step.

Practical scenario

A recruiter receives a community link in Slack and wants to understand who is active in that space.

They paste the community URL into communities, keep includeActiveMembers enabled, and set maxMembersPerCommunity to 50. The run returns a community row with the community name, description, member count, creator handle, and rules, plus member rows with usernames, display names, bios, follower counts, blue verification status, and profile URLs.

The recruiter can then review the active members, shortlist a few relevant accounts, and open the profile URLs for manual follow-up or add the dataset to a CRM enrichment workflow.

Input

FieldTypeDefaultPurpose
communitiesstring[]requiredOne to 100 X Community URLs or numeric IDs.
includeActiveMembersbooleantrueReturn active members derived from recent public community posts, enriched with handle, name, bio, and follower count.
maxMembersPerCommunityinteger50Cap member rows saved per community, from 0 to 200.
includeFeaturedMembersbooleantrueInclude the creator and featured members shown on the community page.
includeCommunityProfilebooleantrueEmit one community profile record per community.
providerOrderstringautoChoose provider order for testing or fallback checks: auto, scrapecreators-first, or sociavault-first.
dedupeMembersbooleantrueRemove duplicate member rows within a community by user ID first, then normalized username.
includeRawbooleanfalseAdd the raw provider payload to each dataset item for debugging or parity checks.

Example input

{
"communities": [
"https://x.com/i/communities/1699807431709041070"
],
"includeActiveMembers": true,
"maxMembersPerCommunity": 50,
"includeFeaturedMembers": true,
"includeCommunityProfile": true,
"providerOrder": "auto",
"dedupeMembers": true,
"includeRaw": false
}

Output

Each dataset item is a flat record for either the community itself or one member tied to that community. Use recordType to separate the two record families.

Output fields

FieldTypeMeaning
recordTypestringcommunity for a community profile row, member for a person row.
inputCommunitystringThe community URL or ID provided in the input.
communityIdstringNumeric X Community ID.
communityUrlstringCanonical X Community URL.
namestring or nullCommunity display name or member display name.
descriptionstring or nullCommunity description text for community rows.
memberCountinteger or nullReported community member count for community rows.
createdAtstring or nullCommunity creation timestamp.
isNsfwboolean or nullNSFW flag for community rows.
joinPolicystring or nullCommunity join policy.
primaryTopicstring or nullCommunity topic label when available.
rulesarrayCommunity rule names.
creatorUsernamestring or nullCreator handle for community rows.
rolestring or nullMember role: creator, featured, or active.
userIdstring or nullMember X user ID when available.
usernamestring or nullMember handle without @.
biostring or nullPublic member biography.
profileUrlstring or nullCanonical profile URL when a handle is known.
locationstring or nullPublic member location text.
websiteUrlstring or nullExpanded website URL when available.
avatarUrlstring or nullProfile image URL when available.
isVerifiedboolean or nullLegacy verification state.
isBlueVerifiedboolean or nullX blue verification state when available.
followersCountinteger or nullPublic follower count.
followingCountinteger or nullPublic following count.
tweetCountinteger or nullPublic tweet or status count.
accountCreatedAtstring or nullMember account creation timestamp when available.
providerstringData provider that returned the row.
scrapedAtstringRow emission timestamp.
rawobjectRaw provider object, present only when includeRaw is enabled.

Illustrative JSON record

{
"recordType": "member",
"inputCommunity": "https://x.com/i/communities/1699807431709041070",
"communityId": "1699807431709041070",
"communityUrl": "https://x.com/i/communities/1699807431709041070",
"role": "active",
"userId": "1820544862602829824",
"username": "croissantsam",
"name": "Samuel",
"bio": "Software engineer and open-source maintainer.",
"profileUrl": "https://x.com/croissantsam",
"location": "Paris, France",
"avatarUrl": "https://pbs.twimg.com/profile_images/example_normal.jpg",
"isBlueVerified": false,
"followersCount": 292,
"followingCount": 180,
"tweetCount": 500,
"accountCreatedAt": "2024-08-05T10:00:00.000Z",
"provider": "scrapecreators",
"scrapedAt": "2026-06-14T12:00:00.000Z"
}

How it works

The Actor uses provider-backed extraction and normalizes the results into a stable dataset schema. The live contract shows two provider values, scrapecreators and sociavault, and the input includes a providerOrder setting for testing or fallback checks.

The manifest confirms that the Actor is cookieless and login-free, and that it returns:

  • a community profile record with name, description, member count, rules, creator, topic, and related metadata,
  • featured members from the community page facepile,
  • active members derived from recent public community posts.

The output schema also exposes run summary records in the key-value store. These records are useful for automation and agent workflows that need terminal status alongside the dataset.

Pricing

This Actor uses Pay per event pricing on Apify, plus Apify platform usage. Charged events include Actor start, community profiled, and community member found. Review the live Pricing tab on the Actor page for the current event charges and platform usage details.

For example, a run that profiles one community and saves twenty-five member rows is charged for one community-profile event, twenty-five member-found events, and one Actor start event. That ties cost to the number of saved records and makes the spend easy to estimate before running a larger batch.

Use with AI agents (MCP)

This Actor is MCP-ready and can be called as an Apify Actor through Apify MCP. The exact Actor identity is khadinakbar/x-community-members-scraper.

Tool description: fetch X Community profile rows and member rows from a community URL or ID, then return structured dataset items plus run-summary records for automation.

Collect the community profile and the active members for this X Community URL. Return the creator, featured members, and active members with usernames, bios, follower counts, profile URLs, and the community metadata in a clean dataset.

Output interpretation: use recordType to separate community rows from member rows. provider identifies which provider returned the row, and scrapedAt records when the row was emitted. If includeRaw is enabled, the raw provider payload is present for field inspection or parity review.

Provenance and scope: rows are normalized from provider-backed public data. Community rows summarize the community itself, while member rows represent the creator, featured members, or active members visible from public community activity. The Actor accepts 1 to 100 community inputs per run.

Pagination and cost guidance: maxMembersPerCommunity controls how many member rows are saved for each community. For agent workflows, a smaller cap keeps the dataset compact and the Pay per event spend lower. Review the live Pricing tab for the current event charges and platform usage.

Apify API example

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({
token: process.env.APIFY_TOKEN,
});
const run = await client.actor('khadinakbar/x-community-members-scraper').call({
communities: ['https://x.com/i/communities/1699807431709041070'],
includeActiveMembers: true,
maxMembersPerCommunity: 50,
includeFeaturedMembers: true,
includeCommunityProfile: true,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);

Best results and outcome guidance

Start with a direct X Community URL or numeric community ID. If you want a compact export, keep includeCommunityProfile enabled and lower maxMembersPerCommunity. If you want richer member rows, keep includeActiveMembers and includeFeaturedMembers enabled so the dataset captures both the public community profile and the visible people tied to that community.

For workflows that compare providers during testing, providerOrder can be set explicitly. For normal use, auto lets the Actor choose the provider order defined in the contract. When the dataset is meant for downstream AI processing, keep includeRaw disabled unless you are validating provider parity or field drift.

Continue the workflow

Design note

I found that the live dataset contract separates rows cleanly into community and member via recordType, which makes it straightforward to describe one run as both a community summary and person-level records in the same dataset.

FAQ

What input does this Actor accept?
It accepts X Community URLs or numeric community IDs in the communities field.

What does one record represent?
One record is either a community profile row or one member row, depending on recordType.

Can this Actor be used for AI agent workflows?
Yes. It is usable through Apify MCP and returns structured dataset items plus run-summary records.

How are active members selected?
Active members are derived from the community's recent public posts and enriched with public profile fields.

Can I change the provider order?
Yes. The input includes providerOrder with auto, scrapecreators-first, and sociavault-first.

When should I enable raw output?
Enable includeRaw when you want the raw provider payload for debugging or field validation.

Responsible use

Use the output in ways that respect X's terms, applicable privacy rules, and your own data handling policies. The Actor is designed for public community research, recruiting, outreach preparation, and automation workflows that rely on public profile and community metadata. Review the live Pricing tab before running large jobs, and size the input and member cap to match the workflow you are building.