API reference
Narrate lines
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.
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.SynthesizeRequest; path variables override their fields
application/json- body
iohr.narration.v1.SynthesizeRequest
context?booleanlanguage_code?stringlines?array<>model_id?stringspend?booleanvoice_id?stringiohr.narration.v1.SynthesizeResponse
application/json- response
iohr.narration.v1.SynthesizeResponse
characters_cached*integerint32characters_left*integerint32characters_needed*integerint32characters_spent*integerint32clips*array<>dry_run*booleanimport { 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.synthesize({ language_code: "<language_code>" }); 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.
{ "characters_cached": 0, "characters_left": 0, "characters_needed": 0, "characters_spent": 0, "clips": [ { "alignment": { "characters": [ "string" ], "end_ms": [ 0 ], "start_ms": [ 0 ] }, "audio": "string", "cached": true, "characters": 0, "content_type": "string", "duration_ms": 0, "hash": "string", "licence": { "attribution": "string", "commercial": true, "disclosure": "string", "generated_at": "string", "library_voice": true, "model_id": "string", "provider": "string", "provider_plan": "string", "voice_id": "string", "voice_name": "string" } } ], "dry_run": true}Refresh voices POST
Read the voice list and each voice's settings from ElevenLabs again. A person's action: nothing polls the provider. Needs scope `narration:write`.
Get a clip GET
One narrated clip of the account's with its audio (MP3), per-character timings, its licence (the provider's plan when it was made, whether it may be used commercially, the voice) and the AI-voice disclosure. Needs scope `narration:read`.