---
title: "Diálogo com Várias Vozes"
description: "Gera uma conversa com até 10 vozes diferentes em um único áudio. Preço por faixa, a partir de R$ 0,60 por chamada."
lang: pt-BR
canonical: https://doc.apibrasil.io/apis/creditos/360cad6c-dec0-11f1-98bb-bc24118aba26
markdown: https://doc.apibrasil.io/apis/creditos/360cad6c-dec0-11f1-98bb-bc24118aba26.md
source: apibrasil-documentation
---

# Diálogo com Várias Vozes

> Gera uma conversa com até 10 vozes diferentes em um único áudio. Preço por faixa, a partir de R$ 0,60 por chamada.

- **Categoria:** Voz e Áudio com IA
- **Cobrança:** por consulta, só com o Bearer Token
- **Preço:** R$ 0,60 por consulta
- **Limite:** 990.000 por mês
- **Cadastro:** CPF ou CNPJ
- **Versão:** v2
- **Publicada por:** APIBrasil
- **Especificação OpenAPI:** https://doc.apibrasil.io/apis/creditos/360cad6c-dec0-11f1-98bb-bc24118aba26/openapi.json

## Como chamar

**Endereço base:** `https://gateway.apibrasil.io/api/v2`

Autenticação: cabeçalho `Authorization: Bearer <token>`. Nada além disso.

Com `homolog: true` no corpo, o gateway responde de uma base fixa, com a forma real da resposta, e não cobra. O CPF 00000000000 é dessa base e não é de ninguém: use-o nos testes, nunca em produção.

## Endpoints (4 endpoints)

**Sumário**

1. `POST /consulta/voz-dialogo/credits`
2. `POST /consulta/voz-dialogo/credits`
3. `POST /consulta/voz-dialogo/credits`
4. `POST /consulta/voz-dialogo/credits`

### 1. POST /consulta/voz-dialogo/credits

⚠️ Aviso: a chamada é cobrada quando a lista é devolvida (HTTP 200), mesmo que o filtro não encontre nenhuma voz. Filtro com valor fora da lista é recusado sem cobrança.

Listar vozes disponíveis: Lista as vozes que podem ir no campo voz de cada fala: as do catálogo, em português do Brasil, e as vozes próprias da sua conta. Cada voz traz o identificador (voz, o valor que vai no campo voz da fala), o nome, o sexo, a faixa de idade, o estilo, o uso indicado, a origem (catalogo ou propria) e o link de uma amostra (as vozes próprias saem sem amostra). A resposta traz também as emoções e os formatos aceitos na geração do diálogo.

Envie um POST com tipo=voz-dialogo-vozes e:
- sexo (opcional, texto): Filtra pelo sexo da voz: feminino, masculino ou neutro.
- idade (opcional, texto): Filtra pela faixa de idade da voz: jovem, meia_idade ou idoso.
- estilo (opcional, texto): Filtra pelo estilo da voz, com um dos valores que a própria lista devolve no campo estilo.
- uso (opcional, texto): Filtra pelo uso indicado, com um dos valores que a própria lista devolve no campo uso.
- busca (opcional, texto): Trecho do nome, do estilo ou do uso da voz, sem diferença entre maiúsculas e minúsculas nem de acentos.

Respostas de erro (nenhuma é cobrada):
- HTTP 400: um filtro veio com valor fora da lista (sexo, idade, estilo ou uso)
- HTTP 502: o serviço de voz respondeu fora do esperado
- HTTP 503: o serviço de voz está indisponível ou no limite de chamadas simultâneas; tente de novo em alguns segundos
- HTTP 504: o serviço de voz não respondeu dentro do tempo limite

Preço: R$ 0,01 por chamada.
Em homologação (homolog=true), sem cobrança, a resposta traz dados fictícios no mesmo formato.

O áudio é gerado por inteligência artificial e leva uma marca d'água inaudível, que não pode ser removida. Avise quem ouve que as vozes são sintéticas quando a lei exigir ou quando a falta do aviso puder enganar.

