> ## Documentation Index
> Fetch the complete documentation index at: https://docs.jelou.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Introducción

> Guía de inicio para la API de Jelou

Jelou API es una herramienta potente para que las compañías se comuniquen de forma más profesional y eficiente con sus clientes a través de chatbots. Permite crear sistemas complejos e interconectados, integrándose fácilmente con la plataforma de Jelou, servicios externos y otros sistemas.

Basada en los principios REST, facilita la colaboración y el intercambio de información, personalizando mensajes, manteniendo el contexto del usuario y guardando el historial de chat.

En términos prácticos, Jelou API permite que los chatbots se comuniquen con otros sistemas, facilitando la colaboración, el intercambio de información y la ejecución de diversas tareas, como personalizar mensajes, mantener el contexto del usuario o garantizar la continuidad guardando el historial de chat. Esto es crucial para desarrollar aplicaciones modernas e interconectadas, permitiendo una mejor experiencia de usuario y conversaciones de múltiples turnos.

La API siempre responderá con un objeto y, según el contexto, los recursos pueden responder con un objeto simple o un array de objetos.

<Note>
  Esta API acepta cuerpos de solicitud en formato JSON y requiere que el contenido tenga el encabezado `Content-Type: application/json`. Este encabezado debe especificarse en cada solicitud.
</Note>

## Dominios

Jelou expone dos dominios según el endpoint que utilices:

| Dominio                    | Descripción                                                 | Autenticación                   |
| -------------------------- | ----------------------------------------------------------- | ------------------------------- |
| `https://api.jelou.ai`     | Jelou API `legacy` — superficie legacy.                     | Basic (`clientId:clientSecret`) |
| `https://gateway.jelou.ai` | Gateway de Jelou — superficie actual para nuevos endpoints. | API key (`x-api-key`)           |

<Info>
  Cada endpoint indica en su documentación el dominio y el método de autenticación que le corresponde. Revisa el bloque **Endpoint** y **Autenticación** de cada recurso.
</Info>

***

## Autenticación

El método de autenticación depende del dominio del endpoint.

### Jelou API (`api.jelou.ai`) `legacy`

Los clientes que usen esta API reciben un `client ID` y una `client secret key` para la autenticación básica.

Para cualquier endpoint de `api.jelou.ai`, se debe agregar el siguiente encabezado:

```
Authorization: Basic <Base64 encoded clientId:clientSecret>
```

#### Ejemplo

Si tu `clientId` es `mi_client_id` y tu `clientSecret` es `mi_client_secret`:

1. Únelos con dos puntos: `mi_client_id:mi_client_secret`
2. Codifícalo en Base64: `bWlfY2xpZW50X2lkOm1pX2NsaWVudF9zZWNyZXQ=`
3. Inclúyelo en el header: `Authorization: Basic bWlfY2xpZW50X2lkOm1pX2NsaWVudF9zZWNyZXQ=`

### Gateway (`gateway.jelou.ai`)

Los endpoints publicados en `gateway.jelou.ai` se autentican con una **API key** en el encabezado `x-api-key`:

```
x-api-key: TU_CLAVE_API
```

Consulta [Claves API](/guides/configuracion/claves-api) para crear y administrar tus claves. Cada endpoint indica los scopes que requiere.

***

## Errores

Jelou utiliza los estándares HTTP para reportar errores. En general:

* **Códigos 2XX** indican éxito.
* **Códigos 4XX** indican errores del cliente.
* **Códigos 5XX** indican errores del servidor.

Cuando ocurre un error, la respuesta incluye un objeto JSON con un `código` y una `descripción` detallada del problema.

### Códigos de error

| Código                           | Código de estado HTTP | Descripción                                                          |
| -------------------------------- | --------------------- | -------------------------------------------------------------------- |
| `bot_not_found`                  | 404                   | La compañía no tiene permiso para usar este canal.                   |
| `forbidden_bot`                  | 403                   | No tienes permiso para usar este canal.                              |
| `message_could_not_be_send`      | 400                   | No se pudo enviar el mensaje debido a una solicitud incorrecta.      |
| `notification_could_not_be_send` | 400                   | No se pudo enviar la notificación debido a una solicitud incorrecta. |
| `unauthorized`                   | 401                   | No estás autorizado para realizar esta solicitud.                    |
| `unprocessable_entity`           | 422                   | Falta un campo o hay un error en la solicitud.                       |
| `internal_server_error`          | 500                   | El token de autorización no tiene una compañía asignada.             |

***

## Límites de peticiones

La API tiene un límite de **5 solicitudes por segundo**.
