x-search

The posts X (Twitter) returns for a search, one row per post, in X's order: id, link, text, time, author, counts, views, language, media, and whether it is a reply, a quote or a repost. query is X search text (rust lang, from:nasa since:2026-10-01); mode latest or top; limit up to 100. session is your X login (auth_token and ct0, from the Crawl4AI Session extension), for this run only. Without it, only from:<account> (since:/until: allowed) in mode latest: the account's timeline, newest first; older days via a slower second source. Other queries are refused, not billed.

stagedx.comWASM module16 fields1 unit + 1 per 20 posts; or recordsfresh 2 min
‹ Recipes
…json
POST api.crawl4ai.com/recipes/…

$ crawl recipe

              
Live · your key · counts against your quota✓ 200 OK
# Hit Run - the rows render here as a table, with the cost

Fields

16 columns on every row. null means the site does not state it.
fieldtypemeaning
idstringX's id of the post, as text (the number is too long for some JSON readers).
urlstringThe post's link: https://x.com/<author>/status/<id>.
textstringThe post's whole text, a long post included; the media link X adds at the end is removed.
createdstringWhen the post was published, ISO 8601 UTC.
authorstringThe author's handle, without the @.
author_namestringThe author's display name.
likesintegerThe likes count when read.
repostsintegerThe reposts count when read.
repliesintegerThe replies count when read.
quotesintegerHow many posts quote this post.
viewsintegerThe views count; null when X hides it; on the second source it can be the provider's rounded number.
languagestringX's language code for the text (en, ja; und = not known, qme = media only); null without a session.
mediastring[]The post's media as URLs in X's order: a photo's image, a video's or GIF's MP4 file; empty when none.
is_replybooleanTrue when the post replies to another post.
is_quotebooleanTrue when the post quotes another post.
is_repostTrue when the row is a repost of another post; X's search lists none, the no-session second source lists the account's reposts too.

null means the site does not state it.

idstringX's id of the post, as text (the number is too long for some JSON readers).
urlstringThe post's link: https://x.com/<author>/status/<id>.
textstringThe post's whole text, a long post included; the media link X adds at the end is removed.
createdstringWhen the post was published, ISO 8601 UTC.
authorstringThe author's handle, without the @.
author_namestringThe author's display name.
likesintegerThe likes count when read.
repostsintegerThe reposts count when read.
repliesintegerThe replies count when read.
quotesintegerHow many posts quote this post.
viewsintegerThe views count; null when X hides it; on the second source it can be the provider's rounded number.
languagestringX's language code for the text (en, ja; und = not known, qme = media only); null without a session.
mediastring[]The post's media as URLs in X's order: a photo's image, a video's or GIF's MP4 file; empty when none.
is_replybooleanTrue when the post replies to another post.
is_quotebooleanTrue when the post quotes another post.
is_repostTrue when the row is a repost of another post; X's search lists none, the no-session second source lists the account's reposts too.

How it behaves

Cost. 1 unit + 1 per 20 posts; or records. A failed run costs 0.

Freshness 2 min. The same input within 2 min is served from cache at 0 units.

How it answers. Answers at once for one input; a large run goes as a job you poll.

Questions about this recipeQuestions

Short answers. The API reference has the long ones.

Call POST /recipes/x-search with your key and query and limit and mode. You get rows with the 16 fields above. The recipe is tested against the live site every 6 hours.

Need more from X?

Extra fields, higher volume, or a private copy with a freshness SLA. We build it on Enterprise.

Request a change

For developers

Get a free API key and run your first crawl.

1,000 credits every month. No credit card. Your self-hosted setup keeps working.

For teams

Talk to us about volume, regions and an SLA.

A 30-minute call with the team that writes the crawler. DPA on request, invoice billing, your choice of US, EU or Singapore.