Documentação da API

Use a IA do Intedge IA no seu sistema: texto, conversas com memória, agentes, transcrição e voz, com processamento local no Brasil. Autenticação por chave (Bearer), respostas em JSON.

Autenticação

Todas as chamadas usam sua chave no cabeçalho Authorization. Base: https://intedge.ia.br

A chave é gerada ao criar sua conta (gratuito) e fica no seu painel. Nos exemplos abaixo, troque SUA_CHAVE por ela.

Authorization: Bearer SUA_CHAVE

Como os Ints são contados

A cobrança é pelo total de tokens processados: entrada (prompt) + saída (resposta), retornados pela própria LLM. Toda resposta traz um objeto usage com o detalhamento e o balance (saldo restante). Valores em reais na página de preços; para estimar um prompt, use a calculadora de Ints.

ModoCustoQuando usar
Requisição únicaMais barato e previsívelPerguntas isoladas, sem memória.
Thread (memória)Maior e crescente*Conversas com contexto.
TranscriçãoPor segundo de áudioConverter áudio em texto.
Voz: texto em fala3,8141 Ints por caractereGerar áudio a partir de texto.
Voz: fala em texto25,43 Ints por segundo de áudioTranscrição rápida de áudio.

* No modo Thread reenviamos o resumo + as mensagens recentes a cada turno, então o custo por chamada cresce com a conversa. Resumos periódicos (modelo menor) aparecem como linhas summary no seu histórico.

1. Requisição única POST

https://intedge.ia.br/api/ia/generate.php — sem memória.

curl -X POST https://intedge.ia.br/api/ia/generate.php \
  -H "Authorization: Bearer SUA_CHAVE" \
  -H "Content-Type: application/json" \
  -d '{"prompt": "Explique o que é Pix em 1 frase"}'

Resposta:

{
  "success": true,
  "response": "Pix é um meio de pagamento instantâneo...",
  "model": "Ágil",
  "usage": { "tokens_in": 24, "tokens_out": 38, "tokens_charged": 62 },
  "balance": 999938
}

Para escolher a inteligência, envie "model" com o nome público. Sem isso, usa o padrão. Os nomes disponíveis também aparecem no Playground.

modelPerfil
ÁgilRespostas rápidas para o dia a dia.
AvançadoMais inteligente e detalhado; pensa um pouco mais.

2. Conversa com memória (Thread) POST

Crie uma thread e mande mensagens nela — o contexto é mantido automaticamente.

Criar thread

curl -X POST https://intedge.ia.br/api/ia/threads.php \
  -H "Authorization: Bearer SUA_CHAVE" \
  -H "Content-Type: application/json" \
  -d '{"title": "Suporte ao cliente"}'
→ { "success": true, "thread_id": 123, "title": "Suporte ao cliente" }

Enviar mensagem na thread

Se omitir thread_id, uma nova thread é criada e retornada.

curl -X POST https://intedge.ia.br/api/ia/chat.php \
  -H "Authorization: Bearer SUA_CHAVE" \
  -H "Content-Type: application/json" \
  -d '{"thread_id": 123, "message": "Qual foi minha última pergunta?"}'
{
  "success": true,
  "response": "...",
  "thread_id": 123,
  "usage": {
    "tokens_in": 1840, "tokens_out": 210, "tokens_charged": 2050,
    "summary_generated": false, "summary_tokens_charged": 0
  },
  "balance": 997888
}

Listar / ver threads GET

GET https://intedge.ia.br/api/ia/threads.php                 # lista suas threads
GET https://intedge.ia.br/api/ia/threads.php?thread_id=123     # thread + mensagens

3. Transcrição de áudio POST

https://intedge.ia.br/api/ia/transcribe.php — envie o arquivo no campo audio (multipart).

curl -X POST https://intedge.ia.br/api/ia/transcribe.php \
  -H "Authorization: Bearer SUA_CHAVE" \
  -F "audio=@/caminho/audio.mp3"
{
  "success": true,
  "text": "transcrição completa...",
  "audio_seconds": 42,
  "usage": { "tokens_charged": 420 },
  "balance": 997468
}

4. Agentes GET / POST

Agentes são presets de comportamento (instruções + modelo preferido) que você cria em Agentes. São privados da sua conta — só a sua chave de API consegue usá-los.

Listar seus agentes GET

