Developer API
Narrate text with the Reader API (included in Reader Pro and the Knowledge Suite) and run Scholar tools with the Scholar API (included in Scholar Institution). Calls follow the same plan rules and use the same minutes and credits as the apps.
Authentication
Create a key on your Subscription page and send it in the Authorization header. Keys are shown once; revoke a key there at any time. Each key may make 60 requests a minute.
Authorization: Bearer lvr_your_keyErrors are JSON { "error": "...", "code": "..." } with status 401 (missing or revoked key), 403 (PLAN_FEATURE_LOCKED, PLAN_LIMIT), 402 (out of minutes or credits) or 429 (rate limit).
Endpoints
GET/api/v1/me
Any key
Your plans, API scopes, Reader minutes and Scholar credits.
curl https://loudvoicereader-scholar.com/api/v1/me -H "Authorization: Bearer lvr_your_key"GET/api/v1/voices
Reader API
The voices your plan can use. Pass a voice's id as voiceId.
POST/api/v1/tts
Reader API
Narrate up to a book's worth of text. The first segment's audio URL comes back at once; the rest is generated in the background — poll the task for it. Reuse the same docId for every part of one book.
curl -X POST https://loudvoicereader-scholar.com/api/v1/tts \
-H "Authorization: Bearer lvr_your_key" \
-H "Content-Type: application/json" \
-d '{"text": "Chapter one…", "voiceId": "openai-alloy-narrative",
"tonality": "narrative", "speed": 1.0, "docId": "my-book-1"}'Response: taskId, totalChunks, segment0.presigned_url (audio), creditsCharged.
GET/api/v1/tts/tasks/{taskId}
Reader API
Progress of a narration and the audio URL of each segment.
POST/api/v1/scholar
Scholar API
Run a Scholar action on a document: chat, summarize, translate, quiz, recommend, websearch, humanize, compile, extractData, findTopics, evidenceTable, advancedReport. Each uses Scholar credits as in the app.
curl -X POST https://loudvoicereader-scholar.com/api/v1/scholar \
-H "Authorization: Bearer lvr_your_key" \
-H "Content-Type: application/json" \
-d '{"action": "summarize", "documentText": "…full text…"}'Long actions (compile, advancedReport, humanize) stream whitespace while they work, then the JSON result — read the whole response before parsing.