How to scrape X (Twitter) Search with Python
Search X posts. X search operators work. This tutorial gets it with a short Python program and the X (Twitter) Search API. Each successful call costs 1 credit; errors and not-found answers are free.
1. Get an API key
Sign in to get a key and 100 free credits, no card. Then put the key in an environment variable so it stays out of your code:
export SCRAPEIO_API_KEY="your_key_here"2. Set up Python
pip install requests3. Write the code
Save this as scrape.py.
import os
import requests
API_KEY = os.environ["SCRAPEIO_API_KEY"]
URL = "https://scrapeio.com/v1/twitter/search"
params = {"query": "coffee"}
items = []
while True:
r = requests.get(URL, params=params, headers={"x-api-key": API_KEY}, timeout=60)
r.raise_for_status()
data = r.json()["data"]
items += data.get("items", [])
if not data.get("has_more") or not data.get("cursor") or len(items) >= 100:
break
params["cursor"] = data["cursor"]
print(len(items), "items")
print(items[:3])The loop follows data.cursor until data.has_more is false, and stops at 100 items. Each page is one call, so it costs 1 credit.
4. Run it
python scrape.pyThe response has the same envelope on every endpoint: success, cached, credits_used, credits_remaining and data. Shared fields such as handle, followers, plays, likes and created_at have the same names on every platform.
Parameters
| Name | Type | Description |
|---|---|---|
query (required) | string | Search text. |
type | top, latest | Ranking. Default: top. |
cursor | string | Cursor from the previous page's data.cursor. |
Errors and what you pay
| Status | Meaning | Charged |
|---|---|---|
200 | Success | Yes, unless cached |
400 | A parameter is missing or wrong | No |
401 | The key is missing or invalid | No |
402 | Not enough credits | No |
403 | The account or post is private | No |
404 | Not found on the platform | No |
429 | More than 300 requests a minute | No |
502 | Every source is down; retry shortly | No |
Same endpoint in other languages
Node.js · JavaScript · TypeScript · Go · Rust · Java · C# · PHP · Ruby · Kotlin · Swift · R
Prefer no code?
Connect the MCP server to Claude Code, Cursor or Codex and ask in plain English. The agent uses the twitter_search tool for you.
100 free credits, no card. Credits never expire.
Get API keyMore X (Twitter) tutorials in Python
- How to scrape X (Twitter) Profile with Python
- How to scrape X (Twitter) User Tweets with Python
- How to scrape X (Twitter) Tweet with Python
- How to scrape X (Twitter) Replies with Python
- How to scrape X (Twitter) Trends with Python
- How to scrape X (Twitter) Community with Python
- How to scrape X (Twitter) Community Tweets with Python
- How to scrape X (Twitter) Search Posts with Python
- How to scrape X (Twitter) Tweet Transcript with Python