O texto é processado em servidores nos Estados Unidos. Não envie no texto dado de saúde, número de cartão ou número de documento oficial, como o CPF.

- **Método:** `POST`
- **Endereço:** `https://gateway.apibrasil.io/api/v2/consulta/voz-dialogo/credits`
- **Versão da rota:** v2

**Cabeçalhos**

| Cabeçalho | Valor |
| --- | --- |
| `Content-Type` | `application/json` |
| `Authorization` | `Bearer $APIBRASIL_TOKEN` |

**Corpo da requisição**

```json
{
  "tipo": "voz-dialogo-vozes",
  "sexo": "feminino",
  "homolog": true
}
```

**Em cURL**

```bash
curl -X POST "https://gateway.apibrasil.io/api/v2/consulta/voz-dialogo/credits" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $APIBRASIL_TOKEN" \
  -d '{"tipo":"voz-dialogo-vozes","sexo":"feminino","homolog":true}'
```

Este endpoint aceita `homolog: true` no corpo: a resposta volta com dados válidos, `api_limit_for` igual a `homolog` e sem tarifação.

**Resposta de exemplo, do catálogo**

```json
{
  "user": {
    "first_name": "[omitido]",
    "email": "[omitido]",
    "cellphone": "[omitido]",
    "notification": "yes"
  },
  "balance": "399,990",
  "balance_before": "400,000",
  "tax": "0,010",
  "status_code": 200,
  "error": false,
  "message": "Dados validos! Voce foi tarifado em R$ 0,01.",
  "valor_consulta": 0.01,
  "api_limit_for": "credit",
  "homolog": false,
  "data": {
    "tipo": "voz-dialogo-vozes",
    "vozes": [
      {
        "voz": "AbCdEfGhIj0123456789",
        "nome": "Ana",
        "sexo": "feminino",
        "idade": "jovem",
        "estilo": "profissional",
        "uso": "conversa",
        "origem": "catalogo",
        "amostra_url": "https://gateway.apibrasil.io/proxy/?u=https%3A%2F%2Fvoz-dialogo.apidocumentos.com.br%2Famostra%2FAbCdEfGhIj0123456789"
      },
      {
        "voz": "UvWxYzAbCd1357924680",
        "nome": "Minha voz de atendimento",
        "sexo": "feminino",
        "idade": "meia_idade",
        "estilo": "calmo",
        "uso": "atendimento",
        "origem": "propria",
        "amostra_url": null
      }
    ],
    "total": 2,
    "emocoes": [
      "alegre",
      "animado",
      "calmo",
      "triste",
      "serio",
      "empatico",
      "profissional",
      "tranquilizador",
      "curioso",
      "surpreso",
      "irritado",
      "sarcastico",
      "sussurrando",
      "rindo"
    ],
    "formatos": [
      "mp3",
      "mp3_leve",
      "ogg",
      "wav",
      "telefonia"
    ]
  }
}
```

### 2. POST /consulta/voz-dialogo/credits

⚠️ Aviso: a chamada é cobrada quando o áudio do diálogo é gerado e o link é devolvido (HTTP 200). Diálogo com a soma dos textos acima de 500 caracteres, fala com voz que não existe ou não é da sua conta, texto barrado pela moderação e falha na geração não são cobrados.

Gerar diálogo de até 500 caracteres: Gera o áudio da conversa, com cada fala na voz escolhida, e devolve o link para download (audio_url), o tipo do arquivo (tipo_mime), o tamanho em bytes, a duração em segundos, a validade do link (expira_em), quantos caracteres contaram na faixa (caracteres: a soma dos textos das falas, já com as emoções e as marcações), o total de falas, as vozes usadas, o formato e o modelo de voz. Neste tipo a soma dos textos das falas vai até 500 caracteres.

