What is ShipEngine?

curl -iX POST https://api.shipengine.com/v1/labels \
-H 'API-Key: __YOUR_API_KEY_HERE__' \
-H 'Content-Type: application/json' \
-d '{
  "shipment": {
    "service_code": "usps_priority_mail",
    "ship_to": {
      "name": "Amanda Miller",
      "phone": "555-555-5555",
      "address_line1": "525 S Winchester Blvd",
      "city_locality": "San Jose",
      "state_province": "CA",
      "postal_code": "95128",
      "country_code": "US",
      "address_residential_indicator": "yes"
    },
    "ship_from": {
      "name": "John Doe",
      "phone": "111-111-1111",
      "company_name": "Example Corp.",
      "address_line1": "4009 Marathon Blvd",
      "address_line2": "Suite 300",
      "city_locality": "Austin",
      "state_province": "TX",
      "postal_code": "78756",
      "country_code": "US",
      "address_residential_indicator": "no"
    },
    "packages": [
      {
        "weight": {
          "value": 20,
          "unit": "ounce"
        }
      }
    ]
  }
}'

 

POST /v1/labels HTTP/1.1
Host: api.shipengine.com
API-Key: __YOUR_API_KEY_HERE__
Content-Type: application/json

{
  "shipment": {
    "service_code": "usps_priority_mail",
    "ship_to": {
      "name": "Amanda Miller",
      "phone": "555-555-5555",
      "address_line1": "525 S Winchester Blvd",
      "city_locality": "San Jose",
      "state_province": "CA",
      "postal_code": "95128",
      "country_code": "US",
      "address_residential_indicator": "yes"
    },
    "ship_from": {
      "name": "John Doe",
      "phone": "111-111-1111",
      "company_name": "Example Corp.",
      "address_line1": "4009 Marathon Blvd",
      "address_line2": "Suite 300",
      "city_locality": "Austin",
      "state_province": "TX",
      "postal_code": "78756",
      "country_code": "US",
      "address_residential_indicator": "no"
    },
    "packages": [
      {
        "weight": {
          "value": 20,
          "unit": "ounce"
        }
      }
    ]
  }
}

}

 

import requests url = “https://api.shipengine.com/v1/labels” payload = “{\n \”shipment\”: {\n \”service_code\”: \”usps_priority_mail\”,\n \”ship_to\”: {\n \”name\”: \”Amanda Miller\”,\n \”phone\”: \”555-555-5555\”,\n \”address_line1\”: \”525 S Winchester Blvd\”,\n \”city_locality\”: \”San Jose\”,\n \”state_province\”: \”CA\”,\n \”postal_code\”: \”95128\”,\n \”country_code\”: \”US\”,\n \”address_residential_indicator\”: \”yes\”\n },\n \”ship_from\”: {\n \”name\”: \”John Doe\”,\n \”phone\”: \”111-111-1111\”,\n \”company_name\”: \”Example Corp.\”,\n \”address_line1\”: \”4009 Marathon Blvd\”,\n \”address_line2\”: \”Suite 300\”,\n \”city_locality\”: \”Austin\”,\n \”state_province\”: \”TX\”,\n \”postal_code\”: \”78756\”,\n \”country_code\”: \”US\”,\n \”address_residential_indicator\”: \”no\”\n },\n \”packages\”: [\n {\n \”weight\”: {\n \”value\”: 20,\n \”unit\”: \”ounce\”\n }\n }\n ]\n }\n}” headers = { ‘Host’: ‘api.shipengine.com’, ‘API-Key’: ‘__YOUR_API_KEY_HERE__’, ‘Content-Type’: ‘application/json’ } response = requests.request(“POST”, url, headers=headers, data = payload) print(response.text.encode(‘utf8’))

