Social platforms

Search recent X Posts · Twitter / X API

GET/x/tweets/search/recent
$min $0.001

Search recent public X Posts matching a query string and return a cursor-paginated list of Posts with author and metrics — a drop-in Twitter search API for tracking keywords, hashtags, cashtags, brand mentions, and breaking conversations in near real time.

Try it without an API key: Twitter viewer — see any X profile, post or trend, Twitter reply viewer — read replies to any X post, Twitter advanced search — search X without login.

Using ChatGPT, Claude Code or another client? See the setup steps

Request
curl https://api.unifapi.com/x/tweets/search/recent?query= \
  -H "Authorization: Bearer $UNIFAPI_KEY"

Parameters

expansionsquery
tweet.fieldsquery
user.fieldsquery
media.fieldsquery
place.fieldsquery
poll.fieldsquery
pagination_tokenquery
next_tokenquery
max_resultsquery
Integer from 1 to 100.
queryqueryrequired
Recent search query.
Overview

This operation is part of the Twitter / X API in the social platforms category. It uses the same Bearer token, request tracing, error model, and billing envelope as every UnifAPI endpoint, so agents can switch between platforms without custom per-vendor glue code.

Use it when a workflow needs Twitter / X public data alongside other social networks, but should still keep one API key, one account balance, and one predictable JSON contract.

Common agent workflows

  • Search Twitter / X for public mentions, creators, posts, or topics matching a user query.
  • Feed ranked Twitter / X results into research, monitoring, and enrichment workflows.
  • Give an AI agent a stable Twitter / X data source without building a per-platform integration.
  • Normalize Twitter / X responses into the same UnifAPI envelope used across the catalog.
Response shape

Unified envelope, platform-native fields

  • List-style responses return `data` as an array of top-level records plus optional `pagination` for continuation tokens or cursors.
  • The `billing.records_charged` field reports the charged billable-record quantity for the successful response.
  • If the workspace balance cannot cover every result, the response can be truncated and `billing.truncated_due_to_balance` tells the caller why.

Response status codes

200400401402404429500502503

Billing

This operation charges 1 credit per billable record, with a 1 credit ($0.001) operation minimum. Public responses include billing metadata with credits charged, records charged, and remaining workspace balance. Incorrect Credit deductions caused by platform failures can be restored as billing corrections.

Errors and retries

Authentication, validation, rate-limit, not-found, and provider errors use the unified UnifAPI error format. Agents should log `request_id`, retry only retryable failures, and treat invalid API keys, disabled keys, and expired keys as the same public `unauthorized` error type.

Response fields

Fields on each record in data

A successful Search recent X Posts call returns data as an array; each record carries these fields.

idstring
textstring
author_idstring
created_atstring
conversation_idstring
langstring
possibly_sensitiveboolean
public_metricsobject
attachmentsobject
edit_history_tweet_idsstring[]
authorobject
mediaobject[]
Related endpoints

More Twitter / X operations

Combine endpoints from the same platform, then join the results with other UnifAPI categories without changing authentication or response parsing.

GET/x/tweets/{id}/translation

Translate an X Post

Return a machine translation of an X Post's text into a target language code (e.g. `zh`, `es`). Useful for monitoring non-native-language conversations and normalizing multilingual Posts into one working language.

GET/x/users

Get X users by IDs

Batch-resolve up to 100 X accounts in one call from a comma-separated list of numeric user IDs, returning the same profile fields as the single-user lookup. Useful for hydrating profiles behind a list of IDs without one request per account.

GET/x/tweets

Get X Posts by IDs

Batch-fetch up to 100 Posts in one call from a comma-separated list of numeric Post IDs, returning the same full object as the single-Post lookup. Useful for hydrating a set of Posts without one request each.

GET/x/tweets/{id}

Get X Post by ID

Fetch a single X (Twitter) Post by its numeric ID — the classic get-tweet-by-ID lookup — returning text, author, timestamp, language, and public metrics (likes, reposts, replies, quotes, and views). Useful for hydrating a known Post or checking its current engagement.

GET/x/tweets/{id}/article

Get the article-style payload for an X Post

Return the long-form X Article payload attached to a Post, including its full text body and authoring metadata. Useful for extracting complete article content from Posts that carry it, rather than only the short Post text.

GET/x/tweets/{id}/liking_users

Get users who liked an X Post

Return the accounts that liked a given X Post, as a cursor-paginated list of full profiles. Useful for analyzing who engaged with a Post and surfacing an interested audience.