Envie um POST com tipo=voz-dialogo-500 e:
- falas (obrigatório, lista): As falas, na ordem da conversa: de 2 a 30 itens e até 10 vozes diferentes. Cada item é um objeto com voz (o identificador da voz, tirado da lista do tipo voz-dialogo-vozes: catálogo ou voz própria da sua conta), texto (o que essa voz diz) e, se quiser, emocao (alegre, animado, calmo, triste, serio, empatico, profissional, tranquilizador, curioso, surpreso, irritado, sarcastico, sussurrando ou rindo), que vira uma marcação no início daquela fala. A soma dos textos vai até 500 caracteres neste tipo, contando a marcação de cada emoção e as marcações entre colchetes que você escrever no texto (por exemplo [laughs] ou [whispers]).
- estabilidade (opcional, decimal): De 0 a 1, padrão 0.5, para o diálogo inteiro. Mais alto deixa as falas mais constantes; mais baixo, mais expressivas.
- formato (opcional, texto): mp3 (padrão, 44,1 kHz e 128 kbps), mp3_leve (22,05 kHz e 32 kbps), ogg (Opus, o formato da nota de voz do WhatsApp), wav (24 kHz; até 1747 caracteres somando as falas, porque acima disso o áudio passaria do tamanho que o link entrega) ou telefonia (µ-law a 8 kHz, para URA).
- semente (opcional, inteiro): De 0 a 4294967295. Repetir a semente com as mesmas falas e os mesmos ajustes tende a gerar o mesmo áudio.
- variacao (opcional, inteiro): De 0 a 999999, não muda o áudio por si: trocar o número faz o pedido deixar de ser idêntico a um anterior e gera outra versão, em vez de devolver a resposta guardada.

Respostas de erro (nenhuma é cobrada):
- HTTP 400: falas ausentes ou fora da forma: menos de 2 ou mais de 30 falas, mais de 10 vozes diferentes, fala sem voz ou sem texto, ou emoção, formato, estabilidade ou semente fora da lista ou da faixa (a mensagem diz qual fala e qual campo)
- HTTP 400: a soma dos textos das falas passa de 500 caracteres (a mensagem diz o tamanho enviado e qual tipo comporta)
- HTTP 400: formato wav com a soma dos textos das falas acima de 1747 caracteres: o áudio passaria do tamanho que o link entrega (a mensagem diz os formatos que cabem)
- HTTP 404: a voz de uma das falas não existe no catálogo e não é uma voz da sua conta (a mensagem diz qual fala)
- HTTP 422: o texto de uma das falas foi barrado pela moderação do serviço de voz
- HTTP 502: o serviço de voz respondeu sem o áudio ou com erro
- HTTP 503: o serviço de voz está indisponível ou no limite de chamadas simultâneas; tente de novo em alguns segundos
- HTTP 504: a geração passou do tempo limite, ou a conferência das vozes gastou o prazo da consulta (55 s desde a chegada do pedido) e o tempo que sobrou não comportava a geração (nesse caso o diálogo nem chega a ser gerado)

Preço: R$ 0,60 por chamada.
Em homologação (homolog=true), sem cobrança, a resposta traz dados fictícios no mesmo formato.

O áudio é gerado por inteligência artificial e leva uma marca d'água inaudível, que não pode ser removida. Avise quem ouve que as vozes são sintéticas quando a lei exigir ou quando a falta do aviso puder enganar.

O texto é processado em servidores nos Estados Unidos. Não envie no texto dado de saúde, número de cartão ou número de documento oficial, como o CPF.

- **Método:** `POST`
- **Endereço:** `https://gateway.apibrasil.io/api/v2/consulta/voz-dialogo/credits`
- **Versão da rota:** v2

**Cabeçalhos**

| Cabeçalho | Valor |
| --- | --- |
| `Content-Type` | `application/json` |
| `Authorization` | `Bearer $APIBRASIL_TOKEN` |

**Corpo da requisição**

