# API de transcrição em português compatível com OpenAI · Nous

> API de transcrição de áudio em português do Brasil, compatível com a da OpenAI: quem falou, dados ditados, webhooks assinados e preço em reais por segundo.

Fonte: https://trynous.com.br/api
Atualizado em: 2026-09-25

---

API de transcrição

# API de transcrição em português, compatível com a OpenAI.

Já usa o Whisper pela OpenAI? Troque o endereço e a chave. Quer mais? A nossa rota devolve quem falou, CPF e e-mail formatados e avisa por webhook quando termina.

[Criar chave grátis](https://app.trynous.com.br/entrar?cta=api-hero) [Ver como migrar](https://trynous.com.br/docs/comecar/migrar-da-openai)

- **Preço**: R$ 1,80 por hora, cobrado por segundo

- **Endereço**: https://api.trynous.com.br/v1

- **Para testar**: 30 minutos grátis no cadastro, sem cartão. A chave sai na hora.

## Mande o áudio. Receba palavra, tempo e CPF.

Um pedido, uma resposta em JSON. O CPF foi dito por extenso e volta formatado e validado, com o que a pessoa falou do lado.

Python  Node  cURL

Copiar

transcrever.py

```
import os
import requests

resposta = requests.post(
    "https://api.trynous.com.br/v1/transcriptions",
    params={"diarization": "true"},
    headers={"Authorization": f"Bearer {os.environ['NOUS_API_KEY']}"},
    files={"file": open("atendimento.m4a", "rb")},
)
transcricao = resposta.json()

print(transcricao["entities"]["cpfs"][0]["value"])
# 123.456.789-09
```

transcrever.mjs

```
import { readFile } from "node:fs/promises";

const form = new FormData();
form.set("file", new Blob([await readFile("atendimento.m4a")]), "atendimento.m4a");

const resposta = await fetch("https://api.trynous.com.br/v1/transcriptions?diarization=true", {
  method: "POST",
  headers: { Authorization: `Bearer ${process.env.NOUS_API_KEY}` },
  body: form,
});
const transcricao = await resposta.json();

console.log(transcricao.entities.cpfs[0].value);
// 123.456.789-09
```

terminal

```
curl "https://api.trynous.com.br/v1/transcriptions?diarization=true" \
  -H "Authorization: Bearer $NOUS_API_KEY" \
  -F "file=@atendimento.m4a"
```

-   Até 30 minutos de áudio, a resposta vem na mesma chamada.
-   Mais longo? Passe `webhook_url` e receba o aviso assinado quando terminar.
-   A chave sai na hora, no app, e já usa o crédito grátis do cadastro.

Resposta

200 OK

```
{  "id": "tr_3Vn8qLw2Xc7RbK1mZp4TsD",  "status": "completed",  "model": "aether",  "duration_s": 48.2,  "text": "Meu CPF é 123.456.789-09 e o e-mail é ana.lima@exemplo.com.",  "words": [    { "text": "Meu", "start_s": 0.42, "end_s": 0.61, "speaker": "spk0" },    { "text": "CPF", "start_s": 0.61, "end_s": 1.02, "speaker": "spk0" },    …  ],  "entities": {    "cpfs": [{      "value": "123.456.789-09",      "said": "um dois três quatro cinco seis sete oito nove zero nove",      "valid": true,      "start_s": 1.1    }],    "emails": [{ "value": "ana.lima@exemplo.com", "start_s": 6.3 }]  },  "speakers": [{ "speaker": "spk0", "start_s": 0, "end_s": 48.2 }],  "billing": { "seconds": 49, "cost_brl": 0.0245 }}
```

Resposta ilustrativa, no formato real da API. Os campos marcados são o CPF que foi dito e o que a pessoa falou.

## Já usa a OpenAI? Três mudanças e pronto.

A rota /v1/audio/transcriptions fala o mesmo formato. O SDK que você já tem continua servindo; só muda para onde ele aponta.

-   `file` Igual.
-   `model` “aether”. Qualquer valor é aceito.
-   `language` Vazio ou “pt”. Outro idioma responde 422.
-   `prompt` Vira vocabulário, termo por termo.
-   `response_format` json, text, srt, vtt e verbose\_json.
-   `timestamp_granularities[]` word e segment.

[O guia de migração completo](https://trynous.com.br/docs/comecar/migrar-da-openai)

transcrever.py 3 mudanças

```

              from openai import OpenAI

              -
              linha removida:
              client = OpenAI()

              +
              linha adicionada:
              client = OpenAI(

              +
              linha adicionada:
                  base_url="https://api.trynous.com.br/v1",

              +
              linha adicionada:
                  api_key="sua-chave-nous",

              +
              linha adicionada:
              )

              texto = client.audio.transcriptions.create(

              -
              linha removida:
                  model="whisper-1",

              +
              linha adicionada:
                  model="aether",

                  file=open("audiencia.mp3", "rb"),

                  response_format="verbose_json",

              )

```

## O que a rota da Nous faz a mais.

POST /v1/transcriptions: um parâmetro na URL para cada coisa. O que não custa a mais está escrito.

-   `diarization=true`

    ### Quem falou e o tom

    Separa até 4 pessoas e marca cada palavra com quem disse. Com sentiment=true, o tom de cada trecho. Cada um custa R$ 0,000 a mais por minuto.

    [Ver o guia](https://trynous.com.br/docs/guias/diarizacao-e-sentimento)
-   `entities`

    ### Dados ditados

    E-mail, CPF, telefone, CEP e valores falados por extenso voltam formatados, com o que a pessoa disse e o segundo. Grátis.

    [Ver o guia](https://trynous.com.br/docs/guias/dados-ditados)
-   `redact=all`

    ### Mascarar dados pessoais

    Troca CPF, e-mail, telefone, CEP e valor por máscara no texto, nas palavras e nas entidades. Não tem volta: o original não fica guardado.

    [Ver o guia](https://trynous.com.br/docs/guias/dados-ditados)
-   `keyterms`

    ### Vocabulário

    Até 200 termos de até 60 caracteres: nomes, siglas, jargão do seu setor. O prompt da OpenAI vira vocabulário.

    [Ver o guia](https://trynous.com.br/docs/guias/vocabulario)
-   `Nous-Signature`

    ### Webhooks assinados

    transcription.completed e transcription.failed, com HMAC-SHA256 e carimbo de tempo no cabeçalho.

    [Ver o guia](https://trynous.com.br/docs/guias/webhooks)
-   `Idempotency-Key`

    ### Idempotência

    Repetiu o pedido depois de uma queda de rede? Volta a mesma transcrição, sem cobrar duas vezes.

    [Ver o guia](https://trynous.com.br/docs/guias/idempotencia)
-   `audio_url`

    ### Áudio por link

    Mande um endereço https de até 1 GB. Links de compartilhamento do Google Drive e do Dropbox são convertidos sozinhos.

    [Ver o guia](https://trynous.com.br/docs/guias/audio-url)
-   `/v1/uploads`

    ### Arquivos grandes

    Até 4 horas e 1 GB por arquivo, com upload separado para o que passa de 100 MB.

    [Ver o guia](https://trynous.com.br/docs/guias/arquivos-grandes)
-   `formato=literal`

    ### Legendas e degravação

    SRT e VTT prontos. O formato literal devolve a fala como saiu, com \[inaudível\] e \[sobreposição\], como pede uma degravação.

    [Ver o guia](https://trynous.com.br/docs/guias/legendas)

## Limites claros, erros legíveis.

Passou do limite, a resposta é 429 com Retry-After dizendo quanto esperar. Todo erro vem no mesmo formato, com um request\_id para o suporte achar a chamada.

```
{ "error": {
    "code": "rate_limited",
    "message": "…",
    "request_id": "req_9f2k"
} }
```

[Todos os códigos de erro](https://trynous.com.br/docs/limites-e-erros)

-   ### Grátis

    - **pedidos por minuto**: 60

    - **transcrições ao mesmo tempo**: 2

    - **chaves de API**: 2

-   ### Com recarga ou assinatura

    - **pedidos por minuto**: 600

    - **transcrições ao mesmo tempo**: 10

    - **chaves de API**: 10

-   ### Escritório

    - **pedidos por minuto**: 1.200

    - **transcrições ao mesmo tempo**: 30

    - **chaves de API**: 50

Por arquivo: até 4 horas e 1 GB. Só português do Brasil: outro idioma responde 422.

## Preço em reais, por segundo.

R$ 0,030 por minuto

Ou R$ 1,80 por hora. Um áudio de 49 segundos paga 49 segundos.

A mesma tabela do app. Pix ou cartão, nota fiscal em todo pagamento, e o crédito do cadastro para testar antes de pagar.

Contrato a partir de R$ 0,020 por minuto (R$ 1,20 por hora), para 500 horas por mês ou mais, sempre por proposta. [Fale com a gente](https://trynous.com.br/contato).

### Quanto maior a recarga, menor a hora

-   Recarga de R$ 20 R$ 0,030/min R$ 1,80/h
-   Recarga de R$ 50 R$ 0,029/min R$ 1,71/h
-   Recarga de R$ 150 R$ 0,027/min R$ 1,64/h
-   Recarga de R$ 600 R$ 0,025/min R$ 1,50/h

### Por minuto, se você pedir

-   Identificar quem falou incluído
-   Sentimento e métricas de conversa (com assinatura) +R$ 0,002/min
-   Dados ditados, legendas SRT/VTT e vocabulário incluídos
-   Cobrado por segundo sem mínimo

[Ver a tabela inteira](https://trynous.com.br/precos?aba=api)

## O áudio do seu cliente continua dele.

Atendimento, consulta e audiência têm nome, CPF e segredo. Tratamos cada arquivo que passa pela API do jeito que a LGPD pede.

[Segurança e LGPD](https://trynous.com.br/seguranca)

-   ### Não treinamos com o seu áudio

    A menos que você autorize. A opção vem desligada.

-   ### Você decide quanto tempo guardar

    Apague pela API na hora ou deixe a conta apagar sozinha depois de alguns dias.

-   ### LGPD e contrato em português

    Empresa brasileira, acordo de tratamento de dados para empresas e nota fiscal.

## Perguntas de quem vai integrar.

A [documentação](https://trynous.com.br/docs) tem a referência completa, com exemplos em Python, Node e cURL.

### A API é compatível com a da OpenAI (Whisper)?

Sim. A rota POST /v1/audio/transcriptions aceita os mesmos campos da OpenAI. Troque o base\_url e a api\_key no SDK que você já usa e passe model="aether". Os formatos json, text, srt, vtt e verbose\_json funcionam, com tempo por palavra e por segmento.

### Quanto custa a API de transcrição?

R$ 0,030 por minuto (R$ 1,80 por hora), cobrado por segundo e sem mínimo. Recargas maiores dão bônus e levam a hora a R$ 1,33. Quem falou e sentimento custam R$ 0,000 a mais por minuto cada; dados ditados, legendas e vocabulário estão incluídos. Contrato a partir de R$ 0,020 por minuto (R$ 1,20 por hora), para 500 horas por mês ou mais, sempre por proposta.

### Quais idiomas a API transcreve?

Só português do Brasil, e é por isso que ela acerta nome, número e sotaque daqui. Pedidos com outro idioma respondem 422.

### Qual o tamanho máximo do arquivo?

Até 4 horas e 1 GB. Por multipart vão até 25 MB, com o arquivo direto no corpo até 100 MB, e acima disso você usa o upload separado ou manda um link com audio\_url.

### Como sei quando uma transcrição longa terminou?

Passe webhook\_url e a Nous faz um POST no seu endereço com transcription.completed ou transcription.failed, assinado no cabeçalho Nous-Signature. Se preferir, consulte GET /v1/transcriptions/{id}.

### Posso testar a API de graça?

Pode. A conta nova ganha 30 minutos de crédito, que vale na API e no app. A conta grátis faz até 60 pedidos por minuto e 2 transcrições ao mesmo tempo.

### Emite nota fiscal? Aceita Pix?

Sim para os dois. Toda recarga e toda assinatura sai com nota fiscal, e você paga com Pix ou cartão, em reais.

## Sua primeira transcrição cabe em três linhas.

Crie a conta, gere a chave e teste com 30 minutos grátis, sem cartão. Pague em reais, com Pix e nota fiscal.

[Criar chave grátis](https://app.trynous.com.br/entrar?cta=api-final) [Ler a documentação](https://trynous.com.br/docs)