curl https://intedge.ia.br/api/ia/agents.php \
  -H "Authorization: Bearer SUA_CHAVE"
{
  "success": true,
  "agents": [
    { "id": 5, "name": "Atendimento", "description": "Atendente cordial", "icon": "bi-headset", "model": "Ágil" }
  ]
}

Usar um agente

Envie agent_id em generate.php (única) ou chat.php (thread). As instruções do agente são aplicadas automaticamente, antes da sua mensagem.

curl -X POST https://intedge.ia.br/api/ia/generate.php \
  -H "Authorization: Bearer SUA_CHAVE" \
  -H "Content-Type: application/json" \
  -d '{"agent_id": 5, "prompt": "Bom dia, preciso de ajuda com meu pedido"}'

Se o agent_id não for da sua conta, ele é ignorado (a chamada segue sem agente). Numa thread, o agente informado na criação fica memorizado nela.

5. Compatível com a OpenAI POST

https://intedge.ia.br/v1/chat/completions segue o padrão Chat Completions da OpenAI: bibliotecas e ferramentas que já usam essa API funcionam trocando só o endereço (https://intedge.ia.br/v1) e a chave. A cobrança, os limites e o histórico são os mesmos da requisição única.

from openai import OpenAI

client = OpenAI(base_url="https://intedge.ia.br/v1", api_key="SUA_CHAVE")

resposta = client.chat.completions.create(
    model="Ágil",
    messages=[
        {"role": "system", "content": "Responda em português, de forma objetiva."},
        {"role": "user", "content": "Explique o que é Pix em 1 frase"},
    ],
)
print(resposta.choices[0].message.content)
curl https://intedge.ia.br/v1/chat/completions \
  -H "Authorization: Bearer SUA_CHAVE" \
  -H "Content-Type: application/json" \
  -d '{"model": "Ágil", "messages": [{"role": "user", "content": "Explique o que é Pix em 1 frase"}]}'
CampoComo funciona aqui
modelNome público (veja a tabela de modelos acima ou GET /v1/models). Um nome desconhecido, como gpt-4o-mini, usa o modelo padrão.
messagesPapéis system (ou developer), user e assistant; conteúdo em texto. Até 200 mensagens.
max_tokens / max_completion_tokensTeto de tokens da resposta (limitado pelo máximo do servidor).
temperature, top_p, presence_penalty, frequency_penalty, seed, stopAceitos.
streamAceito, no formato da OpenAI (SSE), mas a resposta chega inteira num só pedaço.
agent_idExtra nosso: aplica um dos seus agentes. No SDK, envie em extra_body={"agent_id": 5}.
n > 1, tools, imagens, response_format JSONNão suportados: a chamada responde 422 com a explicação.

A resposta traz choices[0].message.content e usage (prompt_tokens, completion_tokens, total_tokens e o extra ints_charged). O saldo vem no cabeçalho X-Ints-Balance. Erros seguem o formato da OpenAI: {"error": {"message": "...", "type": "..."}}.

curl https://intedge.ia.br/v1/models -H "Authorization: Bearer SUA_CHAVE"   # lista os modelos

Para conversas com memória guardada no servidor, use as threads; no padrão da OpenAI, o histórico vai inteiro em messages a cada chamada.

6. Voz: texto em fala e transcrição rápida

Dois serviços de voz que funcionam juntos ou separados:

ServiçoO que fazUso típico
VozTransforma texto em falaLer respostas para o cliente, URA, avisos, agentes de voz
Transcrição rápidaTransforma fala em textoTranscrever áudios e ligações, entender o que o cliente falou

