Authentication, Licensing & Learning API for Educorner

All systems operational
🔒

JWT Authentication

Secure token-based authentication with access and refresh tokens, plus Google & Facebook OAuth.

🔐

Software Licensing

ECDSA-signed license activation, hardware-bound tokens, heartbeat validation, and admin management.

🎤

Text-to-Speech

AI-powered speech synthesis via Deepgram Aura for vocabulary pronunciation.

📈

Progress Tracking

Track vocabulary learning progress with sync across devices and detailed statistics.

App Settings

Cloud-synced application settings including SMTP configuration and user preferences.

🛠

API Documentation

Interactive OpenAPI 3.0 docs with request/response examples.

Open Swagger UI →

Authentication

POST /api/auth/signup Create new account
POST /api/auth/login Login with email/password
POST /api/auth/social-login Login with Google/Facebook
POST /api/auth/refresh Refresh access token
GET /api/auth/profile Get user profile 🔒
PUT /api/auth/profile Update user profile 🔒

Licensing

HMAC Auth
POST /api/licenses/activate Activate license & get signed token
POST /api/licenses/validate Validate activation & refresh token
POST /api/licenses/heartbeat Send heartbeat check
POST /api/licenses/deactivate Deactivate license
GET /api/licenses/public-keys Get public verification keys

License Admin

JWT Auth
GET /api/admin/licenses List licenses 🔒
POST /api/admin/licenses Create new license 🔒
GET /api/admin/licenses/{id} Get license details 🔒
PATCH /api/admin/licenses/{id} Update license 🔒
POST /api/admin/licenses/{id}/revoke Revoke license 🔒
POST /api/admin/licenses/{id}/suspend Suspend license 🔒
POST /api/admin/licenses/{id}/reinstate Reinstate license 🔒

Product Admin

JWT Auth
POST /api/admin/products Create new product 🔒

Progress, TTS & Settings

GET /api/progress Get learning progress 🔒
POST /api/progress Save learning progress 🔒
POST /api/tts/synthesize Synthesize speech from text 🔒
GET /api/settings Get app settings 🔒
PUT /api/settings Update app settings 🔒
GET /health Health check
View Full Documentation →