```json
{
  "tipo": "voz-dialogo-500",
  "falas": [
    {
      "voz": "AbCdEfGhIj0123456789",
      "texto": "Oi, Rafael! Você viu que o pedido já saiu para entrega?",
      "emocao": "animado"
    },
    {
      "voz": "KlMnOpQrSt9876543210",
      "texto": "Vi, sim. Chega hoje até as 18 horas."
    }
  ],
  "formato": "mp3",
  "homolog": true
}
```

**Em cURL**

```bash
curl -X POST "https://gateway.apibrasil.io/api/v2/consulta/voz-dialogo/credits" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $APIBRASIL_TOKEN" \
  -d '{"tipo":"voz-dialogo-500","falas":[{"voz":"AbCdEfGhIj0123456789","texto":"Oi, Rafael! Você viu que o pedido já saiu para entrega?","emocao":"animado"},{"voz":"KlMnOpQrSt9876543210","texto":"Vi, sim. Chega hoje até as 18 horas."}],"formato":"mp3","homolog":true}'
```

Este endpoint aceita `homolog: true` no corpo: a resposta volta com dados válidos, `api_limit_for` igual a `homolog` e sem tarifação.

**Resposta de exemplo, do catálogo**

```json
{
  "user": {
    "first_name": "[omitido]",
    "email": "[omitido]",
    "cellphone": "[omitido]",
    "notification": "yes"
  },
  "balance": "399,400",
  "balance_before": "400,000",
  "tax": "0,600",
  "status_code": 200,
  "error": false,
  "message": "Dados validos! Voce foi tarifado em R$ 0,60.",
  "valor_consulta": 0.6,
  "api_limit_for": "credit",
  "homolog": false,
  "data": {
    "tipo": "voz-dialogo-500",
    "audio_url": "https://gateway.apibrasil.io/proxy/?u=https%3A%2F%2Fvoz-dialogo.apidocumentos.com.br%2Faudio%2F0f1e2d3c-4b5a-4978-8796-a5b4c3d2e1f0",
    "tipo_mime": "audio/mpeg",
    "tamanho_bytes": 104480,
    "duracao_segundos": 6.53,
    "expira_em": "2026-11-13T15:00:00-03:00",
    "caracteres": 101,
    "total_de_falas": 2,
    "vozes": [
      "AbCdEfGhIj0123456789",
      "KlMnOpQrSt9876543210"
    ],
    "formato": "mp3",
    "modelo": "v4"
  }
}
```

### 3. POST /consulta/voz-dialogo/credits

⚠️ Aviso: a chamada é cobrada quando o áudio do diálogo é gerado e o link é devolvido (HTTP 200). Diálogo com a soma dos textos acima de 1000 caracteres, fala com voz que não existe ou não é da sua conta, texto barrado pela moderação e falha na geração não são cobrados.

Gerar diálogo de até 1000 caracteres: Gera o áudio da conversa, com cada fala na voz escolhida, e devolve o link para download (audio_url), o tipo do arquivo (tipo_mime), o tamanho em bytes, a duração em segundos, a validade do link (expira_em), quantos caracteres contaram na faixa (caracteres: a soma dos textos das falas, já com as emoções e as marcações), o total de falas, as vozes usadas, o formato e o modelo de voz. Neste tipo a soma dos textos das falas vai até 1000 caracteres.

