MathMind API v1

Adaptive mathematics learning platform — API-first backend for Web, iOS & Android.

Status

Health: GET https://mathmind-api.uw.astrona.me/health — interactive docs: /docs

Authentication

POST https://mathmind-api.uw.astrona.me/api/v1/auth/register   { "email": "...", "password": "...", "displayName": "..." }
POST https://mathmind-api.uw.astrona.me/api/v1/auth/login      { "email": "...", "password": "..." }
GET  https://mathmind-api.uw.astrona.me/api/v1/me              Authorization: Bearer <token>

All further endpoints require Authorization: Bearer <token>. Identity is always resolved from the JWT — user IDs sent from clients are never trusted.

Family & Students

GET/api/v1/familiesYour families with children
GET/api/v1/studentsList your children
POST/api/v1/studentsCreate a child — { displayName, schoolYear }
PATCH/api/v1/students/:idUpdate a child

Learning loop

GET/api/v1/skillsSkill graph with foundational scores
GET/api/v1/students/:id/skill-mapPer-student skill states
POST/api/v1/students/:id/sessionsStart session — { sessionType: "practice"|"diagnostic", skillId? }
GET/api/v1/sessions/:id/nextNext adaptive exercise (structured, no HTML)
POST/api/v1/exercises/:id/attemptsSubmit answer — { sessionId, answer: { value }, responseTimeMs }; supports Idempotency-Key
POST/api/v1/exercises/:id/hintsProgressive hint (1–3)

Assignments & Parent reports

POST/api/v1/students/:id/assignmentsCreate — { title, items: [{ skillId, count }] }
GET/api/v1/students/:id/dashboardStrengths, needs-attention, trends, focus
GET/api/v1/students/:id/progressAggregate progress

Try it (10-step demo flow)

# 1. register parent
TOKEN=$(curl -s -X POST https://mathmind-api.uw.astrona.me/api/v1/auth/register \
  -H 'content-type: application/json' \
  -d '{"email":"demo@example.com","password":"super-secret-9"}' | jq -r .token)

# 2. create child
curl -s -X POST https://mathmind-api.uw.astrona.me/api/v1/students -H "authorization: Bearer $TOKEN" \
  -H 'content-type: application/json' -d '{"displayName":"Emma","schoolYear":5}'

# 3. start a session & get the first adaptive exercise
curl -s -X POST https://mathmind-api.uw.astrona.me/api/v1/students/$STUDENT/sessions \
  -H "authorization: Bearer $TOKEN" -H 'content-type: application/json' \
  -d '{"sessionType":"practice"}'