require “uri” require “net/http” url = URI(“https://api.shipengine.com/v1/labels”) https = Net::HTTP.new(url.host, url.port); https.use_ssl = true request = Net::HTTP::Post.new(url) request[“Host”] = “api.shipengine.com” request[“API-Key”] = “__YOUR_API_KEY_HERE__” request[“Content-Type”] = “application/json” request.body = “{\n \”shipment\”: {\n \”service_code\”: \”usps_priority_mail\”,\n \”ship_to\”: {\n \”name\”: \”Amanda Miller\”,\n \”phone\”: \”555-555-5555\”,\n \”address_line1\”: \”525 S Winchester Blvd\”,\n \”city_locality\”: \”San Jose\”,\n \”state_province\”: \”CA\”,\n \”postal_code\”: \”95128\”,\n \”country_code\”: \”US\”,\n \”address_residential_indicator\”: \”yes\”\n },\n \”ship_from\”: {\n \”name\”: \”John Doe\”,\n \”phone\”: \”111-111-1111\”,\n \”company_name\”: \”Example Corp.\”,\n \”address_line1\”: \”4009 Marathon Blvd\”,\n \”address_line2\”: \”Suite 300\”,\n \”city_locality\”: \”Austin\”,\n \”state_province\”: \”TX\”,\n \”postal_code\”: \”78756\”,\n \”country_code\”: \”US\”,\n \”address_residential_indicator\”: \”no\”\n },\n \”packages\”: [\n {\n \”weight\”: {\n \”value\”: 20,\n \”unit\”: \”ounce\”\n }\n }\n ]\n }\n}” response = https.request(request) puts response.read_body

var client = new RestClient(“https://api.shipengine.com/v1/labels”); client.Timeout = -1; var request = new RestRequest(Method.POST); request.AddHeader(“Host”, “api.shipengine.com”); request.AddHeader(“API-Key”, “__YOUR_API_KEY_HERE__”); request.AddHeader(“Content-Type”, “application/json”); request.AddParameter(“application/json”, “{\n \”shipment\”: {\n \”service_code\”: \”usps_priority_mail\”,\n \”ship_to\”: {\n \”name\”: \”Amanda Miller\”,\n \”phone\”: \”555-555-5555\”,\n \”address_line1\”: \”525 S Winchester Blvd\”,\n \”city_locality\”: \”San Jose\”,\n \”state_province\”: \”CA\”,\n \”postal_code\”: \”95128\”,\n \”country_code\”: \”US\”,\n \”address_residential_indicator\”: \”yes\”\n },\n \”ship_from\”: {\n \”name\”: \”John Doe\”,\n \”phone\”: \”111-111-1111\”,\n \”company_name\”: \”Example Corp.\”,\n \”address_line1\”: \”4009 Marathon Blvd\”,\n \”address_line2\”: \”Suite 300\”,\n \”city_locality\”: \”Austin\”,\n \”state_province\”: \”TX\”,\n \”postal_code\”: \”78756\”,\n \”country_code\”: \”US\”,\n \”address_residential_indicator\”: \”no\”\n },\n \”packages\”: [\n {\n \”weight\”: {\n \”value\”: 20,\n \”unit\”: \”ounce\”\n }\n }\n ]\n }\n}”, ParameterType.RequestBody); IRestResponse response = client.Execute(request); Console.WriteLine(response.Content);

curl -iX POST https://api.shipengine.com/v1/rates \
-H 'API-Key: __YOUR_API_KEY_HERE__' \
-H 'Content-Type: application/json' \
-d '{
  "rate_options": {
    "carrier_ids": [
      "se-123890"
    ]
  },
  "shipment": {
    "validate_address": "no_validation",
    "ship_to": {
      "name": "Amanda Miller",
      "phone": "555-555-5555",
      "address_line1": "525 S Winchester Blvd",
      "city_locality": "San Jose",
      "state_province": "CA",
      "postal_code": "95128",
      "country_code": "US",
      "address_residential_indicator": "yes"
    },
    "ship_from": {
      "company_name": "Example Corp.",
      "name": "John Doe",
      "phone": "111-111-1111",
      "address_line1": "4009 Marathon Blvd",
      "address_line2": "Suite 300",
      "city_locality": "Austin",
      "state_province": "TX",
      "postal_code": "78756",
      "country_code": "US",
      "address_residential_indicator": "no"
    },
    "packages": [
      {
        "weight": {
          "value": 1.0,
          "unit": "ounce"
        }
      }
    ]
  }
}'
POST /v1/rates HTTP/1.1
Host: api.shipengine.com
API-Key: __YOUR_API_KEY_HERE__
Content-Type: application/json

{
  "rate_options": {
    "carrier_ids": [
      "se-123890"
    ]
  },
  "shipment": {
    "validate_address": "no_validation",
    "ship_to": {
      "name": "Amanda Miller",
      "phone": "555-555-5555",
      "address_line1": "525 S Winchester Blvd",
      "city_locality": "San Jose",
      "state_province": "CA",
      "postal_code": "95128",
      "country_code": "US",
      "address_residential_indicator": "yes"
    },
    "ship_from": {
      "company_name": "Example Corp.",
      "name": "John Doe",
      "phone": "111-111-1111",
      "address_line1": "4009 Marathon Blvd",
      "address_line2": "Suite 300",
      "city_locality": "Austin",
      "state_province": "TX",
      "postal_code": "78756",
      "country_code": "US",
      "address_residential_indicator": "no"
    },
    "packages": [
      {
        "weight": {
          "value": 1.0,
          "unit": "ounce"
        }
      }
    ]
  }
}

import requests url = “https://api.shipengine.com/v1/rates” payload = “{\n \”rate_options\”: {\n \”carrier_ids\”: [\n \”se-123890\”\n ]\n },\n \”shipment\”: {\n \”validate_address\”: \”no_validation\”,\n \”ship_to\”: {\n \”name\”: \”Amanda Miller\”,\n \”phone\”: \”555-555-5555\”,\n \”address_line1\”: \”525 S Winchester Blvd\”,\n \”city_locality\”: \”San Jose\”,\n \”state_province\”: \”CA\”,\n \”postal_code\”: \”95128\”,\n \”country_code\”: \”US\”,\n \”address_residential_indicator\”: \”yes\”\n },\n \”ship_from\”: {\n \”company_name\”: \”Example Corp.\”,\n \”name\”: \”John Doe\”,\n \”phone\”: \”111-111-1111\”,\n \”address_line1\”: \”4009 Marathon Blvd\”,\n \”address_line2\”: \”Suite 300\”,\n \”city_locality\”: \”Austin\”,\n \”state_province\”: \”TX\”,\n \”postal_code\”: \”78756\”,\n \”country_code\”: \”US\”,\n \”address_residential_indicator\”: \”no\”\n },\n \”packages\”: [\n {\n \”weight\”: {\n \”value\”: 1.0,\n \”unit\”: \”ounce\”\n }\n }\n ]\n }\n}” headers = { ‘Host’: ‘api.shipengine.com’, ‘API-Key’: ‘__YOUR_API_KEY_HERE__’, ‘Content-Type’: ‘application/json’ } response = requests.request(“POST”, url, headers=headers, data = payload) print(response.text.encode(‘utf8’))

require “uri” require “net/http” url = URI(“https://api.shipengine.com/v1/rates”) https = Net::HTTP.new(url.host, url.port); https.use_ssl = true request = Net::HTTP::Post.new(url) request[“Host”] = “api.shipengine.com” request[“API-Key”] = “__YOUR_API_KEY_HERE__” request[“Content-Type”] = “application/json” request.body = “{\n \”rate_options\”: {\n \”carrier_ids\”: [\n \”se-123890\”\n ]\n },\n \”shipment\”: {\n \”validate_address\”: \”no_validation\”,\n \”ship_to\”: {\n \”name\”: \”Amanda Miller\”,\n \”phone\”: \”555-555-5555\”,\n \”address_line1\”: \”525 S Winchester Blvd\”,\n \”city_locality\”: \”San Jose\”,\n \”state_province\”: \”CA\”,\n \”postal_code\”: \”95128\”,\n \”country_code\”: \”US\”,\n \”address_residential_indicator\”: \”yes\”\n },\n \”ship_from\”: {\n \”company_name\”: \”Example Corp.\”,\n \”name\”: \”John Doe\”,\n \”phone\”: \”111-111-1111\”,\n \”address_line1\”: \”4009 Marathon Blvd\”,\n \”address_line2\”: \”Suite 300\”,\n \”city_locality\”: \”Austin\”,\n \”state_province\”: \”TX\”,\n \”postal_code\”: \”78756\”,\n \”country_code\”: \”US\”,\n \”address_residential_indicator\”: \”no\”\n },\n \”packages\”: [\n {\n \”weight\”: {\n \”value\”: 1.0,\n \”unit\”: \”ounce\”\n }\n }\n ]\n }\n}” response = https.request(request) puts response.read_body

var client = new RestClient(“https://api.shipengine.com/v1/rates”); client.Timeout = -1; var request = new RestRequest(Method.POST); request.AddHeader(“Host”, “api.shipengine.com”); request.AddHeader(“API-Key”, “__YOUR_API_KEY_HERE__”); request.AddHeader(“Content-Type”, “application/json”); request.AddParameter(“application/json”, “{\n \”rate_options\”: {\n \”carrier_ids\”: [\n \”se-123890\”\n ]\n },\n \”shipment\”: {\n \”validate_address\”: \”no_validation\”,\n \”ship_to\”: {\n \”name\”: \”Amanda Miller\”,\n \”phone\”: \”555-555-5555\”,\n \”address_line1\”: \”525 S Winchester Blvd\”,\n \”city_locality\”: \”San Jose\”,\n \”state_province\”: \”CA\”,\n \”postal_code\”: \”95128\”,\n \”country_code\”: \”US\”,\n \”address_residential_indicator\”: \”yes\”\n },\n \”ship_from\”: {\n \”company_name\”: \”Example Corp.\”,\n \”name\”: \”John Doe\”,\n \”phone\”: \”111-111-1111\”,\n \”address_line1\”: \”4009 Marathon Blvd\”,\n \”address_line2\”: \”Suite 300\”,\n \”city_locality\”: \”Austin\”,\n \”state_province\”: \”TX\”,\n \”postal_code\”: \”78756\”,\n \”country_code\”: \”US\”,\n \”address_residential_indicator\”: \”no\”\n },\n \”packages\”: [\n {\n \”weight\”: {\n \”value\”: 1.0,\n \”unit\”: \”ounce\”\n }\n }\n ]\n }\n}”, ParameterType.RequestBody); IRestResponse response = client.Execute(request); Console.WriteLine(response.Content);

curl -iX GET 'https://api.shipengine.com/v1/tracking?carrier_code=stamps_com&tracking_number=9405511899223197428490' \
-H 'API-Key: __YOUR_API_KEY_HERE__' \
GET /v1/tracking?carrier_code=stamps_com&tracking_number=9405511899223197428490 HTTP/1.1
Host: api.shipengine.com
API-Key: __YOUR_API_KEY_HERE__

 

import requests url = “https://api.shipengine.com/v1/tracking?carrier_code=stamps_com&tracking_number=9405511899223197428490” payload = {} headers = { ‘Host’: ‘api.shipengine.com’, ‘API-Key’: ‘__YOUR_API_KEY_HERE__’ } response = requests.request(“GET”, url, headers=headers, data = payload) print(response.text.encode(‘utf8’))

require “uri” require “net/http” url = URI(“https://api.shipengine.com/v1/tracking?carrier_code=stamps_com&tracking_number=9405511899223197428490”) https = Net::HTTP.new(url.host, url.port); https.use_ssl = true request = Net::HTTP::Get.new(url) request[“Host”] = “api.shipengine.com” request[“API-Key”] = “__YOUR_API_KEY_HERE__” response = https.request(request) puts response.read_body

var client = new RestClient(“https://api.shipengine.com/v1/tracking?carrier_code=stamps_com&tracking_number=9405511899223197428490”); client.Timeout = -1; var request = new RestRequest(Method.GET); request.AddHeader(“Host”, “api.shipengine.com”); request.AddHeader(“API-Key”, “__YOUR_API_KEY_HERE__”); IRestResponse response = client.Execute(request); Console.WriteLine(response.Content);

Use Our Flexible APIs to Solve Shipping

ShipEngine APIs help businesses calculate rates across the UK’s leading carriers, validate addresses, process and track shipments, and manage returns. Tap into our thorough documentation for integration and ongoing support.

Our Products View Documentation

Remarkably Simple Integrations

Quickly integrate with hundreds of carriers and order sources around the world.

See Carrier Integrations See Order Source Integrations

Why ShipEngine is Your Best Choice

Wouldn’t it be nice to focus your time, energy, and resources on what matters most? ShipEngine solves logistics problems so that you can do just that.

One integration, many solutions

We maintain an extensive network of carriers and order sources so that you don’t have to.

20+ years of shipping expertise

ShipEngine is part of a powerful network of ecommerce brands that includes decades of shipping experience.

You don’t have to be a shipping expert

Sync your integrations quickly and easily, and put your shipping operations on cruise control — for good.

Solve at scale

You’ll never outgrow ShipEngine. Our Shipping Platform APIs power millions of shipments each day, and they can help you scale to meet growing demand.

Simple, straightforward pricing

You get easy-to-understand pricing with no hidden fees and no surprises.

We’re always here when you need us

Contact our team to get started quickly and to stay on track after integration.