Fake JSON API — Free Dummy REST Data for Testing | Send Web Request
Need dummy JSON data to build a frontend against? Send Web Request hosts a free fake JSON API with realistic users, posts, and todos. Fetch a collection or a single record, or send POST/PUT/PATCH/DELETE and get realistic responses back — nothing is persisted. It's CORS-open, so you can call it directly from browser JavaScript with no key and no signup.
What is a fake JSON API?
A fake (or mock) JSON API returns believable data for resources like users and posts without a real database behind it. It lets you build and demo a UI, write tests, or learn a client library before the real backend exists. Requests that would normally change data (POST, PUT, DELETE) return a realistic response but don't actually store anything.
Available resources
Three resources are available, each with a collection and individual items:
GET https://sendwebrequest.com/mock/users
GET https://sendwebrequest.com/mock/posts
GET https://sendwebrequest.com/mock/todosFetch a collection or a single item
Add an id to fetch one record. Collections accept a ?limit query (1–100) to control how many items come back:
const users = await fetch(
"https://sendwebrequest.com/mock/users?limit=5"
).then((r) => r.json());
const user = await fetch(
"https://sendwebrequest.com/mock/users/1"
).then((r) => r.json());Create, update, and delete (faked)
POST to a collection returns your object with a generated id and a 201. PUT or PATCH on an item returns a merged record. DELETE returns 200. Nothing persists — it's a stateless scratch target, so the next GET is unchanged.
POST https://sendwebrequest.com/mock/users
Content-Type: application/json
{ "name": "Grace Hopper" }Use it with React Query or SWR
Because responses are stable and CORS-open, the endpoint drops straight into a data-fetching hook while you build out your components:
const { data } = useQuery({
queryKey: ["posts"],
queryFn: () =>
fetch("https://sendwebrequest.com/mock/posts").then((r) => r.json()),
});Why not just use another fake API?
You can — but this one is paired with a browser-based client. Every example on this page has a "Try it" button that opens the request pre-filled so you can see the response before you write a line of code. And when you're ready to point at your real API, you're already in the tool.
Try it now
Open Send Web Request with a fake JSON endpoint pre-filled, hit Send, and inspect the response with syntax highlighting.