Mock JSON endpoint returning HTTP 404
https://demo-json-404.supercrontab.com/ answers every request with HTTP 404 Not Found and a small JSON body. No signup, CORS enabled, nothing logged. Use it to see how your client, retry logic or cron job behaves on a 404 before it happens in production.
Live demo endpoint
Any method, any path. Returns 404 Not Found with Content-Type: application/json. OPTIONS returns 204 with CORS headers.
Call it with curl
curl -i https://demo-json-404.supercrontab.com/
Call it with fetch
const res = await fetch("https://demo-json-404.supercrontab.com/");
console.log(res.status); // 404
const body = await res.json();What HTTP 404 Not Found means
- When you see it
- The path does not exist or the resource was deleted. Also returned by some APIs to hide private resources.
- What a client should do
- Check the URL and the id. For webhooks, disable the target after a few 404s in a row.
- Retry?
- No
Sample response body
{"ok":true,"id":42,"items":["alpha","beta","gamma"]}The default for REST APIs. Parse it with response.json() and check the ok field.
Questions
Does this endpoint really return HTTP 404 every time?
Yes. Every GET, POST, PUT, PATCH or DELETE to https://demo-json-404.supercrontab.com/ gets status 404 Not Found with a small JSON body, whatever the path, query or headers. OPTIONS gets 204 with CORS headers so browsers can preflight.
Should my client retry a 404?
No. Retrying the same request cannot change the outcome. Check the URL and the id. For webhooks, disable the target after a few 404s in a row.
Can I get a different format, a delay or a custom body?
The same status is available in XML, 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.