API & MCP · Quickstart
Quickstart
Five minutes from zero to your first agent call.
1. Mint an API key
- Sign in as an admin or instructor at /login
- Go to Dashboard → API keys
/dashboard/api-keys - Click Create API key
- Name it (e.g.
Claude Desktop · personal laptop), pick the scopes you want, optionally set an expiry - Copy the token. It’s shown only once.Store it in your password manager or your client’s config file.
2. Verify with curl
curl -i -H "Authorization: Bearer empo_xxxxxxxxxxxx" \
https://academy.empomm.com/api/v1/meShould return your user record + the scopes on the key:
HTTP/1.1 200 OK
RateLimit-Limit: 60
RateLimit-Remaining: 59
RateLimit-Reset: 47
{
"user": { "id": "...", "name": "Zon Hsai", "email": "...", "role": "ADMIN" },
"scopes": ["courses:read", "courses:write", "certificates:issue"],
"apiKeyId": "..."
}The RateLimit-*headers are present on every response. Your agent should respect them — back off on 429s instead of looping. See REST endpoints → Rate limits.
3. Create a draft course
curl -X POST \
-H "Authorization: Bearer empo_xxxxxxxxxxxx" \
-H "Content-Type: application/json" \
-d '{"title":"My first API course"}' \
https://academy.empomm.com/api/v1/coursesReturns { "id", "slug", "title", "status": "DRAFT" }. The course will appear in your My Courses dashboard immediately.
4. Connect Claude Desktop
Edit your Claude Desktop config (on macOS: ~/Library/Application Support/Claude/claude_desktop_config.json):
{
"mcpServers": {
"empo-academy": {
"url": "https://academy.empomm.com/api/mcp",
"transport": "streamable-http",
"headers": {
"Authorization": "Bearer empo_xxxxxxxxxxxx"
}
}
}
}Restart Claude Desktop. In any new conversation, ask: “Using EMPO, list my courses.” Claude will call empo_list_courses and display the table.
5. Try a real task
With the MCP server connected, agents can do useful work without clicking around the dashboard. Examples to try in Claude:
- “Create a draft course titled ‘Intro to KoboToolbox’ with these three modules: Setup, Form design, Field collection. Add two lessons to each module.”
- “Issue a Project DPro certificate to alice@example.com (in-person training delivered yesterday, 16 hours).”
- “Here’s a CSV of 50 trainees. Issue them all certificates for the same workshop, then summarize who got emailed successfully.”
Where to next
- REST endpoints— full reference, with the rate-limit + error-code contract
- MCP server setup— stdio package + Cursor instructions
- Scopes & permissions
/dashboard/api-keys/<your-key-id>/usage— last 25 calls, error rate, average duration, last error. Check here first when an agent misbehaves.