Base URL
All API endpoints are relative to your PlanningSup instance:Authentication
The PlanningSup API supports two authentication methods:No authentication (planning data)
Most endpoints are public and don’t require authentication:/api/plannings- List all available plannings/api/plannings/:fullId- Get planning details and events
BetterAuth (user preferences)
WhenAUTH_ENABLED=true, authentication endpoints are available:
/api/auth/*- OAuth login, passkey registration, session management
Operations token (admin endpoints)
Admin endpoints require thex-ops-token header:
Response format
All responses are JSON with consistent structure.Success response
Error response
400- Bad request (invalid parameters)404- Resource not found429- Rate limit exceeded500- Internal server error
Rate limiting
When authentication is enabled, BetterAuth applies rate limits:- General endpoints: 100 requests per 60 seconds
- Passkey endpoints: 5 requests per 10 seconds
429 status and may include a Retry-After header.
CORS
The API allows cross-origin requests from trusted origins configured viaTRUSTED_ORIGINS.
For self-hosted instances, configure your frontend origins:
API client
For TypeScript projects, use the Eden Treaty client for type-safe requests:packages/libs/src/client/index.ts.
Endpoints
Plannings
List and retrieve university calendar plannings
Events
Fetch calendar events with filtering and timezone support
Authentication
OAuth, passkeys, and session management
Operations
Monitor system health and background jobs
Health check
Verify API availability:OpenAPI specification
The API automatically generates OpenAPI documentation from route definitions.View the OpenAPI spec at
/api/openapi (if enabled in your instance).Next steps
Plannings API
Learn how to list and retrieve plannings
Events API
Fetch and filter calendar events
Authentication
Implement user authentication
Operations
Monitor system health