Search Recent Posts

twitter.search_recent
ActionChat & messagingconnection required

Calls the X (Twitter) API with the connection's credentials.

Search public posts from the last 7 days. Needs a paid X plan — this is the endpoint a free or metered account most often cannot call.

Connection

Required
Yes — the node will not save without one
Auth type
Bearer token
Providers
X (Twitter)
Secret shape
the X OAuth2 user-context access token, or {"access_token": "…"}
Resolved by
config.connection_id, else node.connection_id

Configuration

14 fields, 1 required. A dotted path is a nested object and name[] an array of objects — the editor renders the same tree.

FieldTypeRequiredDefaultConstraintsExample
query
An X search query, e.g. 'from:mantlehq -is:retweet has:links'. Max 4096 chars.
stringYes—1–4096 charactersfrom:xdevelopers -is:retweet
max_results
Posts per page, 10 to 100.
numberNo1010–100—
start_time
Oldest post to consider, ISO 8601. Must be within the last 7 days.
stringNo—iso8601 format—
end_time
Newest post to consider, ISO 8601.
stringNo—iso8601 format—
since_id
Return posts newer than this post id.
stringNo———
until_id
Return posts older than this post id.
stringNo———
sort_order
Order of the results. X defaults to recency.
stringNo—one of "recency", "relevancy"—
next_token
Cursor from a previous page's 'next_token'; leave blank for the first page.
stringNo———
post_fields
Comma-separated Post fields to include, e.g. created_at,public_metrics,author_id. Without this X returns only id and text.
stringNo———
expansions
Comma-separated expansions to resolve into 'includes', e.g. author_id,attachments.media_keys.
stringNo———
user_fields
Comma-separated User fields to include, e.g. created_at,description,public_metrics. Without this X returns only id, name and username.
stringNo———
media_fields
Comma-separated Media fields for expanded media, e.g. url,alt_text,type.
stringNo———
poll_fields
Comma-separated Poll fields for an expanded poll, e.g. options,end_datetime.
stringNo———
place_fields
Comma-separated Place fields for an expanded geo.place_id, e.g. full_name,country.
stringNo———

Example configuration

Every value below is the contract’s own example or default — nothing invented.

{
  "max_results": 10,
  "query": "from:xdevelopers -is:retweet"
}

Output

One shape.

result

FieldTypeExample
posts
The Post objects on this page.
array—
count
How many posts this page carried.
number—
next_token
Cursor for the next page; empty on the last one.
string—
result_count
The result count X reported in meta.
number—
includes
Objects pulled in by 'expansions' — users, media, polls, places. Empty when none asked for.
object—
newest_id
Id of the newest post on this page.
string—
oldest_id
Id of the oldest post on this page.
string—
{
  "count": 0,
  "includes": {},
  "newest_id": "",
  "next_token": "",
  "oldest_id": "",
  "posts": [],
  "result_count": 0
}

Notes

  • X API access is tiered and metered: most read endpoints need a paid plan, and since 6 February 2026 new developers get pay-per-use credits rather than a free tier. A 403 here usually means the plan, not the code.
  • The connection's access token must already carry the scopes this node needs; X does not grant them per call, so a missing scope is a 401 on every run.
  • Needs the OAuth2 scopes tweet.read, users.read.
  • Recent search covers 7 days only; anything older needs the full-archive endpoint, which is enterprise-only and not wired up here.

See Search Recent Posts run in a workflow.

In a technical demo we add the X (Twitter) connection, drop the node on the canvas and let Workflow Health pre-flight it before the first real run.