Mock JavaScript endpoint returning HTTP 403

https://demo-js-403.supercrontab.com/ answers every request with HTTP 403 Forbidden and a small JavaScript body. No signup, CORS enabled, nothing logged. Use it to see how your client, retry logic or cron job behaves on a 403 before it happens in production.

Live demo endpoint

https://demo-js-403.supercrontab.com/

Any method, any path. Returns 403 Forbidden with Content-Type: application/javascript. OPTIONS returns 204 with CORS headers.

Call it with curl

curl -i https://demo-js-403.supercrontab.com/

Call it with fetch

const res = await fetch("https://demo-js-403.supercrontab.com/");
console.log(res.status); // 403
const body = await res.text();

What HTTP 403 Forbidden means

When you see it
The credentials are valid but this identity is not allowed to do this action, or the IP is blocked.
What a client should do
Do not retry with the same credentials. Check scopes, roles and allowlists on the server side.
Retry?
No

Sample response body

console.log("ok")

A script body with the application/javascript type. Test script loaders, CDNs and MIME checks.

Questions

Does this endpoint really return HTTP 403 every time?

Yes. Every GET, POST, PUT, PATCH or DELETE to https://demo-js-403.supercrontab.com/ gets status 403 Forbidden with a small JavaScript body, whatever the path, query or headers. OPTIONS gets 204 with CORS headers so browsers can preflight.

Should my client retry a 403?

No. Retrying the same request cannot change the outcome. Do not retry with the same credentials. Check scopes, roles and allowlists on the server side.

Can I get a different format, a delay or a custom body?

The same status is available in JSON, XML, Text, CSV, HTML, YAML, RSS. 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.