swagger: '2.0' info: x-logo: url: https://storage.googleapis.com/boxc_cdn/public/boxc-logo.png altText: BoxC title: BoxC version: '1.123' description: | A simple but powerful logistics API that drives international ecommerce by utilizing a single integration with access to dozens of carriers and global markets. BoxC can complete every leg or only select steps of a shipment's journey on your behalf with our routing engine. schemes: - https tags: - name: Authentication x-displayName: Authentication description: | This API uses OAuth 2.0 for authentication and authorization. The OAuth 2.0 flow allows users to grant clients permission to access the API with their account. A client is required to create access tokens. An access token is required to use the API. The token is like a password or key to a door and must be kept secret. You can create up to two OAuth 2.0 clients in your account. Information about creating a client and managing client settings can be found in the [Support Center](https://support.boxc.com/support/solutions/articles/65000182698-setting-up-an-oauth-2-0-client). The access tokens are JSON Web Tokens (JWT) that are encoded and signed with your client's private key. When making a request to the API the following events occur: - It verifies the authenticity of the token using the public key and that the token was indeed issued to the client. - It confirms that the user is still allowing the client to use the token. Users have the ability to revoke a previously authorized connection. - It checks that the client has permission to read or write to the resource being accessed. For each step a different error will be returned if any of them fail. ### Request Headers This API use the "Bearer" authorization type and expects an `Authorization` header for authentication similar to the below example: ```text Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsImtpZCI6ImFkODQ3YjJkZTNmMTY1NjFlMDg3MDJhNjY2Mjc1MWMzOGVlODc0ZjcifQ.eyJpc3MiOiJodHRwOi8vbG9jYWxob3N0OjkwMDEiLCJpYXQiOjE2NjUwODUwNTcsImV4cCI6MTk4MDQ0NTA1NywiYXVkIjoiaHR0cDovL2xvY2FsaG9zdDoxMDAwMCIsInN1YiI6IjEiLCJjbGllbnRfaWQiOiIxMDAwMDAwMDAwMTY2NDM0NTY5MiIsInNjb3BlIjoib3BlbmlkIHByb2ZpbGUgZW1haWwifQ.Bw1eJoFS2uESK0IJQ2ICBn0Ksp3m0lXt53Fiy2KjoLGc97XZs0c_Y2tjvg0qaJKDegjbmGiLlsWWE5HgA04H9ZPAdzfjWHdmFTyABB4_m821UlHIXqdYgvgfu8221QPVbwwOCBRfdoM4XrvohUxqfV9ZUmyUv0xk-G8iWR9hefkYmgRMmh5SZafqljs3iWanoIRn9vL0rSehW7PL2jobf7izMtdv1N8OHF2Vdbk9IIFvuKxpfsM_C9-KAIm1vgSLaZd3bSovN1d9JN2D9ER_Y4LHctvfA1CMLtQQo3s7LanvoKV6wj8LixjQ8MT7cPeVyiyPEF46qSvbyb8tweZcAg ``` You are given a unique Client ID when creating a new client. The access token is granted to you by the Authorization Server after an authenticated user authorizes your client. See [requesting authorization from a BoxC account](https://support.boxc.com/support/solutions/articles/65000182701-request-authorization-from-a-boxc-account) for more information. ### Authorization Server The entire authorization workflow occurs at https://accounts.boxc.com/ because it relies on users to authenticate before authorizing a client. The authorization server relies on the client to send the user to it with some query parameters in the URI to identify the client and authorization type. ### Redirect URI All clients must provide a `redirect_uri` in the client settings and when making an OAuth 2.0 request to the authorization server. The redirect URI must exactly match the client configuration. It can include query or fragment parameters. ## GET accounts.boxc.com/auth/v1/authorize Requests a user to authenticate with BoxC and authorize your client so you can receive an access token and/or ID token. Descriptions about the different response types and modes can be found on the [Request Authorization From a BoxC Account](https://support.boxc.com/support/solutions/articles/65000182701-request-authorization-from-a-boxc-account) support page. | Param | Description | Required | |-------|-------------|----------| | client_id | The OAuth 2.0 Client ID | Y | | redirect_uri | Where the user-agent will be returned after allowing or declining your authorization request. | Y | | response_mode | Tells the authentication server to use "query" or "fragment" parameters in the redirect_uri.
| Date | Version | Changes |
|---|---|---|
| 2026-07-11 | 1.123 |
Added
|
| 2026-06-30 | 1.122 |
Changed
|
| 2026-06-26 | 1.121 |
Added
|
| 2026-06-15 | 1.120 |
Added
|
| 2026-06-01 | 1.119 |
Added
|
| 2026-05-12 | 1.118 |
Added
|
| 2026-04-11 | 1.117 |
Added
|
| 2026-03-29 | 1.116 |
Added
|
| 2026-03-26 | 1.115 |
Added
|
| 2026-03-18 | 1.114 |
Added
|
| 2026-03-12 | 1.113 |
Added
|
| 2026-02-25 | 1.112 |
Added
|
| 2026-02-11 | 1.111 |
Changed
|
| 2026-02-01 | 1.110 |
Changed
|
| 2026-01-29 | 1.109 |
Changed
|
| 2025-11-14 | 1.108 |
Added
|
| 2025-10-24 | 1.107 |
Added
|
| 2025-10-07 | 1.106 |
Added
|
| 2025-08-30 | 1.105 |
Added
|
| 2025-06-25 | 1.104 |
Added
|
| 2025-05-06 | 1.103 |
Removed
|
| 2025-04-25 | 1.102 |
Added
|
| 2025-03-26 | 1.101 |
Added
|
| 2025-03-10 | 1.100 |
Added
|
| 2025-01-24 | 1.99 |
Added
Changed
|
| 2025-01-08 | 1.98 |
Added
|
| 2024-10-18 | 1.97 |
Changed
|
| 2024-08-27 | 1.96 |
Changed
|
| 2024-08-03 | 1.95 |
Added
|
| 2024-07-31 | 1.94 |
Added
|
| 2024-06-29 | 1.93 |
Changed
|
| 2024-06-24 | 1.92 |
Changed
|
| 2024-06-12 | 1.91 |
Added
|
| 2024-05-10 | 1.90 |
Added
|
| 2023-12-06 | 1.89 |
|
| 2023-11-03 | 1.88 |
|
| 2023-10-16 | 1.87 |
|
| 2023-10-02 | 1.86 |
|
| 2023-09-22 | 1.85 |
|
| 2023-09-13 | 1.84 |
|
| 2023-09-06 | 1.83 |
|
| 2023-08-15 | 1.82 |
|
| 2023-08-14 | 1.81 |
|
| 2023-08-10 | 1.80 |
|
| 2023-07-29 | 1.79 |
|
- name: Shipments
x-displayName: Shipments
description: |
The Shipments resource allows a user to create, update, retrieve, and delete shipments. Only test shipments and shipments without labels can be deleted. Shipments with uncancelled or processed labels cannot be updated. All shipments require address verification on the shipping address. Cancelling a label will refund the cost. Test shipments and shipments without labels are routinely purged from the system.
There are some weight and volumetric constraints for shipments that is dependant on the route. For example, if a Shipment's length + girth is greater than a certain size then the user is charged an additional fee per KG. The length is the measurement of the longest dimension, and girth is the distance around the thickest part (perpendicular to the length). If the Shipment's weight or volume exceeds the limit for a route an error will be returned.
**Note:** Set the `overpack_id` to null when unassigning it from an overpack. You won't be allowed to update a labelled shipment beyond that.
- name: Shops
x-displayName: Shops
description: The Shops resource allows a user to manage their fulfillment shop. A shop with orders or SKUs cannot be deleted. Clients should use a third party platform for integrating their ecommerce marketplaces with the BoxC API.
- name: Track
x-displayName: Track
description: |
The Track resource allows clients to retrieve tracking events for shipments by their tracking number. You may only track one shipment per request. This endpoint is rate limited.
Some shipments may have images attached to them during transit such as processing scans and proof of delivery. To reveal these images in the response the client must either:
A. Be the owner of the shipment;Note: Multi-package shipments can't be processed this way as of now.
operationId: processShipment consumes: - application/json produces: - application/json security: - JWT: - write_shipments PrivilegedClient: [] parameters: - name: id in: path description: The shipment ID required: true type: integer x-codeSamples: - lang: cURL label: cURL source: | curl -X PUT https://api.boxc.com/v1/shipments/{id}/process \ -H "Authorization: Bearer