Real-time X monitoring API

Know what an account posted before the refresh

Name the X accounts you care about. New posts reach your socket in real time, and replies, reposts, deletions, profile edits and follow changes arrive on the same connection. Ask for profiles, posts, searches, lists and trends whenever you need them.

Self-hosted infrastructure. No third-party data reseller in the path Public data only. We never post or interact on your behalf
wss://ws.xsignalfeed.com/v1/stream
{ "t": "tweet.create", "op": "create",
  "target": { "screen_name": "Reuters" },
  "d": { "text": "Fed holds rates steady…" } }
tweet.create@Reuters — Fed holds rates steady…662 ms
tweet.reply@elonmusk → @WholeMarsBlogreply
profile.bio@a16z changed its bioprofile
follow.add@naval now follows @patrickcfollow

Why this exists

Watching X yourself is a job, not a feature

Rate limits decide your speed

Reading timelines costs quota. Watch fifty accounts closely and you are rationing requests, not building product. We carry that so you never see the ceiling.

Real time is an operation, not an endpoint

Being told the moment an account posts takes infrastructure that has to be kept alive every day. That is the part we run.

Silence looks exactly like calm

A stalled feed and a quiet account are indistinguishable from outside. Every account we watch is covered by several independent paths, and we alert on the absence of events, not just on errors.

How it works

Name the accounts. Open one connection.

Everything an account does becomes an event with a stable id and a typed payload. You choose which accounts, which event types, and whether you want them on a socket or at a webhook.

  1. Add an account

    One POST with a handle. We resolve it and activate delivery, usually within a minute, with nothing for you to configure. Add up to a hundred at once.

  2. Open a WebSocket, or register a webhook

    One connection carries every event for every account and keyword on your key. No subscribe handshake, no channel bookkeeping.

  3. Handle events by id

    Each event has a stable id. Store the last position you processed and pass it back after a disconnect to replay what you missed.

Real time, and everything else

Posts as they happen, changes as soon as they can be seen

New posts are delivered in real time. Replies, deletions, profile edits and follow-graph changes follow as soon as they become visible. Every event type documents whether it can arrive in two frames — a thin first frame to act on, then the full payload — so you can build for speed without guessing.

We publish behaviour, not benchmarks. What each event type contains and how it is delivered is in the documentation; how fast we are is something to measure on your own account during a trial, not to read off a marketing page.

What you receive

Seventeen event types, one envelope

EventFires whenNotable payload
tweet.createThe account postsText, media, link preview, the post URL
tweet.retweet
tweet.quote
It amplifies someoneThe original post in full, not just its id
tweet.replyIt replies to anyoneThe post being replied to, with its text and media
tweet.deleteA post disappearsThe id and the URL it used to have
profile.*Avatar, banner, bio, name, handle, link, location, pinned post or verification changesOld and new value side by side
follow.add
follow.remove
It follows or unfollows someoneThe other account's full profile
followers.verified.addA verified account follows itBio, counts, location, join date
search.matchAnyone posts something matching a query you watchThe post, the author's profile, the keyword that matched

Beyond accounts

Watch a phrase, not just a person

Register a query in X's own search syntax and every new public post matching it arrives as an event. Any language, any script — no English-only restriction. We read the chronological tab, so you get what was just posted rather than what is popular.

watch a ticker, excluding the noise
curl -X POST https://api.xsignalfeed.com/v1/keywords \
  -H "X-API-Key: xsf_your_key" -H "Content-Type: application/json" \
  -d '{"query": "($SOL OR \"Solana\") -filter:retweets -filter:replies", "label": "solana"}'

Integrating

Three ways in, whichever suits your runtime

WebSocket

The primary path. One connection, every event, replay from your last position after a disconnect. This is what you want for anything latency-sensitive.

Webhooks

We POST each event to your HTTPS endpoint, signed with HMAC-SHA256 over the raw body. Three retries, then it is yours to catch up via replay.

REST

Ask rather than wait: profiles, posts, replies, quotes, reposters, threads, followers, following, mentions, search, lists, communities, trends.

async with websockets.connect("wss://ws.xsignalfeed.com/v1/stream?api_key=…") as ws:
    async for raw in ws:
        ev = json.loads(raw)
        if ev["t"] == "tweet.create":
            trade(ev["target"]["screen_name"], ev["d"]["text"])

Who uses it

Built for people who act on a post, not just read it

Trading desks

A founder's post moves a price before it reaches a news feed. The push channel is the difference between acting on it and reading about it.

Brand and risk teams

A quietly edited bio, a deleted post or a new high-profile follower is often the first sign of a story forming.

Research and OSINT

Follow-graph changes across a set of accounts, captured continuously, tell you about relationships months before anyone announces one.

Reliability

Designed for the day a machine dies

Redundant by default

Every account you monitor is covered by several independent paths. Losing one changes nothing you can observe.

Work moves on its own

Collection runs across a fleet of machines. Take one away and its share is reassigned automatically, with no gap in the stream.

Absence is an alarm

We watch for events that should have arrived and did not, and repair the path before you notice.

Public status

Component health is public and unauthenticated at status.xsignalfeed.com.

Worth knowing before you build

What this is not

Questions

Frequently asked

How fast is it?

New posts are delivered in real time; replies, deletions, profile edits and follow-graph changes follow as soon as they become visible, with the ultra tier giving an account the highest refresh priority. We do not publish benchmark figures: measure it on your own accounts during a trial.

What is the ultra tier?

A per-subscription setting that gives one account the highest refresh priority for the event types that are not delivered instantly. It never affects what other customers receive.

Does adding an account require anything from me?

One API call with the handle. We resolve it, place it on collector accounts, follow it and enable notifications automatically, typically within a minute.

What happens if my service is down?

Every event carries a stream position. Store the last one you processed and pass it back on reconnect to receive everything you missed. The replay log holds 24 hours; the REST event history holds 30 days.

Is this the official X API?

No. xSignalFeed is an independent service, not affiliated with, endorsed by, or sponsored by X Corp. We read public data only.

What does it cost?

Pricing is set per account during the access process, based on how many accounts you monitor and which tier you need. Ask us and you will get a real number, not a quote form.

Getting started

Request access

We onboard accounts deliberately, because every monitored handle consumes real collector capacity. Tell us roughly how many accounts you want to watch and what you are building, and we will send a key with a trial allowance.

Already have a key? GET /v1/account tells you what it can do, and the quickstart has you streaming in about five minutes.