openapi: 3.0.3 info: title: Wakeo Visibility Shipments Tracking API description: "REST API for Wakeo, a multimodal supply-chain visibility platform (sea, air, road, rail, and parcel). The API lets customers register transport orders / shipments, retrieve predictive ETAs, positions, and milestone events, and subscribe to webhooks that push tracking updates back into a TMS, ERP, or MRP. Wakeo describes its APIs as able to \"pull the latest transport orders and push the latest ETA\" into shipper systems.\n\nACCESS MODEL: Wakeo is an enterprise, customer-provisioned SaaS. The API reference is published at https://docs.wakeo.co/docs/getting-started behind a password wall; access is granted by a Customer Success representative or via support@wakeo.co. As a result this document is a HONEST MODEL, not a byte-for-byte copy of Wakeo's private reference.\n\nWHAT IS CONFIRMED (2026-07-12):\n * Base host https://api.wakeo.co is LIVE and fronted by AWS API Gateway\n (unauthenticated requests return HTTP 403 ForbiddenException).\n * Authentication is OAuth 2.0 - every request carries\n `Authorization: Bearer ` (per Wakeo's published docs).\n * The public surface is request/response REST over HTTPS plus webhooks;\n no WebSocket (wss://) endpoint is documented.\n\n\nWHAT IS MODELED (unconfirmed, marked x-wakeo-modeled: true on each path):\n * The exact resource paths, path prefix/version, query parameters, and\n request/response schemas below are reconstructed from Wakeo's public\n capability descriptions (shipment tracking, ETA, positions, events,\n webhooks). They must be reconciled against the password-protected\n reference before use." version: 1.0-modeled contact: name: Wakeo Support url: https://wakeo.co email: support@wakeo.co x-api-evangelist-status: baseHost: confirmed authentication: confirmed endpointPaths: modeled schemas: modeled reviewer: API Evangelist reviewed: '2026-07-12' servers: - url: https://api.wakeo.co description: Wakeo production API (confirmed live, AWS API Gateway). The path structure below, including any version prefix, is modeled and unconfirmed. security: - oauth2: [] tags: - name: Tracking description: Predictive ETAs, positions, and milestone events for a tracked shipment. (Modeled.) paths: /v1/shipments/{shipmentId}/eta: x-wakeo-modeled: true parameters: - $ref: '#/components/parameters/ShipmentId' get: operationId: getShipmentEta tags: - Tracking summary: Get predictive ETA description: Returns Wakeo's predictive door-to-door ETA for the shipment, blending tracking data with data-science predictions. MODELED. responses: '200': description: The current predictive ETA. content: application/json: schema: $ref: '#/components/schemas/Eta' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' /v1/shipments/{shipmentId}/positions: x-wakeo-modeled: true parameters: - $ref: '#/components/parameters/ShipmentId' get: operationId: listShipmentPositions tags: - Tracking summary: List positions description: Returns the geolocation positions recorded for the shipment along its journey. MODELED. responses: '200': description: A list of positions. content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/Position' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' /v1/shipments/{shipmentId}/events: x-wakeo-modeled: true parameters: - $ref: '#/components/parameters/ShipmentId' get: operationId: listShipmentEvents tags: - Tracking summary: List milestone events description: Returns the milestone events (departures, arrivals, port calls, transshipments, PODs, congestion and disruption alerts) for a shipment. MODELED. responses: '200': description: A list of milestone events. content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/Event' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' components: schemas: Position: type: object description: Modeled geolocation position. properties: latitude: type: number format: double longitude: type: number format: double timestamp: type: string format: date-time source: type: string description: Data source (AIS, telematics, carrier, etc.). Event: type: object description: Modeled milestone / disruption event. properties: type: type: string description: Event type (departure, arrival, port_call, transshipment, pod, congestion, disruption). location: type: string timestamp: type: string format: date-time description: type: string Eta: type: object description: Modeled predictive ETA payload. properties: shipmentId: type: string estimatedArrival: type: string format: date-time confidence: type: string description: Qualitative or numeric confidence in the prediction. updatedAt: type: string format: date-time Error: type: object properties: message: type: string code: type: string responses: Unauthorized: description: Missing or invalid OAuth 2.0 access token. content: application/json: schema: $ref: '#/components/schemas/Error' NotFound: description: The requested resource was not found. content: application/json: schema: $ref: '#/components/schemas/Error' parameters: ShipmentId: name: shipmentId in: path required: true description: The identifier of the shipment. schema: type: string securitySchemes: oauth2: type: oauth2 description: 'OAuth 2.0. Every request must include `Authorization: Bearer ` (confirmed from Wakeo''s published documentation). The token URL and grant type below are MODELED and must be confirmed against the password-protected reference.' flows: clientCredentials: tokenUrl: https://api.wakeo.co/oauth/token scopes: {}