Envie um POST com tipo=voz-dialogo-1000 e:
- falas (obrigatório, lista): As falas, na ordem da conversa: de 2 a 30 itens e até 10 vozes diferentes. Cada item é um objeto com voz (o identificador da voz, tirado da lista do tipo voz-dialogo-vozes: catálogo ou voz própria da sua conta), texto (o que essa voz diz) e, se quiser, emocao (alegre, animado, calmo, triste, serio, empatico, profissional, tranquilizador, curioso, surpreso, irritado, sarcastico, sussurrando ou rindo), que vira uma marcação no início daquela fala. A soma dos textos vai até 1000 caracteres neste tipo, contando a marcação de cada emoção e as marcações entre colchetes que você escrever no texto (por exemplo [laughs] ou [whispers]).
- estabilidade (opcional, decimal): De 0 a 1, padrão 0.5, para o diálogo inteiro. Mais alto deixa as falas mais constantes; mais baixo, mais expressivas.
- formato (opcional, texto): mp3 (padrão, 44,1 kHz e 128 kbps), mp3_leve (22,05 kHz e 32 kbps), ogg (Opus, o formato da nota de voz do WhatsApp), wav (24 kHz; até 1747 caracteres somando as falas, porque acima disso o áudio passaria do tamanho que o link entrega) ou telefonia (µ-law a 8 kHz, para URA).
- semente (opcional, inteiro): De 0 a 4294967295. Repetir a semente com as mesmas falas e os mesmos ajustes tende a gerar o mesmo áudio.
- variacao (opcional, inteiro): De 0 a 999999, não muda o áudio por si: trocar o número faz o pedido deixar de ser idêntico a um anterior e gera outra versão, em vez de devolver a resposta guardada.

Respostas de erro (nenhuma é cobrada):
- HTTP 400: falas ausentes ou fora da forma: menos de 2 ou mais de 30 falas, mais de 10 vozes diferentes, fala sem voz ou sem texto, ou emoção, formato, estabilidade ou semente fora da lista ou da faixa (a mensagem diz qual fala e qual campo)
- HTTP 400: a soma dos textos das falas passa de 1000 caracteres (a mensagem diz o tamanho enviado e qual tipo comporta)
- HTTP 400: formato wav com a soma dos textos das falas acima de 1747 caracteres: o áudio passaria do tamanho que o link entrega (a mensagem diz os formatos que cabem)
- HTTP 404: a voz de uma das falas não existe no catálogo e não é uma voz da sua conta (a mensagem diz qual fala)
- HTTP 422: o texto de uma das falas foi barrado pela moderação do serviço de voz
- HTTP 502: o serviço de voz respondeu sem o áudio ou com erro
- HTTP 503: o serviço de voz está indisponível ou no limite de chamadas simultâneas; tente de novo em alguns segundos
- HTTP 504: a geração passou do tempo limite, ou a conferência das vozes gastou o prazo da consulta (55 s desde a chegada do pedido) e o tempo que sobrou não comportava a geração (nesse caso o diálogo nem chega a ser gerado)

Preço: R$ 1,20 por chamada.
Em homologação (homolog=true), sem cobrança, a resposta traz dados fictícios no mesmo formato.

O áudio é gerado por inteligência artificial e leva uma marca d'água inaudível, que não pode ser removida. Avise quem ouve que as vozes são sintéticas quando a lei exigir ou quando a falta do aviso puder enganar.

O texto é processado em servidores nos Estados Unidos. Não envie no texto dado de saúde, número de cartão ou número de documento oficial, como o CPF.

- **Método:** `POST`
- **Endereço:** `https://gateway.apibrasil.io/api/v2/consulta/voz-dialogo/credits`
- **Versão da rota:** v2

**Cabeçalhos**

| Cabeçalho | Valor |
| --- | --- |
| `Content-Type` | `application/json` |
| `Authorization` | `Bearer $APIBRASIL_TOKEN` |

**Corpo da requisição**

```json
{
  "tipo": "voz-dialogo-1000",
  "falas": [
    {
      "voz": "AbCdEfGhIj0123456789",
      "texto": "Oi, Rafael! Você viu que o pedido já saiu para entrega?",
      "emocao": "animado"
    },
    {
      "voz": "KlMnOpQrSt9876543210",
      "texto": "Vi, sim. Chega hoje até as 18 horas."
    }
  ],
  "formato": "mp3",
  "homolog": true
}
```

**Em cURL**

