JSONPlaceholder is the free fake REST API almost every tutorial reaches for, and deservedly: six resources, no signup, no configuration, and a URL short enough to type from memory. It is close to perfect for the thing it was built for — giving a front-end something to render while the real API does not exist yet.
| JSONPlaceholder | Fun API Playground | |
|---|---|---|
| Writes persist | No — the response looks right, the data does not change | Yes, for the life of your sandbox |
| Resources | 6 fixed collections | 39 APIs, 338 endpoints |
| Auth | None | Bearer roles, signed JWTs, full OAuth 2.0 flows |
| Error codes on demand | 404 only, from unknown ids | Any code from 200 to 599 on request, and 28 from endpoints whose behaviour causes them |
| Concurrency | Not modelled | ETag / If-Match with a real 412 |
| Spec export | None | OpenAPI 3.1 and Postman, per API and merged |
| Works offline | No | Yes — the engine runs in the browser |
| Recognisability | Universal; in every tutorial | New, and has to be explained |
It accepts POST, PUT, PATCH and DELETE and pretends to honour them. The response looks right, complete with a new id, and nothing has changed: fetch the resource afterwards and your write is not there. That is a deliberate design decision for a shared public service, and it is also the point at which it stops being useful for testing rather than prototyping — you cannot verify a create, you cannot test a conflict, and you cannot chain one request into the next.
Here, writes persist. Create a character and it is in the collection; delete it and the next GET returns 404. Callers are isolated from one another — by an X-Sandbox-ID header against the live API, and by running the whole engine locally in the browser — which is what makes persistence safe on a public service. Beyond that the surface is much wider: 39 domains rather than 6 resources, real Bearer and JWT auth with a role that gets a 403, ETag and If-Match concurrency, Idempotency-Key replay, rate limits that really limit, webhooks with verifiable HMAC signatures, and every HTTP status code in the catalog reachable on demand.
Use JSONPlaceholder when you need a body to render and nothing else. Come here when the thing you are testing is the HTTP: the failures, the auth, the concurrency and the retries.
Checked against JSONPlaceholder as of 2026-09.
This compares a training playground with the documented use case of the other tool. Plans, limits and hosted features can change. For current terms, use the official sources below.
Current Fun API behavior and limits · Run a practice example
All 39 mock REST APIs · Getting started guide · About this playground
Last updated