Primeros pasos con la API v3

Aprende a autenticarte, hacer tu primera consulta y manejar respuestas con la nueva API pública de AgendaPro.

Requisitos

Para usar la API v3 de AgendaPro necesitas:

  1. Tener un plan Pro activo.
  2. Generar una API Key desde Configuraciones > Integraciones en tu cuenta de AgendaPro.

Autenticación

La API v3 usa autenticación por Bearer token. Incluye tu API Key en el header Authorization de cada request:

curl -H "Authorization: Bearer apk_live_tu_api_key" \
  https://connect.agendapro.com/v3/locations

Tu primera consulta

Obtén la lista de locales de tu empresa:

curl -H "Authorization: Bearer apk_live_tu_api_key" \
  https://connect.agendapro.com/v3/locations

Respuesta:

{
  "data": [
    {
      "id": 1,
      "name": "Sucursal Providencia",
      "address": "Av. Providencia 1234",
      "phone": "+56912345678",
      "email": "[email protected]"
    }
  ],
  "pagy": {
    "current_page": 1,
    "per_page": 30,
    "total_records": 1,
    "total_pages": 1
  }
}

Paginación

Todos los endpoints de listado retornan respuestas paginadas con un objeto pagy:

ParámetroTipoDefaultDescripción
pageinteger1Número de página
per_pageinteger30Registros por página (máximo 100)
curl -H "Authorization: Bearer apk_live_tu_api_key" \
  "https://connect.agendapro.com/v3/bookings?page=2&per_page=50"

Rate Limits

Se aplican dos límites por empresa:

  • Burst limit: máximo de requests por minuto.
  • Daily quota: máximo de requests por día.

Los headers de respuesta incluyen el estado actual:

HeaderDescripción
X-RateLimit-LimitLímite diario
X-RateLimit-RemainingRequests restantes del día
X-RateLimit-ResetTimestamp Unix cuando se reinicia la quota diaria
X-RateLimit-Burst-LimitLímite por minuto
X-RateLimit-Burst-RemainingRequests restantes en la ventana actual
X-RateLimit-Burst-ResetTimestamp Unix cuando se reinicia la ventana burst

Cuando se excede cualquier límite, la API retorna 429 Too Many Requests con un header Retry-After.

Errores

Todas las respuestas de error usan el formato {error, detail}:

{
  "error": "unauthorized",
  "detail": "invalid_api_key"
}
StatusErrorDetailDescripción
401unauthorizedinvalid_api_keyToken Bearer faltante o inválido
401unauthorizedapi_config_inactiveAcceso API inactivo para esta empresa
404not_found{resource}Recurso no encontrado
422restricted{rule}La operación viola una regla del comercio (por ejemplo, la política de cliente del comercio sobre editar o cancelar reservas). El detail identifica la regla específica. Aplica a endpoints de mutación; revisa la documentación de cada endpoint para los valores posibles de detail.
429rate_limitedburst_limit_exceededLímite por minuto excedido
429rate_limiteddaily_quota_exceededQuota diaria excedida
502upstream_unavailableServicio upstream no disponible