```bash
curl -X POST "https://gateway.apibrasil.io/api/v2/consulta/voz-dialogo/credits" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $APIBRASIL_TOKEN" \
  -d '{"tipo":"voz-dialogo-1000","falas":[{"voz":"AbCdEfGhIj0123456789","texto":"Oi, Rafael! Você viu que o pedido já saiu para entrega?","emocao":"animado"},{"voz":"KlMnOpQrSt9876543210","texto":"Vi, sim. Chega hoje até as 18 horas."}],"formato":"mp3","homolog":true}'
```

Este endpoint aceita `homolog: true` no corpo: a resposta volta com dados válidos, `api_limit_for` igual a `homolog` e sem tarifação.

**Resposta de exemplo, do catálogo**

```json
{
  "user": {
    "first_name": "[omitido]",
    "email": "[omitido]",
    "cellphone": "[omitido]",
    "notification": "yes"
  },
  "balance": "398,800",
  "balance_before": "400,000",
  "tax": "1,200",
  "status_code": 200,
  "error": false,
  "message": "Dados validos! Voce foi tarifado em R$ 1,20.",
  "valor_consulta": 1.2,
  "api_limit_for": "credit",
  "homolog": false,
  "data": {
    "tipo": "voz-dialogo-1000",
    "audio_url": "https://gateway.apibrasil.io/proxy/?u=https%3A%2F%2Fvoz-dialogo.apidocumentos.com.br%2Faudio%2F0f1e2d3c-4b5a-4978-8796-a5b4c3d2e1f0",
    "tipo_mime": "audio/mpeg",
    "tamanho_bytes": 104480,
    "duracao_segundos": 6.53,
    "expira_em": "2026-11-13T15:00:00-03:00",
    "caracteres": 101,
    "total_de_falas": 2,
    "vozes": [
      "AbCdEfGhIj0123456789",
      "KlMnOpQrSt9876543210"
    ],
    "formato": "mp3",
    "modelo": "v4"
  }
}
```

### 4. POST /consulta/voz-dialogo/credits

⚠️ Aviso: a chamada é cobrada quando o áudio do diálogo é gerado e o link é devolvido (HTTP 200). Diálogo com a soma dos textos acima de 2000 caracteres, fala com voz que não existe ou não é da sua conta, texto barrado pela moderação e falha na geração não são cobrados.

Gerar diálogo de até 2000 caracteres: Gera o áudio da conversa, com cada fala na voz escolhida, e devolve o link para download (audio_url), o tipo do arquivo (tipo_mime), o tamanho em bytes, a duração em segundos, a validade do link (expira_em), quantos caracteres contaram na faixa (caracteres: a soma dos textos das falas, já com as emoções e as marcações), o total de falas, as vozes usadas, o formato e o modelo de voz. Neste tipo a soma dos textos das falas vai até 2000 caracteres.

Envie um POST com tipo=voz-dialogo-2000 e:
- falas (obrigatório, lista): As falas, na ordem da conversa: de 2 a 30 itens e até 10 vozes diferentes. Cada item é um objeto com voz (o identificador da voz, tirado da lista do tipo voz-dialogo-vozes: catálogo ou voz própria da sua conta), texto (o que essa voz diz) e, se quiser, emocao (alegre, animado, calmo, triste, serio, empatico, profissional, tranquilizador, curioso, surpreso, irritado, sarcastico, sussurrando ou rindo), que vira uma marcação no início daquela fala. A soma dos textos vai até 2000 caracteres neste tipo, contando a marcação de cada emoção e as marcações entre colchetes que você escrever no texto (por exemplo [laughs] ou [whispers]).
- estabilidade (opcional, decimal): De 0 a 1, padrão 0.5, para o diálogo inteiro. Mais alto deixa as falas mais constantes; mais baixo, mais expressivas.
- formato (opcional, texto): mp3 (padrão, 44,1 kHz e 128 kbps), mp3_leve (22,05 kHz e 32 kbps), ogg (Opus, o formato da nota de voz do WhatsApp), wav (24 kHz; até 1747 caracteres somando as falas, porque acima disso o áudio passaria do tamanho que o link entrega) ou telefonia (µ-law a 8 kHz, para URA).
- semente (opcional, inteiro): De 0 a 4294967295. Repetir a semente com as mesmas falas e os mesmos ajustes tende a gerar o mesmo áudio.
- variacao (opcional, inteiro): De 0 a 999999, não muda o áudio por si: trocar o número faz o pedido deixar de ser idêntico a um anterior e gera outra versão, em vez de devolver a resposta guardada.

