Respuestas de la API
Códigos de estado
Correctos
200OK201Creado
Errores en requests
400Request inválido401No autenticado403Sin permisos404No encontrado406No aceptable (ej: publicar una ruta sin driver o ya publicada)409Rate limit excedido422Error de validación (incluyeerrorscon el detalle por campo)
Errores en el servidor
500Error en el servidor
Envelopes de respuesta
Las respuestas exitosas envuelven el cuerpo bajo una clave según el recurso.
Atención: la clave varía por endpoint.
POST /shipments
{ "success": true, "shipment": { ... } }
GET /shipments/{id}
objeto del envío (nivel raíz)
POST /shipments/{id}/cancel
{ "success": true, "shipment": { ... } }
POST /shipments/quotes
{ "quotes": [ ... ] }
GET /shipments/{id}/tracking
{ "tracking": [ ... ] }
POST /shipments/tracking/bulk
{ "tracking": [ { "shipment_id", "tracking": [...] } ] }
GET /shipments/{id}/attachments
{ "attachments": [ ... ] }
GET /tasks
{ "data": [ ... ], "meta": { paginación } }
GET /tasks/{ulid}
objeto de la tarea (nivel raíz)
POST /tasks
{ "success": true, "task": { ... } }
POST /tasks/{ulid}/cancel
{ "success": true, "task": { ... } }
POST /workflows
{ "success": true, "workflow": { "data": { ... } } }
POST /workflows/{id}/cancel
{ "data": { "workflow": { ... } } }
GET /routes
{ "routes": { "data": [ ... ] } }
GET /routes/{id}
objeto de la ruta (nivel raíz)
POST /routes y /publish
{ "success": true, "route": { ... } }
GET /organizations/my
{ "organization": { ... } }
GET /organizations/my/places
{ "places": [ ... ] }
GET /organizations/my/contracts
{ "organizations": [ ... ] } (paginado)
Última actualización