Read learners' results back
Authoring writes content; reading results pulls back what learners did with
it. That is the itera-api pull-only REST surface,
authenticated with a per-tenant API key (never a user-JWT, never for writes).
1 · Get a key
Section titled “1 · Get a key”Ask your Itera admin to mint one for your tenant. The raw key
(itera_<prefix>_<secret>) is shown once — store it in your secret manager.
See Authentication → reading results.
2 · List activity results
Section titled “2 · List activity results”curl "https://api.iterahq.dev/v1/activity-results?limit=50" \ -H "Authorization: Bearer itera_<prefix>_<secret>"{ "data": [ { "id": "…", "activity_id": "…", "lesson_id": "…", "itera_user_id": "…", "status": "completed", "score": 90, "completed_at": "…", "artifact_ids": ["…"] } ], "next_cursor": "eyJ…"}3 · Paginate
Section titled “3 · Paginate”Keyset pagination over (created_at, id). Pass the next_cursor back until it’s
null:
curl "https://api.iterahq.dev/v1/activity-results?limit=200&cursor=eyJ…" \ -H "Authorization: Bearer itera_<prefix>_<secret>"4 · Filter
Section titled “4 · Filter”- By activity:
?activity_id=<uuid>on/v1/activity-resultsand/v1/artifacts. - By user:
?user_id=<uuid>on/v1/artifacts. - A single result/artifact by id:
/v1/activity-results/:id,/v1/artifacts/:id(returns404if it isn’t your tenant’s — no cross-tenant enumeration).
5 · Progress
Section titled “5 · Progress”curl "https://api.iterahq.dev/v1/progress" \ -H "Authorization: Bearer itera_<prefix>_<secret>"{ "data": [ { "itera_user_id": "…", "program_id": "…", "completed_count": 7, "total_count": 12, "percent": 58, "last_activity_at": "…" } ], "next_cursor": null}Full schema + endpoint list
Section titled “Full schema + endpoint list”See Reading results (itera-api) for every endpoint,
query param, and the ActivityResult / Progress / Artifact / Error
schemas.