The Norsolia API
A JSON API for shows, episodes, feeds and stats. This page is generated from the same OpenAPI document the server returns at /api/v1/openapi.json.
Basics
- Base URL:
https://api.norsolia.comin the Core region. Each region is independent, with its own accounts and data. - Auth: send
Authorization: Bearer <token>, or sign in and use the session cookie (then addX-CSRF-Tokenon writes). - Errors: one shape everywhere —
{"error":{"code","message"},"request_id"}— plus anX-Request-Idheader. - Unknown paths under
/api/return 404 as JSON, including unknown versions. The retired/api/v0/returns 410 Gone.
A first call
curl -X POST https://api.norsolia.com/api/v1/auth/register \
-H "Content-Type: application/json" \
-d '{"email":"you@example.com","password":"a-long-passphrase","name":"Your name"}'
curl https://api.norsolia.com/api/v1/shows \
-H "Authorization: Bearer nk_live_..."
Endpoints
Auth
POST /api/v1/auth/registerCreate an account (public)
POST /api/v1/auth/loginSign in (public)
POST /api/v1/auth/logoutSign out (token or session)
Account
GET /api/v1/meCurrent account (token or session)
PATCH /api/v1/meUpdate profile (token or session)
DELETE /api/v1/meDelete account (token or session)
POST /api/v1/me/passwordChange password (token or session)
GET /api/v1/sessionsActive sessions (token or session)
DELETE /api/v1/sessions/{id}End a session (token or session)
GET /api/v1/migrationRead migration checklist (token or session)
PUT /api/v1/migrationSave migration checklist (token or session)
GET /api/v1/exportExport all data (token or session)
POST /api/v1/waitlistJoin a plan waitlist (public)
POST /api/v1/contactSend a message (public)
Tokens
GET /api/v1/tokensList API tokens (token or session)
POST /api/v1/tokensCreate an API token (token or session)
DELETE /api/v1/tokens/{id}Revoke a token (token or session)
Shows
GET /api/v1/showsList your shows (token or session)
POST /api/v1/showsCreate a show (token or session)
GET /api/v1/shows/{slug}Get a show (public)
PATCH /api/v1/shows/{slug}Update a show (token or session)
DELETE /api/v1/shows/{slug}Delete a show (token or session)
PUT /api/v1/shows/{slug}/coverUpload a show cover (token or session)
Episodes
GET /api/v1/shows/{slug}/episodesList episodes (public)
POST /api/v1/shows/{slug}/episodesCreate an episode (metadata) (token or session)
GET /api/v1/episodes/{id}Get an episode (public)
PATCH /api/v1/episodes/{id}Update an episode (token or session)
DELETE /api/v1/episodes/{id}Delete an episode (token or session)
PUT /api/v1/episodes/{id}/audioUpload episode audio (token or session)
GET /api/v1/episodes/{id}/statsEpisode play stats (token or session)
GET /api/v1/episodes/{id}/chaptersEpisode chapters (public)
Status
GET /healthService health (public)
GET /api/v1/healthService health (public)
GET /api/v1/statusPublic status (public)
GET /api/v1/openapi.jsonThis specification (public)