Skip to main content
Plio Academy
Public API

Developer API

Integrate Plio Academy's curriculum into your application.

Apply for API Access →Approval in 3–5 business days
Base URLhttps://learn.plio.academy/api/v1

Authentication

All requests require a bearer token in the Authorization header. Obtain API keys from the admin dashboard.

Authorization: Bearer YOUR_API_KEY

Rate limit: 100 requests / minute per key. Exceeding this returns 429 Too Many Requests.

Endpoints

GET/api/v1/tiers

List all curriculum tiers.

Request

curl -H "Authorization: Bearer YOUR_API_KEY" \
  https://learn.plio.academy/api/v1/tiers

Response

{
  "tiers": [
    {
      "id": "explorer",
      "label": "Explorer",
      "ageRange": "5-10",
      "lessonCount": 18
    }
  ]
}
GET/api/v1/lessons

List all lessons.(?tier=explorer|builder|innovator)

Request

curl -H "Authorization: Bearer YOUR_API_KEY" \
  "https://learn.plio.academy/api/v1/lessons?tier=explorer"

Response

{
  "lessons": [
    {
      "slug": "explorer/e01-what-is-ai",
      "lessonId": "e01",
      "tier": "explorer",
      "title": "What is AI?",
      "slideCount": 12
    }
  ],
  "total": 54
}
GET/api/v1/lessons/:slug

Get lesson metadata by slug.(e.g. explorer/e01-what-is-ai)

Request

curl -H "Authorization: Bearer YOUR_API_KEY" \
  "https://learn.plio.academy/api/v1/lessons/explorer/e01-what-is-ai"

Response

{
  "slug": "explorer/e01-what-is-ai",
  "lessonId": "e01",
  "tier": "explorer",
  "title": "What is AI?",
  "slideCount": 12,
  "contentTypes": [
    "bullets",
    "quiz"
  ],
  "standards": {}
}
GET/api/v1/students/:id/progressstudents:read

Get student progress.

Request

curl -H "Authorization: Bearer YOUR_API_KEY" \
  "https://learn.plio.academy/api/v1/students/STUDENT_UUID/progress"

Response

{
  "profileId": "uuid",
  "displayName": "Alex",
  "tier": "builder",
  "progress": [
    "..."
  ],
  "summary": {
    "totalLessons": 12,
    "completedLessons": 8,
    "totalXp": 450,
    "totalTimeSeconds": 7200
  }
}
POST/api/v1/students/:id/enrollstudents:write

Set student tier.

Request

curl -X POST \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"tier":"builder"}' \
  "https://learn.plio.academy/api/v1/students/STUDENT_UUID/enroll"

Response

{
  "profileId": "uuid",
  "tier": "builder",
  "updatedAt": "2026-05-27T00:00:00.000Z"
}

SDKs & Support

No SDK yet — plain HTTP works great. Questions? Email developers@plio.academy.

COPPA notice

Student data endpoints return first names only — no PII is exposed. Access to /students/* endpoints requires a written data-sharing agreement. Apply for access to include student endpoints in your integration.