Referencia para desarrolladores

Documentación de la API Eikr

Integra el motor de IA de Eikr en tu producto. Todas las solicitudes son HTTPS, JSON de entrada y salida. URL base: https://api.eikr.ee

Autenticación

Cada solicitud a un endpoint protegido debe incluir tu clave API en la cabecera de la solicitud. Las claves API se emiten al suscribirse a un plan API.

Cabecera
X-API-Key: eikr_your_api_key_here
Mantén tu clave en secreto. Nunca la expongas en código del lado del cliente ni la confirmes en control de versiones. Si se ve comprometida, contáctanos de inmediato para rotarla.

Endpoint de Chat

Envía un mensaje y recibe una respuesta generada por IA. Compatible con personas personalizadas, historial de conversación e inyección de memoria por usuario.

POST /chat

Cuerpo de la solicitud

ParámetroTipoDescripción
messagerequeridostringEl texto del mensaje del usuario
personalityopcionalstringPrompt de sistema / definición de persona para la IA
historyopcionalarrayMensajes anteriores como [{role, content}] para contexto
user_idopcionalstringTu identificador de usuario para persistencia de memoria
languageopcionalstringCódigo de idioma de respuesta, p. ej. "en", "es", "pt"
Ejemplo de solicitud
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"
  })
});
Respuesta
{
  "reply": "Hi! Our store is open Monday–Friday, 9am–6pm CET.",
  "tokens_used": 84,
  "model": "gpt-4o-mini"
}

Respuestas en Streaming

Para experiencias de chat en tiempo real, usa el endpoint de streaming. Las respuestas se entregan como Eventos Enviados por el Servidor (SSE). Mismos parámetros que /chat.

POST /chat/stream
Ejemplo 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); // recibe tokens a medida que llegan
}

Entrada de Voz

Transcribe un mensaje de voz (archivo de audio) a texto usando el pipeline de reconocimiento de voz de Eikr.

POST /voice

Envía el audio como multipart/form-data con el archivo en el campo audio. Formatos admitidos: .ogg, .mp3, .wav, .m4a

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

Texto a Voz

Convierte una cadena de texto en un archivo de audio. Útil para bucles de respuesta por voz.

POST /tts
ParámetroTipoDescripción
textrequeridostringTexto a convertir en voz
voiceopcionalstring"alloy" (por defecto), "nova", "echo", "fable", "onyx", "shimmer"
languageopcionalstringCódigo de idioma para la pronunciación

Devuelve un flujo binario audio/mpeg.

Visión / Análisis de imágenes

Analiza una imagen y obtén una descripción generada por IA o respuestas a preguntas sobre ella.

POST /vision
ParámetroTipoDescripción
image_urlrequerido*stringURL pública de la imagen
image_base64requerido*stringImagen codificada en Base64 (alternativa a la URL)
questionopcionalstringPregunta específica sobre la imagen

* Proporciona image_url o image_base64, no ambos.

Códigos de Error

CódigoSignificado
400Solicitud incorrecta — parámetros faltantes o no válidos
401No autorizado — clave API faltante o no válida
429Límite de solicitudes superado — reduce la frecuencia
500Error interno del servidor — reintenta en un momento

Límites de Uso

Los límites se aplican por clave API, en función de la cuota mensual de solicitudes de tu plan. Superar el límite devuelve una respuesta 429.

Para un uso intensivo o límites más altos, contáctanos — podemos adaptarnos a la mayoría de los casos de uso.