Docs

API docs for QA automation and backend development

This hub is for QA, automation, and frontend teams who need a reliable API - for testing or production. It includes quickstart steps, OpenAPI reference, and practical guidance for Postman, Playwright, and CI runs.

Stable payloads Logs built-in CORS enabled

Start here

What you will do in 2 minutes

Use the fastest path to get predictable responses, then decide whether you need per-user sessions for isolation testing.

1

Create a project + keys on app.reqres.in.

Use a manage key for setup and a public key for read-only testing.

2

Send your first request with x-api-key.

Your starter project has a Products collection with sample data ready to query.

3

For per-user testing, mint a session token and use Authorization: Bearer.

App-user sessions isolate reads and writes to a single user.

Sample request
curl "https://reqres.in/api/collections/products/records" \
  -H "x-api-key: YOUR_API_KEY" \
  -H "X-Reqres-Env: prod"

Need your changes to persist?

The classic demo endpoints, like /api/users, work without a key, with a daily limit, but POST, PUT and DELETE don't save anything. For a demo or tutorial where data needs to stick, a free account gives you an x-api-key and a project where records persist.

Get a free API key

Try the classic endpoints live

Real responses from reqres.in, no key needed. Open any of them in your browser or curl, or import the ReqRes Postman collection (every classic endpoint, ready to run).

Live response, no key needed Open in browser ↗
Loading when this comes into view…

Quickstart

First request with Postman or curl

After signup you get a project with a Products collection and sample data. Use your API key to read, create, update, and delete records. Changes persist.

For per-user isolation, start an app-user session and send the session token as a Bearer header.

Read the Postman setup guide →
Example: list records from your collection
curl "https://reqres.in/api/collections/products/records" \
  -H "x-api-key: YOUR_API_KEY" \
  -H "X-Reqres-Env: prod"
Example: create a record
curl -X POST "https://reqres.in/api/collections/products/records" \
  -H "x-api-key: YOUR_API_KEY" \
  -H "X-Reqres-Env: prod" \
  -H "Content-Type: application/json" \
  -d '{"data":{"name":"New Product","price":9.99}}'
Example: app-user session (per-user isolation)
curl "https://reqres.in/app/collections/products/records" \
  -H "Authorization: Bearer YOUR_SESSION_TOKEN"

QA automation

Reliable runs without getting blocked

ReqRes is tuned for predictable payloads and stable status codes. Logs help explain failures fast, and guidance keeps CI runs from tripping rate limits or WAF rules.

What this helps with

  • Stable payloads for Postman collections and Playwright suites.
  • Predictable status codes to keep QA assertions consistent.
  • Logs for auth, rate limits, and WAF-related failures.

Example app

Notes app flow with auth + CRUD

See how magic links, per-user data, and collections work together in a real UI.

Open Notes example

Common issues

Common failure modes

Getting a 401 or 403?

Project endpoints (collections, records, app users) need an x-api-key header. The classic demo endpoints don't. Get your key here. Use Authorization: Bearer only for per-user sessions.

Environment header

If you see environment errors, set X-Reqres-Env to prod or dev.

Rate limits in CI

CI runners can trigger rate limits or WAF rules. Add backoff and stable user agents, then review the QA guide.