Skip to main content
GET
Twitter community posts API & X timeline export
string
Only include posts with this language code.
string
Use images, videos, gifs, media, links, or none.
integer
Require this minimum like count.
integer
Require this minimum reply count.
integer
Require this minimum repost count.
integer
Require this minimum view count.
string
Include posts created on or after this date or timestamp.
string
Include posts before this date or timestamp.
boolean
When true, only return posts from verified authors.
Export Twitter community posts from one known Community timeline. Keep Tweet text, authors, engagement counts, media, and cursor state. Use this X Community Tweets API for Twitter Communities. Save live pages or CSV, JSON, and XLSX exports. This Twitter community scraping guide builds a community timeline export from cursor pages.

Archive the unfiltered community feed

This endpoint accepts a community ID without a keyword. It preserves the returned feed order for timeline archives, content review, and moderation. Choose Community Search for keyword filters, Latest, or Top ranking.

X community tweet export questions

Export community tweets

Call GET /api/v1/x/communities/{id}/tweets for the recent community feed. Keep the Community ID, Tweet ID, text, author, creation time, and media. Store each returned engagement count and cursor checkpoint. Choose Community Search when the workflow requires a keyword. Feed retrieval returns recent posts. Search returns posts that match a query. Save each page and cursor before requesting another page. Deduplicate by stable Tweet ID when new posts enter the feed. Record Community ID, Tweet ID, author ID, text, and creation time. Store each engagement count with media and collection timestamps. Label interrupted, result-capped, or credit-bounded collections as partial.

Are Twitter community posts public or private?

X says Community posts can appear on the Community page, profiles, global search, and other timelines. Read the official Communities guide for current visibility and participation rules. A restricted membership policy does not make every visible Community post private. This endpoint returns posts available to the read service for the requested Community. A missing Tweet does not prove deletion, privacy, or moderation. Store the collection time and observed cursor window with every export.

Where can I find analytics for X community posts?

Use the returned reply, repost, like, quote, view, and bookmark counts when available. Keep each count beside its Tweet ID and collection time. Compare complete snapshots to measure changes without rewriting the original values. Calculate concrete measures from the captured rows:
  • Unique Tweet IDs and authors.
  • Earliest and latest creation times.
  • Replies, reposts, likes, quotes, views, and bookmarks.
  • Tweets with photos, videos, or animated GIFs.
  • Repeated Tweet IDs removed after retries.
Use these fields to analyze Community engagement. They do not expose unique viewers, link clicks, conversions, or moderation decisions. Never invent a missing metric or replace it with zero.

Do I need to join a community to export community tweets?

This read route never changes membership. It exports Community posts visible to the connected read context. An export never proves membership. Use X’s Communities tab to join a Community or join Communities.

What rules apply to members posting in communities?

Each Community sets its posting rules for members. X controls posting access, membership, visibility, and moderation. Community moderators manage roles through X. Xquik reads visible community content without changing those settings.

Can this API schedule or moderate community posts?

No. This route reads a Community feed. It cannot publish, schedule, hide, report, or remove posts. Use X’s own Community tools for role changes and moderation actions. Use the captured community content to prepare a review queue. Require a human decision before any moderation action. Keep private review notes outside Tweet text, author profiles, and exported engagement fields.

What does the Twitter community API return?

The member route returns community profiles. The tweet route returns community posts and author fields. The info route returns community details. Moderator and search routes serve their own focused records. Choose one route per task. Do not combine profile membership and tweet activity into an ambiguous row. Join them later with stable user and community IDs.

How do I build a complete community tweet export?

Save every page and cursor before requesting another page. Deduplicate Tweet IDs when new posts change the live feed. Record the first and last observed Tweet timestamps. Use a saved Community extraction for CSV, JSON, or XLSX exports. Keep direct API pages for live ingestion. Mark interrupted or credit-bounded runs as partial.
Requested result counts are upper bounds for paid authenticated calls. When remaining credits cannot cover the full page or ID list, Xquik returns fewer results. If zero paid results are affordable, it returns 402 insufficient_credits.
1 credit per tweet returned · All plans from $0.00012/credit

Direct community tweet handoff

Use GET /x/communities/{id}/tweets for community monitoring, content review, post exports, or moderation queues. It creates one row per community tweet. Store each Tweet ID in its own record. Preserve the Community ID, author, text, creation time, engagement counts, media, and cursor checkpoint.

Community tweet rows

Store one row per post in the community. Keep author fields and engagement counts with the tweet row for review queues and exports.

Next page

Keep has_next_page beside next_cursor for each page. Continue only when has_next_page is true and next_cursor is present.

Default page

Request 1 to 100 tweets with pageSize. The default is 20. Treat the value as an upper bound because the source or available credits can return fewer.

Saved export

Use community_post_extractor when the workflow needs a saved job with CSV/JSON/XLSX output.

Audit a cursor-based community feed

Start each feed run with one numeric community ID. Record the request time and requested pageSize. Do not add a keyword to this route. Use community search when the workflow needs text matching. Save every response before advancing its cursor. Record has_next_page beside next_cursor for each response. Continue only when has_next_page is true and next_cursor is present. Reuse next_cursor without modification. Count returned rows and unique Tweet IDs after each page. A busy community can receive new posts during pagination. Deduplicate repeated Tweet IDs without discarding richer author, engagement, or media fields. Keep the first and last tweet timestamps for every run. They describe the observed feed window. They do not prove a complete historical archive. Label result caps, credit limits, and interrupted cursors explicitly. Store a completion record after the final page. Include community ID, page count, unique Tweet count, first timestamp, and last timestamp. Add collection time and the interrupted cursor when applicable. Store a final has_next_page value of false for a completed cursor chain.

