# Descripción del módulo

La **API Pública de Airvi** permite consultar información registrada en el sistema (clientes, reservas, pagos y reembolsos) desde sistemas externos o integraciones de terceros.  
Este módulo está diseñado para ofrecer acceso **seguro, controlado y auditable** a los datos del sistema sin necesidad de acceso directo a la base de datos.

Cada consulta genera un identificador único de rastreo (`trace_id`), útil para seguimiento de errores o solicitudes de soporte.  
El acceso se gestiona mediante **claves (tokens)** que se generan desde el panel administrativo de Airvi.

##### **Acceso al módulo**

[![WhatsApp Image 2025-11-04 at 8.04.21 AM.jpeg](https://v4.docs.airvi.com.co/uploads/images/gallery/2025-11/scaled-1680-/XHkWgNZUJ0b9XDsI-whatsapp-image-2025-11-04-at-8-04-21-am.jpeg)](https://v4.docs.airvi.com.co/uploads/images/gallery/2025-11/XHkWgNZUJ0b9XDsI-whatsapp-image-2025-11-04-at-8-04-21-am.jpeg)

1. Ingrese a su cuenta de **Airvi** con un usuario con permisos administrativos.
2. Diríjase a la sección **Parametrización → Claves (API Pública)**.
3. hacer clic en **“Añadir clave”**.
4. Colocar un nombre a la clave
5. Haga clic en **“Guardar”**.
6. Copie el **token** generado.
    
    [![Api publica.png](https://v4.docs.airvi.com.co/uploads/images/gallery/2025-11/scaled-1680-/wqeeLFikw63upxUY-api-publica.png)](https://v4.docs.airvi.com.co/uploads/images/gallery/2025-11/wqeeLFikw63upxUY-api-publica.png)

> ⚠️ **Importante:**  
> Guarde este token en un lugar seguro. Es necesario incluirlo en el encabezado de cada solicitud a la API. En caso de perdida o que ya no este funcionando, debes regenerar la clave API de nuevo.
> 
> Ejemplo de encabezado:
> 
> <div class="contain-inline-size rounded-2xl relative bg-token-sidebar-surface-primary"><div class="overflow-y-auto p-4" dir="ltr">`Authorization: Bearer {TOKEN}`</div></div>

####  **Acceso a la documentación técnica**

1. Abra el navegador e ingrese la siguiente dirección:
    
    <div class="contain-inline-size rounded-2xl relative bg-token-sidebar-surface-primary"><div class="overflow-y-auto p-4" dir="ltr">`{BASE_URL}/public/docs/ Siendo BASE_URL la URL de la plataforma`  
    </div><div class="overflow-y-auto p-4" dir="ltr">`Ejemplo: https://airvi-api.rpmarketing.com.co/public/docs#/`</div></div>
2. En esta interfaz podrá visualizar los diferentes **endpoints disponibles**, sus **parámetros**, ejemplos de uso y **respuestas esperadas**.
3. Puede ejecutar peticiones directamente desde el navegador, siempre que haya autenticado con su token.

> 📝 **Nota:**  
> La ruta incluye un guion medio entre “docs” y “api”. Es decir: **`docs-api`**, no “docsapi”.

#### **Autenticación y seguridad**

Todas las consultas se realizan mediante un **token de autenticación** generado desde Airvi. El token se envía en el encabezado HTTP de la petición.

[![image.png](https://v4.docs.airvi.com.co/uploads/images/gallery/2025-10/scaled-1680-/ZJT4YTI8Ct2JM6o3-image.png)](https://v4.docs.airvi.com.co/uploads/images/gallery/2025-10/ZJT4YTI8Ct2JM6o3-image.png)

**Ejemplo de encabezado:**

<div class="contain-inline-size rounded-2xl relative bg-token-sidebar-surface-primary" id="bkmrk-authorization%3A-beare"><div class="overflow-y-auto p-4" dir="ltr">`<span class="hljs-section">Authorization: Bearer 1234abcd5678efgh</span>`</div></div>#### **Estructura de las respuestas**

Cada respuesta de la API tiene una estructura estándar:

[![image.png](https://v4.docs.airvi.com.co/uploads/images/gallery/2025-10/scaled-1680-/CY5SJUw9pCYwsvCw-image.png)](https://v4.docs.airvi.com.co/uploads/images/gallery/2025-10/CY5SJUw9pCYwsvCw-image.png)

<div class="contain-inline-size rounded-2xl relative bg-token-sidebar-surface-primary" id="bkmrk-%7B-%C2%A0-%22status%22%3A-%22succe"><div class="overflow-y-auto p-4" dir="ltr">  
  
</div></div>- **status:** indica si la consulta fue exitosa (`success`) o falló (`fail`).
- **errors:** lista de errores o validaciones.
- **data.items:** contiene la información solicitada.
- **trace\_id:** identificador único para auditoría y soporte técnico.

> 💡 **Consejo:**  
> Si una consulta falla o devuelve resultados vacíos, conserve el `trace_id` y compártalo con el área de soporte para una revisión más rápida.

---

#### **Parámetros generales**

La mayoría de endpoints utilizan los siguientes parámetros de consulta (query):

<div class="_tableContainer_1rjym_1" id="bkmrk-par%C3%A1metro-descripci%C3%B3"><div class="group _tableWrapper_1rjym_13 flex w-fit flex-col-reverse" tabindex="-1"><table class="w-fit min-w-(--thread-content-width)" data-end="3583" data-start="3227"><thead data-end="3278" data-start="3227"><tr data-end="3278" data-start="3227"><th data-col-size="sm" data-end="3239" data-start="3227" style="text-align: justify;">Parámetro</th><th data-col-size="md" data-end="3253" data-start="3239" style="text-align: justify;">Descripción</th><th data-col-size="sm" data-end="3267" data-start="3253" style="text-align: justify;">Obligatorio</th><th data-col-size="sm" data-end="3278" data-start="3267" style="text-align: justify;">Formato</th></tr></thead><tbody data-end="3583" data-start="3335"><tr data-end="3402" data-start="3335"><td data-col-size="sm" data-end="3344" data-start="3335" style="text-align: justify;">`take`</td><td data-col-size="md" data-end="3378" data-start="3344" style="text-align: justify;">Cantidad de registros a mostrar</td><td data-col-size="sm" data-end="3385" data-start="3378" style="text-align: justify;">✅ Sí</td><td data-col-size="sm" data-end="3402" data-start="3385" style="text-align: justify;">Número entero</td></tr><tr data-end="3498" data-start="3403"><td data-col-size="sm" data-end="3412" data-start="3403" style="text-align: justify;">`skip`</td><td data-col-size="md" data-end="3474" data-start="3412" style="text-align: justify;">Cantidad de registros a omitir antes de iniciar la búsqueda</td><td data-col-size="sm" data-end="3481" data-start="3474" style="text-align: justify;">❌ No</td><td data-col-size="sm" data-end="3498" data-start="3481" style="text-align: justify;">Número entero</td></tr><tr data-end="3583" data-start="3499"><td data-col-size="sm" data-end="3524" data-start="3499" style="text-align: justify;">`date_from`, `date_to`</td><td data-col-size="md" data-end="3560" data-start="3524" style="text-align: justify;">Rango de fechas según el endpoint</td><td data-col-size="sm" data-end="3567" data-start="3560" style="text-align: justify;">❌ No</td><td data-col-size="sm" data-end="3583" data-start="3567" style="text-align: justify;">`YYYY-MM-DD`</td></tr></tbody></table>

</div></div>> ⚠️ **Importante:**  
> Incluso si realiza una consulta por un único registro, debe incluir el parámetro `take`.  
> Ejemplo: `take=1`