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.
// response appears here
Five ready-to-use collections, full of realistic data with stable IDs. Every endpoint accepts the same simulation controls — as headers or query params.
| Method | Path | Returns |
|---|---|---|
GET | /api/users | 12 users (supports ?_limit, ?_page) |
GET | /api/users/1 | A single user (404 if out of range) |
GET | /api/posts | 100 posts |
GET | /api/products | 50 products |
GET | /api/comments · /api/todos | 200 comments · 100 todos |
POST | /api/{collection} | 201 with your body + new id |
PUT/PATCH | /api/{collection}/1 | 200 with merged body |
DELETE | /api/{collection}/1 | 200 empty |
| Header | Query param | Effect |
|---|---|---|
X-Sim-Status | ?_status=500 | Force any HTTP status code |
X-Sim-Delay | ?_delay=3000 | Delay response in ms (max 10000) |
X-Sim-Fail-Rate | ?_failRate=0.3 | Random 503 with this probability (0–1) |
// 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));
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.
JSONPlaceholder returns static data on the happy path. RestSimulator lets you simulate behavior — latency, errors, and random failure — which is where real bugs hide.
Yes. It's plain HTTP, so any tool-calling or function-calling setup can point at it — ideal for checking that your agent retries and backs off when a tool returns a 503 or times out.