v1.0 · Production ready

API reference

RESTful JSON APIs powering every LingoKids surface — from lessons and games to the AI content pipeline.

Base URL & authentication
https://api.lingokids.app/v1
All endpoints require a bearer token in the Authorization header.
Authorization: Bearer lk_live_sk_9f2a7c4e6b1d8302
Rate limits
Free tier60 req / min
Growth600 req / min
EnterpriseCustom
Auth
  • POST
    /v1/auth/login
    Exchange credentials for a session token.
  • POST
    /v1/auth/refresh
    Rotate access token using refresh token.
  • POST
    /v1/auth/logout
    Invalidate current session.
Learners
  • GET
    /v1/learners
    List learners visible to the caller.
  • GET
    /v1/learners/{id}
    Fetch a single learner profile.
  • PATCH
    /v1/learners/{id}
    Update level, grade, avatar or preferences.
  • DELETE
    /v1/learners/{id}
    Deactivate a learner account.
Lessons
  • GET
    /v1/lessons
    List lessons filtered by skill / level / path.
  • POST
    /v1/lessons/{id}/complete
    Record completion and award XP.
  • POST
    /v1/lessons/{id}/attempts
    Log an attempt with score breakdown.
Games
  • GET
    /v1/games
    List playable game templates.
  • POST
    /v1/games/{id}/plays
    Record a play session with score.
Shadowing
  • POST
    /v1/shadowing/attempts
    Upload audio, receive pronunciation feedback.
  • GET
    /v1/shadowing/lines
    List curated shadowing lines by level.
AI Content
  • POST
    /v1/ai/generate
    Turn an uploaded PDF into 4-skill questions.
  • GET
    /v1/ai/jobs
    List generation jobs with status & progress.
  • POST
    /v1/ai/jobs/{id}/retry
    Retry a failed generation job.
Reports
  • GET
    /v1/reports/child/{id}
    Parent-facing weekly progress.
  • GET
    /v1/reports/class/{id}
    Teacher class-average report.
  • GET
    /v1/reports/platform
    Admin platform-wide metrics.
Sample response · GET /v1/learners/{id}
{
  "id": "lrn_9f2a",
  "name": "Aarav Kapoor",
  "age": 9,
  "grade": "Grade 4",
  "level": "A2",
  "path": "General",
  "xp": 2840,
  "streak_days": 12,
  "skills": { "reading": 82, "writing": 68, "listening": 74, "speaking": 88 },
  "last_active": "2026-07-12T09:14:00Z"
}