API Reference

REST endpoints for managing sessions, students, curriculum modules, usage, and webhooks.

Base URL

https://api.evelynlearning.com/v1

iAuthentication

All endpoints require the X-API-Key header with your partner API key. See Authentication for details.

Sessions

GET
/sessions

List sessions with filtering (date range, student, subject, status)

GET
/sessions/:id

Get session details including metadata

GET
/sessions/:id/transcript

Get full transcript with timestamps

GET
/sessions/:id/whiteboard

Get whiteboard command history

GET
/sessions/:id/replay

Get session replay data (transcript + whiteboard + timing)

DELETE
/sessions/:id

Delete a session and all associated data

Students

GET
/students/:id/sessions

List all sessions for a student

GET
/students/:id/progress

Get student progress summary (topics covered, time spent, milestones)

GET
/students/:id/usage

Get usage and cost breakdown for a student

DELETE
/students/:id/data

Delete all data for a student (GDPR)

Curriculum Modules

GET
/modules

List all uploaded curriculum modules

GET
/modules/:id

Get module details and status

POST
/modules

Upload a new curriculum module (JSON)

POST
/modules/ingest

Upload curriculum PDFs for automatic ingestion

POST
/modules/bulk

Bulk upload modules (ZIP archive)

PUT
/modules/:id

Update an existing module

DELETE
/modules/:id

Delete a module

GET
/modules/:id/status

Check ingestion/processing status

GET
/modules/:id/coverage

Get topic coverage report for a module

Usage & Billing

GET
/usage

Aggregate usage summary (date range, grouping by day/week/month)

GET
/usage/breakdown

Detailed cost breakdown by subject, level, student cohort

GET
/usage/forecast

Projected usage and cost based on current trends

GET
/invoices

List invoices

GET
/invoices/:id

Get invoice details

Webhooks

GET
/webhooks

List configured webhook endpoints

POST
/webhooks

Register a new webhook endpoint

PUT
/webhooks/:id

Update webhook configuration

DELETE
/webhooks/:id

Remove a webhook endpoint

GET
/webhooks/:id/events

List recent events for a webhook (including failed deliveries)

POST
/webhooks/:id/test

Send a test event to verify endpoint connectivity

Configuration

GET
/config

Get current partner configuration

PUT
/config

Update partner configuration (branding, defaults, feature toggles)

GET
/config/taxonomy

Get available subjects, topics, and levels

GET
/voices

List available voice options with audio samples

Pagination

List endpoints support pagination via query parameters:

  • page — Page number (default: 1)
  • limit — Items per page (default: 20, max: 100)
  • sort — Sort field (e.g., created_at)
  • orderasc or desc (default: desc)

Error Format

All errors return a consistent JSON structure:

{
  "error": {
    "code": "invalid_token",
    "message": "The session token has expired",
    "status": 401
  }
}