# X Space Scraper | $0.00015/Space | Pay-Per-Result (`xquik/x-space-scraper`) Actor

Find X (Twitter) Spaces by keyword, host or hashtag, or read Spaces by URL or ID, from $0.00015 per delivered Space on every Apify plan. Get titles, states, times, listener counts, hosts & speakers. No X login. World's fastest & cheapest X (Twitter) scraper service. Not affiliated with X Corp.

- **URL**: https://apify.com/xquik/x-space-scraper.md
- **Developed by:** [Xquik](https://apify.com/xquik) (community)
- **Categories:** Social media, Lead generation, Automation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.00015 / spaces

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

**English** ·
[Español](https://github.com/Xquik-dev/x-twitter-scraper/blob/master/apify/x-space-scraper/README.es.md)
·
[Türkçe](https://github.com/Xquik-dev/x-twitter-scraper/blob/master/apify/x-space-scraper/README.tr.md)
·
[简体中文](https://github.com/Xquik-dev/x-twitter-scraper/blob/master/apify/x-space-scraper/README.zh-CN.md)
·
[日本語](https://github.com/Xquik-dev/x-twitter-scraper/blob/master/apify/x-space-scraper/README.ja.md)
·
[한국어](https://github.com/Xquik-dev/x-twitter-scraper/blob/master/apify/x-space-scraper/README.ko.md)
·
[Deutsch](https://github.com/Xquik-dev/x-twitter-scraper/blob/master/apify/x-space-scraper/README.de.md)
·
[Français](https://github.com/Xquik-dev/x-twitter-scraper/blob/master/apify/x-space-scraper/README.fr.md)
·
[Italiano](https://github.com/Xquik-dev/x-twitter-scraper/blob/master/apify/x-space-scraper/README.it.md)

[![Framer connects Xquik MCP to coding agents](https://img.youtube.com/vi/4UOSpoOoC3Y/maxresdefault.jpg)](https://youtu.be/4UOSpoOoC3Y?t=367)
[Watch how Framer uses Xquik scrapers](https://youtu.be/4UOSpoOoC3Y?t=367) with
Claude Code, Codex, Cursor, and more, from 6:07.

Xquik is the world's fastest & cheapest X (Twitter) scraper service with the
most complete X data. Xquik's X Space Scraper finds Spaces by keyword, host or
hashtag & reads Spaces by URL or ID. Most other Apify Actors charge before
filtering or deduplicating. Xquik charges only for delivered, unique results.

Find Twitter Spaces about any topic, live, scheduled or ended. You need no X API
key or login. You pay **$0.00015 per delivered Space**, & Apify bills platform
usage separately.

> Xquik is an independent third-party service. Not affiliated with X Corp.
> "Twitter" and "X" are trademarks of X Corp.

### Space data

- Title, state & the scheduled, start & end times of each Space.
- Live listener count, replay plays & the accounts in the Space now.
- The host's public profile, co-hosts, speakers & listeners X lists.
- Replay, clipping & lock settings, plus the post that announces the Space, with
  its text, counts & author.
- Posts the hosts & speakers shared in the Space, with who shared each & when.
- Duplicate removal before billing: a Space that 2 search terms find is 1 row.

### How to find X Spaces

1. Open Xquik's X Space Scraper in Apify Console.
2. Enter words, hashtags or X search operators in `searchTerms`.
3. Or paste Space URLs in `startUrls`, or Space IDs in `spaceIds`.
4. Set `maxItems` to cap delivered Spaces, then click Start.
5. Download the dataset as JSON, CSV or Excel, or use the Apify API.

### Input

```json
{
  "searchTerms": ["bitcoin", "from:solana"],
  "queryType": "Latest",
  "maxItems": 1000
}
```

A search term finds the Spaces that matching posts share. It takes the operators
X search takes:

| Goal                               | Search term        |
| ---------------------------------- | ------------------ |
| Spaces about a topic               | `bitcoin`          |
| Spaces an account shares           | `from:solana`      |
| Spaces under a hashtag             | `#AI`              |
| Spaces in 1 language               | `startups lang:es` |
| Spaces that well-liked posts share | `nba min_faves:50` |

`queryType` picks which posts lead: `Latest` for the newest, `Top` for the most
engaging.

Read Spaces you already know by URL or ID:

```json
{
  "startUrls": [{ "url": "https://x.com/i/spaces/1OGwblLjnQMKB" }],
  "spaceIds": ["1OGwblLjnQMKB"]
}
```

Small runs that go well skip `run-report` & save Apify usage. Turn on
`alwaysSaveRunRecords` to write it on every run.

### Output

Each row holds 1 Space & its search term, URL or ID in `sourceTarget`.

Examples use sample values. Results reflect live data. A Space row looks like
this:

```json
{
  "id": "1SampleSpace1",
  "title": "Sample Space about bitcoin",
  "state": "Ended",
  "startedAt": "2026-03-11T17:00:26.227Z",
  "endedAt": "2026-03-11T17:49:29.190Z",
  "totalLiveListeners": 841,
  "totalReplayWatched": 609,
  "isAvailableForReplay": true,
  "creator": { "username": "sample_host", "name": "Sample Host" },
  "admins": [{ "username": "sample_host", "name": "Sample Host" }],
  "speakers": [{ "username": "sample_speaker", "name": "Sample Speaker" }],
  "listeners": [],
  "sharings": [
    {
      "id": "2106511178339881415",
      "sharedAt": "2026-03-11T17:20:16.658Z",
      "sharedBy": { "username": "sample_speaker", "name": "Sample Speaker" },
      "tweet": { "id": "2105620368836706789", "text": "Sample shared post" }
    }
  ],
  "resultType": "space",
  "sourceTarget": "bitcoin"
}
```

`state` holds 1 of 5 values, as X names them:

| `state`      | The Space                                |
| ------------ | ---------------------------------------- |
| `NotStarted` | Is scheduled & carries `scheduledStart`. |
| `Running`    | Is live now.                             |
| `Ended`      | Is over. Its host ended it.              |
| `TimedOut`   | Is over. X closed it, not its host.      |
| `Canceled`   | Was scheduled & never started.           |

`Ended` & `TimedOut` Spaces carry `endedAt`, & both can keep a recording. X
shows a Space for subscribers or a Community only to its audience, so those
Spaces return no row.

### How much does it cost to scrape X Spaces?

Every Apify plan costs $0.00015 per delivered Space. Apify bills your platform
usage separately.

- One charge per delivered data row. Diagnostics are free in `diagnostics`.
- No start, search or page fee.
- Deduplication runs before billing.

### Limits & recovery

Interrupted extraction writes a free `partial` diagnostic. Available results
stay intact. Read `availableResults`, `failedTargets`, `retryable` &
`nextAction` before you retry. A successful Actor exit confirms delivery, not
complete extraction.

The run status names every cause of an early stop. `stopCauses` lists each cause
with its own `message`, `retryable` & `nextAction`. The causes are
`target_not_found`, `target_failed`, `pagination_safety_limit` &
`deadline_reached`. A missing target joins the list only when another cause
stopped the run. The run is `retryable` when any cause is.

### Related Xquik Actors

Every Xquik Actor shares the same extraction engine, filter-first billing &
diagnostics. Pick the one that matches the data you need.

- [X Tweet Scraper](https://apify.com/xquik/x-tweet-scraper): Scrapes tweets
  from searches, profile timelines, Lists & tweet IDs with 50+ filters & flat
  exports. Use it when you need tweet data without analysis. From $0.00015 per
  row.
- [X Profile Scraper](https://apify.com/xquik/x-profile-scraper): Scrapes
  profiles plus their posts, replies, media & followers from handles, IDs or
  URLs. Use it when you start from accounts rather than searches. From $0.00015
  per row.
- [X Reply Scraper](https://apify.com/xquik/x-reply-scraper): Scrapes replies,
  comments & whole conversations under posts with 25+ filters. Use it when you
  need the discussion beneath tweets. From $0.00015 per row.
- [X Engagement Scraper](https://apify.com/xquik/x-engagement-scraper): Scrapes
  replies, quotes, retweeters & threads for post URLs or IDs in bulk. Use it
  when you measure who engaged with posts. From $0.00015 per row.
- [X Follower Scraper](https://apify.com/xquik/x-follower-scraper): Scrapes
  followers, following, List members, subscribers & Community members as profile
  rows. Use it when you need audience or member lists. From $0.00015 per
  profile.
- [X User Search Scraper](https://apify.com/xquik/x-user-search-scraper):
  Searches users by handle, bio & location with follower, verification, age &
  location filters. Use it when you build account lists from search. From
  $0.00015 per profile.
- [X List Scraper](https://apify.com/xquik/x-list-scraper): Scrapes List posts,
  members & followers from List URLs or IDs. Use it when a curated List defines
  your sources. From $0.00015 per row.
- [X Community Scraper](https://apify.com/xquik/x-community-scraper): Scrapes
  Community info, posts, searches, members & moderators. Use it when your
  sources are X Communities. From $0.00015 per row.
- [X Trends Scraper](https://apify.com/xquik/x-trends-scraper): Scrapes
  real-time trends by location with rank, volume, query & WOEID. Use it when you
  track what is trending where. From $0.00015 per trend.
- [X Jobs Scraper](https://apify.com/xquik/x-job-scraper): Scrapes X job
  listings by keyword, place, workplace, seniority & company, with salaries &
  apply links. Use it when you collect job openings posted on X. From $0.00015
  per job.
- [X Article Scraper](https://apify.com/xquik/x-article-scraper): Scrapes
  long-form X Articles as Markdown & text with covers, authors, dates & metrics.
  Use it when you need article bodies, not tweets. From $0.00015 per article.
- [X Media Downloader](https://apify.com/xquik/x-media-downloader): Extracts or
  stores photos, videos & GIFs from posts or profiles with MP4 & metadata
  options. Use it when you need the media files themselves. From $0.00015 per
  media row.
- [X (Twitter) Brand Monitoring with AI Analysis](https://apify.com/xquik/x-twitter-brand-monitoring):
  Tracks brand mentions with AI relevance, sentiment & customer-experience
  answers & compares runs. Use it when you watch a brand over time. From $0.0003
  per analyzed tweet.
- [X Tweet Sentiment Analysis with AI](https://apify.com/xquik/x-tweet-sentiment-analysis):
  Labels attitude, intensity & sarcasm probability for every tweet with AI. Use
  it when you need general sentiment on any topic. From $0.0003 per analyzed
  tweet.
- [X (Twitter) Stock & Crypto AI Trading Signals](https://apify.com/xquik/x-twitter-stock-crypto-signals):
  Labels bullish, bearish, neutral or mixed stance, content type, conviction &
  asset relevance with AI. Use it when you follow stocks, crypto or trading
  talk. From $0.0003 per analyzed tweet.
- [X (Twitter) News Monitor with AI Analysis](https://apify.com/xquik/x-twitter-news-monitor):
  Labels news posts by format, source attribution & topic relevance with AI. Use
  it when you separate reporting from commentary. From $0.0003 per analyzed
  tweet.
- [X Tweet Classifier with AI Analysis](https://apify.com/xquik/x-twitter-tweet-classifier):
  Answers your own category, score & yes/no questions for every tweet with AI.
  Use it when the preset analyses do not fit your labels. From $0.0003 per
  analyzed tweet.
- [X Tweet Viral Score Analyzer with AI](https://apify.com/xquik/x-tweet-viral-score-analyzer):
  Estimates a Viral Score from 0 to 100 & a verdict for every tweet from 8 AI
  trait answers. Use it when you study why tweets spread or flop. From $0.0003
  per analyzed tweet.

### FAQ

Answers to common questions, then where to get help.

#### Do I need an X API key or login?

No. Xquik's X Space Scraper needs no X API key, login or credentials.

#### Can I find Spaces that are live now?

Yes. Search with `queryType` set to `Latest`, then keep the rows whose `state`
is `Running`. Rows with `NotStarted` are scheduled & carry `scheduledStart`.

#### Is it legal to scrape X Spaces?

Xquik's X Space Scraper requests public X fields. Results can contain personal
data. Confirm a lawful purpose & follow applicable privacy rules. Ask qualified
counsel when uncertain.

#### Why did my run return no results?

Open the free `diagnostics` output first. An empty run's status says to check
your targets. `stopCauses` gives each cause a `nextAction` to follow.

#### Can I use the API, schedules & integrations?

Yes. Use the Apify API or the Xquik REST API. The
[API tab](https://apify.com/xquik/x-space-scraper/api) has Python, JavaScript &
cURL examples. Apify [schedules](https://docs.apify.com/platform/schedules) run
Xquik's X Space Scraper on a cron. Agents use
[Apify MCP](https://docs.apify.com/platform/integrations/mcp). Use `latest`
unless you need an older build.

#### Where do I get help?

Open an issue on the Actor page or contact <support@xquik.com> with the run ID.
Free diagnostics in the key-value store explain empty, partial or interrupted
runs.

#### Can I get a custom solution?

Yes. Visit [xquik.com](https://xquik.com) or read the
[API docs](https://docs.xquik.com/introduction). They cover the dashboard, API,
MCP server & webhooks.

# Changelog

This Actor's version history is a separate document: https://apify.com/xquik/x-space-scraper/changelog.md

# Actor input Schema

## `searchTerms` (type: `array`):

Words, hashtags or X search operators, such as bitcoin or from:solana. Each Space that matching posts share is 1 row.

## `startUrls` (type: `array`):

Public x.com or twitter.com Space URLs. The field accepts strings and {"url":"..."} objects.

## `spaceIds` (type: `array`):

X Space IDs, as in x.com/i/spaces/<id>.

## `queryType` (type: `string`):

Latest finds Spaces that the newest matching posts share. Top finds Spaces that the most engaging posts share.

## `maxItems` (type: `integer`):

Global delivered-Space cap across every search term, URL and ID. The form starts at 1,000. A run can return 100,000 rows & more, so raise it for a full export.

## `maxItemsPerTarget` (type: `integer`):

Optional delivered-Space cap for each search term.

## `dedupeAcrossTargets` (type: `boolean`):

Remove repeated canonical rows before billing.

## `maxConcurrency` (type: `integer`):

How many search terms and Spaces to process at once. The default is the fastest safe setting.

## `alwaysSaveRunRecords` (type: `boolean`):

Save run-report on every run. When off, small runs that go well skip it & cost less.

## Actor input object example

```json
{
  "searchTerms": [
    "bitcoin"
  ],
  "spaceIds": [
    "1OGwblLjnQMKB"
  ],
  "queryType": "Latest",
  "maxItems": 1000,
  "dedupeAcrossTargets": true,
  "maxConcurrency": 100,
  "alwaysSaveRunRecords": false
}
```

# Actor output Schema

## `results` (type: `string`):

Unique delivered rows. Filters and deduplication run before billing.

## `diagnostics` (type: `string`):

Free actionable diagnostics for empty, partial, invalid, aborted, or recovered runs. A partial diagnostic lists each stop cause in stopCauses. Real results remain in the dataset.

## `runReport` (type: `string`):

Outcome, completion reason, counts, duration, and privacy-safe anomalies. A run writes it when it hits a problem, is large or has Always save run records on. Small runs that go well skip it & state the outcome in their status.

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "searchTerms": [
        "bitcoin"
    ],
    "maxItems": 1000
};

// Run the Actor and wait for it to finish
const run = await client.actor("xquik/x-space-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "searchTerms": ["bitcoin"],
    "maxItems": 1000,
}

# Run the Actor and wait for it to finish
run = client.actor("xquik/x-space-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "searchTerms": [
    "bitcoin"
  ],
  "maxItems": 1000
}' |
apify call xquik/x-space-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,xquik/x-space-scraper"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/14UH7xQfmrNd3sj9P/builds/rRREPPSFwV2YEqxsO/openapi.json
