Overview API Reference Platform Guide Pricing
Sign In Get API Keys →
REST API · v1 · Live

Build on the learning platform

Integrate AI tutoring, adaptive learning profiles, sessions, gamification, and more into your product — through a single clean API.

Base URLhttps://api.studuet.com
AuthBearer sk_live_
FormatJSON
Versionv1
All systems operational  ·  Health Check →
Quick Start

Up and running in 60 seconds

Authenticate, make your first request, and receive a live response — no SDK required.

STEP 01
Get a token
POST to /api/auth/login with your email and password to receive a signed JWT.
STEP 02
Pass the header
Include Authorization: Bearer <token> on every authenticated request.
STEP 03
Make a request
Hit any endpoint. All responses are JSON. Errors include a human-readable error field.
cURL example — Login & fetch your profile
# 1. Authenticate — returns { token, user }
curl -X POST "https://api.studuet.com/api/auth/login" \
  -H "Content-Type: application/json" \
  -d '{"email":"you@example.com","password":"yourpassword"}'

# 2. Use the returned token on subsequent requests
curl "https://api.studuet.com/api/users/me" \
  -H "Authorization: Bearer <your_token_here>"

# 3. Ask Uris AI a question
curl -X POST "https://api.studuet.com/api/ai-tutor/chat" \
  -H "Authorization: Bearer <token>" \
  -H "Content-Type: application/json" \
  -d '{"message":"Explain data governance in simple terms","history":[]}'

Partner API

Metered API keys for third-party apps

Building your own product on Studuet? Use a long-lived sk_live_… API key instead of a JWT. Every request counts against your plan's monthly quota; over-quota requests return 429. Create keys and track usage in your Developer Dashboard; see plans & pricing.

STEP 01
Create an API key
Register a developer account, then generate a key in the dashboard. Copy it once — it's shown only at creation.
STEP 02
Call the v1 base URL
All partner endpoints live under https://api.studuet.com/v1 and take Authorization: Bearer sk_live_….
STEP 03
Watch your quota
Each response's usage reflects your cycle. At the limit you get 429 with an upgrade_url. Quotas reset monthly.
cURL example — verify your key & usage
# Health + plan/usage echo (counts as 1 request)
curl "https://api.studuet.com/v1/ping" \
  -H "Authorization: Bearer sk_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"

# → 200 OK
# {
#   "ok": true,
#   "message": "Studuet API v1 is live.",
#   "plan": "free",
#   "usage": { "requests_this_cycle": 1, "quota": 1000 }
# }

# Over quota → 429 with an upgrade link
# { "error": "Monthly request quota exceeded for your plan",
#   "upgrade_url": "https://api.studuet.com/api-pricing" }

API Modules

Everything your app needs

21 resource groups covering the full Studuet platform. Click any module to jump to its reference docs.

Authentication

Register, log in, reset passwords, verify email, and manage JWT sessions.

POST

Users

Fetch and update user profiles, avatars, preferences, and subscription data.

GET PATCH DELETE

CLP Profiles

Read and update Cognitive Learning Profiles — 11 dimensions of how each student learns.

GET POST PATCH

Sessions

Book, confirm, start, and complete tutor sessions. Access session history and ratings.

GET POST PATCH

AI Tutor (Uris)

Chat with the AI tutor, generate TTS voice audio, and manage knowledge resources.

GET POST

ILE / Adaptive

Query and apply Intelligent Learning Environment adaptations based on CLP signals.

GET POST

Mock Exams

Create AI-generated exams, submit answers, retrieve scores, and analyse mistake DNA.

GET POST PATCH

Flashcards

Manage spaced-repetition flashcard decks with SM-2 scheduling and review tracking.

GET POST PATCH DELETE

Study Logs

Log study sessions with CLP-aware XP multipliers. Retrieve per-student activity history.

GET POST

XP & Leaderboard

Read XP totals, full audit ledger, and ranked leaderboards across the platform.

GET

Badges

Fetch CLP-linked achievement badges and trigger real-time badge evaluation for students.

GET POST

Study Squads

Create and join squads, manage members, pool XP, and view squad-level rankings.

GET POST PATCH DELETE

Competitions

Run prize draws, award competition tickets, and manage monthly reward pools.

GET POST

Study Materials

Upload, process, and semantically search student study bank content for RAG context.

GET POST DELETE

Notifications

Read, mark read, and stream real-time notifications via Server-Sent Events.

GET PATCH

Analytics

Platform-wide usage metrics, student engagement stats, and learning outcome data.

GET

Payments

Manage session payments, Stripe checkout, and transaction history.

GET POST

Authentication

Token-based auth, two roles

All API endpoints require a signed JWT unless marked public. Tokens are issued on login and are valid for 7 days.

Get an API Key

Register at the Developer Portal to create a free developer account and generate sk_live_ API keys instantly. No approval required.

# 1. Register at /developer/register # then create a key in your dashboard # # 2. Use your key on every request: GET /api/users/me Authorization: Bearer sk_live_<your_key> // Response { "user": { "id": 42, "role": "developer" } }

Authorise requests

Pass your sk_live_ API key in the Authorization header on every protected request. Keys can be created and revoked from your dashboard.

# Every authenticated request curl https://api.studuet.com/api/users/me \ -H "Authorization: Bearer sk_live_<your_key>" // Key roles "developer" → full API access via sk_live_ key "student" → standard user access (JWT) "tutor" → tutor-specific endpoints (JWT) "admin" → platform admin (JWT, amber badge)

Rate Limits

Fair use limits by tier

Rate limits are enforced per IP and per authenticated user. Exceeding limits returns 429 Too Many Requests.

Endpoint Group Window Limit Status
Auth (login, register) 15 min 20 requests Strict
AI Tutor chat 1 min 30 requests Moderate
All other API routes 15 min 300 requests Generous
File uploads (materials) 1 hour 50 requests Moderate
Admin endpoints 15 min 500 requests High

Error Handling

Consistent, readable errors

All errors return JSON with an error string. HTTP status codes follow REST conventions.

200

OK

Request succeeded. Body contains requested data.

201

Created

Resource created. Body contains { id }.

400

Bad Request

Missing or invalid fields. Check the error message.

401

Unauthorised

Missing or expired JWT. Re-authenticate to get a fresh token.

403

Forbidden

Valid token but insufficient role (e.g. student hitting admin endpoint).

404

Not Found

Resource doesn't exist or doesn't belong to the authenticated user.

409

Conflict

Duplicate resource (e.g. email already registered, badge already earned).

422

Unprocessable

Validation passed but business logic failed (e.g. insufficient XP).

429

Too Many Requests

Rate limit exceeded. Back off and retry after the window resets.

500

Server Error

Unexpected internal error. Contact developers@studuet.com.

503

Service Unavailable

AI token budget exceeded or downstream dependency unavailable.

Ready to build?

Browse the full interactive reference with request/response examples for every endpoint.