๐ก We check GoRest (and 50+ other public mock/testing services) with a plain GET every 30 minutes โ see the live status page.
GoRest (gorest.co.in) is one of the better-run services in this category, and that deserves saying first: it's been online for years, the seed data is realistic, it speaks both JSON and XML, the pagination headers are clean, and the docs are honest about what it is. A lot of API-testing courses and Postman tutorials build on it for good reason.
But it's designed around choices that fight you the moment you use it for your own project. All of this verified hands-on and against GoRest's own homepage/FAQ, September 4, 2026:
HTTP 401 {"message":"Authentication failed"} โ the first wall every tutorial-follower hits.users, posts, comments, todos โ with fixed fields. There is no way to add a products resource or an extra field.Deprecation and Sunset headers; every tutorial and course that hardcoded /public/v1/โฆ URLs breaks then.Mockbird does the same job โ free, no signup, no token for writes, and your data persists โ with your own schema and 10,000 requests/day per project.
# 1. create a project (no account, no token)
curl -X POST https://mockbird.mockbird.workers.dev/api/projects \
-H 'content-type: application/json' -d '{"name":"my api"}'
# โ {"id":"xw5wscdsad","adminKey":"โฆ"} โ save both
# 2. add a GoRest-shaped users resource, seeded with 12 realistic records
curl -X POST https://mockbird.mockbird.workers.dev/api/projects/PROJECT_ID/resources \
-H 'content-type: application/json' -H 'x-admin-key: ADMIN_KEY' \
-d '{"name":"users","seed":12,"fields":[
{"name":"name","type":"fullName"},
{"name":"email","type":"email"},
{"name":"gender","type":"oneOf","values":["male","female"]},
{"name":"status","type":"oneOf","values":["active","inactive"]}]}'
Reads look exactly like GoRest's (list, single, filters, pagination with a total-count header):
curl "https://mockbird.mockbird.workers.dev/m/PROJECT_ID/users?page=1&limit=5"
# โ 5 records, header x-total-count: 12
curl "https://mockbird.mockbird.workers.dev/m/PROJECT_ID/users?status=active"
# โ only active users
And the part GoRest gates behind sign-in โ writes work with no token at all, and they persist:
curl -X POST https://mockbird.mockbird.workers.dev/m/PROJECT_ID/users \
-H 'content-type: application/json' \
-d '{"name":"Priya Sharma","email":"priya@example.test","gender":"female","status":"active"}'
# โ 201 {"id":13,โฆ} โ no 401, no token
curl https://mockbird.mockbird.workers.dev/m/PROJECT_ID/users/13
# โ still there โ today, tomorrow, next week (no 24-hour wipe)
curl -X PATCH https://mockbird.mockbird.workers.dev/m/PROJECT_ID/users/13 \
-H 'content-type: application/json' -d '{"status":"inactive"}'
Nested routes work in both directions of the GoRest pattern โ list a user's posts, or create one with the foreign key auto-filled:
curl https://mockbird.mockbird.workers.dev/m/PROJECT_ID/users/2/posts
# โ posts where userId = 2
curl -X POST https://mockbird.mockbird.workers.dev/m/PROJECT_ID/users/2/posts \
-H 'content-type: application/json' -d '{"title":"Hello","body":"nested create"}'
# โ 201 with userId: 2 filled in automatically
Every command above was run against a live project before this page was published.
GoRest's token requirement is an obstacle when you don't want auth โ but sometimes your app's 401-handling is exactly what you're testing. Mockbird lets you have it both ways:
# force any endpoint to fail like GoRest does, on demand:
curl "https://mockbird.mockbird.workers.dev/m/PROJECT_ID/users?mock_status=401"
# โ 401 {"error":"simulated 401 error (mock_status)"}
Or go further: mock JWT auth gives every project real /auth/login and /auth/register endpoints issuing signed JWTs (your seeded users are the accounts), and an optional protected mode that makes every endpoint require Authorization: Bearer โฆ โ a working replica of GoRest's auth model, under your control, still free.
| GoRest | Mockbird |
|---|---|
https://gorest.co.in/public/v2/users | /m/PROJECT_ID/users โ your own project, one curl to create |
Sign in โ personal access token โ Authorization: Bearer โฆ on writes | No token needed; optional mock JWT auth + protected mode when you want auth |
?page=2&per_page=10 | ?page=2&limit=10 (aliases _page/_limit for json-server habits) |
X-Pagination-Total header | X-Total-Count header (CORS-exposed) |
Attribute filters ?status=active | Same, plus _like substring, _gte/_lte/_gt/_lt/_ne ranges, q= any-field search, ?select= projection |
Nested GET/POST /users/:id/posts | Same shapes, FK auto-filled on nested POST; plus ?_expand=user / ?_embed=posts joins |
| Fixed resources: users, posts, comments, todos | Any resources, any fields (or one-click blog / e-commerce / SaaS presets) |
| All created records wiped every 24 h | Writes persist; snapshots give you deliberate save/restore instead of a surprise nightly reset |
| 90 requests/min per token (default) | 10,000 requests/day per project |
| v1 sunset 2 Jun 2027 | No versioned URLs to strand your tutorials |
| โ | Extras GoRest doesn't do: GraphQL on the same data, OpenAPI/Postman/TypeScript+Zod exports, request inspector, mock_delay/mock_status/mock_chaos failure simulation |
Bias disclosed โ this page is written by the Mockbird maker. GoRest has real strengths: XML output via content negotiation (append .xml or set Accept โ Mockbird's resources are JSON; XML here means a fixed-payload custom route, not negotiation on live data), a large curated seed dataset that reads naturally, per-token rate limits you can tune yourself, and years of stable operation. If your course or tutorial specifically teaches token-based auth against a shared public API, GoRest is literally built for that lesson. The walls above only matter when the API is supposed to be yours.
# one curl โ a whole seeded backend (preset "blog" = posts/comments/authors shapes):
curl -X POST "https://mockbird.mockbird.workers.dev/api/projects" \
-H 'content-type: application/json' -d '{"name":"my api","preset":"blog"}'
Or try the shared demo with zero setup: curl https://mockbird.mockbird.workers.dev/m/demo/products/1
Facts checked September 4, 2026: anonymous POST /public/v2/users answered HTTP 401 {"message":"Authentication failed"} (run live); the 24-hour wipe-and-reseed, 90 req/min default (range 1โ300), sign-in-for-token flow, public-sandbox warning, and the v1 sunset date of 2 June 2027 are all stated on gorest.co.in's own homepage and FAQ. If GoRest changes its policies, re-check their site.
Full API reference in the docs. More guides: JSONPlaceholder alternative ยท ReqRes alternative ยท DummyJSON alternative ยท Mock JWT auth. Create your API โ