API 레퍼런스 · Platform

Voices

The roster, your cloned voices and the public voice catalog — everything speech accepts.

GETPOSTDELETE/v1/voicesFree (cloning included) — speech is billed per use

Everything /v1/audio/speech accepts as a voice: the roster (kind: "roster") and your clones (kind: "cloned" — pass the clone's id). Characters speak too: use char:<id> instead.

POST /v1/voices clones a voice from audio samples (multipart: name + one or more audio files, 1GB total) — free, synchronous, returns the clone ready to use. DELETE /v1/voices/{id} removes a clone. The paid part is the speech that uses it.

The public voice catalog. A clone goes public only when its owner publishes it (POST /v1/voices/{id}/publish) with consent: true — their attestation that it is their own voice or that they have the speaker's permission. Anyone can then pass its id as the voice of /v1/audio/speech, billed as usual; the owner is not paid. GET /v1/voices/public lists the catalog: sort=trending is the popularity algorithm — distinct people who generated with the voice (1 point) or listened to it (0.25) each day, halved every 3 days, plus 2·ln(1 + likes) and a newcomer boost — one person counts once a day and the owner never counts. popular = most used, liked, new.

엔드포인트

메서드를 선택하면 요청, 플레이그라운드, 응답을 불러와요.

GET/v1/voices표시 중

List the roster and your clones.

POST/v1/voices

Clone a voice from audio samples (multipart: name + one or more audio files, 1GB total). Free and synchronous.

namestring필수

Clone name, up to 80 characters.

filesfile필수

One or more audio samples (wav or mp3), 1GB total. Thirty clean seconds is usually enough.

DELETE/v1/voices/{id}

Delete a clone — characters using it fall back to the default voice.

GET/v1/voices/public

The public voice catalog — voices their owners shared, usable by anyone.

POST/v1/voices/{id}/publish

Submit one of your cloned voices to the public catalog — attested, free. It joins the catalog once our team approves it (review: pending → approved or rejected, readable on GET /v1/voices). Publishing again keeps the verdict unless the name or description changes.

consentboolean필수

Must be true: you attest that this is your own voice, or that you have the explicit permission of the person it belongs to, and that it imitates no celebrity or public figure.

languagestring필수

Language code (see GET /v1/voices/public).

genderstring

female, male or neutral.

tagsstring[]

Up to 5, e.g. Soft, Sultry, Deep, Calm, Narration, ASMR.

descriptionstring

One line, up to 240 characters.

namestring

Rename it on the way out, up to 80 characters.

DELETE/v1/voices/{id}/publish

Take your voice out of the catalog (popularity waits for a re-publish).

POST/v1/voices/{id}/like

Like a public voice (idempotent).

DELETE/v1/voices/{id}/like

Take a like back (idempotent).

POST/v1/voices/{id}/report

Report a public voice — an impersonation, a voice used without consent, anything against the acceptable use policy.

reasonstring필수

What is wrong, 3–500 characters.

curl https://eroq.ai/v1/voices \
  -H "Authorization: Bearer $EROQ_API_KEY"
/v1/voices
→ GET /v1/voices
실행을 눌러 보세요 — 문서에 담긴 데이터로 실제 요청과 응답을 그대로 재현해요. 키도, 요청도, 요금도 없어요.

응답

200 · application/json
{
  "voices": [
    { "id": "aria", "name": "Aria", "kind": "roster", "gender": "female" },
    { "id": "b7c2…", "name": "My narrator", "kind": "cloned", "previewUrl": "https://…", "public": true, "review": "pending", "reviewNote": null }
  ]
}