Centro de ayudaIntegraciones y avanzadoAPI pública — Introducción y primeros pasos

API pública — Introducción y primeros pasos

Accede a los datos de tu cuenta de Buky desde herramientas externas mediante la API de solo lectura: autenticación por token, paginación y filtrado incluidos

La API pública de Buky te permite consultar los datos de tu cuenta (reservas, pagos, facturas, clientes) desde herramientas externas como Zapier, n8n, data warehouses, agentes de IA o dashboards propios. Es una API de solo lectura que devuelve datos en formato JSON.

Antes de empezar

URL base

Todas las peticiones van contra:

https://app.bukyapp.com/api/

Autenticación

Incluye tu token en cada petición de una de estas dos formas:

Opción 1 — Header Authorization (recomendado):

curl https://app.bukyapp.com/api/orders \
  -H "Authorization: bk_tu_token_aqui"

Opción 2 — Query string:

curl "https://app.bukyapp.com/api/orders?token=bk_tu_token_aqui"

Si el token es inválido, está revocado o ha expirado, recibirás un error 401.

Limitaciones generales

AspectoDetalle
ModoSolo lectura. No se pueden crear, modificar ni eliminar registros.
ScopeCada token está vinculado a una cuenta (customer). Solo puedes ver datos de tu propia cuenta.
Paginación por defecto100 resultados por página.
Tope absoluto500 resultados por página como máximo.

Paginación

Las listas devuelven resultados paginados. Usa los parámetros limit y page:

curl "https://app.bukyapp.com/api/orders?limit=50&page=2" \
  -H "Authorization: bk_tu_token"

La respuesta incluye headers con la información de paginación:

HeaderDescripción
X-CountNúmero total de registros que coinciden con tu consulta.
X-Page-CountNúmero total de páginas disponibles.

Si no envías limit ni page, recibirás los primeros 100 resultados.

Filtrado

Puedes filtrar resultados con el parámetro filter. El formato es un objeto JSON con sintaxis estilo MongoDB, codificado como URL:

# Reservas con estado "confirmed"
curl "https://app.bukyapp.com/api/orders?filter=%7B%22status%22%3A%22confirmed%22%7D" \
  -H "Authorization: bk_tu_token"

El JSON sin codificar del ejemplo anterior es:

{"status": "confirmed"}

Operadores comunes que puedes usar dentro del filtro:

OperadorUsoEjemplo
Igualdad{"campo": "valor"}{"status": "confirmed"}
Mayor/menor que{"campo": {"$gte": valor}}{"createdAt": {"$gte": "2026-01-01"}}
Contiene (regex){"campo": {"$regex": "texto"}}{"client.name": {"$regex": "García"}}
En una lista{"campo": {"$in": [...]}}{"status": {"$in": ["confirmed", "pending"]}}

Selección de campos

Para recibir solo los campos que necesitas, usa el parámetro fields:

curl "https://app.bukyapp.com/api/orders?fields=%7B%22client%22%3A1%2C%22total%22%3A1%7D" \
  -H "Authorization: bk_tu_token"

JSON sin codificar: {"client": 1, "total": 1}

Usa 1 para incluir un campo o 0 para excluirlo.

Ordenación

Usa el parámetro sort con un objeto JSON:

# Ordenar por fecha de creación ascendente
curl "https://app.bukyapp.com/api/orders?sort=%7B%22createdAt%22%3A1%7D" \
  -H "Authorization: bk_tu_token"
  • 1 = ascendente
  • -1 = descendente

Por defecto, los resultados se ordenan por fecha de creación descendente ({"createdAt": -1}).

Expandir relaciones (populate)

Algunos campos son referencias a otros objetos (por ejemplo, el cliente de una reserva). Para obtener el objeto completo en vez de solo su ID, usa populate:

curl "https://app.bukyapp.com/api/orders?populate=client" \
  -H "Authorization: bk_tu_token"

Puedes expandir varios campos separándolos por comas: ?populate=client,products.

Ejemplo completo

Obtener las 20 reservas más recientes con estado "confirmed", mostrando solo cliente y total, expandiendo los datos del cliente:

curl "https://app.bukyapp.com/api/orders?limit=20&page=1&filter=%7B%22status%22%3A%22confirmed%22%7D&fields=%7B%22client%22%3A1%2C%22total%22%3A1%2C%22createdAt%22%3A1%7D&populate=client&sort=%7B%22createdAt%22%3A-1%7D" \
  -H "Authorization: bk_tu_token"

Recursos disponibles

RecursoEndpointDescripción
ReservasGET /api/ordersListado de reservas con productos, pagos y datos del cliente.
PagosGET /api/paymentsListado de pagos recibidos.
FacturasGET /api/invoicesListado de facturas emitidas.
ClientesGET /api/orders (campo client)Los datos de cliente se consultan a través de las reservas.

Cada recurso acepta los mismos parámetros de filtrado, paginación, campos y ordenación descritos arriba.

Errores comunes

CódigoSignificadoQué hacer
401Token inválido, revocado o expirado.Verifica que el token es correcto y sigue activo en Configuración > API Tokens.
403Acceso denegado.El token no tiene permisos para este recurso o la función no está habilitada en tu cuenta.
404Recurso no encontrado.Verifica que el ID existe y pertenece a tu cuenta.

Preguntas frecuentes

¿Puedo crear o modificar reservas desde la API?

No. La API pública es de solo lectura. Puedes consultar datos pero no modificarlos.

¿Cuántas peticiones puedo hacer?

No hay un límite estricto de rate-limiting, pero te recomendamos no superar las 60 peticiones por minuto para un uso razonable.

¿Los filtros son case-sensitive?

Sí. Si usas $regex, puedes añadir "$options": "i" para búsquedas sin distinguir mayúsculas: {"client.name": {"$regex": "garcía", "$options": "i"}}.

¿Cómo obtengo un token?

Desde el panel de Buky, ve a Configuración > API Tokens. Consulta la guía Conectar Buky con herramientas externas (API Tokens) para el paso a paso.

¿Te ha resultado útil este artículo?