X Community About API | Moderators and Members
The About tab for one community: its moderators, and a preview of its members, both returned as FULL user profiles with bio, follower and following counts, tweet counts, location, website, banner and join date. Community Members and Community Moderators return a reduced row instead, so this is the endpoint that answers who runs a community in one call rather than one call plus a profile lookup per person. It is not paginated, because the upstream operation is not. Billed at $0.0008 per call. Cost: $0.0008 per call.
GET community/about returns an X Community's moderators plus a preview of its members, each as a FULL user profile: bio, follower and following counts, tweet counts, location, website, banner and account creation date. That is the difference from Community Members and Community Moderators, which return a reduced row carrying only id, handle, name, avatar and three booleans. This endpoint does NOT return community metadata: for name, description, rules, member count, topic or join policy, call Community Info. It is not paginated. members_truncated and moderators_truncated tell you when X only sent a preview, which is the signal to page the full roster endpoints. $0.0008 per call.
Authorization
bearerAuth Pass your API key as a bearer token on every request: Authorization: Bearer <API_KEY>.
In: header
Query Parameters
The numeric X community id, the digits in x.com/i/communities/.
Comma-separated list of dotted field paths to keep in the response (one parameter, never repeated), applied to every object in the returned lists and to nested objects (for example fields=id,text,author.username; the list's own name may prefix a path, fields=tweets.id). A path prefix that lands on an array applies to each element (media.media_url_https). Pagination and envelope keys (next_cursor, cursor, has_more, count, partial, error, message, reason) are always kept. Unknown paths are ignored; up to 50 paths of up to 6 segments. Projection never changes status codes or billing, and applies to data reads only: account, feedback, session status, monitor (other than deliveries), webhook and stream-compat reads return their bodies unchanged.
Set to 1 (or true) to apply the built-in compact preset: ids, url, text, created_at, lang, the engagement counts, the is_retweet/is_reply/is_quote flags, conversation ids, the author's id/username/name/followers_count/verification, and the quoted or retweeted tweet's id/url/author username. The preset trims what it recognises and leaves alone what it would empty, so it never turns a body into {}. Combine with fields to add paths on top of the preset. Typically cuts a tweet page by 70 to 90 percent for LLM tool callers.
Response Body
application/json
application/json
application/json
application/json
application/json
application/json
application/json
application/json
curl -X GET "https://example.com/community/about?community_id=1493446837214187523&fields=id%2Ctext%2Ccreated_at%2Cauthor.username&compact=1"{ "moderators": [ { "id": "88403351", "username": "iuditg", "name": "Udit Goenka", "description": "Building in public.", "followers_count": 60868, "following_count": 372, "tweet_count": 46535, "location": "India", "url": "https://example.com", "created_at": "Sun Nov 08 11:49:55 +0000 2009", "profile_image_url": "https://pbs.twimg.com/profile_images/.../photo_normal.jpg", "is_blue_verified": true } ], "members": [ { "id": "2535083002", "username": "sachikantaraul", "name": "Sachikanta Raul", "description": "Indie hacker.", "followers_count": 41, "following_count": 300, "tweet_count": 1204, "location": "India", "url": null, "created_at": "Thu May 08 13:15:44 +0000 2014", "profile_image_url": "https://pbs.twimg.com/profile_images/.../photo_normal.jpg", "is_blue_verified": true } ], "moderators_truncated": false, "members_truncated": true, "other_sections": []}{ "error": "bad_request", "message": "Missing or malformed parameter. Fix the request before retrying."}{ "error": "unauthorized", "message": "The API key is missing, malformed, or revoked. Check the Authorization header."}{ "error": "insufficient_credits", "message": "Your balance is exhausted. Top up your credits to continue."}{ "error": "forbidden", "message": "X refused this resource for the acting account: on a read, the account is not a participant in the DM thread, the target is protected or has blocked it, or the session was attestation-blocked for calling from a datacenter or rotating IP; on a write, the account is not authorized for the action or has no logged-in session. The credentials are still valid, so do not re-register."}{ "error": "not_found", "message": "The resource does not exist, for example a deleted tweet or a private account."}{ "error": "rate_limited", "message": "Too many requests. Back off and retry with exponential backoff."}{ "error": "server_error", "message": "Something failed on our side. Retry with backoff; if it persists, contact support."}Pricing
| Unit | Price |
|---|---|
| Per call | $0.0008 |
| Per 1,000 calls | $0.80 |
When to use
Use it when you need to judge the people, not count them: vetting who moderates a community before pitching it, or sizing up the audience from real profiles rather than handles. Switch to Community Members when you need the whole roster.
Notes
- THIS ENDPOINT DOES NOT RETURN COMMUNITY METADATA, despite its name. It carries no name, description, rules, member count, topic or join policy, because the X operation behind it carries none of them. Call Community Info for those.
- The profiles here are FULL, which is the reason this endpoint exists alongside Community Members and Community Moderators. Those two are served by a different X operation whose rows have no bio, no follower or following counts, no location, no website and no created_at. Use this one when you need to evaluate people, and those two when you need to enumerate them.
- IT IS NOT PAGINATED, and there is no cursor to pass. X sends a fixed preview. members_truncated and moderators_truncated are the signal to switch to the paginated roster endpoints.
- A community id that does not resolve returns 404, not an empty 200. If X returns a shape this API does not recognise you get a 502 parse_failed instead, and that call is not billed to you.
- Fields describing a viewer's own relationship to these accounts are never returned, for the same pooled-read reason the community objects null role and can_join: the account making the upstream call is one of ours and rotates per request.
Related endpoints
- Community Info: Metadata, rules and banners for one X Community.
- Community Members: Page through a community's member roster, each row carrying that member's role.
- Community Moderators: Page through a community's moderators and admins.
- Community Search: Search X Communities by keyword.
FAQ
Why does this not return the community's name or rules?
Because the X operation behind the About tab does not send them. Its payload is the moderator and member modules and nothing else. Community Info is the endpoint that returns name, description, rules, counts, topic and policies.
How is this different from Community Moderators?
The profiles. Community Moderators is paginated and returns a reduced row: id, handle, name, avatar and three booleans. This returns the full profile, including bio, follower and following counts, tweet counts, location, website and join date, in one call. Use Community Moderators when you need to walk a long list, and this when you need to evaluate the people on it.
Can I page through all the members here?
No. There is no cursor, and X sends a capped preview. members_truncated tells you when there are more; Community Members is the paginated endpoint for the full roster.
What is other_sections for?
Anything X puts on the About tab that this API does not yet model. It is empty for every community we have seen. It exists so that if X adds a section, you receive it instead of it being quietly discarded by a parser that only knows two shapes.
Community Memberships GET
The inverse relation: given a numeric X user id, list the communities that account belongs to, cursor-paginated. Each row is the FULL community object, and it is the most populated form of it this API returns: admin, invites_policy, question, search_tags, members_facepile_ids and a real moderator_count all arrive here and do not on Community Info. Profiling an account's community footprint takes one call per page rather than a follow-up lookup per community. Billed at $0.0008 per call. Cost: $0.0008 per call.
Community Search GET
Find communities by keyword, cursor-paginated. This is the discovery step the rest of this family assumes: every other community endpoint starts from a community id, and this is the one that produces one. Each hit is a compact record, id, name, member count, nsfw flag, topic name, banners and the facepile avatars, which is exactly what X's search operation sends and nothing more. Billed at $0.0008 per call. Cost: $0.0008 per call.