xdataapi.io

All systems operational

Updated 2026-09-20 14:50 UTC. The state comes from a probe outside our network that calls the public API every minute. Raw numbers: api.xdataapi.io/status.

Public API

Measured from outside our network, every minute.

99.97%of 10,413 checks in 7 days
Last 10 min
100.00%
Last check
2026-09-20 14:49 UTC
2026-08-222026-09-20

X

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

99.99%of 19,597 checks in 7 days
Median latency
365 ms
Last 10 min
100.00%
Last check
2026-09-20 14:50 UTC
2026-08-222026-09-20

Public API

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

Target7 daysChecksLast success30 days
auth and ledger99.97%3,0632026-09-20 14:49 UTC
batch read100.00%6122026-09-20 14:45 UTC
health99.97%3,0632026-09-20 14:49 UTC
MCP server100.00%6122026-09-20 14:45 UTC
profile read99.97%3,0632026-09-20 14:49 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 daysChecksMedianLast success30 days
followers100.00%554479 ms2026-09-20 14:46 UTC
following100.00%554283 ms2026-09-20 14:46 UTC
profile100.00%4,450361 ms2026-09-20 14:49 UTC
quotes100.00%458851 ms2026-09-20 14:49 UTC
retweeters99.82%554326 ms2026-09-20 14:46 UTC
search100.00%3,508600 ms2026-09-20 14:50 UTC
thread and replies100.00%619604 ms2026-09-20 14:49 UTC
tweet100.00%4,450182 ms2026-09-20 14:49 UTC
user tweets100.00%4,450490 ms2026-09-20 14:49 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.