List shipments
Lists the shipments on your account, oldest first unless you send desc=true. To create one, use POST /orders/{order_id}/shipments.
The list is cursor-based: use after_item and before_item (or the next_page_url and previous_page_url in the response). It is ordered by the date named in date_type: date_created (default) or date_modified. sort_by is ignored.
Needs a secret or trusted token. Limited tokens get 403.
AuthorizationBearer <token>A secret, trusted or limited token. See Authentication.
q?stringSearch by exact shipment id.
date_start?stringOnly items on or after this date. Send ISO 8601 (2026-11-01T00:00:00Z or 2026-11-01T00:00:00-05:00) or a shorthand: 2026 means the start of 2026, 2026-11 the start of November, 2026-11-01 the start of that day. A date with no offset is read in timezone, or in the account's time zone when you send none. It must not be after date_end (400).
date_end?stringOnly items on or before this date. Same formats as date_start, but a shorthand means the end of the period: 2026-11 is the last instant of November, 2026-11-30 the last instant of that day. A date with no offset is read in timezone, or in the account's time zone when you send none.
date_type?stringWhich date date_start and date_end filter on. The default is date_created. Each list names the values it supports. A value that is not one of the values below is a 400.
"date_created""date_created""date_modified""date_current_period_start""date_current_period_end""date_due""date_completed""date_ended"timezone?stringAn IANA time zone name, such as America/New_York or UTC. It sets how date_start and date_end are read and the time zone of every date in the response. The default is the account's time zone (Settings, Technical), or UTC when it has none. A name that is not known is a 400.
after_item?stringFor cursor-based lists, return the items after the item with this id. Use next_page_after_item (or follow next_page_url) from the page you have. You cannot send it together with before_item (400). An id that does not exist is a 404.
before_item?stringFor cursor-based lists, return the items before the item with this id. Use previous_page_before_item (or follow previous_page_url) from the page you have. You cannot send it together with after_item (400). An id that does not exist is a 404.
limit?integerHow many items to return on one page, from 1 to 100. The default is 100. A value outside 1 to 100, or one that is not a whole number, is a 400.
1 <= value <= 100100desc?booleanSort in descending order (newest, largest or last first) when true. The default is false. A value other than true or false is a 400.
falseexpand?stringComma-separated child objects to return in full instead of as a URL, for example customer,payments. Use dot notation for nested objects (items.product), up to four levels deep. A single object takes up to 12 paths; a list takes up to 2, applied to every item. Extra paths are dropped without an error. See Expanding objects.
show?stringComma-separated fields to return; all others are left out. Use dot notation for child fields (customer.email). You cannot send show and hide together (400). See Customizing output.
hide?stringComma-separated fields to leave out of the response. Use dot notation for child fields (customer.email). You cannot send show and hide together (400). See Customizing output.
formatted?booleanWhen true, the object also has a formatted child with amounts and dates as display text in the shopper's language and currency (for example $19.99 or November 7, 2026). The default is false. See Localized formatting.
falseA cursor-based page of shipments.
application/json- response
A page of a cursor-based list. There is no total. Move between pages with after_item and before_item, or follow next_page_url and previous_page_url, which keep your other query parameters.
next_page_url*|The URL of the next page, or null on the last page.
urinext_page_after_item*|The id to send as after_item for the next page, or null on the last page.
previous_page_url*|The URL of the previous page, or null on the first page.
uriprevious_page_before_item*|The id to send as before_item for the previous page, or null on the first page.
current_page_url?stringThe URL of this page. Only present when the request sent after_item or before_item; the first page has no current_page_url.
uridata*array<>The shipments on this page.
curl -X GET 'https://api.comecero.com/api/v1/shipments'{ "next_page_url": "https://api.comecero.com/api/v1/shipments?after_item=0093718200417ShQ2xN8kL", "next_page_after_item": "0093718200417ShQ2xN8kL", "previous_page_url": null, "previous_page_before_item": null, "current_page_url": "https://api.comecero.com/api/v1/shipments", "data": [ { "object": "shipment", "url": "https://api.comecero.com/api/v1/shipments/0093718200417ShQ2xN8kL", "shipment_id": "0093718200417ShQ2xN8kL", "date_created": "2026-11-04T09:30:00Z", "date_modified": "2026-11-04T09:30:00Z", "date_shipped": "2026-11-04T09:30:00Z", "test": true, "account_id": "AB1234", "items": [ { "object": "shipment_item", "item_id": "1", "product_id": "lens-cloth.test", "name": "Lens cleaning cloth", "quantity": 2, "product": "https://api.comecero.com/api/v1/products/lens-cloth.test" } ], "order": "https://api.comecero.com/api/v1/orders/2979-KXVST-674", "courier": "UPS", "tracking_number": "1Z999AA10123456784", "tracking_url": "http://wwwapps.ups.com/WebTracking/track?track=yes&trackNums=1Z999AA10123456784", "notifications": "https://api.comecero.com/api/v1/shipments/0093718200417ShQ2xN8kL/notifications", "meta": null } ]}Create a shipment POST
Records a parcel sent for the order: the items and quantities in it, and the carrier and tracking number. Each item is marked fulfilled once all of its units have shipped. When that makes the whole order fulfilled, any pending (authorized) payment is captured (money moves) and the `order:fulfilled` event fires. The `shipment:created` event fires and the customer is sent the shipment email. Needs a secret or trusted token. Limited tokens get `403`.
Get a shipment GET
Returns one shipment. Secret and trusted tokens can read any shipment on the account. A limited token can read a shipment only when it is bound to it, and `meta` is left out for it.