Overview
ShipEngine's easy-to-use REST API lets you manage all of your shipping needs without worrying about the complexities of different carrier APIs and protocols. We handle all the heavy lifting so you can focus on providing a first-class shipping experience for your customers at the best possible prices. Each of ShipEngine's features can be used by itself or in conjunction with each other to build powerful shipping functionality into your application or service. ## Getting Started If you're new to REST APIs then be sure to read our [introduction to REST](https://www.shipengine.com/docs/rest/) to understand the basics. Learn how to [authenticate yourself to ShipEngine](https://www.shipengine.com/docs/auth/), and then use our [sandbox environment](https://www.shipengine.com/docs/sandbox/) to kick the tires and get familiar with our API. If you run into any problems, then be sure to check the [error handling guide](https://www.shipengine.com/docs/errors/) for tips. Here are some step-by-step **tutorials** to get you started: - [Learn how to create your first shipping label](https://www.shipengine.com/docs/labels/create-a-label/) - [Calculate shipping costs and compare rates across carriers](https://www.shipengine.com/docs/rates/) - [Track packages on-demand or in real time](https://www.shipengine.com/docs/tracking/) - [Validate mailing addresses anywhere on Earth](https://www.shipengine.com/docs/addresses/validation/) ## Shipping Labels for Every Major Carrier ShipEngine makes it easy to [create shipping labels for any carrier](https://www.shipengine.com/docs/labels/create-a-label/) and [download them](https://www.shipengine.com/docs/labels/downloading/) in a [variety of file formats](https://www.shipengine.com/docs/labels/formats/). You can even customize labels with your own [messages](https://www.shipengine.com/docs/labels/messages/) and [images](https://www.shipengine.com/docs/labels/branding/). ## Real-Time Package Tracking With ShipEngine you can [get the current status of a package](https://www.shipengine.com/docs/tracking/) or [subscribe to real-time tracking updates](https://www.shipengine.com/docs/tracking/webhooks/) via webhooks. You can also create [custimized tracking pages](https://www.shipengine.com/docs/tracking/branded-tracking-page/) with your own branding so your customers will always know where their package is. ## Compare Shipping Costs Across Carriers Make sure you ship as cost-effectively as possible by [comparing rates across carriers](https://www.shipengine.com/docs/rates/get-shipment-rates/) using the ShipEngine Rates API. Or if you don't know the full shipment details yet, then you can [get rate estimates](https://www.shipengine.com/docs/rates/estimate/) with limited address info. ## Worldwide Address Validation ShipEngine supports [address validation](https://www.shipengine.com/docs/addresses/validation/) for virtually [every country on Earth](https://www.shipengine.com/docs/addresses/validation/countries/), including the United States, Canada, Great Britain, Australia, Germany, France, Norway, Spain, Sweden, Israel, Italy, and over 160 others.
ShipEngine API is a transportation API from shipengine.com. Requests are authenticated with an API key. It is served over HTTPS. Its OpenAPI description documents 84 endpoints.
At a glance
- Authentication
- API key
- HTTPS
- Yes
- CORS
- Unknown
- Category
- Transportation
- Base URL
https://api.shipengine.com- Version
- 1.1.202303022103
- Endpoints
- 84
- OpenAPI
- Specification ↗
- Spec updated
- 2023-03-06
Make a first request
Replace the placeholders; the documentation says exactly where credentials go.
curl -X GET "https://api.shipengine.com/v1/batches" \
-H "Accept: application/json" \
-H "X-API-Key: YOUR_API_KEY"const response = await fetch("https://api.shipengine.com/v1/batches", {
method: "GET",
headers: {
"Accept": "application/json",
"X-API-Key": "YOUR_API_KEY",
},
});
const data = await response.json();
console.log(data);import requests
response = requests.request(
"GET",
"https://api.shipengine.com/v1/batches",
headers={
"Accept": "application/json",
"X-API-Key": "YOUR_API_KEY",
},
timeout=30,
)
print(response.json())Endpoints
| Method | Path | What it does |
|---|---|---|
| PUT | /v1/addresses/recognize | Parse an address |
| POST | /v1/addresses/validate | Validate An Address |
| GET | /v1/batches | List Batches |
| POST | /v1/batches | Create A Batch |
| GET | /v1/batches/external_batch_id/{external_batch_id} | Get Batch By External ID |
| GET | /v1/batches/{batch_id} | Get Batch By ID |
| PUT | /v1/batches/{batch_id} | Update Batch By Id |
| DELETE | /v1/batches/{batch_id} | Delete Batch By Id |
| POST | /v1/batches/{batch_id}/add | Add to a Batch |
| GET | /v1/batches/{batch_id}/errors | Get Batch Errors |
| 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/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 |
| POST | /v1/connections/insurance/shipsurance | Connect a Shipsurance Account |
| DELETE | /v1/connections/insurance/shipsurance | Disconnect a Shipsurance Account |
| GET | /v1/downloads/{dir}/{subdir}/{filename} | Download File |
| GET | /v1/environment/webhooks | List Webhooks |
| POST | /v1/environment/webhooks | Create a Webhook |
| GET | /v1/environment/webhooks/{webhook_id} | Get Webhook By ID |
| PUT | /v1/environment/webhooks/{webhook_id} | Update a Webhook |
| DELETE | /v1/environment/webhooks/{webhook_id} | Delete Webhook By ID |
| PATCH | /v1/insurance/shipsurance/add_funds | Add Funds To Insurance |
| GET | /v1/insurance/shipsurance/balance | Get Insurance Funds Balance |
| GET | /v1/labels | List labels |
| POST | /v1/labels | Purchase Label |
| GET | /v1/labels/external_shipment_id/{external_shipment_id} | Get Label By External Shipment ID |
| 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 |
| 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 |
| 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 |
| GET | /v1/packages/{package_id} | Get Custom Package Type By ID |
| PUT | /v1/packages/{package_id} | Update Custom Package Type By ID |
| DELETE | /v1/packages/{package_id} | Delete A Custom Package By ID |
| GET | /v1/pickups | List Scheduled Pickups |
| POST | /v1/pickups | Schedule a Pickup |
| GET | /v1/pickups/{pickup_id} | Get Pickup By ID |
| DELETE | /v1/pickups/{pickup_id} | Delete a Scheduled Pickup |
| 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 |
| GET | /v1/shipments | List Shipments |
| 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 |
| POST | /v1/shipments/{shipment_id}/tags/{tag_name} | Add Tag to Shipment |
| DELETE | /v1/shipments/{shipment_id}/tags/{tag_name} | Remove Tag from Shipment |
| GET | /v1/tags | Get Tags |
| POST | /v1/tags/{tag_name} | Create a New Tag |
| DELETE | /v1/tags/{tag_name} | Delete Tag |
| PUT | /v1/tags/{tag_name}/{new_tag_name} | Update Tag Name |
| POST | /v1/tokens/ephemeral | Get Ephemeral Token |
| GET | /v1/tracking | Get Tracking Information |
| POST | /v1/tracking/start | Start Tracking a Package |
| POST | /v1/tracking/stop | Stop Tracking a Package |
| GET | /v1/warehouses | List Warehouses |
| POST | /v1/warehouses | Create Warehouse |
| GET | /v1/warehouses/{warehouse_id} | Get Warehouse By Id |
| PUT | /v1/warehouses/{warehouse_id} | Update Warehouse By Id |
| DELETE | /v1/warehouses/{warehouse_id} | Delete Warehouse By ID |
| PUT | /v1/warehouses/{warehouse_id}/settings | Update Warehouse Settings |
Questions
Does the ShipEngine API API need an API key?
Yes. The ShipEngine API API uses API key authentication; the documentation explains how to get credentials.
Does the ShipEngine API API support HTTPS?
Yes, the ShipEngine API API is served over HTTPS.
How many endpoints does the ShipEngine API API have?
Its OpenAPI description lists 84 endpoints in version 1.1.202303022103. All of them are shown on this page.
What are alternatives to the ShipEngine API API?
Other Transportation APIs include airportsapi, Transport for London, England, Uber, Transport for Spain, Amadeus for Developers.
Similar transportation APIs
Compare alternatives →airportsapi
TransportationGet name and website-URL for airports by ICAO code
Transport for London, England
TransportationDiscover TFL APIs
Uber
TransportationUber ride requests and price estimation
Transport for Spain
TransportationPublic trains of Spain
Amadeus for Developers
TransportationTravel Search - Limited usage
Boston MBTA Transit
TransportationStations and predicted arrivals for MBTA
Listed from APIs.guru (CC0).