Developers · Public API
Build on Lucid Academy.
Embed lessons. Pull progress. Build dashboards. White-label the experience. Public API + webhooks + SDKs.
What you can build
📚 Catalog API
Pull every lesson, filterable by role, modality, level, tags. Build your own course explorers.
🪟 Embed Widget
Drop a Lucid lesson card into your blog, intranet, or LMS. Tracks completion back to your origin.
📊 Progress Webhooks
Receive lesson-completed events to your endpoint. Wire into your HR / L&D / payroll systems.
🎨 White-Label SDK
Theme Lucid with your colors, fonts, logo. Custom domain. Enterprise tier only.
📤 LMS Export
SCORM 2004 + xAPI export for Workday, Cornerstone, Docebo, Moodle, Canvas integrations.
🔌 SSO + SCIM
Okta, Azure AD, Google Workspace. Auto-provision users from your IdP.
Quick start
GET
/learn/api/catalog.php
List the full lesson catalog with rich metadata. Public — no auth required for read-only browse.
curl https://lucidai.pro/learn/api/catalog.php?role=developer&level=advanced
// Response
{
"ok": true,
"items": [
{
"id": "L106",
"title": "Tool use — letting Claude call your code",
"step": 3,
"tier": 3,
"level": "advanced",
"is_pro": true,
"est_minutes": 7,
"modalities": ["watch", "listen", "read", "practice"],
"role_score": 10
},
...
]
}
GET
/learn/api/lesson.php?id=L106
Full lesson detail. Includes hook, transcript, sandbox steps, retrieval gate, mission, template.
curl https://lucidai.pro/learn/api/lesson.php?id=L106 // Returns the full lesson JSON. Server-side fields (system_prompts) are stripped. // Pro-gated lessons return a paywalled preview for free users.
POST
/learn/api/v1/embed/lesson
Generate an embeddable iframe for any lesson. Use in your LMS / blog / intranet. (Coming Q3 — request access.)
POST /learn/api/v1/embed/lesson
Authorization: Bearer YOUR_API_KEY
{
"lesson_id": "L010",
"origin": "https://acme.com",
"user_email": "[email protected]",
"completion_webhook": "https://acme.com/hooks/lucid"
}
// Response
{
"iframe_url": "https://lucidai.pro/learn/embed/L010?token=...",
"expires_at": "2026-12-31T00:00:00Z"
}
POST
/learn/api/v1/admin/seats
Provision seats for your org. Teams + Enterprise only. Auto-syncs with SCIM.
POST /learn/api/v1/admin/seats
Authorization: Bearer YOUR_ORG_API_KEY
{
"users": [
{"email": "[email protected]", "role": "marketer", "track": "marketer"},
{"email": "[email protected]", "role": "developer", "track": "developer"}
]
}
Webhooks
POST
your-endpoint.com/lucid-webhook
Lucid POSTs to your endpoint on user events. Configure URLs in your Teams admin panel.
// Events you can subscribe to:
lesson.completed · User finished a lesson
lesson.started · User began a lesson
streak.milestone · User hit a streak day (3, 7, 14, 30...)
badge.earned · User unlocked a badge
certificate.issued · User earned a Step certificate
project_week.completed · User shipped a Project Week
team.seat.assigned · Admin assigned a new seat
team.completion.weekly · Weekly progress digest
// Example payload
{
"event": "lesson.completed",
"occurred_at": "2026-05-22T14:23:00Z",
"data": {
"user_id": 12345,
"user_email": "[email protected]",
"lesson_id": "L010",
"lesson_title": "Hand Claude a PDF and make it useful",
"xp_earned": 50,
"streak_current": 7,
"modality_used": "watch"
},
"signature": "sha256=...", // HMAC for verification
"team_id": "team_abc123"
}
SDKs (coming Q3 2026)
JavaScript / TypeScript
npm install @lucid-academy/sdkPython
pip install lucid-academyREST + OpenAPI
Full OpenAPI 3.1 spec provided to API-key holders on approval.
Get an API key
Public API access is in private beta. Email us to request keys + an enterprise-grade SLA.
Request API access →Rate limits
// Free public endpoints (catalog, lesson) 60 requests / min no auth required // Authenticated read (progress, profile) 600 requests / min per key // Authenticated write (seats, webhooks, admin) 60 requests / min per key // Enterprise: custom limits in contract
SLA + support
Free: Community support via email. 99.5% uptime target.
Teams ($9/seat/mo): Email support, 24h response, 99.9% SLA.
Enterprise (custom): Slack channel, 1h response, 99.95% SLA + status page integration.
Status: status page