nano ships with a set of built-in REST API endpoints that power everything from the search bar to HLS stream playback. These endpoints run server-side as part of the Astro SSR application — no separate API server is needed. You can call them directly from any HTTP client or use them to integrate nano’s capabilities into your own frontend.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/mohameodo/nano/llms.txt
Use this file to discover all available pages before exploring further.
Base URL
All endpoints are relative to your nano instance’s base URL. For a local development server this is typically:https://nano.example.com).
HTTP Methods
All data endpoints useGET requests. The exceptions are /api/auth (which uses POST for login, signup, and logout) and /api/library (which supports both GET and POST).
Authentication
Most endpoints require no authentication. If you have setENABLE_AUTH=true in your environment, nano gates the entire application behind a login wall — unauthenticated requests to any page or API endpoint will be redirected to the login screen.
Endpoints
/api/search
Search TMDB for movies and TV shows by query string. Returns paginated results with title, poster, media type, and release date.
/api/details
Fetch detailed metadata for a specific movie or TV show by TMDB ID, including overview, genres, cast, season info, and more.
/api/scrape
Resolve a playable stream URL for a movie or TV episode by TMDB ID using an installed
.rink scraper plugin./api/proxy
Server-side CORS proxy for HLS playlists and stream segments. Rewrites M3U8 segment paths and strips restrictive headers for browser playback.
/api/stream
Serve local video files from the server filesystem with HTTP range request support. Used for the local media library feature on Node.js deployments.
Additional Endpoints
GET /api/trending
Returns up to 6 trending movies and TV shows fetched from TMDB’s trending/all/day endpoint. Used internally by the homepage when SHOW_TRENDING=true is set. No query parameters required. Returns { results: TmdbResult[] }. Falls back to a static list of popular titles if TMDB is unavailable.
GET /api/library and POST /api/library
Reads and writes a rink.json local media library config file on the server filesystem. Only available on Node.js deployments — returns HTTP 501 on Cloudflare environments. See the Local Library feature guide for details.
POST /api/auth
Handles login, signup, and logout when ENABLE_AUTH=true. See Authentication for details.