The ShipEngine API provides a unified REST interface for handling end‑to‑end shipping logistics, from connecting carrier accounts and retrieving rates to creating shipments, purchasing labels, scheduling pickups, and tracking packages. It also includes endpoints for managing warehouses, custom package types, manifests, service points, insurance, webhooks, and tags.
page(query, page) — Return a specific page of results. Defaults to the first page. If set to a number that's greater than the number of pages of results, an empty page is returned.
page_size(query, limit) — The number of results to return per response.
sort_dir(query) — Controls the sort order of the query.
batch_number(query) — Batch Number
sort_by(query)
POST
/v1/batches
Create A Batch
GET
/v1/batches/external_batch_id/{external_batch_id}
Get Batch By External ID
DELETE
/v1/batches/{batch_id}
Delete Batch By Id
GET
/v1/batches/{batch_id}
Get Batch By ID
PUT
/v1/batches/{batch_id}
Update Batch By Id
POST
/v1/batches/{batch_id}/add
Add to a Batch
GET
/v1/batches/{batch_id}/errors
Get Batch Errors
page(query, page) — Return a specific page of results. Defaults to the first page. If set to a number that's greater than the number of pages of results, an empty page is returned.
pagesize(query, limit)
POST
/v1/batches/{batch_id}/process/labels
Process Batch ID Labels
POST
/v1/batches/{batch_id}/remove
Remove From Batch
GET
/v1/carriers
List Carriers
GET
/v1/carriers/{carrier_id}
Get Carrier By ID
PUT
/v1/carriers/{carrier_id}/add_funds
Add Funds To Carrier
GET
/v1/carriers/{carrier_id}/options
Get Carrier Options
GET
/v1/downloads/{dir}/{subdir}/{filename}
Download File
download(query)
rotation(query)
GET
/v1/environment/webhooks
List Webhooks
POST
/v1/environment/webhooks
Create a Webhook
DELETE
/v1/environment/webhooks/{webhook_id}
Delete Webhook By ID
GET
/v1/environment/webhooks/{webhook_id}
Get Webhook By ID
PUT
/v1/environment/webhooks/{webhook_id}
Update a Webhook
PATCH
/v1/insurance/shipsurance/add_funds
Add Funds To Insurance
GET
/v1/insurance/shipsurance/balance
Get Insurance Funds Balance
GET
/v1/labels
List labels
label_status(query) — Only return labels that are currently in the specified status
service_code(query) — Only return labels for a specific [carrier service](https://www.shipengine.com/docs/shipping/use-a-carrier-service/)
carrier_id(query) — Only return labels for a specific [carrier account](https://www.shipengine.com/docs/carriers/setup/)
tracking_number(query) — Only return labels with a specific tracking number
batch_id(query) — Only return labels that were created in a specific [batch](https://www.shipengine.com/docs/labels/bulk/)
rate_id(query) — Rate ID
shipment_id(query) — Shipment ID
warehouse_id(query) — Only return labels that originate from a specific [warehouse](https://www.shipengine.com/docs/shipping/ship-from-a-warehouse/)
created_at_start(query) — Only return labels that were created on or after a specific date/time
created_at_end(query) — Only return labels that were created on or before a specific date/time
page(query, page) — Return a specific page of results. Defaults to the first page. If set to a number that's greater than the number of pages of results, an empty page is returned.
page_size(query, limit) — The number of results to return per response.
sort_dir(query) — Controls the sort order of the query.
sort_by(query) — Controls which field the query is sorted by.
created_at_start(query) — Used to create a filter for when a resource was created (ex. A shipment that was created after a certain time)
created_at_end(query) — Used to create a filter for when a resource was created, (ex. A shipment that was created before a certain time)
carrier_id(query) — Carrier ID
page(query, page) — Return a specific page of results. Defaults to the first page. If set to a number that's greater than the number of pages of results, an empty page is returned.
page_size(query, limit) — The number of results to return per response.
label_ids(query)
POST
/v1/manifests
Create Manifest
GET
/v1/manifests/requests/{manifest_request_id}
Get Manifest Request By Id
GET
/v1/manifests/{manifest_id}
Get Manifest By Id
GET
/v1/packages
List Custom Package Types
POST
/v1/packages
Create Custom Package Type
DELETE
/v1/packages/{package_id}
Delete A Custom Package By ID
GET
/v1/packages/{package_id}
Get Custom Package Type By ID
PUT
/v1/packages/{package_id}
Update Custom Package Type By ID
GET
/v1/pickups
List Scheduled Pickups
carrier_id(query) — Carrier ID
warehouse_id(query) — Warehouse ID
created_at_start(query) — Only return scheduled pickups that were created on or after a specific date/time
created_at_end(query) — Only return scheduled pickups that were created on or before a specific date/time
page(query, page) — Return a specific page of results. Defaults to the first page. If set to a number that's greater than the number of pages of results, an empty page is returned.
page_size(query, limit) — The number of results to return per response.
POST
/v1/pickups
Schedule a Pickup
GET
/v1/shipments
List Shipments
shipment_status(query)
batch_id(query) — Batch ID
tag(query) — Search for shipments based on the custom tag added to the shipment object
created_at_start(query) — Used to create a filter for when a resource was created (ex. A shipment that was created after a certain time)
created_at_end(query) — Used to create a filter for when a resource was created, (ex. A shipment that was created before a certain time)
modified_at_start(query) — Used to create a filter for when a resource was modified (ex. A shipment that was modified after a certain time)
modified_at_end(query) — Used to create a filter for when a resource was modified (ex. A shipment that was modified before a certain time)
page(query, page) — Return a specific page of results. Defaults to the first page. If set to a number that's greater than the number of pages of results, an empty page is returned.
page_size(query, limit) — The number of results to return per response.
sales_order_id(query) — Sales Order ID
sort_dir(query) — Controls the sort order of the query.