API para que sistemas externos se integren con Estárter: servicios, reservas,
vehículos, usuarios y GPS en tiempo real. Esta página es el índice general de
lo que ofrece la API; el detalle de cada endpoint está en su carpeta.
¿Qué es Estárter?#
Estárter es una empresa de transporte corporativo en Colombia: mueve a los
empleados de sus clientes en una flota de vehículos, en servicios programados de
ingreso y salida. La API externa expone, de forma controlada, las
operaciones y datos que un tercero necesita para integrarse.
Autenticación#
⚠️ DEPRECADO: el flujo con API Key estática + /externalauth/login se apaga en la fecha de corte comunicada a cada integrador. Migrá a OAuth 2.1 — los endpoints de datos NO cambian.La API usa OAuth 2.1 (ver carpeta Autenticación → Autenticación OAuth):1.
Pedí tus credenciales al equipo Estárter: client_id + client_secret para backends, o app pública con PKCE para SPAs. El secret se muestra UNA sola vez (si se pierde, se rota).
2.
Backend (client_credentials): POST /oauth/token con grant_type=client_credentials, resource (audience de la API externa que te entregamos) y credenciales por header Authorization: Basic. Devuelve un access_token de hasta 15 min; sin refresh — pedís otro al vencer.
3.
SPA (Authorization Code + PKCE S256): /oauth/authorize → canje del code en /oauth/token → access + refresh token. El refresh rota en cada uso: guardá siempre el último (reusar uno viejo revoca la familia completa).
4.
Incluí el token en cada request: Authorization: Bearer <access_token>.
5.
Toda la configuración sale del discovery GET /.well-known/oauth-authorization-server (issuer https://mcp.estarter.co): endpoints, scopes (external:read, external:write) y JWKS para verificar el JWT.
El tenant sale del claim cliente del token (la API ignora cualquier id_cliente del body) y el mapeo rol→capacidades es responsabilidad de cada aplicación.Para el GPS de Polaris se usa un service token dedicado (mismo header Bearer).
Legacy deprecado: POST /api/v1/externalauth/login y POST /api/v1/external/authStaff viven en la carpeta Autenticación (legacy, deprecado) solo durante la ventana de migración.
Base URLs#
| Dominio | Para |
|---|
https://cloud.estarter.co | Endpoints Estárter (/api/v1/external/...) |
https://gps.estarter.co | GPS en tiempo real de Polaris (/v1/...) |
Herramientas que ofrece la API#
🚐 Servicios#
Consultar los servicios de transporte (ingreso/salida) con filtros.POST /api/v1/external/servicios — listar servicios con filtros.
POST /api/v1/external/servicios/filtros — opciones de filtros disponibles.
📅 Reservas#
POST /api/v1/external/reservas — obtener reservas por EID y rango de fechas.
🚗 Vehículos#
Alta, consulta y catálogo de la flota.POST /api/v1/external/vehiculos/crear — crear vehículo desde RUNT.
POST /api/v1/external/vehiculos — obtener vehículos.
GET /api/v1/external/vehiculos/filtros — filtros de vehículos.
PUT /api/v1/external/vehiculos/proveedor — agregar o remover proveedor a un vehículo.
Catálogo: POST/GET /api/v1/catalogo-vehiculos, PUT /api/v1/catalogo-vehiculos/{id}.
Documentos: POST /api/v1/external/properacional — datos de preoperacional (paginado).
👤 Usuarios, Historial y Notificaciones#
POST /api/v1/external/authStaff — autenticación de administradores.
GET /api/v1/historial/filtros · POST /api/v1/historial — historial de usuarios con filtros.
Notificaciones / menciones: POST|GET /api/v1/notificaciones/menciones,
PUT .../{id}/visto, GET .../sugerencias-menciones, PUT /api/v1/agentes/alias.
📍 GPS en tiempo real — Polaris#
La posición de la flota servida por Polaris (dueño único de la posición canónica;
ingiere de Zonar/Webfleet/OnTrack + teléfono del conductor y la unifica). Carpeta Polaris:Posición en vivo: GET /v1/all (toda la flota), GET /v1/states?placas= (lote, máx 100),
GET /v1/state/{placa} (estado completo).
Geoespacial: GET /v1/around (cerca de un punto), GET /v1/bbox (dentro de un área).
Histórico: GET /v1/readings?placa=&from=&to= (trazado/recorrido).
Tiempo real (push): GET /v1/stream/{placa} — Server-Sent Events.
GPS legacy (vía backend, compatibilidad): GET /api/v1/external/gps/vehiculos
(flota) y GET /api/v1/external/gps/vehiculos/{placa}. Para tiempo real preferí Polaris.
⭐ Ultra (VIP)#
GET /api/public/catalogo-vehiculos-ultra — catálogo de vehículos Ultra.
POST /api/v1/external/solicitud-vip — crear solicitud de servicio VIP.
🛠️ Utilidades#
POST /api/v1external/upload-file — almacenar archivo PDF.
GET /api/v1/datatime — hora del servidor.
GET /api/v1/invalidar-cache — invalidar caché.
Convenciones#
Auth: Authorization: Bearer <token> en todos los endpoints.
Tiempos: UTC (ISO 8601); el GPS de Polaris incluye además hora Bogotá (UTC-5).
Placa: MAYÚSCULAS, 4–10 alfanumérico (p.ej. PUP074).
Errores: 400 (parámetro inválido), 401 (token faltante/inválido).
El detalle de parámetros, body y respuestas de cada endpoint está en su carpeta
correspondiente del sidebar.Modificado en 2026-08-18 00:49:39