API docs

A scoped API for your own tools. Create assignments and pull grades programmatically.

Authentication

Create a key on your account page, then send it as a bearer token on every request. Keys are scoped to your own account, so every endpoint only ever sees classes, exams and decks you own.

Authorization: Bearer ork_live_...

List your classes

GET /api/v1/classes

curl https://www.orpheusengine.com/api/v1/classes \
  -H "Authorization: Bearer ork_live_..."

Pull a class's grades

GET /api/v1/classes/{id}/grades

Returns every student × assignment, with a 0-100 percent (auto-graded for exams; 100 or null, meaning done or not done, for deck/writing assignments, the same convention the in-app gradebook uses).

curl https://www.orpheusengine.com/api/v1/classes/cls_123/grades \
  -H "Authorization: Bearer ork_live_..."

Create an assignment

POST /api/v1/classes/{id}/assignments

Body shape depends on type (exam is the default):

# Assign one of your saved exams
curl -X POST https://www.orpheusengine.com/api/v1/classes/cls_123/assignments \
  -H "Authorization: Bearer ork_live_..." \
  -H "Content-Type: application/json" \
  -d '{"type": "exam", "examId": "exam_456", "dueAt": "2026-08-01"}'

# Assign one of your saved flashcard decks
curl -X POST https://www.orpheusengine.com/api/v1/classes/cls_123/assignments \
  -H "Authorization: Bearer ork_live_..." \
  -H "Content-Type: application/json" \
  -d '{"type": "deck", "deckId": "deck_789"}'

# Assign a writing prompt
curl -X POST https://www.orpheusengine.com/api/v1/classes/cls_123/assignments \
  -H "Authorization: Bearer ork_live_..." \
  -H "Content-Type: application/json" \
  -d '{"type": "writing", "title": "Essay: renewable energy", "writingPrompt": "..."}'

Limits

Up to 60 requests per minute per key. Every write is scoped to resources your account owns, so you cannot read or modify another user's classes, exams or decks.