Os dois seguem o padrão da API de áudio da OpenAI: bibliotecas e sistemas que já usam essa API funcionam trocando apenas o endereço (https://intedge.ia.br/v1) e a chave.

Voz: texto em fala POST

https://intedge.ia.br/v1/audio/speech — leve e rápido; gera áudio natural em português em frações de segundo para frases curtas.

Campo (JSON)ObrigatórioDescrição
modelsimSempre "voz" (bibliotecas da OpenAI que mandam "tts-1" também funcionam)
inputsimO texto a ser falado (até 4.096 caracteres)
voicesimA voz (veja abaixo)
response_formatnãomp3 (padrão), wav, opus, flac
speednãoVelocidade da fala: 1.0 normal, 0.8 mais devagar, 1.2 mais rápido
voiceVozComo é
intIntFeminina, tom acolhedor
int-neutroIntMasculina, tom neutro
int-graveIntMasculina, tom grave
curl https://intedge.ia.br/v1/audio/speech \
  -H "Authorization: Bearer SUA_CHAVE" \
  -H "Content-Type: application/json" \
  -d '{"model":"voz","input":"Olá! Seu chamado foi registrado e um técnico vai entrar em contato.","voice":"int","response_format":"mp3"}' \
  -o resposta.mp3

A resposta é o próprio arquivo de áudio, não um JSON. Os Ints cobrados e o saldo vêm nos cabeçalhos X-Ints-Charged e X-Ints-Balance. Em caso de erro, a resposta é o JSON de erro padrão.

Listar vozes GET

curl https://intedge.ia.br/v1/audio/voices \
  -H "Authorization: Bearer SUA_CHAVE"
→ {"success":true,"voices":["int","int-neutro","int-grave"]}

Dicas para uma fala mais natural:

  • Escreva números, datas e siglas por extenso quando a pronúncia importar ("dez e meia" em vez de "10:30").
  • Use pontuação para criar pausas: vírgula para pausa curta, ponto para pausa longa.
  • Palavras em inglês são lidas com pronúncia em português. Prefira o termo em português sempre que possível.

Transcrição rápida: fala em texto POST

https://intedge.ia.br/v1/audio/transcriptions — transcreve áudios em português com rapidez, indicada para transcrições simples e uso em tempo real.

Campo (multipart)ObrigatórioDescrição
filesimO arquivo de áudio (mp3, wav, m4a, ogg, entre outros), até 100MB
modelsimSempre "transcricao-rapida" (bibliotecas da OpenAI que mandam outro nome também funcionam)
languagerecomendado"pt" para português. Informar o idioma melhora a precisão e a velocidade
curl https://intedge.ia.br/v1/audio/transcriptions \
  -H "Authorization: Bearer SUA_CHAVE" \
  -F "file=@ligacao.mp3" \
  -F "model=transcricao-rapida" \
  -F "language=pt"
{
  "success": true,
  "text": "Olá, eu gostaria de saber sobre a minha fatura.",
  "language": "pt",
  "duration": 3.4,
  "usage": { "type": "duration", "seconds": 4, "tokens_charged": 102 },
  "balance": 997468
}

Qual transcrição usar?

ServiçoQuando usarTempo
Transcrição rápida (/v1/audio/transcriptions)Transcrição rápida e simples; agentes de voz; quando só o texto importaMais rápido
Transcrição completa (/api/ia/transcribe.php)Áudios longos, quando quer a transcrição detalhadaIntermediário

Usando os dois juntos: agente de voz

  1. O cliente fala, e o áudio é enviado à Transcrição rápida, que devolve o texto.
  2. O texto vai para a IA de texto (generate.php ou chat.php), que gera a resposta.
  3. A resposta vai para a Voz, que devolve o áudio.
  4. O áudio é tocado para o cliente.
OperaçãoTempo aproximado
Voz, frase curta~0,2 s
Transcrição rápida, áudio curto (poucos segundos)menos de 1 s
Transcrição rápida, ligação de 2 minutos~7 s

Limites

Há limites por requisição, por janela de 5 horas e semanal (configuráveis). Ao estourar, a resposta vem com HTTP 429 (limite) ou 422 (mensagem grande demais). null = sem limite.

Ver seus limites e consumo GET

curl https://intedge.ia.br/api/ia/limits.php \
  -H "Authorization: Bearer SUA_CHAVE"
{
  "success": true,
  "balance": 987654,
  "limits": {
    "por_requisicao": { "max_tokens": 20000 },
    "janela_5h": {
      "tokens":      { "usados": 3200, "limite": 200000, "restante": 196800 },
      "requisicoes": { "usadas": 12,   "limite": 500,    "restante": 488 }
    },
    "semana": {
      "tokens":      { "usados": 45000, "limite": null, "restante": null },
      "requisicoes": { "usadas": 130,   "limite": null, "restante": null }
    }
  }
}

Toda resposta de geração/chat também traz o campo limits com esse mesmo resumo — assim você acompanha o consumo a cada chamada, sem precisar de outra requisição.

Erros

HTTPSignificado
401Token inválido / não autenticado
402Saldo de Ints insuficiente
422Entrada inválida (vazia ou grande demais)
429Limite de uso atingido
502 / 503IA indisponível no momento
{ "success": false, "error": "mensagem do erro" }