Mock XML endpoint returning HTTP 429
https://demo-xml-429.supercrontab.com/ answers every request with HTTP 429 Too Many Requests and a small XML body. No signup, CORS enabled, nothing logged. Use it to see how your client, retry logic or cron job behaves on a 429 before it happens in production.
Live demo endpoint
Any method, any path. Returns 429 Too Many Requests with Content-Type: application/xml. OPTIONS returns 204 with CORS headers.
Call it with curl
curl -i https://demo-xml-429.supercrontab.com/
Call it with fetch
const res = await fetch("https://demo-xml-429.supercrontab.com/");
console.log(res.status); // 429
const body = await res.text();What HTTP 429 Too Many Requests means
- When you see it
- You hit a rate limit. Most APIs send a Retry-After header or X-RateLimit-Reset telling you when to come back.
- What a client should do
- Wait for Retry-After, or back off exponentially with jitter, then retry. Queue work instead of hammering.
- Retry?
- Once, after a delay
Sample response body
<?xml version="1.0" encoding="UTF-8"?> <response> <ok>true</ok> <id>42</id> </response>
Common in SOAP, payment and legacy enterprise APIs. Good for testing XML parsers and namespaces.
Questions
Does this endpoint really return HTTP 429 every time?
Yes. Every GET, POST, PUT, PATCH or DELETE to https://demo-xml-429.supercrontab.com/ gets status 429 Too Many Requests with a small XML body, whatever the path, query or headers. OPTIONS gets 204 with CORS headers so browsers can preflight.
Should my client retry a 429?
Only after a delay, and only for idempotent requests. Wait for Retry-After, or back off exponentially with jitter, then retry. Queue work instead of hammering.
Can I get a different format, a delay or a custom body?
The same status is available in JSON, Text, CSV, HTML, YAML, RSS, JavaScript. Delays, custom headers, error rates, request logging and your own body need a personal endpoint: sign up and create one at /endpoints in a minute, free.