JSONPlaceholder Alternative — Free Fake REST API | Send Web Request
JSONPlaceholder is the go-to fake REST API for prototyping — users, posts, todos, and comments you can fetch without a backend. Send Web Request offers the same kind of sample resources, plus echo, status, and delay endpoints, and a browser-based client so you can test any of them in one click. Free, CORS-open, no signup.
What is JSONPlaceholder used for?
JSONPlaceholder gives developers realistic fake data to build against before a real API exists — great for tutorials, demos, and testing fetch or axios. You GET a collection or a single record, and POST/PUT/DELETE return faked responses without persisting anything. These /mock endpoints work the same way.
Drop-in sample resources
Fetch users, posts, or todos as a collection or by id:
GET https://sendwebrequest.com/mock/users
GET https://sendwebrequest.com/mock/posts/1
GET https://sendwebrequest.com/mock/todosFetch posts and users
The same fetch code you'd write against JSONPlaceholder works here — just change the host:
const posts = await fetch(
"https://sendwebrequest.com/mock/posts"
).then((r) => r.json());
const post = await fetch(
"https://sendwebrequest.com/mock/posts/1"
).then((r) => r.json());POST, PUT, PATCH, and DELETE
Write operations return realistic responses without changing any data. POST returns your body with a new id and a 201; PUT/PATCH return a merged record; DELETE returns 200. The data resets on every request because nothing is stored.
PATCH https://sendwebrequest.com/mock/posts/1
Content-Type: application/json
{ "title": "Updated title" }The difference: a client built in
Unlike a bare fake API, this one is paired with Send Web Request. Every endpoint has a "Try it" button that opens the request pre-filled, so you can inspect the JSON response — status, headers, and body — before writing any code, then point the same client at your real API.
Echo, status, and delay too
Beyond sample data, you also get an /echo endpoint that reflects your request, /status/:code to force any HTTP status, and /delay/:seconds to test loading states — the httpbin-style tools JSONPlaceholder doesn't include.
Try it now
Open Send Web Request with a sample endpoint pre-filled, hit Send, and see the response instantly.