API reference
Refresh voices
Read the voice list and each voice's settings from ElevenLabs again. A person's action: nothing polls the provider.
Needs scope narration:write.
bearerAuthorizationBearer <token>An access token from the identity provider: a person's, or a customer's from the client credentials grant with an API key (developers.inorbit.hr). The gateway verifies it; the audience is iohr-api.
iohr.narration.v1.RefreshVoicesRequest; path variables override their fields
application/json- body
iohr.narration.v1.RefreshVoicesRequest
iohr.narration.v1.RefreshVoicesResponse
application/json- response
iohr.narration.v1.RefreshVoicesResponse
fetched_at*stringvoices*integerint32import { ApiError, Public } from "@inorbithr/sdk";// Reads INORBIT_TOKEN, or INORBIT_KEY_ID and INORBIT_KEY_SECRET.const api = Public.fromEnv();try { const { value } = await api.narration.refreshVoices({}); console.log(value);} catch (e) { if (!(e instanceof ApiError)) throw e; console.error(`${e.code}: ${e.problem} (request id ${e.raw.requestId})`);}npm install @inorbithr/sdk. Calls the package's public surface; an operation newer than your package needs the next release or a client generated for your account. The SDKs.
{ "fetched_at": "string", "voices": 0}List voices GET
The voices of the account's ElevenLabs connection, from a cache kept a week: never a provider call while it is fresh. `library` marks a Voice Library voice (someone else's, which they may stop sharing after a notice period). Needs scope `narration:read`.
Narrate lines POST
Narrate 1 to 50 lines of up to 400 characters with one voice. Without `spend: true` it is a dry run that counts what a run would cost and calls nothing that costs. Lines already narrated come from the account's clip cache at no cost; a run whose new characters pass the monthly budget or the provider's remaining characters is refused whole. Each clip carries its licence and the AI-voice disclosure; its audio is fetched with Get a clip. Needs scope `narration:write`.