APIHub
Back to Explore

ShipEngine API

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.

Transportation
apiKeyHeader
HTTPS
CORS: Unknown
Description enriched
Visit official documentation

Latency

1403ms p95

Uptime

100.0% 30d

Playground

Verified

live

Endpoints

REST · JSON
GET

/v1/carriers/{carrier_id}/packages

List Carrier Package Types

GET

/v1/carriers/{carrier_id}/services

List Carrier Services

POST

/v1/connections/carriers/{carrier_name}

Connect a carrier account

DELETE

/v1/connections/carriers/{carrier_name}/{carrier_id}

Disconnect a carrier

GET

/v1/connections/carriers/{carrier_name}/{carrier_id}/settings

Get carrier settings

PUT

/v1/connections/carriers/{carrier_name}/{carrier_id}/settings

Update carrier settings

DELETE

/v1/connections/insurance/shipsurance

Disconnect a Shipsurance Account

POST

/v1/connections/insurance/shipsurance

Connect a Shipsurance Account

DELETE

/v1/pickups/{pickup_id}

Delete a Scheduled Pickup

GET

/v1/pickups/{pickup_id}

Get Pickup By ID

POST

/v1/rates

Get Shipping Rates

POST

/v1/rates/bulk

Get Bulk Rates

POST

/v1/rates/estimate

Estimate Rates

GET

/v1/rates/{rate_id}

Get Rate By ID

POST

/v1/service_points/list

List Service Points

GET

/v1/service_points/{carrier_code}/{country_code}/{service_point_id}

Get Service Point By ID

PUT

/v1/addresses/recognize

Parse an address

POST

/v1/addresses/validate

Validate An Address

GET

/v1/batches

List Batches

  • status (query)
  • 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.
POST

/v1/labels

Purchase Label

GET

/v1/labels/external_shipment_id/{external_shipment_id}

Get Label By External Shipment ID

  • label_download_type (query)
POST

/v1/labels/rates/{rate_id}

Purchase Label with Rate ID

POST

/v1/labels/shipment/{shipment_id}

Purchase Label with Shipment ID

GET

/v1/labels/{label_id}

Get Label By ID

  • label_download_type (query)
POST

/v1/labels/{label_id}/return

Create a return label

GET

/v1/labels/{label_id}/track

Get Label Tracking Information

PUT

/v1/labels/{label_id}/void

Void a Label By ID

GET

/v1/manifests

List Manifests

  • warehouse_id (query) — Warehouse ID
  • ship_date_start (query) — ship date start range
  • ship_date_end (query) — ship date end range
  • 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.
  • sort_by (query)
POST

/v1/shipments

Create Shipments

GET

/v1/shipments/external_shipment_id/{external_shipment_id}

Get Shipment By External ID

PUT

/v1/shipments/recognize

Parse shipping info

GET

/v1/shipments/{shipment_id}

Get Shipment By ID

PUT

/v1/shipments/{shipment_id}

Update Shipment By ID

PUT

/v1/shipments/{shipment_id}/cancel

Cancel a Shipment

GET

/v1/shipments/{shipment_id}/rates

Get Shipment Rates

  • 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)
DELETE

/v1/shipments/{shipment_id}/tags/{tag_name}

Remove Tag from Shipment

POST

/v1/shipments/{shipment_id}/tags/{tag_name}

Add Tag to Shipment

GET

/v1/tags

Get Tags

DELETE

/v1/tags/{tag_name}

Delete Tag

POST

/v1/tags/{tag_name}

Create a New Tag

PUT

/v1/tags/{tag_name}/{new_tag_name}

Update Tag Name

POST

/v1/tokens/ephemeral

Get Ephemeral Token

  • redirect (query) — Include a redirect url to the application formatted with the ephemeral token.
GET

/v1/tracking

Get Tracking Information

  • carrier_code (query) — Carrier code used to retrieve tracking information
  • tracking_number (query) — The tracking number associated with a shipment
POST

/v1/tracking/start

Start Tracking a Package

  • carrier_code (query) — Carrier code used to retrieve tracking information
  • tracking_number (query) — The tracking number associated with a shipment
POST

/v1/tracking/stop

Stop Tracking a Package

  • carrier_code (query) — Carrier code used to retrieve tracking information
  • tracking_number (query) — The tracking number associated with a shipment
GET

/v1/warehouses

List Warehouses

POST

/v1/warehouses

Create Warehouse

DELETE

/v1/warehouses/{warehouse_id}

Delete Warehouse By ID

GET

/v1/warehouses/{warehouse_id}

Get Warehouse By Id

PUT

/v1/warehouses/{warehouse_id}

Update Warehouse By Id

PUT

/v1/warehouses/{warehouse_id}/settings

Update Warehouse Settings

84 endpoints auto-detected

Authentication

This API uses an API key, passed in the "API-Key" header. No OAuth required.

curl -X GET \
  "https://api.shipengine.com/v1/carriers/{carrier_id}/packages" \
  -H "API-Key: YOUR_API_KEY"

api.shipengine.com · HTTPS only