[verdict][curated prompt][source: getxapi.com]
Can I vibecode GetXAPI?
// buildable in a weekend, but real gaps stay open
For personal, read-only scale this is genuinely kinda: twscrape plus a throwaway account gets you tweets from a few handles in a weekend. The gaps are the product: X actively fights automated access, so the DIY version breaks whenever X changes something, burns the accounts it runs on, cannot safely post or DM, has no real-time push, and does not scale. You pay for requests that keep working next week.
confidence: high
what it is: Twitter/X data API · tweets, profiles, followers, posting, DMs and real-time webhook monitoring at $0.001/call
Buildability index · an editorial game
- Price 15 $/month weight: plus 2
- Time one weekend weight: plus 2
- Category developer tools no weight
- Moat infrastructure scale · execution quality weight: minus 3
- Confidence high weight: plus 1
- What you lose 5 items weight: minus 2
- Site getxapi.com (si apre in una nuova scheda) no weight
They cancel out. This is where it comes down to how much the subscription annoys you.
Gioco editoriale: il verdetto dice se un agente può, l’indice se conviene.
What you build
A Python CLI that pulls tweets and profiles for a shortlist of handles into SQLite on a cron, using an X account you are willing to lose.
what you need
- a throwaway X account
- patience for re-login breakage
The DIY version works until X notices; the product is the part that keeps working after.
The prompt
A weekend with a coding agent. The gaps that stay are right below, under “what you lose”.
Build me a personal Twitter/X archive tool in Python.
- Use twscrape (pip) for all X access; I will add one or two throwaway
accounts with `twscrape add_accounts` myself. Never use my real account.
- watchlist.txt holds up to 10 handles, one per line.
- An hourly cron entry point `python fetch.py`: for each handle, pull new
tweets since the last stored id and upsert into SQLite (tweets: id, handle,
text, created_at, like_count, retweet_count, is_reply, is_quote).
- Be gentle: shuffle handle order, sleep 5-15s between handles, and back off
for an hour on repeated failures instead of hammering.
- `python export.py <handle>` writes that handle's archive to JSON and CSV.
- A localhost dashboard (Flask, one page): newest tweets across all handles,
a per-handle sparkline of tweets per day, and a search box over a SQLite
full-text index.
- Local only: no cloud, no accounts beyond the burners, no telemetry;
session data stays in twscrape's own store.
- README: setup, the cron line, and a blunt warning that scraping X breaks
routinely and burner accounts get flagged; when fetch.py starts failing,
re-login or swap accounts.
- Explicitly out of scope: posting, DMs, webhooks/streaming, more than ~10
handles, and anything commercial. Curated prompt: written and reviewed by hand for this app. In English on purpose — it is the language coding agents work best in.
What you lose
- reliability: every X change is your outage until you patch it
- account safety: automation flags and burns the login it runs on
- write actions: posting and DMs from a scraper risk real bans
- real-time push: no webhooks, you poll and you lag
- scale: a few handles works, thousands is a different sport
Why people still pay
X retired meaningful free API access and priced the official tiers for enterprises, so everyone else either scrapes or pays someone to keep scraping working. The subscription is not the endpoints, it is the ops: absorbing every anti-bot change, keeping sessions alive, and answering for uptime while you build your actual product.
moat: Infrastructure scale Execution quality what a moat is
anti-bot arms race / maintained access infra
Who has already built it
Starting from here is still vibecoding: the prompt is for when you want it exactly your way.
- twscrape (opens in a new tab) — account-based X scraper, the standard DIY starting point
- twitter-scraper (opens in a new tab) — TypeScript X scraper, no official API
Do you agree?
The vote balance
Ancora nessun voto: il tuo è il primo.
Nessun voto ancora — il primo pesa.