live mock api

Make an API misbehave, on purpose.

Hit real mock endpoints below, then flip on latency, errors, or random failure with a single header. Watch exactly how your app would react. Free, CORS-ready, no signup.

request builder
← leave blank for a normal response
Ready. Try a request, or set X-Sim-Status to 500 and watch it fail.
// response appears here
reference

Endpoints & behavior controls

Five ready-to-use collections, full of realistic data with stable IDs. Every endpoint accepts the same simulation controls, as headers or query params.

Collections

MethodPathReturns
GET/api/users12 users (supports ?_limit, ?_page)
GET/api/users/1A single user (404 if out of range)
GET/api/posts100 posts
GET/api/products50 products
GET/api/comments · /api/todos200 comments · 100 todos
POST/api/{collection}201 with your body + new id
PUT/PATCH/api/{collection}/1200 with merged body
DELETE/api/{collection}/1200 empty

Behavior simulation

HeaderQuery paramEffect
X-Sim-Status?_status=500Force any HTTP status code
X-Sim-Delay?_delay=3000Delay response in ms (max 10000)
X-Sim-Fail-Rate?_failRate=0.3Random 503 with this probability (0–1)

Use it from code

// simulate a slow, sometimes-failing endpoint
fetch("https://restsimulator.com/api/users", {
  headers: { "X-Sim-Delay": "2000", "X-Sim-Fail-Rate": "0.3" }
})
  .then(r => { if (!r.ok) throw new Error(r.status); return r.json(); })
  .then(console.log)
  .catch(err => console.warn("handled:", err));

FAQ

Is it really free and open?

Yes. The public endpoints and behavior simulation are free, no account or API key needed, and CORS is enabled so you can call them straight from the browser.

How is this different from JSONPlaceholder?

JSONPlaceholder returns static data on the happy path. RestSimulator lets you simulate how an API behaves: latency, errors, and random failure, which is where real bugs hide.

Can my AI agent use this?

Yes. It's plain HTTP, so any tool-calling or function-calling setup can point at it. That makes it handy for checking that your agent retries and backs off when a tool returns a 503 or times out.