Tweets
Twitter spaces search API: find X spaces by keyword
Find public Twitter or X Spaces by keyword, host, or topic. Get each Space’s title, state, times, listener counts, hosts, and speakers. 1 credit per Space.
- 200
- 400
- 401
- 402
- 424
- 429
- 502
- 503
GET
Twitter spaces search API: find X spaces by keyword
Requested result counts are upper bounds for paid authenticated calls. When remaining credits cannot cover the full page, Xquik returns fewer results. If zero paid results are affordable, it returns
402 insufficient_credits.1 credit per Space returned · All plans from $0.00012/credit
spaceRows or
space_rows with nextCursor or next_cursor before requesting the next page.
Find Spaces by keyword, host, or topic
UseGET /x/spaces/search when you know a topic or a host but not a Space ID.
It returns the public Spaces that posts matching your query share. A Space can
be live, scheduled, or ended.
Each page reads up to pageSize posts, 20 by default, and returns each Space
once, in the order the posts share them. Posts often share the same Space, so a
page returns fewer Spaces. Send pageSize=100 to read a search fastest. Follow
next_cursor
while has_next_page is true.
Each Space carries the id that Get Space takes. Store the id,
since a title can change. Use state to tell a live Space from a scheduled or
ended one.
A Space X limits to subscribers or a community stays out of the results. An
empty spaces array with has_next_page: false means X has no more Spaces for
your query. It costs nothing.
Query parameters
string
required
Words, hashtags, or X search operators, such as
from:solana. The search adds
filter:spaces. Alias: query.string
default:"Latest"
Latest sorts by post time. Top ranks by engagement. Any case works.
Aliases: result_type, sort_order, type, search_type, product,
category & section.string
Pagination cursor from a previous response. Omit for the first page.
integer
default:"20"
Posts a page reads, 20 at a time. Range:
1-100. Posts often share the same
Space, so a page returns fewer Spaces. Send 100 to read a search fastest.
Aliases: limit, count, max_results, maxItems, max_items & per_page.Headers
string
Full account key. Sessions and OAuth also work.
string
Bearer xq_your_guest_key_here for paid_reads.Response
200 OK
object[]
Public Spaces, in the order the posts share them.
Space object fields.
string
Space ID.
string
Space title.
string
NotStarted (scheduled), Running (live), Ended, Canceled (scheduled, never started) or
TimedOut (closed by X, not by its host).string
When the Space was made.
string
When the Space was set to start.
string
When the Space went live.
string
When the Space ended.
string
When X last changed the Space.
number
Accounts that listened live.
number
Accounts that played the recording.
number
Accounts in the Space now, while it is live.
boolean
Whether X offers a recording.
boolean
Whether listeners may clip the Space.
boolean
Whether the host locked the Space.
boolean
Whether only X employees may join.
boolean
Whether X lets no more accounts join.
boolean
Whether anonymous listening is off.
string
Audio or video kind, as X names it.
number
X’s code for who may speak.
number
Most hosts and co-hosts the Space allows.
string
X’s media key for the Space’s audio.
string[]
IDs of the accounts the host tagged.
string
ID of the post that announces the Space.
object
The post that announces the Space, with the fields of Get Tweet.
Present only when X names the post.
object[]
Hosts and co-hosts. Each has
id, username and name, plus profilePicture, badge fields and
joinedAt when X sends them.object[]
Accounts X lists as speakers, with the same fields as
admins.object[]
Accounts X lists as listeners, with the same fields as
admins.object[]
Posts the hosts and speakers shared in the Space, in X’s order. Present only when X lists them.
Each has
id, X’s ID of the sharing, plus sharedAt and updatedAt. sharedBy is the profile
that shared it, with the fields of Get User. tweet is
the post, with the fields of Get Tweet. X leaves out tweet when it
no longer shows the post.boolean
Whether more results are available.
string
Cursor for the next page.
400 Missing query
401 Unauthenticated
Anonymous requests getWWW-Authenticate: Bearer and a guest wallet checkout action. This is not a Payment challenge.
402 Payment required
Account keys get account options. Guest keys get guest top-up only. No checkout starts automatically. Confirm any payment action.502 X API unavailable
503 Service busy
Retry-After, then retry.
429 Rate limit exceeded
Retry-After when present. Otherwise, use the JSON retryAfter field.
424 Dependency failed
xquik-api-contract: 2026-04-29 to opt in. Default v1 returns 502.
Twitter Spaces search questions
How do I search Twitter Spaces by keyword?
CallGET /x/spaces/search with your words in q. Each result is a public
Space with its ID, title, state, times, and hosts.
How do I find the Spaces 1 account hosted or shared?
Sendq=from:username. The search returns the Spaces that account’s posts
share.
How much does a Space search cost?
Each returned Space costs 1 credit. An empty page costs nothing.Does Space search return live Spaces only?
No. It returns live, scheduled, and ended Spaces. Readstate to tell them
apart.
Why does a page hold fewer Spaces than pageSize?
A page reads up to pageSize posts and returns each Space once. Several posts can
share 1 Space, and limited Spaces stay out.
Does this replace X’s official API?
No. This page documents Xquik, an independent third-party service. It does not document X’s official API.Next steps. Pass a Space
id to Get Space to read that Space again, such as when it goes live or ends. For a live video, use Get broadcast.