Hassan Maujud

Live demo · Back-end

REST API console

A real JSON API running on this domain. Send it anything — including the requests designed to break it.

PHP 8No databaseETag / 304 Rate limitedBearer auth
Try one
Token none

Writing needs a bearer token. This mints one scoped to your browser that expires on its own — nothing is kept.

History

Nothing sent yet.

Request
Response idle
Press Send, or pick one on the left.

What to look at

Three things worth trying.

Ask for something that is not there

Send GET /api/v1/projects?sort=bogus. The failure comes back in the same envelope every failure uses — a machine-readable code, a sentence for a human, and the offending field named. A client should never have to read prose to find out what went wrong.

Ask for the same thing twice

Send any GET, tick re-send the last ETag, and send it again. The second answer is a 304 with no body at all. The response size in the bar is the whole argument for conditional requests.

Ask too often

Every response carries X-RateLimit-Remaining. Hold Send down and watch it fall; at zero you get a 429 with a Retry-After telling you exactly how long the window has left rather than a vague apology.

Read how it is built

Want one of these that does something useful?

That is the job. Tell me what it needs to do.