Skip to main content
Send Web Request

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/todos

Fetch 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.