openapi: 3.0.3 info: title: Shippeo Real-Time Transportation Visibility ETA and Status Event Subscriptions API description: 'Shippeo is a real-time transportation and multimodal supply-chain visibility platform. Its public developer surface - documented in the login-gated Shippeo Developer Portal at developers.shippeo.com (a Redoc/Swagger-based portal) - lets carriers, shippers, TMS/ERP systems, and control towers submit transport orders (tours) for tracking, feed GPS positions, retrieve predictive ETAs, statuses, and milestone events, and subscribe to real-time "Events-out" notifications via webhooks. Carbon emissions data for tracked shipments is also delivered through the Events-out API for enterprise customers. ACCESS MODEL: Shippeo is enterprise, customer-provisioned SaaS. API access requires a contracted Shippeo account; applications and client IDs are created in the developer portal and calls are authenticated with an OAuth2 (client-credentials) access token presented as an HTTP Bearer token. GROUNDING NOTE: The live API host `https://api.shippeo.com` is confirmed (its `/health` endpoint responds `{"http-server":{"healthy":true}}`), as are OAuth2 Bearer authentication, webhook delivery, and the Events-out product. The individual operation PATHS and REQUEST/RESPONSE SCHEMAS below are MODELED from Shippeo''s public product/marketing documentation because the exact Swagger definitions are behind the portal login; they illustrate the documented capabilities and are not byte-for-byte copies of Shippeo''s private specs. Treat paths as representative, not verified.' version: '1.0' contact: name: Shippeo Developer Portal url: https://developers.shippeo.com x-grounding: confirmed: - host https://api.shippeo.com (live; /health returns 200 JSON) - OAuth2 client-credentials issuing Bearer access tokens - webhook / Events-out event delivery - real-time tracking across road, rail, sea, and air with predictive ETAs modeled: - all operation paths and JSON schemas (portal Swagger is login-gated) servers: - url: https://api.shippeo.com description: Shippeo production API host (host confirmed live; paths modeled) security: - bearerAuth: [] tags: - name: Event Subscriptions description: Manage webhook subscriptions for real-time Events-out notifications. paths: /event-subscriptions: get: operationId: listEventSubscriptions tags: - Event Subscriptions summary: List event (webhook) subscriptions description: MODELED. Lists Events-out webhook subscriptions - the callback URLs Shippeo POSTs status changes, ETA updates, milestone events, and carbon-emissions data to. responses: '200': description: A list of event subscriptions. content: application/json: schema: type: object properties: data: type: array items: $ref: '#/components/schemas/EventSubscription' '401': $ref: '#/components/responses/Unauthorized' post: operationId: createEventSubscription tags: - Event Subscriptions summary: Create an event subscription description: MODELED. Registers a webhook callback URL and the event types to receive from the Events-out API (for example transport status changes and ETA updates). requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/EventSubscriptionInput' responses: '201': description: The created event subscription. content: application/json: schema: $ref: '#/components/schemas/EventSubscription' '401': $ref: '#/components/responses/Unauthorized' '422': $ref: '#/components/responses/ValidationError' /event-subscriptions/{id}: parameters: - $ref: '#/components/parameters/Id' delete: operationId: deleteEventSubscription tags: - Event Subscriptions summary: Delete an event subscription description: MODELED. Removes a webhook event subscription. responses: '204': description: Subscription deleted. '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' components: schemas: EventSubscription: allOf: - $ref: '#/components/schemas/EventSubscriptionInput' - type: object properties: id: type: string active: type: boolean EventSubscriptionInput: type: object required: - callbackUrl - eventTypes properties: callbackUrl: type: string format: uri eventTypes: type: array items: type: string enum: - status.changed - eta.updated - milestone.reached - carbon.reported Error: type: object properties: code: type: string message: type: string responses: Unauthorized: description: Missing or invalid 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' ValidationError: description: The request payload failed validation. content: application/json: schema: $ref: '#/components/schemas/Error' parameters: Id: name: id in: path required: true description: Resource identifier. schema: type: string securitySchemes: bearerAuth: type: http scheme: bearer description: 'HTTP Bearer access token. Tokens are issued via OAuth2 client credentials (client_id / client_secret) obtained by creating an application in the Shippeo Developer Portal. Presented as `Authorization: Bearer ACCESS_TOKEN`.'