You know the drill. Twenty students, one shared sandbox, and someone runs a DELETE that takes out everyone's data five minutes into class. Half the room is debugging someone else's mess. The other half hasn't started because they're still installing dependencies.
ReqRes Classrooms put an end to that. Every student gets their own API key, their own isolated data, and you get a live dashboard that shows exactly who's making progress and who needs a nudge.
Set up in minutes, not hours
A classroom wraps a ReqRes project with student-level isolation. Create one, pick a template, generate API keys - and your students are ready to go.
Pick a template (or start blank)
Templates pre-load your classroom with collections, schemas, and seed data so nobody's staring at an empty screen. Three are built in today:
Todo App - A Todos collection with 10 records. Fields include title, completed, and priority (low/medium/high). Seven guided exercises walk students from their first GET to filtering and pagination.
User Directory - A Users collection with 20 realistic records. Fields like name, email, role (admin/editor/viewer), avatar, and active. Seven exercises covering everything from basic CRUD to role-based filtering.
QA Test Target - Two collections (Users + Products, 30 records) built for QA-focused courses. Nine exercises including validation testing (expect a 400!), response time assertions, and concurrent request tests.
Or start blank and build your own.
Add students in bulk
Type student names (one per line) and the system generates a unique API key for each. Copy them all at once - tab-separated for pasting into a spreadsheet - or download a CSV.
Students don't need a ReqRes account. They just need their key.
Students start making real requests
From curl, Postman, the browser console, or their own code - students hit real endpoints, authenticated with their own key:
curl https://reqres.in/api/collections/todos/records \
-H "x-api-key: stu_abc123..."
curl -X POST https://reqres.in/api/collections/todos/records \
-H "x-api-key: stu_abc123..." \
-H "Content-Type: application/json" \
-d '{"data": {"title": "Finish homework", "completed": false, "priority": "high"}}'
Each student sees only their own records. One student's POST never shows up in another student's GET.
See who's stuck before they raise their hand
The classroom dashboard gives you two views: Students and Activity.
Students
A roster of everyone in your classroom - their status, lifetime request count, and last active timestamp. From here you can reveal masked API keys, add or remove students, view collection schemas, apply templates, or reset all data between cohorts (student keys stay intact).
Activity
A live view (auto-refreshes every 30 seconds) that surfaces per-student metrics over the last 7 days: total requests, error rate, distinct endpoints hit, and last active time.
Students are automatically tagged by how they're doing:
| Status | What it means |
|---|---|
| Not started | Zero requests - they might need help getting set up |
| Getting started | 1-5 requests - they're finding their feet |
| Active | Cruising along, error rate under 30% |
| Idle | Was active, but nothing in the last 2 hours |
| Struggling | 5+ requests, but error rate above 30% - check in on them |
Filter by "Need help" or "Not started" to find the students who need you most.
Drill into any student's requests
Click a student row to see their last 25 API requests - method, path, status code, latency, and timestamp. Click a request to expand it further and see the full headers, request body, and response body.
This is where you spot the actual mistake. A malformed JSON body, a wrong endpoint, a missing header - it's all there.
Export everything
One click to download a CSV of your entire classroom's activity: student name, request counts by method, error count, and last active time.
Templates that teach, not just demonstrate
When you apply a template, the Getting Started section shows numbered exercises you can share with your class. They're suggestions, not enforced rules - use them as-is or adapt them to your curriculum.
Templates also pre-configure schema validation. The Todo App template, for example, requires a title field and restricts priority to low, medium, or high. Students who POST invalid data get a real 400 error with a clear message. That's not a bug - that's the lesson.
What students see (and don't)
Students don't get a dashboard. They get an API key and whatever instructions you give them.
This is by design. The whole point is learning how APIs actually work - sending HTTP requests, reading status codes, interpreting response bodies. They use curl, Postman, Insomnia, or their own code. They authenticate with x-api-key. They work against a real API that behaves like a real API.
Their data is isolated. Their requests are logged (for you, not them). They can't see or touch anyone else's records.
Plans and pricing
Classrooms are included on Team ($79/mo), Scale ($199/mo), and Enterprise plans. If you only need the teaching tools, dedicated Classroom plans start at $49/mo.
| Team | Scale | Enterprise | Classroom | Classroom Pro | Institute | |
|---|---|---|---|---|---|---|
| Classrooms | 1 | 5 | 20 | 1 | 5 | 20 |
| Students | 50 | 150 | 500 | 50 | 150 | 500 |
| Requests/day | 100,000 | 500,000 | Custom | 2,000 | 7,000 | Unlimited |
| Log retention | 60 days | 90 days | Custom | 7 days | 30 days | 90 days |
Annual billing saves 20% on every tier.
The daily request limit is a shared pool across all students. Team and Scale plans share their pool with your other ReqRes projects too, so the higher limits give plenty of headroom for a busy class.
Who's using it
- Bootcamp instructors teaching REST fundamentals - every student practices CRUD against real endpoints without stepping on each other.
- University professors running web development or API design courses - templates provide structure, the activity dashboard provides visibility.
- Corporate trainers onboarding developers - the QA Test Target template is built for teams learning API testing.
- Workshop facilitators running half-day or multi-day sessions - reset data between sessions without rebuilding anything.
Get started
- Head to Classrooms in your dashboard
- Click Create classroom
- Name it, pick a template, add your students
- Hand out API keys (copy or download CSV)
- Watch the Activity tab light up
Already on a Team plan or higher? You can create a classroom right now. On a Free, Dev, or Pro plan? The Classrooms page shows you what's available and links to upgrade options.