Referência para desenvolvedores

Documentação da API Eikr

Integre o motor de IA da Eikr no seu produto. Todas as requisições são HTTPS, JSON de entrada e saída. URL base: https://api.eikr.ee

Autenticação

Toda requisição a um endpoint protegido deve incluir sua chave API no cabeçalho da requisição. As chaves API são emitidas após a assinatura de um plano API.

Cabeçalho
X-API-Key: eikr_your_api_key_here
Mantenha sua chave em segredo. Nunca a exponha em código do lado do cliente nem a envie para controle de versão. Se for comprometida, entre em contato imediatamente para redefini-la.

Endpoint de Chat

Envie uma mensagem e receba uma resposta gerada por IA. Suporta personas personalizadas, histórico de conversa e injeção de memória por usuário.

POST /chat

Corpo da requisição

ParâmetroTipoDescrição
messageobrigatóriostringO texto da mensagem do usuário
personalityopcionalstringPrompt de sistema / definição de persona para a IA
historyopcionalarrayMensagens anteriores como [{role, content}] para contexto
user_idopcionalstringSeu identificador de usuário para persistência de memória
languageopcionalstringCódigo do idioma de resposta, ex. "en", "es", "pt"
Exemplo de requisição
const res = await fetch("https://api.eikr.ee/chat", {
  method: "POST",
  headers: {
    "X-API-Key": "eikr_your_key",
    "Content-Type": "application/json"
  },
  body: JSON.stringify({
    message: "What are your opening hours?",
    personality: "You are Sofia, support agent for Acme Store.",
    user_id: "user_123"
  })
});
Resposta
{
  "reply": "Hi! Our store is open Monday–Friday, 9am–6pm CET.",
  "tokens_used": 84,
  "model": "gpt-4o-mini"
}

Respostas em Streaming

Para experiências de chat em tempo real, use o endpoint de streaming. As respostas são entregues como Eventos Enviados pelo Servidor (SSE). Mesmos parâmetros que /chat.

POST /chat/stream
Exemplo de streaming
const res = await fetch("https://api.eikr.ee/chat/stream", {
  method: "POST",
  headers: { "X-API-Key": "eikr_your_key", "Content-Type": "application/json" },
  body: JSON.stringify({ message: "Tell me about Tallinn" })
});

const reader = res.body.getReader();
const decoder = new TextDecoder();

while (true) {
  const { done, value } = await reader.read();
  if (done) break;
  const chunk = decoder.decode(value);
  process.stdout.write(chunk); // recebe tokens à medida que chegam
}

Entrada de Voz

Transcreva uma mensagem de voz (arquivo de áudio) para texto usando o pipeline de reconhecimento de fala da Eikr.

POST /voice

Envie o áudio como multipart/form-data com o arquivo no campo audio. Formatos suportados: .ogg, .mp3, .wav, .m4a

Resposta
{ "transcript": "What time do you close today?", "language": "en" }

Texto para Voz

Converta uma string de texto em um arquivo de áudio. Útil para loops de resposta por voz.

POST /tts
ParâmetroTipoDescrição
textobrigatóriostringTexto a ser convertido em fala
voiceopcionalstring"alloy" (padrão), "nova", "echo", "fable", "onyx", "shimmer"
languageopcionalstringCódigo do idioma para pronúncia

Retorna um stream binário audio/mpeg.

Visão / Análise de imagens

Analise uma imagem e obtenha uma descrição gerada por IA ou respostas a perguntas sobre ela.

POST /vision
ParâmetroTipoDescrição
image_urlobrigatório*stringURL pública da imagem
image_base64obrigatório*stringImagem codificada em Base64 (alternativa à URL)
questionopcionalstringPergunta específica sobre a imagem

* Forneça image_url ou image_base64, não ambos.

Códigos de Erro

CódigoSignificado
400Requisição inválida — parâmetros ausentes ou incorretos
401Não autorizado — chave API ausente ou inválida
429Limite de requisições atingido — reduza a frequência
500Erro interno do servidor — tente novamente em instantes

Limites de Uso

Os limites são aplicados por chave API, com base na cota mensal de requisições do seu plano. Exceder o limite retorna uma resposta 429.

Para uso intensivo ou limites maiores, entre em contato — conseguimos atender a maioria dos casos de uso.