Respostas de erro (nenhuma é cobrada):
- HTTP 400: falas ausentes ou fora da forma: menos de 2 ou mais de 30 falas, mais de 10 vozes diferentes, fala sem voz ou sem texto, ou emoção, formato, estabilidade ou semente fora da lista ou da faixa (a mensagem diz qual fala e qual campo)
- HTTP 400: a soma dos textos das falas passa de 2000 caracteres (a mensagem diz o tamanho enviado e qual tipo comporta)
- HTTP 400: formato wav com a soma dos textos das falas acima de 1747 caracteres: o áudio passaria do tamanho que o link entrega (a mensagem diz os formatos que cabem)
- HTTP 404: a voz de uma das falas não existe no catálogo e não é uma voz da sua conta (a mensagem diz qual fala)
- HTTP 422: o texto de uma das falas foi barrado pela moderação do serviço de voz
- HTTP 502: o serviço de voz respondeu sem o áudio ou com erro
- HTTP 503: o serviço de voz está indisponível ou no limite de chamadas simultâneas; tente de novo em alguns segundos
- HTTP 504: a geração passou do tempo limite, ou a conferência das vozes gastou o prazo da consulta (55 s desde a chegada do pedido) e o tempo que sobrou não comportava a geração (nesse caso o diálogo nem chega a ser gerado)

Preço: R$ 2,40 por chamada.
Em homologação (homolog=true), sem cobrança, a resposta traz dados fictícios no mesmo formato.

O áudio é gerado por inteligência artificial e leva uma marca d'água inaudível, que não pode ser removida. Avise quem ouve que as vozes são sintéticas quando a lei exigir ou quando a falta do aviso puder enganar.

O texto é processado em servidores nos Estados Unidos. Não envie no texto dado de saúde, número de cartão ou número de documento oficial, como o CPF.

- **Método:** `POST`
- **Endereço:** `https://gateway.apibrasil.io/api/v2/consulta/voz-dialogo/credits`
- **Versão da rota:** v2

**Cabeçalhos**

| Cabeçalho | Valor |
| --- | --- |
| `Content-Type` | `application/json` |
| `Authorization` | `Bearer $APIBRASIL_TOKEN` |

**Corpo da requisição**

```json
{
  "tipo": "voz-dialogo-2000",
  "falas": [
    {
      "voz": "AbCdEfGhIj0123456789",
      "texto": "Oi, Rafael! Você viu que o pedido já saiu para entrega?",
      "emocao": "animado"
    },
    {
      "voz": "KlMnOpQrSt9876543210",
      "texto": "Vi, sim. Chega hoje até as 18 horas."
    }
  ],
  "formato": "mp3",
  "homolog": true
}
```

**Em cURL**

```bash
curl -X POST "https://gateway.apibrasil.io/api/v2/consulta/voz-dialogo/credits" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $APIBRASIL_TOKEN" \
  -d '{"tipo":"voz-dialogo-2000","falas":[{"voz":"AbCdEfGhIj0123456789","texto":"Oi, Rafael! Você viu que o pedido já saiu para entrega?","emocao":"animado"},{"voz":"KlMnOpQrSt9876543210","texto":"Vi, sim. Chega hoje até as 18 horas."}],"formato":"mp3","homolog":true}'
```

Este endpoint aceita `homolog: true` no corpo: a resposta volta com dados válidos, `api_limit_for` igual a `homolog` e sem tarifação.

