Get an X Space

GET /v1/x/spaces/{id}

Returns a Space (a live audio room): its title, state (NotStarted, Running, or Ended), schedule, host, speakers, and audience counts, and whether a replay is available. Listeners are included only with listeners=true. 404 when the Space does not exist. Billed per Space returned.

Price: 1 credit per call, plus 2 credits per X space returned. Failed and refused calls cost nothing.

Rate limit: Counts as 1 request against your per-minute rate limit.

MCP tool: get_x_space, on every MCP connection.

Requires an API key, sent as Authorization: Bearer <key>.

Request

curl --request GET \
  --url https://api.weirapp.io/v1/x/spaces/ID \
  --header "Authorization: Bearer $WEIR_API_KEY"

Path parameters

Field Type Required Notes
id string yes Space id: the code after /i/spaces/ in a Space's URL. · matches ^[A-Za-z0-9]{8,20}$

Query parameters

Field Type Required Notes
listeners string no Include the listener list. Off by default: it can be long, and it names individuals who only listened. · true, false, default "false"

Response

One X Space.

200

Field Type Required Notes
data object yes
data.id string yes
data.url string yes https://x.com/i/spaces/{id}.
data.state string or null yes X's lifecycle state, such as NotStarted, Running, or Ended.
data.title string or null yes
data.createdAt string or null yes
data.scheduledStart string or null yes
data.startedAt string or null yes
data.endedAt string or null yes
data.updatedAt string or null yes
data.creatorId string or null yes
data.creator object or null yes
data.creator.id string yes
data.creator.username string yes
data.creator.name string yes
data.creator.verified boolean yes
data.creator.followersCount integer yes min 0
data.creator.profileImageUrl string or null yes
data.isLocked boolean or null yes
data.disallowJoin boolean or null yes
data.isSpaceAvailableForReplay boolean or null yes
data.isSpaceAvailableForClipping boolean or null yes
data.totalLiveListeners integer or null yes min 0
data.totalReplayWatched integer or null yes min 0
data.participantCount integer or null yes min 0
data.participants object yes
data.participants.admins array of object yes Hosts and co-hosts.
data.participants.admins[].id string or null yes
data.participants.admins[].username string or null yes
data.participants.admins[].name string or null yes
data.participants.admins[].profileImageUrl string or null yes
data.participants.admins[].verified boolean or null yes
data.participants.admins[].isMutedByAdmin boolean or null yes
data.participants.admins[].isMutedByGuest boolean or null yes Muted their own microphone.
data.participants.speakers array of object yes
data.participants.speakers[].id string or null yes
data.participants.speakers[].username string or null yes
data.participants.speakers[].name string or null yes
data.participants.speakers[].profileImageUrl string or null yes
data.participants.speakers[].verified boolean or null yes
data.participants.speakers[].isMutedByAdmin boolean or null yes
data.participants.speakers[].isMutedByGuest boolean or null yes Muted their own microphone.
data.participants.listeners array of object yes Empty unless listeners were requested with listeners=true.
data.participants.listeners[].id string or null yes
data.participants.listeners[].username string or null yes
data.participants.listeners[].name string or null yes
data.participants.listeners[].profileImageUrl string or null yes
data.participants.listeners[].verified boolean or null yes
data.participants.listeners[].isMutedByAdmin boolean or null yes
data.participants.listeners[].isMutedByGuest boolean or null yes Muted their own microphone.
meta object yes
meta.requestId string yes
meta.nextCursor string or null no

Errors

Status Meaning What to do
400 The request failed validation. The request was malformed. The details object names the field.
401 The API key is missing, malformed, expired, or revoked. The key is missing, malformed, revoked, or expired.
402 The account is out of credit. Not retryable: this cannot clear until the billing period resets or the plan changes. Out of credits. Never retry. Only a person can clear it, by adding credits at https://weirapp.io/dashboard/billing. Retrying never will.
403 The API key does not carry the scope this route requires. The key is valid but lacks the scope this operation needs.
404 The requested resource does not exist. No such resource, or it is not public.
429 The per-minute rate limit is exhausted. Retryable: wait for Retry-After and try again. Rate limited. Retryable: wait for Retry-After, then try again.
500 An unexpected error occurred. Something failed on our side. Retryable with backoff.
503 The source is temporarily unavailable. The request is safe to retry. A source was unreachable. Retryable with backoff.

View this page as Markdown