Preserve community tweet authors and media

Store each stable Tweet ID in its own record. Keep author ID, username, profile name, and verification when returned. Separate Tweet content from author attributes. Keep replies, reposts, likes, and quotes as measured engagement fields. Store their ISO 8601 collection time. Counts can change after publication. Store each media URL with its owning Tweet ID. Keep media type when available. Do not infer missing images or videos from tweet text. Do not move media URLs into an author profile column. Use JSON when an application needs nested authors or media. Use CSV when analysts need one normalized row. Use XLSX for reviewed spreadsheet handoffs. Document any column flattening beside the exported file. Join later profile snapshots through stable author ID. Usernames and profile names are mutable attributes. Store Tweet creation times separately from later profile checks.

Compare community timeline snapshots

Create a new snapshot ID for every completed feed run. Keep the same community ID across snapshots. Compare stable Tweet IDs before engagement counts. Report newly observed tweets separately from changed tweet fields. A missing Tweet ID may reflect the observed window. It does not prove deletion from X. Compare authors through stable user IDs. Report username or profile changes as attributes. Do not treat them as new authors. Mark every incomplete run before comparison. Exclude partial snapshots from claims about feed growth or activity. Preserve their rows for troubleshooting and cursor recovery. Keep the request time, page count, row count, and completion state. These fields let another reviewer repeat the comparison without guessing its scope.

Path parameters

string
required
Community ID (numeric string).

Query parameters

string
Pagination cursor from a previous response. Omit for the first page.
number
Upper bound for tweets per page. Range: 1-100. Default: 20.

Which community endpoint?

Community tweets

Use GET /x/communities/{id}/tweets for posts from one known community.

Community tweet search

Use GET /x/communities/tweets with communityId and q to search within one community.

Community members

Use GET /x/communities/{id}/members for account rows from the same community.

Bulk community jobs

Use Create extraction with community_post_extractor, community_extractor, or community_moderator_explorer when the workflow needs a saved export.

Headers

string
Full account key. Sessions and OAuth also work.
string
Bearer xq_your_guest_key_here for paid_reads.

Response

200 OK

object[]
Array of community tweets. Tweet object fields.
string
Tweet ID.
string
Contains the complete Tweet text.
string
Classifies the Tweet when X returns a type.
string
ISO 8601 creation timestamp.
boolean
Whether this is a Note Tweet. Omitted if unavailable.
number
Reports the number of likes when available.
number
Reports the number of reposts when available.
number
Reports the number of replies when available.
number
Reports the number of quotes when available.
number
Reports the number of views when available.
number
Reports the number of bookmarks when available.
string
Permalink URL on X. Omitted if unavailable.
string
Reports the Tweet language code when available.
boolean
Whether the tweet is a reply. Omitted if unavailable.
string
Tweet ID being replied to. Omitted if not a reply.
string
Identifies the replied-to user when available.
string
Reports the replied-to username when available.
string
Conversation thread ID. Omitted if unavailable.
string
Client used to post the tweet. Omitted if unavailable.
number[]
Start and end offsets for rendered tweet text. Omitted if unavailable.
boolean
Whether replies are limited. Omitted if unavailable.
boolean
Whether this tweet quotes another tweet. Omitted if unavailable.
object
Parsed entities. Omitted if unavailable.
object
Returns paid-promotion and AI-generated-media labels when available. Includes advertising.isPaidPromotion and aiGenerated.hasAiGeneratedMedia.
object
Tweet author profile. Omitted if unavailable. Author object fields.
string
Author user ID.
string
Author X username.
string
Author display name.
number
Reports the author’s follower count when available.
boolean
Whether the author is verified. Omitted if unavailable.
string
Profile picture URL. Omitted if unavailable.
object[]
Lists media items attached to the Tweet. Omitted when none exist. Media object fields.
string
Provides the direct media URL.
object[]
Lists available video renditions and playback details. Omitted for images.
string
Identifies the attached media type.
string
Shortened URL from the tweet text.
object
Embedded quoted tweet. Omitted if not a quote tweet.
object
Original retweeted tweet. Omitted if not a retweet.
boolean
Whether more results are available.
string
Cursor for the next page. Pass as the cursor query parameter.

400 Invalid community ID

The community ID is empty or invalid.

401 Unauthenticated

Anonymous requests get WWW-Authenticate: Bearer and a guest wallet checkout action. This is not a Payment challenge.
Missing or invalid API key.

402 Payment required

Account keys get account options; guest keys get guest top-up only. No checkout starts automatically. Confirm any payment action.

404 Community not found

Xquik could not resolve the Community. Check the Community ID.

502 X API unavailable

The read service returned an error. Retry after a short delay.

429 Rate limit exceeded

The request exceeded your tier rate limit. Wait for the Retry-After header before retrying.

424 Dependency failed

The read service was unavailable. Retry after a short delay.
Next steps. Community Info for community details, or Community Members to list members.