**Resposta de exemplo, do catálogo**

```json
{
  "user": {
    "first_name": "[omitido]",
    "email": "[omitido]",
    "cellphone": "[omitido]",
    "notification": "yes"
  },
  "balance": "397,600",
  "balance_before": "400,000",
  "tax": "2,400",
  "status_code": 200,
  "error": false,
  "message": "Dados validos! Voce foi tarifado em R$ 2,40.",
  "valor_consulta": 2.4,
  "api_limit_for": "credit",
  "homolog": false,
  "data": {
    "tipo": "voz-dialogo-2000",
    "audio_url": "https://gateway.apibrasil.io/proxy/?u=https%3A%2F%2Fvoz-dialogo.apidocumentos.com.br%2Faudio%2F0f1e2d3c-4b5a-4978-8796-a5b4c3d2e1f0",
    "tipo_mime": "audio/mpeg",
    "tamanho_bytes": 104480,
    "duracao_segundos": 6.53,
    "expira_em": "2026-11-13T15:00:00-03:00",
    "caracteres": 101,
    "total_de_falas": 2,
    "vozes": [
      "AbCdEfGhIj0123456789",
      "KlMnOpQrSt9876543210"
    ],
    "formato": "mp3",
    "modelo": "v4"
  }
}
```

Nos exemplos de resposta, os campos da conta que gerou o exemplo (`user.first_name`, `user.email`, `user.cellphone`) saem como `[omitido]`. O resto é o que o catálogo publica.

## Armadilhas: o que uma integração erra sem avisar

Apuradas nas respostas que o próprio catálogo publica. Em todas elas o código funciona no caminho feliz e falha em silêncio no resto:

1. **O erro chega no CORPO, com HTTP 200.**
   A resposta traz um campo `error` booleano e uma `message`. Checar só `response.ok` ou o status HTTP deixa passar falha como sucesso. Confira SEMPRE `error === false` antes de ler `data`.

2. **`balance`, `tax` e `extra_charges.total` são STRING em formato brasileiro — e o formato varia entre APIs.**
   Valores observados no catálogo: `"154,380"`, `"497,84"`, `"0,000"` e `"0.19"`. Vírgula em umas, ponto em outra; três casas decimais em umas, duas em outra. Em JavaScript, `parseFloat("154,380")` devolve `154` e perde os centavos sem erro nenhum, e `Number("154,380")` devolve `NaN`. Escreva um conversor que trate os dois separadores, e nunca use esses campos numa decisão financeira sem convertê-los.

3. **Cada chamada custa dinheiro.**
   Retry cego multiplica a conta. Nunca repita automaticamente um 4xx: parâmetro errado repetido continua errado e continua cobrando. Repita só tempo esgotado e 5xx, com recuo exponencial e um teto pequeno de tentativas.

4. **HTTP 402 é saldo insuficiente, e repetir não resolve.**
   É o único status que exige ação humana — recarregar. Trate-o como erro terminal, com mensagem própria, e não o jogue no mesmo balde dos 4xx genéricos.

5. **`extra_charges` cobra à parte do preço da consulta.**
   Quando o corpo pede serviços adicionais, a resposta traz cada um com o preço e um `total` que NÃO está incluso no valor base. Se você mostra custo a quem usa, some os dois.

## Ver também

- Especificação OpenAPI: https://doc.apibrasil.io/apis/creditos/360cad6c-dec0-11f1-98bb-bc24118aba26/openapi.json
- Catálogo de APIs: [Catálogo de APIs](https://doc.apibrasil.io/apis.md)
- SDKs oficiais: [SDKs oficiais](https://doc.apibrasil.io/sdks.md)
- Índice da documentação: https://doc.apibrasil.io/llms.txt
- Versão HTML desta página: https://doc.apibrasil.io/apis/creditos/360cad6c-dec0-11f1-98bb-bc24118aba26
