API Reference¶
The Meet backend exposes a REST API at /api/v1.0/. All endpoints use JSON.
Authentication¶
Session authentication (browser)¶
Standard Django session authentication. Used by the frontend after OIDC login.
Bearer token (external integrations)¶
Server-to-server integrations use Bearer token authentication:
External JWT exchange¶
For embedding Meet in third-party applications:
Rooms¶
List rooms¶
Response:
{
"count": 2,
"results": [
{
"id": "550e8400-e29b-41d4-a716-446655440000",
"slug": "my-meeting-room",
"name": "My Meeting Room",
"access_level": "public",
"created_at": "2026-01-01T10:00:00Z"
}
]
}
Create a room¶
{
"name": "My Meeting Room",
"slug": "my-meeting-room",
"access_level": "public",
"configuration": {"recording_enabled": true}
}
Get a room¶
Update a room¶
Delete a room¶
Room tokens (LiveKit access)¶
Returns the LiveKit JWT and server URL that the browser uses to connect to the media server.
Response:
Room participants¶
List waiting participants (lobby)¶
Admit a participant from the lobby¶
Request entry (attendee → lobby)¶
Recordings¶
List recordings for a room¶
Start recording¶
Stop recording¶
Storage webhook (internal — called by Garage/S3)¶
LiveKit webhook (internal — called by LiveKit)¶
Files¶
List files in a room¶
Upload a file¶
Delete a file¶
Users¶
Get current user¶
Response:
Update current user¶
Frontend configuration¶
Returns feature flags and configuration for the frontend.
Response:
{
"silence_livekit_debug": false,
"is_silent_login_enabled": true,
"analytics": {},
"feedback": {}
}
Health check¶
Returns HTTP 200 if the application is running. Used by load balancers and monitoring.
Pagination¶
List endpoints support cursor-based pagination:
Default page_size is 20.
Error responses¶
All errors return a JSON body:
| Code | Meaning |
|---|---|
| 400 | Bad request — invalid input |
| 401 | Unauthorized — missing or invalid auth |
| 403 | Forbidden — lacking permission |
| 404 | Not found |
| 429 | Rate limited |
| 500 | Internal server error |
Rate limiting¶
The API applies per-user rate limiting. Rate limit errors return HTTP 429 with a Retry-After header.
OpenAPI / Swagger¶
Interactive API explorer (available when USE_SWAGGER=True):