xdataapi.io

All systems operational

Updated 2026-11-04 16:10 UTC. The state comes from a probe outside our network that calls the public API every minute. Same data as JSON: api.xdataapi.io/status.

Public API

Measured from outside our network, every minute.

99.99%success in 7 days
Last 10 min
100.00%
Last check
2026-11-04 16:09 UTC
2026-10-062026-11-04

X

Our own calls to X. Shows if a problem is on X's side or ours.

99.98%success in 7 days
Median latency
371 ms
Last 10 min
100.00%
Last check
2026-11-04 16:09 UTC
2026-10-062026-11-04

Public API

Each target is one HTTPS request with a real key. Health and auth every minute; batch and MCP every 5 minutes.

Target7 daysLast success30 days
auth and ledger100.00%2026-11-04 16:09 UTC
batch read99.95%2026-11-04 16:05 UTC
health100.00%2026-11-04 16:09 UTC
MCP server100.00%2026-11-04 16:05 UTC
profile read99.96%2026-11-04 16:09 UTC

X operations

Profile, user tweets, tweet and search every minute; thread, quotes, followers, following and retweeters every 5 minutes. An operation X refuses for our account tier shows as restricted by X: your call answers 403, costs nothing, and is not counted as a failure.

Operation7 daysMedianLast success30 days
followers100.00%407 ms2026-11-04 16:05 UTC
following100.00%285 ms2026-11-04 16:05 UTC
profile99.97%208 ms2026-11-04 16:09 UTC
quotes99.95%850 ms2026-11-04 16:08 UTC
retweeters100.00%306 ms2026-11-04 16:05 UTC
search99.99%682 ms2026-11-04 16:09 UTC
thread and replies100.00%998 ms2026-11-04 16:08 UTC
tweet99.98%170 ms2026-11-04 16:09 UTC
user tweets99.97%400 ms2026-11-04 16:09 UTC

What we promise

Incidents

Public API unreachable for 9 minutes after a deploy

resolved

2026-09-18 10:43 UTC to 10:52 UTC (9 min)

Impact: Every request to api.xdataapi.io failed at the TLS handshake. No credits were charged. The dashboard and docs stayed up.

Cause: the deploy script of the fetcher service reset the host firewall to its defaults before re-adding rules, and the list of rules only had SSH in it. Ports 80 and 443 were closed from 10:43 UTC. The canary that feeds the status page runs on the host itself and kept passing, so the page showed 100 percent during the outage.

Fix: the two ports were opened by hand at 10:52 UTC. The deploy script no longer resets the firewall; it adds the three rules and leaves the rest alone.

What changed after:

  • An outside probe now calls the public API every minute from a different network and decides the state on this page. The canary on the host only reports the health of X itself.
  • The page shows "unknown" when no probe result is newer than 3 minutes, never a green number from old data.
  • Every deploy ends with a request to the public hostname from outside the host.