openapi: 3.1.0 info: title: Shippo Addresses Webhooks API description: Shippo is a multi-carrier shipping API that enables developers to add complete shipping functionality to their applications. The API supports address validation, carrier rate comparison across USPS, UPS, FedEx, DHL, and 80+ other carriers, label generation, package tracking, returns management, and webhook notifications. version: '2018-02-08' contact: name: Shippo url: https://docs.goshippo.com/ email: support@goshippo.com license: name: Shippo API Terms url: https://goshippo.com/terms-of-use/ x-date: '2026-05-02' servers: - url: https://api.goshippo.com description: Shippo API security: - ShippoToken: [] tags: - name: Webhooks description: Manage webhook subscriptions paths: /tracks: post: operationId: registerTrackingWebhook summary: Register Tracking Webhook description: Registers a tracking webhook for a shipment to receive real-time tracking updates. tags: - Webhooks requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/TrackingWebhookRequest' responses: '201': description: Tracking webhook registered content: application/json: schema: $ref: '#/components/schemas/TrackingStatus' /webhooks: get: operationId: listWebhooks summary: List Webhooks description: Returns a list of all webhook subscriptions. tags: - Webhooks responses: '200': description: A list of webhooks content: application/json: schema: type: object properties: results: type: array items: $ref: '#/components/schemas/Webhook' post: operationId: createWebhook summary: Create Webhook description: Creates a new webhook subscription for Shippo events. tags: - Webhooks requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/WebhookCreateRequest' responses: '201': description: Webhook created content: application/json: schema: $ref: '#/components/schemas/Webhook' /webhooks/{WebhookId}: get: operationId: getWebhook summary: Get Webhook description: Returns an existing webhook using an object ID. tags: - Webhooks parameters: - name: WebhookId in: path required: true schema: type: string responses: '200': description: Webhook object content: application/json: schema: $ref: '#/components/schemas/Webhook' put: operationId: updateWebhook summary: Update Webhook description: Updates an existing webhook subscription. tags: - Webhooks parameters: - name: WebhookId in: path required: true schema: type: string requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/WebhookCreateRequest' responses: '200': description: Webhook updated content: application/json: schema: $ref: '#/components/schemas/Webhook' delete: operationId: deleteWebhook summary: Delete Webhook description: Deletes an existing webhook subscription. tags: - Webhooks parameters: - name: WebhookId in: path required: true schema: type: string responses: '204': description: Webhook deleted components: schemas: TrackingWebhookRequest: type: object required: - carrier - tracking_number properties: carrier: type: string tracking_number: type: string metadata: type: string Address: type: object properties: object_id: type: string description: Unique identifier for the address is_complete: type: boolean description: Whether the address is complete and valid name: type: string description: Full name of the recipient company: type: string description: Company name street1: type: string description: First line of the street address street2: type: string description: Second line of the street address city: type: string description: City state: type: string description: State or province zip: type: string description: Postal code country: type: string description: ISO 2-letter country code phone: type: string description: Phone number email: type: string description: Email address is_residential: type: boolean description: Whether the address is residential validation_results: type: object description: Address validation results object_created: type: string format: date-time object_updated: type: string format: date-time WebhookCreateRequest: type: object required: - url - event properties: url: type: string event: type: string enum: - transaction_created - transaction_updated - batch_created - batch_purchased - track_updated active: type: boolean Webhook: type: object properties: object_id: type: string url: type: string description: URL that receives webhook events event: type: string enum: - transaction_created - transaction_updated - batch_created - batch_purchased - track_updated active: type: boolean is_test: type: boolean object_created: type: string format: date-time object_updated: type: string format: date-time TrackingStatus: type: object properties: carrier: type: string tracking_number: type: string address_from: $ref: '#/components/schemas/Address' address_to: $ref: '#/components/schemas/Address' transaction: type: string original_eta: type: string format: date-time eta: type: string format: date-time servicelevel: type: object properties: token: type: string name: type: string tracking_status: type: object properties: status: type: string enum: - UNKNOWN - PRE_TRANSIT - TRANSIT - DELIVERED - RETURNED - FAILURE status_details: type: string status_date: type: string format: date-time location: type: object tracking_history: type: array items: type: object securitySchemes: ShippoToken: type: http scheme: bearer description: Shippo API token (prefix with "ShippoToken ")