Skip to content

ShipEngine API (1.1.202604070904)

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.

Download OpenAPI description
Languages
Servers
Mock server
https://docs.shipstation.com/_mock/apis/shipengine/openapi/
https://api.shipengine.com/

Account

For additional information about the ShipEngine account.

Operations

Addresses

No matter your shipping volume, failed deliveries and address change surcharges cut into your bottom line and damage perception with customers. Our address validation services ensure your packages make it to the right place the first time. Learn how to leverage our address validation services here.

ShipEngine supports address validation for virtually every country on Earth, including the United States, Canada, Great Britain, Australia, Germany, France, Norway, Spain, Sweden, Israel, Italy, and over 160 others.

Operations

Batches

batches

Operations

Carrier Accounts

A carrier account is a connection to a shipping carrier that allows you to create labels, track packages, and more. You can connect your own carrier accounts to ShipEngine, or use one of our built-in carrier accounts. Learn more about carrier accounts here.

Operations

Carriers

carriers

Operations

Downloads

downloads

Operations

Insurance

insurance

Operations

Labels

Print shipping labels for any of the top global carriers in minutes—instead of weeks. Simply connect your existing carrier accounts in the API dashboard, and then begin creating labels.

Operations

LTL Shipping

Less-than-truckload (LTL) shipping API endpoints for managing freight shipments. Connect LTL carriers, request quotes, schedule pickups, and track freight shipments.

Operations

Manifests

manifests

Operations

Package Pickups

Scheduled package pickups

Operations

Package Types

custom package types

Operations

Rates

Make sure you ship as cost-effectively as possible by quickly comparing rates using the ShipEngine Rates API. As long as you have the carrier connected to your account, you'll be able to see and compare different rates and services.

Operations

Service Points

Service points allow customers to pick up their packages at convenient locations.

Operations

Shipments

Shipments are at the center of the ShipEngine API. A shipment is the first step in creating a shipping label, or creating a manifest. It's also essential for getting shipping rates.

Operations

List shipments

Request

Get list of Shipments

Security
api_key
Query
shipment_statusstring(shipment_status)

The possible shipment status values

Enum"pending""processing""label_purchased""cancelled"
batch_idstring(se_id)[ 1 .. 25 ] characters^se(-[a-z0-9]+)+$

Batch ID

Example: batch_id=se-28529731
tagstringnon-empty

Search for shipments based on the custom tag added to the shipment object

Example: tag=Letters_to_santa
created_at_startstring(date-time)

Used to create a filter for when a resource was created (ex. A shipment that was created after a certain time)

Example: created_at_start=2019-03-12T19:24:13.657Z
created_at_endstring(date-time)

Used to create a filter for when a resource was created, (ex. A shipment that was created before a certain time)

Example: created_at_end=2019-03-12T19:24:13.657Z
modified_at_startstring(date-time)

Used to create a filter for when a resource was modified (ex. A shipment that was modified after a certain time)

Example: modified_at_start=2019-03-12T19:24:13.657Z
modified_at_endstring(date-time)

Used to create a filter for when a resource was modified (ex. A shipment that was modified before a certain time)

Example: modified_at_end=2019-03-12T19:24:13.657Z
pageinteger(int32)>= 1

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.

Default 1
Example: page=2
page_sizeinteger(int32)>= 1

The number of results to return per response.

Default 25
Example: page_size=50
sales_order_idstring

Sales Order ID

sort_dirstring(sort_dir)

Controls the sort order of the query.

Default "desc"
Enum"asc""desc"
sort_bystring(shipments_sort_by)

The possible shipments sort by values

Enum"modified_at""created_at"
Example: sort_by=modified_at
curl -i -X GET \
  'https://docs.shipstation.com/_mock/apis/shipengine/openapi/v1/shipments?shipment_status=pending&batch_id=se-28529731&tag=Letters_to_santa&created_at_start=2019-03-12T19%3A24%3A13.657Z&created_at_end=2019-03-12T19%3A24%3A13.657Z&modified_at_start=2019-03-12T19%3A24%3A13.657Z&modified_at_end=2019-03-12T19%3A24%3A13.657Z&page=2&page_size=50&sales_order_id=string&sort_dir=desc&sort_by=modified_at' \
  -H 'API-Key: YOUR_API_KEY_HERE'

Responses

The request was a success.

Bodyapplication/json
shipmentsArray of objects(partial_shipment)read-onlyrequired

The list of shipments returned by the api call

shipments[].​shipment_idstring(se_id)[ 1 .. 25 ] characters^se(-[a-z0-9]+)+$read-onlyrequired

A string that uniquely identifies the shipment

Example: "se-28529731"
shipments[].​carrier_idstring(se_id)[ 1 .. 25 ] characters^se(-[a-z0-9]+)+$required

The carrier account that is billed for the shipping charges

Example: "se-28529731"
shipments[].​service_codestring(service_code)^[a-z0-9]+(_[a-z0-9-]+)* ?$required

A carrier service, such as fedex_ground, usps_first_class_mail, flat_rate_envelope, etc.

Example: "usps_first_class_mail"
shipments[].​shipping_rule_idstring(se_id)[ 1 .. 25 ] characters^se(-[a-z0-9]+)+$

ID of the shipping rule, which you want to use to automate carrier/carrier service selection for the shipment

Example: "se-28529731"
shipments[].​external_order_idstring or null

ID that the Order Source assignedd

shipments[].​itemsArray of objects(shipment_item)

Describe the packages included in this shipment as related to potential metadata that was imported from external order sources

Default []
shipments[].​tax_identifiersArray of objects or null(tax_identifier)
shipments[].​external_shipment_idstring or null<= 50 characters

A unique user-defined key to identify a shipment. This can be used to retrieve the shipment.

Warning: The external_shipment_id is limited to 50 characters. Any additional characters will be truncated.

shipments[].​shipment_numberstring or null<= 50 characters

A non-unique user-defined number used to identify a shipment. If undefined, this will match the external_shipment_id of the shipment.

Warning: The shipment_number is limited to 50 characters. Any additional characters will be truncated.

shipments[].​ship_datestring(date-time)(date)^\d{4}-\d{2}-\d{2}(T\d{2}:\d{2}:\d{2}(\.\d+)?...required

An ISO 8601 string that represents a date, but not a specific time. The value may contain a time component, but it will be set to 00:00:00 UTC by ShipEngine.

Example: "2018-09-23T00:00:00.000Z"
shipments[].​created_atstring(date-time)(date_time)^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d+)?(...read-onlyrequired

An ISO 8601 string that represents a date and time.

Example: "2018-09-23T15:00:00.000Z"
shipments[].​modified_atstring(date-time)(date_time)^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d+)?(...read-onlyrequired

An ISO 8601 string that represents a date and time.

Example: "2018-09-23T15:00:00.000Z"
shipments[].​shipment_statusstring(shipment_status)read-onlyrequired

The current status of the shipment

Default "pending"
Enum"pending""processing""label_purchased""cancelled"
shipments[].​ship_toobject(partial_shipping_address_to)required

Any residential or business mailing address, anywhere in the world.

Note: Either name or company_name must be set. Both may be specified, if relevant.

shipments[].​ship_to.​namestringnon-emptyrequired

The name of a contact person at this address. This field may be set instead of - or in addition to - the company_name field.

Example: "John Doe"
shipments[].​ship_to.​phonestringnon-empty

The phone number of a contact person at this address. The format of this phone number varies depending on the country.

Example: "+1 204-253-9411 ext. 123"
shipments[].​ship_to.​emailstring or null

Email for the address owner.

Example: "example@example.com"
shipments[].​ship_to.​company_namestring or nullnon-empty

If this is a business address, then the company name should be specified here.

Example: "The Home Depot"
shipments[].​ship_to.​address_line1stringnon-emptyrequired

The first line of the street address. For some addresses, this may be the only line. Other addresses may require 2 or 3 lines.

Example: "1999 Bishop Grandin Blvd."
shipments[].​ship_to.​address_line2string or nullnon-empty

The second line of the street address. For some addresses, this line may not be needed.

Example: "Unit 408"
shipments[].​ship_to.​address_line3string or nullnon-empty

The third line of the street address. For some addresses, this line may not be needed.

Example: "Building #7"
shipments[].​ship_to.​city_localitystringnon-emptyrequired

The name of the city or locality

Example: "Winnipeg"
shipments[].​ship_to.​state_provincestringnon-emptyrequired

The state or province. For some countries (including the U.S.) only abbreviations are allowed. Other countries allow the full name or abbreviation.

Example: "Manitoba"
shipments[].​ship_to.​postal_codestring(postal_code)non-emptyrequired

postal code

Example: "78756-3717"
shipments[].​ship_to.​country_codestring(country_code)= 2 characters
Example: "CA"
shipments[].​ship_to.​address_residential_indicatorstring(address_residential_indicator)

Indicates whether this is a residential address.

Default "unknown"
Enum"unknown""yes""no"
Example: "no"
shipments[].​ship_to.​instructionsstring or nullnon-empty

Additional text about how to handle the shipment at this address.

shipments[].​ship_to.​geolocationArray of objects
shipments[].​ship_fromobject(partial_shipping_address)required

Any residential or business mailing address, anywhere in the world.

Note: Either name or company_name must be set. Both may be specified, if relevant.

shipments[].​ship_from.​namestringnon-emptyrequired

The name of a contact person at this address. This field may be set instead of - or in addition to - the company_name field.

Example: "John Doe"
shipments[].​ship_from.​phonestringnon-empty

The phone number of a contact person at this address. The format of this phone number varies depending on the country.

Example: "+1 204-253-9411 ext. 123"
shipments[].​ship_from.​emailstring or null

Email for the address owner.

Example: "example@example.com"
shipments[].​ship_from.​company_namestring or nullnon-empty

If this is a business address, then the company name should be specified here.

Example: "The Home Depot"
shipments[].​ship_from.​address_line1stringnon-emptyrequired

The first line of the street address. For some addresses, this may be the only line. Other addresses may require 2 or 3 lines.

Example: "1999 Bishop Grandin Blvd."
shipments[].​ship_from.​address_line2string or nullnon-empty

The second line of the street address. For some addresses, this line may not be needed.

Example: "Unit 408"
shipments[].​ship_from.​address_line3string or nullnon-empty

The third line of the street address. For some addresses, this line may not be needed.

Example: "Building #7"
shipments[].​ship_from.​city_localitystringnon-emptyrequired

The name of the city or locality

Example: "Winnipeg"
shipments[].​ship_from.​state_provincestringnon-emptyrequired

The state or province. For some countries (including the U.S.) only abbreviations are allowed. Other countries allow the full name or abbreviation.

Example: "Manitoba"
shipments[].​ship_from.​postal_codestring(postal_code)non-emptyrequired

postal code

Example: "78756-3717"
shipments[].​ship_from.​country_codestring(country_code)= 2 characters
Example: "CA"
shipments[].​ship_from.​address_residential_indicatorstring(address_residential_indicator)

Indicates whether this is a residential address.

Default "unknown"
Enum"unknown""yes""no"
Example: "no"
shipments[].​ship_from.​instructionsstring or nullnon-empty

Additional text about how to handle the shipment at this address.

shipments[].​warehouse_idstring or null(se_id)[ 1 .. 25 ] characters^se(-[a-z0-9]+)+$required

The warehouse that the shipment is being shipped from. Either warehouse_id or ship_from must be specified.

Default null
Example: "se-28529731"
shipments[].​return_toobject(partial_shipping_address)required

Any residential or business mailing address, anywhere in the world.

Note: Either name or company_name must be set. Both may be specified, if relevant.

shipments[].​return_to.​namestringnon-emptyrequired

The name of a contact person at this address. This field may be set instead of - or in addition to - the company_name field.

Example: "John Doe"
shipments[].​return_to.​phonestringnon-empty

The phone number of a contact person at this address. The format of this phone number varies depending on the country.

Example: "+1 204-253-9411 ext. 123"
shipments[].​return_to.​emailstring or null

Email for the address owner.

Example: "example@example.com"
shipments[].​return_to.​company_namestring or nullnon-empty

If this is a business address, then the company name should be specified here.

Example: "The Home Depot"
shipments[].​return_to.​address_line1stringnon-emptyrequired

The first line of the street address. For some addresses, this may be the only line. Other addresses may require 2 or 3 lines.

Example: "1999 Bishop Grandin Blvd."
shipments[].​return_to.​address_line2string or nullnon-empty

The second line of the street address. For some addresses, this line may not be needed.

Example: "Unit 408"
shipments[].​return_to.​address_line3string or nullnon-empty

The third line of the street address. For some addresses, this line may not be needed.

Example: "Building #7"
shipments[].​return_to.​city_localitystringnon-emptyrequired

The name of the city or locality

Example: "Winnipeg"
shipments[].​return_to.​state_provincestringnon-emptyrequired

The state or province. For some countries (including the U.S.) only abbreviations are allowed. Other countries allow the full name or abbreviation.

Example: "Manitoba"
shipments[].​return_to.​postal_codestring(postal_code)non-emptyrequired

postal code

Example: "78756-3717"
shipments[].​return_to.​country_codestring(country_code)= 2 characters
Example: "CA"
shipments[].​return_to.​address_residential_indicatorstring(address_residential_indicator)

Indicates whether this is a residential address.

Default "unknown"
Enum"unknown""yes""no"
Example: "no"
shipments[].​return_to.​instructionsstring or nullnon-empty

Additional text about how to handle the shipment at this address.

shipments[].​is_returnboolean or null

An optional indicator if the shipment is intended to be a return. Defaults to false if not provided.

Default false
shipments[].​confirmationstring(delivery_confirmation)required

The type of delivery confirmation that is required for this shipment.

Default "none"
Enum"none""delivery""signature""adult_signature""direct_signature""delivery_mailed""verbal_confirmation""delivery_code""age_verification_16_plus"
shipments[].​customsobject or null(international_shipment_options)required

Customs information. This is usually only needed for international shipments.

Default null
shipments[].​customs.​contentsstring(package_contents)required

The type of contents in this shipment. This may impact import duties or customs treatment.

Default "merchandise"
Enum"merchandise""documents""gift""returned_goods""sample""other"
shipments[].​customs.​contents_explanationstring

Explanation for contents (required if the contents is provided as other)

shipments[].​customs.​non_deliverystring(non_delivery)required

Indicates what to do if a package is unable to be delivered.

Default "return_to_sender"
Enum"return_to_sender""treat_as_abandoned"
shipments[].​customs.​terms_of_trade_codestring(Allowed incoterms)

Specifies the supported terms of trade code (incoterms)

Enum"exw""fca""cpt""cip""dpu""dap""ddp""fas""fob""cfr"
shipments[].​customs.​declarationstring

Declaration statement to be placed on the commercial invoice

shipments[].​customs.​invoice_additional_detailsobject(invoice_additional_details)

The additional information to put on commercial invoice

shipments[].​customs.​importer_of_recordobject(importer_of_records)

importer of records address, anywhere in the world.

shipments[].​customs.​license_numberstring

The license number to be used in the customs.

shipments[].​customs.​certificate_numberstring

The certificate number to be used in the customs.

shipments[].​customs.​customs_itemsArray of objects(customs_item)>= 0 itemsDeprecated

Customs declarations for each item in the shipment. (Please provide this information under products inside packages)

Default []
shipments[].​advanced_optionsobject(advanced_shipment_options)required

Advanced shipment options. These are entirely optional.

shipments[].​advanced_options.​bill_to_accountstring or null

This field is used to bill shipping costs to a third party. This field must be used in conjunction with the bill_to_country_code, bill_to_party, and bill_to_postal_code fields.

Default null
shipments[].​advanced_options.​bill_to_country_codestring or null(country_code)= 2 characters
Default null
Example: "CA"
shipments[].​advanced_options.​bill_to_partystring or null(bill_to_party)

Indicates whether to bill shipping costs to the recipient or to a third-party. When billing to a third-party, the bill_to_account, bill_to_country_code, and bill_to_postal_code fields must also be set.

Default null
Enum"recipient""third_party"
shipments[].​advanced_options.​bill_to_postal_codestring or null

The postal code of the third-party that is responsible for shipping costs.

Default null
shipments[].​advanced_options.​contains_alcoholboolean

Indicates that the shipment contains alcohol.

Default false
shipments[].​advanced_options.​delivered_duty_paidboolean

Indicates that the shipper is paying the international delivery duties for this shipment. This option is supported by UPS, FedEx, and DHL Express.

Default false
shipments[].​advanced_options.​dry_iceboolean

Indicates if the shipment contain dry ice

Default false
shipments[].​advanced_options.​dry_ice_weightobject or null(weight)

The weight of the dry ice in the shipment

shipments[].​advanced_options.​non_machinableboolean

Indicates that the package cannot be processed automatically because it is too large or irregularly shaped. This is primarily for USPS shipments. See Section 1.2 of the USPS parcel standards for details.

Default false
shipments[].​advanced_options.​saturday_deliveryboolean

Enables Saturday delivery, if supported by the carrier.

Default false
shipments[].​advanced_options.​fedex_freightobject

Provide details for the Fedex freight service

shipments[].​advanced_options.​use_ups_ground_freight_pricingboolean or null

Whether to use UPS Ground Freight pricing. If enabled, then a freight_class must also be specified.

Default null
shipments[].​advanced_options.​freight_classstring or null

The National Motor Freight Traffic Association freight class, such as "77.5", "110", or "250".

Default null
Example: "77.5"
shipments[].​advanced_options.​custom_field1string or null<= 100 characters

An arbitrary field that can be used to store information about the shipment.

Default null
shipments[].​advanced_options.​custom_field2string or null<= 100 characters

An arbitrary field that can be used to store information about the shipment.

Default null
shipments[].​advanced_options.​custom_field3string or null<= 100 characters

An arbitrary field that can be used to store information about the shipment.

Default null
shipments[].​advanced_options.​origin_typestring or null(origin_type)

Indicates if the package will be picked up or dropped off by the carrier

Default null
Enum"pickup""drop_off"
shipments[].​advanced_options.​additional_handlingboolean or null

Indicate to the carrier that this shipment requires additional handling.

Default null
shipments[].​advanced_options.​shipper_releaseboolean or null
Default null
shipments[].​advanced_options.​collect_on_deliveryobject(collect_on_delivery)

Defer payment until package is delivered, instead of when it is ordered.

shipments[].​advanced_options.​third_party_consigneeboolean

Third Party Consignee option is a value-added service that allows the shipper to supply goods without commercial invoices being attached

Default false
shipments[].​advanced_options.​dangerous_goodsboolean

Indicates if the Dangerous goods are present in the shipment

Default false
shipments[].​advanced_options.​dangerous_goods_contactobject

Contact information for Dangerous goods

shipments[].​advanced_options.​windsor_framework_detailsobject

The Windsor framework is a new regulation in the UK that simplifies customs procedures for goods moved from the UK mainland to Northern Ireland.

shipments[].​advanced_options.​license_numberstring or null

license_number - This field was part of a historical implementation for passing customs-related data. For new integrations, please use the corresponding parameters within the shipment.customs object.

Default null
Example: "514785"
shipments[].​advanced_options.​invoice_numberstring or null

invoice_number - This field was part of a historical implementation for passing customs-related data. For new integrations, please use the corresponding parameters within the shipment.customs object.

Default null
Example: "IOC56888"
shipments[].​advanced_options.​certificate_numberstring or null

certificate_number - This field was part of a historical implementation for passing customs-related data. For new integrations, please use the corresponding parameters within the shipment.customs object.

Default null
Example: "784515"
shipments[].​advanced_options.​fragileboolean

Indicates that the contents of the package are fragile and should be handled with care.

Default false
Example: true
shipments[].​advanced_options.​delivery-as-addressedboolean

Instructs the carrier to deliver the package only to the exact address provided.

Default false
shipments[].​advanced_options.​return-after-first-attemptboolean

Ensures the shipment is immediately flagged for return to the sender if the initial delivery attempt fails.

Default false
shipments[].​advanced_options.​regulated_content_typestring or null(regulated_content_type)

Indicates the category of goods in the shipment that is subject to special regulatory or compliance requirements.

Default null
Enum"day_old_poultry""other_live_animal"
shipments[].​advanced_options.​property name*anyadditional property
shipments[].​insurance_providerstring(insurance_provider)required

The insurance provider to use for any insured packages in the shipment.

Default "none"
Enum"none""shipsurance""carrier""third_party"
shipments[].​tagsArray of objects(tag)>= 0 itemsread-onlyrequired

Arbitrary tags associated with this shipment. Tags can be used to categorize shipments, and shipments can be queried by their tags.

Default []
shipments[].​tags[].​tag_idinteger(int32)>= 1read-only

An integer uniquely identifying a tag.

Example: 8712
shipments[].​tags[].​namestringnon-emptyrequired

The tag name.

Example: "Fragile"
shipments[].​tags[].​colorstringnon-empty

A hex-coded string identifying the color of the tag.

Example: "#FF0000"
shipments[].​order_source_codestring(order_source_name)

The order sources that are supported by ShipEngine

Enum"amazon_ca""amazon_us""brightpearl""channel_advisor""cratejoy""ebay""etsy""jane""groupon_goods""magento"
shipments[].​packagesArray of objects(package)non-emptyrequired

The packages in the shipment.

Note: Some carriers only allow one package per shipment. If you attempt to create a multi-package shipment for a carrier that doesn't allow it, an error will be returned.

shipments[].​packages[].​shipment_package_idstring(se_id)[ 1 .. 25 ] characters^se(-[a-z0-9]+)+$read-only

A string that uniquely identifies this shipment package

Example: "se-28529731"
shipments[].​packages[].​package_idstring(se_id)[ 1 .. 25 ] characters^se(-[a-z0-9]+)+$

A string that uniquely identifies this package type

Example: "se-28529731"
shipments[].​packages[].​package_codestring(package_code)[ 1 .. 50 ] characters^[a-z0-9]+(_[a-z0-9]+)*$

A package type, such as thick_envelope, small_flat_rate_box, large_package, etc. Use the code package for custom or unknown package types.

Example: "small_flat_rate_box"
shipments[].​packages[].​package_namestring

The name of the of the package type

shipments[].​packages[].​weightobject(weight)required

The package weight

shipments[].​packages[].​weight.​valuenumber>= 0required

The weight, in the specified unit

shipments[].​packages[].​weight.​unitstring(weight_unit)required

The possible weight unit values

Enum"pound""ounce""gram""kilogram"
shipments[].​packages[].​dimensionsobject(dimensions)

The package dimensions

shipments[].​packages[].​insured_valueobject(monetary_value)

The insured value of the package. Requires the insurance_provider field of the shipment to be set.

Default {"currency":"USD","amount":0}
shipments[].​packages[].​label_messagesobject(label_messages)

Custom messages to print on the shipping label for the package. These are typically used to print invoice numbers, product numbers, or other internal reference numbers. Not all carriers support label messages. The number of lines and the maximum length of each line also varies by carrier.

CarrierMax linesMax line length
USPS (Stamps.com)360
FedEx335 for the first line. 30 for additional lines.
UPS235
OnTrac225
shipments[].​packages[].​external_package_idstringnon-empty

An external package id.

shipments[].​packages[].​tracking_numberstring(tracking_number)non-emptyread-only

The tracking number for the package. The format depends on the carrier.

Example: "1Z932R800392060079"
shipments[].​packages[].​content_descriptionstring or null[ 1 .. 35 ] characters

A short description of the package content. Required for shipments moving to, from, and through Mexico.

Example: "Hand knitted wool socks"
shipments[].​packages[].​productsArray of objects(products)>= 0 items

Details about products inside packages (Information provided would be used on custom documentation)

Default []
shipments[].​total_weightobject(weight)read-onlyrequired

The combined weight of all packages in the shipment

shipments[].​total_weight.​valuenumber>= 0required

The weight, in the specified unit

shipments[].​total_weight.​unitstring(weight_unit)required

The possible weight unit values

Enum"pound""ounce""gram""kilogram"
shipments[].​comparison_rate_typestring or null

Calculate a rate for this shipment with the requested carrier using a ratecard that differs from the default. Only supported for UPS and USPS.

Example: "retail"
shipments[].​zoneinteger or null(int32)>= 0read-only

Certain carriers base their rates off of custom zones that vary depending upon the ship_to and ship_from location

Example: 6
totalinteger(int64)>= 0read-onlyrequired

Total number of shipments returned by the api call

Example: 1990
pageinteger(int32)>= 1read-onlyrequired
Example: 1
pagesinteger(int32)>= 1read-onlyrequired
linksobject(pagination_link)read-onlyrequired

Helpful links to other pages of results

links.​firstobject(optional_link)required

The link to the first page of results. This object will always have an href field. If there are no results, then the first page will contain an empty array of items.

links.​first.​hrefstring(url)(url)non-emptyrequired

The URL of the linked resource, if any

Example: "http://api.shipengine.com/v1/labels/se-28529731"
links.​first.​typestringnon-empty

The type of resource, or the type of relationship to the parent resource

links.​lastobject(optional_link)required

The link to the final page of results. This object will always have an href field. If there are no results, then the final page will contain an empty array of items.

links.​last.​hrefstring(url)(url)non-emptyrequired

The URL of the linked resource, if any

Example: "http://api.shipengine.com/v1/labels/se-28529731"
links.​last.​typestringnon-empty

The type of resource, or the type of relationship to the parent resource

links.​prevobject(optional_link)required

The link to the previous page of results. The href field will only be set when the page is 2 or greater.

links.​prev.​hrefstring(url)(url)non-empty

The URL of the linked resource, if any

Example: "http://api.shipengine.com/v1/labels/se-28529731"
links.​prev.​typestringnon-empty

The type of resource, or the type of relationship to the parent resource

links.​nextobject(optional_link)required

The link to the next page of results. The href field will only be set when the page is less than pages.

links.​next.​hrefstring(url)(url)non-empty

The URL of the linked resource, if any

Example: "http://api.shipengine.com/v1/labels/se-28529731"
links.​next.​typestringnon-empty

The type of resource, or the type of relationship to the parent resource

Response
application/json
{ "shipments": [ {} ], "total": 1990, "page": 1, "pages": 1, "links": { "first": {}, "last": {}, "prev": {}, "next": {} } }

Create shipments

Request

Create one or multiple shipments.

Security
api_key
Bodyapplication/jsonrequired
shipmentsArray of objects(partial_shipment)non-emptyrequired

An array of shipments to be created.

shipments[].​validate_addressstring(validate_address)

The possible validate address values

Default "no_validation"
Enum"no_validation""validate_only""validate_and_clean"
shipments[].​carrier_idstring(se_id)[ 1 .. 25 ] characters^se(-[a-z0-9]+)+$required

The carrier account that is billed for the shipping charges

Example: "se-28529731"
shipments[].​service_codestring(service_code)^[a-z0-9]+(_[a-z0-9-]+)* ?$required

A carrier service, such as fedex_ground, usps_first_class_mail, flat_rate_envelope, etc.

Example: "usps_first_class_mail"
shipments[].​shipping_rule_idstring(se_id)[ 1 .. 25 ] characters^se(-[a-z0-9]+)+$

ID of the shipping rule, which you want to use to automate carrier/carrier service selection for the shipment

Example: "se-28529731"
shipments[].​external_order_idstring or null

ID that the Order Source assignedd

shipments[].​itemsArray of objects(shipment_item)

Describe the packages included in this shipment as related to potential metadata that was imported from external order sources

Default []
shipments[].​tax_identifiersArray of objects or null(tax_identifier)
shipments[].​external_shipment_idstring or null<= 50 characters

A unique user-defined key to identify a shipment. This can be used to retrieve the shipment.

Warning: The external_shipment_id is limited to 50 characters. Any additional characters will be truncated.

shipments[].​shipment_numberstring or null<= 50 characters

A non-unique user-defined number used to identify a shipment. If undefined, this will match the external_shipment_id of the shipment.

Warning: The shipment_number is limited to 50 characters. Any additional characters will be truncated.

shipments[].​ship_datestring(date-time)(date)^\d{4}-\d{2}-\d{2}(T\d{2}:\d{2}:\d{2}(\.\d+)?...

An ISO 8601 string that represents a date, but not a specific time. The value may contain a time component, but it will be set to 00:00:00 UTC by ShipEngine.

Example: "2018-09-23T00:00:00.000Z"
shipments[].​ship_toobject(partial_shipping_address_to)required

Any residential or business mailing address, anywhere in the world.

Note: Either name or company_name must be set. Both may be specified, if relevant.

shipments[].​ship_to.​namestringnon-emptyrequired

The name of a contact person at this address. This field may be set instead of - or in addition to - the company_name field.

Example: "John Doe"
shipments[].​ship_to.​phonestringnon-empty

The phone number of a contact person at this address. The format of this phone number varies depending on the country.

Example: "+1 204-253-9411 ext. 123"
shipments[].​ship_to.​emailstring or null

Email for the address owner.

Example: "example@example.com"
shipments[].​ship_to.​company_namestring or nullnon-empty

If this is a business address, then the company name should be specified here.

Example: "The Home Depot"
shipments[].​ship_to.​address_line1stringnon-emptyrequired

The first line of the street address. For some addresses, this may be the only line. Other addresses may require 2 or 3 lines.

Example: "1999 Bishop Grandin Blvd."
shipments[].​ship_to.​address_line2string or nullnon-empty

The second line of the street address. For some addresses, this line may not be needed.

Example: "Unit 408"
shipments[].​ship_to.​address_line3string or nullnon-empty

The third line of the street address. For some addresses, this line may not be needed.

Example: "Building #7"
shipments[].​ship_to.​city_localitystringnon-emptyrequired

The name of the city or locality

Example: "Winnipeg"
shipments[].​ship_to.​state_provincestringnon-emptyrequired

The state or province. For some countries (including the U.S.) only abbreviations are allowed. Other countries allow the full name or abbreviation.

Example: "Manitoba"
shipments[].​ship_to.​postal_codestring(postal_code)non-emptyrequired

postal code

Example: "78756-3717"
shipments[].​ship_to.​country_codestring(country_code)= 2 characters
Example: "CA"
shipments[].​ship_to.​address_residential_indicatorstring(address_residential_indicator)

Indicates whether this is a residential address.

Default "unknown"
Enum"unknown""yes""no"
Example: "no"
shipments[].​ship_to.​instructionsstring or nullnon-empty

Additional text about how to handle the shipment at this address.

shipments[].​ship_to.​geolocationArray of objects
shipments[].​ship_fromobject(partial_shipping_address)required

Any residential or business mailing address, anywhere in the world.

Note: Either name or company_name must be set. Both may be specified, if relevant.

shipments[].​ship_from.​namestringnon-emptyrequired

The name of a contact person at this address. This field may be set instead of - or in addition to - the company_name field.

Example: "John Doe"
shipments[].​ship_from.​phonestringnon-empty

The phone number of a contact person at this address. The format of this phone number varies depending on the country.

Example: "+1 204-253-9411 ext. 123"
shipments[].​ship_from.​emailstring or null

Email for the address owner.

Example: "example@example.com"
shipments[].​ship_from.​company_namestring or nullnon-empty

If this is a business address, then the company name should be specified here.

Example: "The Home Depot"
shipments[].​ship_from.​address_line1stringnon-emptyrequired

The first line of the street address. For some addresses, this may be the only line. Other addresses may require 2 or 3 lines.

Example: "1999 Bishop Grandin Blvd."
shipments[].​ship_from.​address_line2string or nullnon-empty

The second line of the street address. For some addresses, this line may not be needed.

Example: "Unit 408"
shipments[].​ship_from.​address_line3string or nullnon-empty

The third line of the street address. For some addresses, this line may not be needed.

Example: "Building #7"
shipments[].​ship_from.​city_localitystringnon-emptyrequired

The name of the city or locality

Example: "Winnipeg"
shipments[].​ship_from.​state_provincestringnon-emptyrequired

The state or province. For some countries (including the U.S.) only abbreviations are allowed. Other countries allow the full name or abbreviation.

Example: "Manitoba"
shipments[].​ship_from.​postal_codestring(postal_code)non-emptyrequired

postal code

Example: "78756-3717"
shipments[].​ship_from.​country_codestring(country_code)= 2 characters
Example: "CA"
shipments[].​ship_from.​address_residential_indicatorstring(address_residential_indicator)

Indicates whether this is a residential address.

Default "unknown"
Enum"unknown""yes""no"
Example: "no"
shipments[].​ship_from.​instructionsstring or nullnon-empty

Additional text about how to handle the shipment at this address.

shipments[].​warehouse_idstring or null(se_id)[ 1 .. 25 ] characters^se(-[a-z0-9]+)+$

The warehouse that the shipment is being shipped from. Either warehouse_id or ship_from must be specified.

Default null
Example: "se-28529731"
shipments[].​return_toobject(partial_shipping_address)

Any residential or business mailing address, anywhere in the world.

Note: Either name or company_name must be set. Both may be specified, if relevant.

shipments[].​is_returnboolean or null

An optional indicator if the shipment is intended to be a return. Defaults to false if not provided.

Default false
shipments[].​confirmationstring(delivery_confirmation)

The type of delivery confirmation that is required for this shipment.

Default "none"
Enum"none""delivery""signature""adult_signature""direct_signature""delivery_mailed""verbal_confirmation""delivery_code""age_verification_16_plus"
shipments[].​customsobject or null(international_shipment_options)

Customs information. This is usually only needed for international shipments.

Default null
shipments[].​advanced_optionsobject(advanced_shipment_options)

Advanced shipment options. These are entirely optional.

shipments[].​insurance_providerstring(insurance_provider)

The insurance provider to use for any insured packages in the shipment.

Default "none"
Enum"none""shipsurance""carrier""third_party"
shipments[].​order_source_codestring(order_source_name)

The order sources that are supported by ShipEngine

Enum"amazon_ca""amazon_us""brightpearl""channel_advisor""cratejoy""ebay""etsy""jane""groupon_goods""magento"
shipments[].​packagesArray of objects(package)non-empty

The packages in the shipment.

Note: Some carriers only allow one package per shipment. If you attempt to create a multi-package shipment for a carrier that doesn't allow it, an error will be returned.

shipments[].​comparison_rate_typestring or null

Calculate a rate for this shipment with the requested carrier using a ratecard that differs from the default. Only supported for UPS and USPS.

Example: "retail"
curl -i -X POST \
  https://docs.shipstation.com/_mock/apis/shipengine/openapi/v1/shipments \
  -H 'API-Key: YOUR_API_KEY_HERE' \
  -H 'Content-Type: application/json' \
  -d '{
    "shipments": [
      {
        "validate_address": "no_validation",
        "carrier_id": "se-28529731",
        "service_code": "usps_first_class_mail",
        "shipping_rule_id": "se-28529731",
        "external_order_id": "string",
        "items": [],
        "tax_identifiers": [
          {
            "taxable_entity_type": "shipper",
            "identifier_type": "vat",
            "issuing_authority": "string",
            "value": "string"
          }
        ],
        "external_shipment_id": "string",
        "shipment_number": "string",
        "ship_date": "2018-09-23T00:00:00.000Z",
        "ship_to": {
          "name": "John Doe",
          "phone": "+1 204-253-9411 ext. 123",
          "email": "example@example.com",
          "company_name": "The Home Depot",
          "address_line1": "1999 Bishop Grandin Blvd.",
          "address_line2": "Unit 408",
          "address_line3": "Building #7",
          "city_locality": "Winnipeg",
          "state_province": "Manitoba",
          "postal_code": "78756-3717",
          "country_code": "CA",
          "address_residential_indicator": "no",
          "instructions": "string",
          "geolocation": [
            {
              "type": "what3words",
              "value": "cats.with.thumbs"
            }
          ]
        },
        "ship_from": {
          "name": "John Doe",
          "phone": "+1 204-253-9411 ext. 123",
          "email": "example@example.com",
          "company_name": "The Home Depot",
          "address_line1": "1999 Bishop Grandin Blvd.",
          "address_line2": "Unit 408",
          "address_line3": "Building #7",
          "city_locality": "Winnipeg",
          "state_province": "Manitoba",
          "postal_code": "78756-3717",
          "country_code": "CA",
          "address_residential_indicator": "no",
          "instructions": "string"
        },
        "warehouse_id": null,
        "return_to": {
          "name": "John Doe",
          "phone": "+1 204-253-9411 ext. 123",
          "email": "example@example.com",
          "company_name": "The Home Depot",
          "address_line1": "1999 Bishop Grandin Blvd.",
          "address_line2": "Unit 408",
          "address_line3": "Building #7",
          "city_locality": "Winnipeg",
          "state_province": "Manitoba",
          "postal_code": "78756-3717",
          "country_code": "CA",
          "address_residential_indicator": "no",
          "instructions": "string"
        },
        "is_return": false,
        "confirmation": "none",
        "customs": null,
        "advanced_options": {
          "bill_to_account": null,
          "bill_to_country_code": null,
          "bill_to_party": null,
          "bill_to_postal_code": null,
          "contains_alcohol": false,
          "delivered_duty_paid": false,
          "dry_ice": false,
          "dry_ice_weight": {
            "value": 0,
            "unit": "pound"
          },
          "non_machinable": false,
          "saturday_delivery": false,
          "fedex_freight": {
            "shipper_load_and_count": "string",
            "booking_confirmation": "string"
          },
          "use_ups_ground_freight_pricing": null,
          "freight_class": "77.5",
          "custom_field1": null,
          "custom_field2": null,
          "custom_field3": null,
          "origin_type": null,
          "additional_handling": null,
          "shipper_release": null,
          "collect_on_delivery": {
            "payment_type": "any",
            "payment_amount": {
              "currency": "string",
              "amount": 0
            }
          },
          "third_party_consignee": false,
          "dangerous_goods": false,
          "dangerous_goods_contact": {
            "name": "string",
            "phone": "string"
          },
          "windsor_framework_details": {
            "movement_indicator": "c2c",
            "not_at_risk": true
          },
          "license_number": "514785",
          "invoice_number": "IOC56888",
          "certificate_number": "784515",
          "fragile": true,
          "delivery-as-addressed": false,
          "return-after-first-attempt": false,
          "regulated_content_type": null
        },
        "insurance_provider": "none",
        "order_source_code": "amazon_ca",
        "packages": [
          {
            "package_id": "se-28529731",
            "package_code": "small_flat_rate_box",
            "package_name": "string",
            "weight": {
              "value": 0,
              "unit": "pound"
            },
            "dimensions": {
              "unit": "inch",
              "length": 0,
              "width": 0,
              "height": 0
            },
            "insured_value": {
              "currency": "USD",
              "amount": 0
            },
            "label_messages": {
              "reference1": null,
              "reference2": null,
              "reference3": null
            },
            "external_package_id": "string",
            "content_description": "Hand knitted wool socks",
            "products": []
          }
        ],
        "comparison_rate_type": "retail"
      }
    ]
  }'

Responses

The requested object creation was a success.

Bodyapplication/json
has_errorsbooleanrequired

Indicates if errors occured while creating the shipments

Default false
shipmentsArray of objects(create_shipment_response_body_fields)required

An array of shipments that were created.

shipments[].​shipment_idstring(se_id)[ 1 .. 25 ] characters^se(-[a-z0-9]+)+$read-only

A string that uniquely identifies the shipment

Example: "se-28529731"
shipments[].​carrier_idstring(se_id)[ 1 .. 25 ] characters^se(-[a-z0-9]+)+$

The carrier account that is billed for the shipping charges

Example: "se-28529731"
shipments[].​service_codestring(service_code)^[a-z0-9]+(_[a-z0-9-]+)* ?$

A carrier service, such as fedex_ground, usps_first_class_mail, flat_rate_envelope, etc.

Example: "usps_first_class_mail"
shipments[].​shipping_rule_idstring(se_id)[ 1 .. 25 ] characters^se(-[a-z0-9]+)+$

ID of the shipping rule, which you want to use to automate carrier/carrier service selection for the shipment

Example: "se-28529731"
shipments[].​external_order_idstring or null

ID that the Order Source assignedd

shipments[].​itemsArray of objects(shipment_item)

Describe the packages included in this shipment as related to potential metadata that was imported from external order sources

Default []
shipments[].​tax_identifiersArray of objects or null(tax_identifier)
shipments[].​external_shipment_idstring or null<= 50 characters

A unique user-defined key to identify a shipment. This can be used to retrieve the shipment.

Warning: The external_shipment_id is limited to 50 characters. Any additional characters will be truncated.

shipments[].​shipment_numberstring or null<= 50 characters

A non-unique user-defined number used to identify a shipment. If undefined, this will match the external_shipment_id of the shipment.

Warning: The shipment_number is limited to 50 characters. Any additional characters will be truncated.

shipments[].​ship_datestring(date-time)(date)^\d{4}-\d{2}-\d{2}(T\d{2}:\d{2}:\d{2}(\.\d+)?...

An ISO 8601 string that represents a date, but not a specific time. The value may contain a time component, but it will be set to 00:00:00 UTC by ShipEngine.

Example: "2018-09-23T00:00:00.000Z"
shipments[].​created_atstring(date-time)(date_time)^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d+)?(...read-only

An ISO 8601 string that represents a date and time.

Example: "2018-09-23T15:00:00.000Z"
shipments[].​modified_atstring(date-time)(date_time)^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d+)?(...read-only

An ISO 8601 string that represents a date and time.

Example: "2018-09-23T15:00:00.000Z"
shipments[].​shipment_statusstring(shipment_status)read-only

The current status of the shipment

Default "pending"
Enum"pending""processing""label_purchased""cancelled"
shipments[].​ship_toobject(partial_shipping_address_to)

Any residential or business mailing address, anywhere in the world.

Note: Either name or company_name must be set. Both may be specified, if relevant.

shipments[].​ship_fromobject(partial_shipping_address)

Any residential or business mailing address, anywhere in the world.

Note: Either name or company_name must be set. Both may be specified, if relevant.

shipments[].​warehouse_idstring or null(se_id)[ 1 .. 25 ] characters^se(-[a-z0-9]+)+$

The warehouse that the shipment is being shipped from. Either warehouse_id or ship_from must be specified.

Default null
Example: "se-28529731"
shipments[].​return_toobject(partial_shipping_address)

Any residential or business mailing address, anywhere in the world.

Note: Either name or company_name must be set. Both may be specified, if relevant.

shipments[].​is_returnboolean or null

An optional indicator if the shipment is intended to be a return. Defaults to false if not provided.

Default false
shipments[].​confirmationstring(delivery_confirmation)

The type of delivery confirmation that is required for this shipment.

Default "none"
Enum"none""delivery""signature""adult_signature""direct_signature""delivery_mailed""verbal_confirmation""delivery_code""age_verification_16_plus"
shipments[].​customsobject or null(international_shipment_options)

Customs information. This is usually only needed for international shipments.

Default null
shipments[].​advanced_optionsobject(advanced_shipment_options)

Advanced shipment options. These are entirely optional.

shipments[].​insurance_providerstring(insurance_provider)

The insurance provider to use for any insured packages in the shipment.

Default "none"
Enum"none""shipsurance""carrier""third_party"
shipments[].​tagsArray of objects(tag)>= 0 itemsread-only

Arbitrary tags associated with this shipment. Tags can be used to categorize shipments, and shipments can be queried by their tags.

Default []
shipments[].​order_source_codestring(order_source_name)

The order sources that are supported by ShipEngine

Enum"amazon_ca""amazon_us""brightpearl""channel_advisor""cratejoy""ebay""etsy""jane""groupon_goods""magento"
shipments[].​packagesArray of objects(package)non-empty

The packages in the shipment.

Note: Some carriers only allow one package per shipment. If you attempt to create a multi-package shipment for a carrier that doesn't allow it, an error will be returned.

shipments[].​total_weightobject(weight)read-only

The combined weight of all packages in the shipment

shipments[].​comparison_rate_typestring or null

Calculate a rate for this shipment with the requested carrier using a ratecard that differs from the default. Only supported for UPS and USPS.

Example: "retail"
shipments[].​zoneinteger or null(int32)>= 0read-only

Certain carriers base their rates off of custom zones that vary depending upon the ship_to and ship_from location

Example: 6
shipments[].​address_validationobject(address_validation_result)

The address validation

shipments[].​errorsArray of stringsDeprecatedread-only

An array of errors that occurred while creating shipment.

Example: ["Parameter value '100000000.00' is out of range."]
Response
application/json
{ "has_errors": false, "shipments": [ {} ] }

Get shipment by external ID

Request

Query Shipments created using your own custom ID convention using this endpint

Security
api_key
Path
external_shipment_idstringrequired
Example: 0bcb569d-1727-4ff9-ab49-b2fec0cee5ae
curl -i -X GET \
  https://docs.shipstation.com/_mock/apis/shipengine/openapi/v1/shipments/external_shipment_id/0bcb569d-1727-4ff9-ab49-b2fec0cee5ae \
  -H 'API-Key: YOUR_API_KEY_HERE'

Responses

The request was a success.

Bodyapplication/json
shipment_idstring(se_id)[ 1 .. 25 ] characters^se(-[a-z0-9]+)+$read-onlyrequired

A string that uniquely identifies the shipment

Example: "se-28529731"
carrier_idstring(se_id)[ 1 .. 25 ] characters^se(-[a-z0-9]+)+$required

The carrier account that is billed for the shipping charges

Example: "se-28529731"
service_codestring(service_code)^[a-z0-9]+(_[a-z0-9-]+)* ?$required

A carrier service, such as fedex_ground, usps_first_class_mail, flat_rate_envelope, etc.

Example: "usps_first_class_mail"
shipping_rule_idstring(se_id)[ 1 .. 25 ] characters^se(-[a-z0-9]+)+$

ID of the shipping rule, which you want to use to automate carrier/carrier service selection for the shipment

Example: "se-28529731"
external_order_idstring or null

ID that the Order Source assignedd

itemsArray of objects(shipment_item)

Describe the packages included in this shipment as related to potential metadata that was imported from external order sources

Default []
tax_identifiersArray of objects or null(tax_identifier)
external_shipment_idstring or null<= 50 characters

A unique user-defined key to identify a shipment. This can be used to retrieve the shipment.

Warning: The external_shipment_id is limited to 50 characters. Any additional characters will be truncated.

shipment_numberstring or null<= 50 characters

A non-unique user-defined number used to identify a shipment. If undefined, this will match the external_shipment_id of the shipment.

Warning: The shipment_number is limited to 50 characters. Any additional characters will be truncated.

ship_datestring(date-time)(date)^\d{4}-\d{2}-\d{2}(T\d{2}:\d{2}:\d{2}(\.\d+)?...required

An ISO 8601 string that represents a date, but not a specific time. The value may contain a time component, but it will be set to 00:00:00 UTC by ShipEngine.

Example: "2018-09-23T00:00:00.000Z"
created_atstring(date-time)(date_time)^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d+)?(...read-onlyrequired

An ISO 8601 string that represents a date and time.

Example: "2018-09-23T15:00:00.000Z"
modified_atstring(date-time)(date_time)^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d+)?(...read-onlyrequired

An ISO 8601 string that represents a date and time.

Example: "2018-09-23T15:00:00.000Z"
shipment_statusstring(shipment_status)read-onlyrequired

The current status of the shipment

Default "pending"
Enum"pending""processing""label_purchased""cancelled"
ship_toobject(partial_shipping_address_to)required

Any residential or business mailing address, anywhere in the world.

Note: Either name or company_name must be set. Both may be specified, if relevant.

ship_to.​namestringnon-emptyrequired

The name of a contact person at this address. This field may be set instead of - or in addition to - the company_name field.

Example: "John Doe"
ship_to.​phonestringnon-empty

The phone number of a contact person at this address. The format of this phone number varies depending on the country.

Example: "+1 204-253-9411 ext. 123"
ship_to.​emailstring or null

Email for the address owner.

Example: "example@example.com"
ship_to.​company_namestring or nullnon-empty

If this is a business address, then the company name should be specified here.

Example: "The Home Depot"
ship_to.​address_line1stringnon-emptyrequired

The first line of the street address. For some addresses, this may be the only line. Other addresses may require 2 or 3 lines.

Example: "1999 Bishop Grandin Blvd."
ship_to.​address_line2string or nullnon-empty

The second line of the street address. For some addresses, this line may not be needed.

Example: "Unit 408"
ship_to.​address_line3string or nullnon-empty

The third line of the street address. For some addresses, this line may not be needed.

Example: "Building #7"
ship_to.​city_localitystringnon-emptyrequired

The name of the city or locality

Example: "Winnipeg"
ship_to.​state_provincestringnon-emptyrequired

The state or province. For some countries (including the U.S.) only abbreviations are allowed. Other countries allow the full name or abbreviation.

Example: "Manitoba"
ship_to.​postal_codestring(postal_code)non-emptyrequired

postal code

Example: "78756-3717"
ship_to.​country_codestring(country_code)= 2 characters
Example: "CA"
ship_to.​address_residential_indicatorstring(address_residential_indicator)

Indicates whether this is a residential address.

Default "unknown"
Enum"unknown""yes""no"
Example: "no"
ship_to.​instructionsstring or nullnon-empty

Additional text about how to handle the shipment at this address.

ship_to.​geolocationArray of objects
ship_fromobject(partial_shipping_address)required

Any residential or business mailing address, anywhere in the world.

Note: Either name or company_name must be set. Both may be specified, if relevant.

ship_from.​namestringnon-emptyrequired

The name of a contact person at this address. This field may be set instead of - or in addition to - the company_name field.

Example: "John Doe"
ship_from.​phonestringnon-empty

The phone number of a contact person at this address. The format of this phone number varies depending on the country.

Example: "+1 204-253-9411 ext. 123"
ship_from.​emailstring or null

Email for the address owner.

Example: "example@example.com"
ship_from.​company_namestring or nullnon-empty

If this is a business address, then the company name should be specified here.

Example: "The Home Depot"
ship_from.​address_line1stringnon-emptyrequired

The first line of the street address. For some addresses, this may be the only line. Other addresses may require 2 or 3 lines.

Example: "1999 Bishop Grandin Blvd."
ship_from.​address_line2string or nullnon-empty

The second line of the street address. For some addresses, this line may not be needed.

Example: "Unit 408"
ship_from.​address_line3string or nullnon-empty

The third line of the street address. For some addresses, this line may not be needed.

Example: "Building #7"
ship_from.​city_localitystringnon-emptyrequired

The name of the city or locality

Example: "Winnipeg"
ship_from.​state_provincestringnon-emptyrequired

The state or province. For some countries (including the U.S.) only abbreviations are allowed. Other countries allow the full name or abbreviation.

Example: "Manitoba"
ship_from.​postal_codestring(postal_code)non-emptyrequired

postal code

Example: "78756-3717"
ship_from.​country_codestring(country_code)= 2 characters
Example: "CA"
ship_from.​address_residential_indicatorstring(address_residential_indicator)

Indicates whether this is a residential address.

Default "unknown"
Enum"unknown""yes""no"
Example: "no"
ship_from.​instructionsstring or nullnon-empty

Additional text about how to handle the shipment at this address.

warehouse_idstring or null(se_id)[ 1 .. 25 ] characters^se(-[a-z0-9]+)+$required

The warehouse that the shipment is being shipped from. Either warehouse_id or ship_from must be specified.

Default null
Example: "se-28529731"
return_toobject(partial_shipping_address)required

Any residential or business mailing address, anywhere in the world.

Note: Either name or company_name must be set. Both may be specified, if relevant.

return_to.​namestringnon-emptyrequired

The name of a contact person at this address. This field may be set instead of - or in addition to - the company_name field.

Example: "John Doe"
return_to.​phonestringnon-empty

The phone number of a contact person at this address. The format of this phone number varies depending on the country.

Example: "+1 204-253-9411 ext. 123"
return_to.​emailstring or null

Email for the address owner.

Example: "example@example.com"
return_to.​company_namestring or nullnon-empty

If this is a business address, then the company name should be specified here.

Example: "The Home Depot"
return_to.​address_line1stringnon-emptyrequired

The first line of the street address. For some addresses, this may be the only line. Other addresses may require 2 or 3 lines.

Example: "1999 Bishop Grandin Blvd."
return_to.​address_line2string or nullnon-empty

The second line of the street address. For some addresses, this line may not be needed.

Example: "Unit 408"
return_to.​address_line3string or nullnon-empty

The third line of the street address. For some addresses, this line may not be needed.

Example: "Building #7"
return_to.​city_localitystringnon-emptyrequired

The name of the city or locality

Example: "Winnipeg"
return_to.​state_provincestringnon-emptyrequired

The state or province. For some countries (including the U.S.) only abbreviations are allowed. Other countries allow the full name or abbreviation.

Example: "Manitoba"
return_to.​postal_codestring(postal_code)non-emptyrequired

postal code

Example: "78756-3717"
return_to.​country_codestring(country_code)= 2 characters
Example: "CA"
return_to.​address_residential_indicatorstring(address_residential_indicator)

Indicates whether this is a residential address.

Default "unknown"
Enum"unknown""yes""no"
Example: "no"
return_to.​instructionsstring or nullnon-empty

Additional text about how to handle the shipment at this address.

is_returnboolean or null

An optional indicator if the shipment is intended to be a return. Defaults to false if not provided.

Default false
confirmationstring(delivery_confirmation)required

The type of delivery confirmation that is required for this shipment.

Default "none"
Enum"none""delivery""signature""adult_signature""direct_signature""delivery_mailed""verbal_confirmation""delivery_code""age_verification_16_plus"
customsobject or null(international_shipment_options)required

Customs information. This is usually only needed for international shipments.

Default null
customs.​contentsstring(package_contents)required

The type of contents in this shipment. This may impact import duties or customs treatment.

Default "merchandise"
Enum"merchandise""documents""gift""returned_goods""sample""other"
customs.​contents_explanationstring

Explanation for contents (required if the contents is provided as other)

customs.​non_deliverystring(non_delivery)required

Indicates what to do if a package is unable to be delivered.

Default "return_to_sender"
Enum"return_to_sender""treat_as_abandoned"
customs.​terms_of_trade_codestring(Allowed incoterms)

Specifies the supported terms of trade code (incoterms)

Enum"exw""fca""cpt""cip""dpu""dap""ddp""fas""fob""cfr"
customs.​declarationstring

Declaration statement to be placed on the commercial invoice

customs.​invoice_additional_detailsobject(invoice_additional_details)

The additional information to put on commercial invoice

customs.​importer_of_recordobject(importer_of_records)

importer of records address, anywhere in the world.

customs.​license_numberstring

The license number to be used in the customs.

customs.​certificate_numberstring

The certificate number to be used in the customs.

customs.​customs_itemsArray of objects(customs_item)>= 0 itemsDeprecated

Customs declarations for each item in the shipment. (Please provide this information under products inside packages)

Default []
advanced_optionsobject(advanced_shipment_options)required

Advanced shipment options. These are entirely optional.

advanced_options.​bill_to_accountstring or null

This field is used to bill shipping costs to a third party. This field must be used in conjunction with the bill_to_country_code, bill_to_party, and bill_to_postal_code fields.

Default null
advanced_options.​bill_to_country_codestring or null(country_code)= 2 characters
Default null
Example: "CA"
advanced_options.​bill_to_partystring or null(bill_to_party)

Indicates whether to bill shipping costs to the recipient or to a third-party. When billing to a third-party, the bill_to_account, bill_to_country_code, and bill_to_postal_code fields must also be set.

Default null
Enum"recipient""third_party"
advanced_options.​bill_to_postal_codestring or null

The postal code of the third-party that is responsible for shipping costs.

Default null
advanced_options.​contains_alcoholboolean

Indicates that the shipment contains alcohol.

Default false
advanced_options.​delivered_duty_paidboolean

Indicates that the shipper is paying the international delivery duties for this shipment. This option is supported by UPS, FedEx, and DHL Express.

Default false
advanced_options.​dry_iceboolean

Indicates if the shipment contain dry ice

Default false
advanced_options.​dry_ice_weightobject or null(weight)

The weight of the dry ice in the shipment

advanced_options.​non_machinableboolean

Indicates that the package cannot be processed automatically because it is too large or irregularly shaped. This is primarily for USPS shipments. See Section 1.2 of the USPS parcel standards for details.

Default false
advanced_options.​saturday_deliveryboolean

Enables Saturday delivery, if supported by the carrier.

Default false
advanced_options.​fedex_freightobject

Provide details for the Fedex freight service

advanced_options.​use_ups_ground_freight_pricingboolean or null

Whether to use UPS Ground Freight pricing. If enabled, then a freight_class must also be specified.

Default null
advanced_options.​freight_classstring or null

The National Motor Freight Traffic Association freight class, such as "77.5", "110", or "250".

Default null
Example: "77.5"
advanced_options.​custom_field1string or null<= 100 characters

An arbitrary field that can be used to store information about the shipment.

Default null
advanced_options.​custom_field2string or null<= 100 characters

An arbitrary field that can be used to store information about the shipment.

Default null
advanced_options.​custom_field3string or null<= 100 characters

An arbitrary field that can be used to store information about the shipment.

Default null
advanced_options.​origin_typestring or null(origin_type)

Indicates if the package will be picked up or dropped off by the carrier

Default null
Enum"pickup""drop_off"
advanced_options.​additional_handlingboolean or null

Indicate to the carrier that this shipment requires additional handling.

Default null
advanced_options.​shipper_releaseboolean or null
Default null
advanced_options.​collect_on_deliveryobject(collect_on_delivery)

Defer payment until package is delivered, instead of when it is ordered.

advanced_options.​third_party_consigneeboolean

Third Party Consignee option is a value-added service that allows the shipper to supply goods without commercial invoices being attached

Default false
advanced_options.​dangerous_goodsboolean

Indicates if the Dangerous goods are present in the shipment

Default false
advanced_options.​dangerous_goods_contactobject

Contact information for Dangerous goods

advanced_options.​windsor_framework_detailsobject

The Windsor framework is a new regulation in the UK that simplifies customs procedures for goods moved from the UK mainland to Northern Ireland.

advanced_options.​license_numberstring or null

license_number - This field was part of a historical implementation for passing customs-related data. For new integrations, please use the corresponding parameters within the shipment.customs object.

Default null
Example: "514785"
advanced_options.​invoice_numberstring or null

invoice_number - This field was part of a historical implementation for passing customs-related data. For new integrations, please use the corresponding parameters within the shipment.customs object.

Default null
Example: "IOC56888"
advanced_options.​certificate_numberstring or null

certificate_number - This field was part of a historical implementation for passing customs-related data. For new integrations, please use the corresponding parameters within the shipment.customs object.

Default null
Example: "784515"
advanced_options.​fragileboolean

Indicates that the contents of the package are fragile and should be handled with care.

Default false
Example: true
advanced_options.​delivery-as-addressedboolean

Instructs the carrier to deliver the package only to the exact address provided.

Default false
advanced_options.​return-after-first-attemptboolean

Ensures the shipment is immediately flagged for return to the sender if the initial delivery attempt fails.

Default false
advanced_options.​regulated_content_typestring or null(regulated_content_type)

Indicates the category of goods in the shipment that is subject to special regulatory or compliance requirements.

Default null
Enum"day_old_poultry""other_live_animal"
advanced_options.​property name*anyadditional property
insurance_providerstring(insurance_provider)required

The insurance provider to use for any insured packages in the shipment.

Default "none"
Enum"none""shipsurance""carrier""third_party"
tagsArray of objects(tag)>= 0 itemsread-onlyrequired

Arbitrary tags associated with this shipment. Tags can be used to categorize shipments, and shipments can be queried by their tags.

Default []
tags[].​tag_idinteger(int32)>= 1read-only

An integer uniquely identifying a tag.

Example: 8712
tags[].​namestringnon-emptyrequired

The tag name.

Example: "Fragile"
tags[].​colorstringnon-empty

A hex-coded string identifying the color of the tag.

Example: "#FF0000"
order_source_codestring(order_source_name)

The order sources that are supported by ShipEngine

Enum"amazon_ca""amazon_us""brightpearl""channel_advisor""cratejoy""ebay""etsy""jane""groupon_goods""magento"
packagesArray of objects(package)non-emptyrequired

The packages in the shipment.

Note: Some carriers only allow one package per shipment. If you attempt to create a multi-package shipment for a carrier that doesn't allow it, an error will be returned.

packages[].​shipment_package_idstring(se_id)[ 1 .. 25 ] characters^se(-[a-z0-9]+)+$read-only

A string that uniquely identifies this shipment package

Example: "se-28529731"
packages[].​package_idstring(se_id)[ 1 .. 25 ] characters^se(-[a-z0-9]+)+$

A string that uniquely identifies this package type

Example: "se-28529731"
packages[].​package_codestring(package_code)[ 1 .. 50 ] characters^[a-z0-9]+(_[a-z0-9]+)*$

A package type, such as thick_envelope, small_flat_rate_box, large_package, etc. Use the code package for custom or unknown package types.

Example: "small_flat_rate_box"
packages[].​package_namestring

The name of the of the package type

packages[].​weightobject(weight)required

The package weight

packages[].​weight.​valuenumber>= 0required

The weight, in the specified unit

packages[].​weight.​unitstring(weight_unit)required

The possible weight unit values

Enum"pound""ounce""gram""kilogram"
packages[].​dimensionsobject(dimensions)

The package dimensions

packages[].​insured_valueobject(monetary_value)

The insured value of the package. Requires the insurance_provider field of the shipment to be set.

Default {"currency":"USD","amount":0}
packages[].​label_messagesobject(label_messages)

Custom messages to print on the shipping label for the package. These are typically used to print invoice numbers, product numbers, or other internal reference numbers. Not all carriers support label messages. The number of lines and the maximum length of each line also varies by carrier.

CarrierMax linesMax line length
USPS (Stamps.com)360
FedEx335 for the first line. 30 for additional lines.
UPS235
OnTrac225
packages[].​external_package_idstringnon-empty

An external package id.

packages[].​tracking_numberstring(tracking_number)non-emptyread-only

The tracking number for the package. The format depends on the carrier.

Example: "1Z932R800392060079"
packages[].​content_descriptionstring or null[ 1 .. 35 ] characters

A short description of the package content. Required for shipments moving to, from, and through Mexico.

Example: "Hand knitted wool socks"
packages[].​productsArray of objects(products)>= 0 items

Details about products inside packages (Information provided would be used on custom documentation)

Default []
total_weightobject(weight)read-onlyrequired

The combined weight of all packages in the shipment

total_weight.​valuenumber>= 0required

The weight, in the specified unit

total_weight.​unitstring(weight_unit)required

The possible weight unit values

Enum"pound""ounce""gram""kilogram"
comparison_rate_typestring or null

Calculate a rate for this shipment with the requested carrier using a ratecard that differs from the default. Only supported for UPS and USPS.

Example: "retail"
zoneinteger or null(int32)>= 0read-only

Certain carriers base their rates off of custom zones that vary depending upon the ship_to and ship_from location

Example: 6
Response
application/json
{ "shipment_id": "se-28529731", "carrier_id": "se-28529731", "service_code": "usps_first_class_mail", "shipping_rule_id": "se-28529731", "external_order_id": "string", "items": [], "tax_identifiers": [ {} ], "external_shipment_id": "string", "shipment_number": "string", "ship_date": "2018-09-23T00:00:00.000Z", "created_at": "2018-09-23T15:00:00.000Z", "modified_at": "2018-09-23T15:00:00.000Z", "shipment_status": "pending", "ship_to": { "name": "John Doe", "phone": "+1 204-253-9411 ext. 123", "email": "example@example.com", "company_name": "The Home Depot", "address_line1": "1999 Bishop Grandin Blvd.", "address_line2": "Unit 408", "address_line3": "Building #7", "city_locality": "Winnipeg", "state_province": "Manitoba", "postal_code": "78756-3717", "country_code": "CA", "address_residential_indicator": "no", "instructions": "string", "geolocation": [] }, "ship_from": { "name": "John Doe", "phone": "+1 204-253-9411 ext. 123", "email": "example@example.com", "company_name": "The Home Depot", "address_line1": "1999 Bishop Grandin Blvd.", "address_line2": "Unit 408", "address_line3": "Building #7", "city_locality": "Winnipeg", "state_province": "Manitoba", "postal_code": "78756-3717", "country_code": "CA", "address_residential_indicator": "no", "instructions": "string" }, "warehouse_id": null, "return_to": { "name": "John Doe", "phone": "+1 204-253-9411 ext. 123", "email": "example@example.com", "company_name": "The Home Depot", "address_line1": "1999 Bishop Grandin Blvd.", "address_line2": "Unit 408", "address_line3": "Building #7", "city_locality": "Winnipeg", "state_province": "Manitoba", "postal_code": "78756-3717", "country_code": "CA", "address_residential_indicator": "no", "instructions": "string" }, "is_return": false, "confirmation": "none", "customs": null, "advanced_options": { "bill_to_account": null, "bill_to_country_code": null, "bill_to_party": null, "bill_to_postal_code": null, "contains_alcohol": false, "delivered_duty_paid": false, "dry_ice": false, "dry_ice_weight": {}, "non_machinable": false, "saturday_delivery": false, "fedex_freight": {}, "use_ups_ground_freight_pricing": null, "freight_class": "77.5", "custom_field1": null, "custom_field2": null, "custom_field3": null, "origin_type": null, "additional_handling": null, "shipper_release": null, "collect_on_delivery": {}, "third_party_consignee": false, "dangerous_goods": false, "dangerous_goods_contact": {}, "windsor_framework_details": {}, "license_number": "514785", "invoice_number": "IOC56888", "certificate_number": "784515", "fragile": true, "delivery-as-addressed": false, "return-after-first-attempt": false, "regulated_content_type": null }, "insurance_provider": "none", "tags": [], "order_source_code": "amazon_ca", "packages": [ {} ], "total_weight": { "value": 0, "unit": "pound" }, "comparison_rate_type": "retail", "zone": 6 }

Parse shipping info

Request

The shipment-recognition API makes it easy for you to extract shipping data from unstructured text, including people's names, addresses, package weights and dimensions, insurance and delivery requirements, and more.

Data often enters your system as unstructured text (for example: emails, SMS messages, support tickets, or other documents). ShipEngine's shipment-recognition API helps you extract meaningful, structured data from this unstructured text. The parsed shipment data is returned in the same structure that's used for other ShipEngine APIs, so you can easily use the parsed data to create a shipping label.

Note: Shipment recognition is currently supported for the United States, Canada, Australia, New Zealand, the United Kingdom, and Ireland.

Security
api_key
Bodyapplication/jsonrequired

The only required field is text, which is the text to be parsed. You can optionally also provide a shipment containing any already-known values. For example, you probably already know the ship_from address, and you may also already know what carrier and service you want to use.

textstringnon-emptyrequired

The unstructured text that contains shipping-related entities

Example: "I have a 4oz package that's 5x10x14in, and I need to ship it to Margie McMiller at 3800 North Lamar suite 200 in austin, tx 78652. Please send it via USPS first class and require an adult signature. It also needs to be insured for $400.\n"
shipmentobject(partial_shipment)

You can optionally provide a shipment object containing any already-known values. For example, you probably already know the ship_from address, and you may also already know what carrier and service you want to use.

curl -i -X PUT \
  https://docs.shipstation.com/_mock/apis/shipengine/openapi/v1/shipments/recognize \
  -H 'API-Key: YOUR_API_KEY_HERE' \
  -H 'Content-Type: application/json' \
  -d '{
    "text": "I have a 4oz package that'\''s 5x10x14in, and I need to ship it to Margie McMiller at 3800 North Lamar suite 200 in austin, tx 78652. Please send it via USPS first class and require an adult signature. It also needs to be insured for $400.\n"
  }'

Responses

Returns the parsed shipment, as well as a confidence score and a list of all the shipping entities that were recognized in the text.

Bodyapplication/json
scorenumber(double)[ 0 .. 1 ]required

A confidence score between zero and one that indicates how certain the API is that it understood the text.

shipmentobject(partial_shipment)required

The parsed shipment. This shipment may not be complete, depending on how much information was included in the text and how confident the API is about each recognized entity.

Note: The shipment-recognition API does not currently perform any validation of the parsed addresses, so we recommend that you use the address-validation API to ensure that the addresses are correct.

shipment.​shipment_idstring(se_id)[ 1 .. 25 ] characters^se(-[a-z0-9]+)+$read-only

A string that uniquely identifies the shipment

Example: "se-28529731"
shipment.​carrier_idstring(se_id)[ 1 .. 25 ] characters^se(-[a-z0-9]+)+$

The carrier account that is billed for the shipping charges

Example: "se-28529731"
shipment.​service_codestring(service_code)^[a-z0-9]+(_[a-z0-9-]+)* ?$

A carrier service, such as fedex_ground, usps_first_class_mail, flat_rate_envelope, etc.

Example: "usps_first_class_mail"
shipment.​shipping_rule_idstring(se_id)[ 1 .. 25 ] characters^se(-[a-z0-9]+)+$

ID of the shipping rule, which you want to use to automate carrier/carrier service selection for the shipment

Example: "se-28529731"
shipment.​external_order_idstring or null

ID that the Order Source assignedd

shipment.​itemsArray of objects(shipment_item)

Describe the packages included in this shipment as related to potential metadata that was imported from external order sources

Default []
shipment.​tax_identifiersArray of objects or null(tax_identifier)
shipment.​external_shipment_idstring or null<= 50 characters

A unique user-defined key to identify a shipment. This can be used to retrieve the shipment.

Warning: The external_shipment_id is limited to 50 characters. Any additional characters will be truncated.

shipment.​shipment_numberstring or null<= 50 characters

A non-unique user-defined number used to identify a shipment. If undefined, this will match the external_shipment_id of the shipment.

Warning: The shipment_number is limited to 50 characters. Any additional characters will be truncated.

shipment.​ship_datestring(date-time)(date)^\d{4}-\d{2}-\d{2}(T\d{2}:\d{2}:\d{2}(\.\d+)?...

An ISO 8601 string that represents a date, but not a specific time. The value may contain a time component, but it will be set to 00:00:00 UTC by ShipEngine.

Example: "2018-09-23T00:00:00.000Z"
shipment.​created_atstring(date-time)(date_time)^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d+)?(...read-only

An ISO 8601 string that represents a date and time.

Example: "2018-09-23T15:00:00.000Z"
shipment.​modified_atstring(date-time)(date_time)^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d+)?(...read-only

An ISO 8601 string that represents a date and time.

Example: "2018-09-23T15:00:00.000Z"
shipment.​shipment_statusstring(shipment_status)read-only

The current status of the shipment

Default "pending"
Enum"pending""processing""label_purchased""cancelled"
shipment.​ship_toobject(partial_shipping_address_to)

Any residential or business mailing address, anywhere in the world.

Note: Either name or company_name must be set. Both may be specified, if relevant.

shipment.​ship_fromobject(partial_shipping_address)

Any residential or business mailing address, anywhere in the world.

Note: Either name or company_name must be set. Both may be specified, if relevant.

shipment.​warehouse_idstring or null(se_id)[ 1 .. 25 ] characters^se(-[a-z0-9]+)+$

The warehouse that the shipment is being shipped from. Either warehouse_id or ship_from must be specified.

Default null
Example: "se-28529731"
shipment.​return_toobject(partial_shipping_address)

Any residential or business mailing address, anywhere in the world.

Note: Either name or company_name must be set. Both may be specified, if relevant.

shipment.​is_returnboolean or null

An optional indicator if the shipment is intended to be a return. Defaults to false if not provided.

Default false
shipment.​confirmationstring(delivery_confirmation)

The type of delivery confirmation that is required for this shipment.

Default "none"
Enum"none""delivery""signature""adult_signature""direct_signature""delivery_mailed""verbal_confirmation""delivery_code""age_verification_16_plus"
shipment.​customsobject or null(international_shipment_options)

Customs information. This is usually only needed for international shipments.

Default null
shipment.​advanced_optionsobject(advanced_shipment_options)

Advanced shipment options. These are entirely optional.

shipment.​insurance_providerstring(insurance_provider)

The insurance provider to use for any insured packages in the shipment.

Default "none"
Enum"none""shipsurance""carrier""third_party"
shipment.​tagsArray of objects(tag)>= 0 itemsread-only

Arbitrary tags associated with this shipment. Tags can be used to categorize shipments, and shipments can be queried by their tags.

Default []
shipment.​order_source_codestring(order_source_name)

The order sources that are supported by ShipEngine

Enum"amazon_ca""amazon_us""brightpearl""channel_advisor""cratejoy""ebay""etsy""jane""groupon_goods""magento"
shipment.​packagesArray of objects(package)non-empty

The packages in the shipment.

Note: Some carriers only allow one package per shipment. If you attempt to create a multi-package shipment for a carrier that doesn't allow it, an error will be returned.

shipment.​total_weightobject(weight)read-only

The combined weight of all packages in the shipment

shipment.​comparison_rate_typestring or null

Calculate a rate for this shipment with the requested carrier using a ratecard that differs from the default. Only supported for UPS and USPS.

Example: "retail"
shipment.​zoneinteger or null(int32)>= 0read-only

Certain carriers base their rates off of custom zones that vary depending upon the ship_to and ship_from location

Example: 6
entitiesArray of objects(recognized_entity)>= 0 itemsrequired

All of the entities that were recognized in the text. An "entity" is a single piece of data, such as a city, a postal code, a carrier name, or a package weight. Each entity includes the original text and the parsed value.

entities[].​typestringnon-emptyrequired

The Entity type (e.g. "weight", "person", "address_line1", etc.)

entities[].​scorenumber(double)[ 0 .. 1 ]required

A confidence score between zero and one that indicates how certain the API is that it correctly recognized this entity

entities[].​textstringnon-emptyrequired

The substring from the original text that was recognized as this entity

entities[].​start_indexinteger>= 0required

The index of the first character of this entity within the original text

entities[].​end_indexinteger>= 0required

The index of the last character of this entity within the original text

entities[].​resultobject(normalized_entity)

The normalized value of the entity.

Most entity results have a value field, which is the normalized value of the entity. For example, if the substring "john doe" was recognized as a "person" entity, then the value might be normalized to have proper capitalization (e.g. "John Doe"). Or if the substring "ft worth" was recognized as a "city" entity, then the value might be normalized to "Fort Worth".

Some entities have other information in addition to, or instead of a value. For example, a "dimensions" entity will have separate fields for length, width, height, and unit.

Response
application/json

This response shows that the shipment-recognition API was able to recognize all the shipping entities in the text. Notice that the ship_from field is not populated, since it wasn't included in the request or in the parsed text.

{ "score": 0.9031369611169101, "shipment": { "carrier_id": "se-118608", "service_code": "usps_first_class_mail", "confirmation": "adult_signature", "ship_to": {}, "packages": [] }, "entities": [ {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {}, {} ] }

Get shipment by ID

Request

Get an individual shipment based on its ID

Security
api_key
Path
shipment_idstring(se_id)[ 1 .. 25 ] characters^se(-[a-z0-9]+)+$required

Shipment ID

Example: se-28529731
curl -i -X GET \
  https://docs.shipstation.com/_mock/apis/shipengine/openapi/v1/shipments/se-28529731 \
  -H 'API-Key: YOUR_API_KEY_HERE'

Responses

The request was a success.

Bodyapplication/json
shipment_idstring(se_id)[ 1 .. 25 ] characters^se(-[a-z0-9]+)+$read-onlyrequired

A string that uniquely identifies the shipment

Example: "se-28529731"
carrier_idstring(se_id)[ 1 .. 25 ] characters^se(-[a-z0-9]+)+$required

The carrier account that is billed for the shipping charges

Example: "se-28529731"
service_codestring(service_code)^[a-z0-9]+(_[a-z0-9-]+)* ?$required

A carrier service, such as fedex_ground, usps_first_class_mail, flat_rate_envelope, etc.

Example: "usps_first_class_mail"
shipping_rule_idstring(se_id)[ 1 .. 25 ] characters^se(-[a-z0-9]+)+$

ID of the shipping rule, which you want to use to automate carrier/carrier service selection for the shipment

Example: "se-28529731"
external_order_idstring or null

ID that the Order Source assignedd

itemsArray of objects(shipment_item)

Describe the packages included in this shipment as related to potential metadata that was imported from external order sources

Default []
tax_identifiersArray of objects or null(tax_identifier)
external_shipment_idstring or null<= 50 characters

A unique user-defined key to identify a shipment. This can be used to retrieve the shipment.

Warning: The external_shipment_id is limited to 50 characters. Any additional characters will be truncated.

shipment_numberstring or null<= 50 characters

A non-unique user-defined number used to identify a shipment. If undefined, this will match the external_shipment_id of the shipment.

Warning: The shipment_number is limited to 50 characters. Any additional characters will be truncated.

ship_datestring(date-time)(date)^\d{4}-\d{2}-\d{2}(T\d{2}:\d{2}:\d{2}(\.\d+)?...required

An ISO 8601 string that represents a date, but not a specific time. The value may contain a time component, but it will be set to 00:00:00 UTC by ShipEngine.

Example: "2018-09-23T00:00:00.000Z"
created_atstring(date-time)(date_time)^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d+)?(...read-onlyrequired

An ISO 8601 string that represents a date and time.

Example: "2018-09-23T15:00:00.000Z"
modified_atstring(date-time)(date_time)^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d+)?(...read-onlyrequired

An ISO 8601 string that represents a date and time.

Example: "2018-09-23T15:00:00.000Z"
shipment_statusstring(shipment_status)read-onlyrequired

The current status of the shipment

Default "pending"
Enum"pending""processing""label_purchased""cancelled"
ship_toobject(partial_shipping_address_to)required

Any residential or business mailing address, anywhere in the world.

Note: Either name or company_name must be set. Both may be specified, if relevant.

ship_to.​namestringnon-emptyrequired

The name of a contact person at this address. This field may be set instead of - or in addition to - the company_name field.

Example: "John Doe"
ship_to.​phonestringnon-empty

The phone number of a contact person at this address. The format of this phone number varies depending on the country.

Example: "+1 204-253-9411 ext. 123"
ship_to.​emailstring or null

Email for the address owner.

Example: "example@example.com"
ship_to.​company_namestring or nullnon-empty

If this is a business address, then the company name should be specified here.

Example: "The Home Depot"
ship_to.​address_line1stringnon-emptyrequired

The first line of the street address. For some addresses, this may be the only line. Other addresses may require 2 or 3 lines.

Example: "1999 Bishop Grandin Blvd."
ship_to.​address_line2string or nullnon-empty

The second line of the street address. For some addresses, this line may not be needed.

Example: "Unit 408"
ship_to.​address_line3string or nullnon-empty

The third line of the street address. For some addresses, this line may not be needed.

Example: "Building #7"
ship_to.​city_localitystringnon-emptyrequired

The name of the city or locality

Example: "Winnipeg"
ship_to.​state_provincestringnon-emptyrequired

The state or province. For some countries (including the U.S.) only abbreviations are allowed. Other countries allow the full name or abbreviation.

Example: "Manitoba"
ship_to.​postal_codestring(postal_code)non-emptyrequired

postal code

Example: "78756-3717"
ship_to.​country_codestring(country_code)= 2 characters
Example: "CA"
ship_to.​address_residential_indicatorstring(address_residential_indicator)

Indicates whether this is a residential address.

Default "unknown"
Enum"unknown""yes""no"
Example: "no"
ship_to.​instructionsstring or nullnon-empty

Additional text about how to handle the shipment at this address.

ship_to.​geolocationArray of objects
ship_fromobject(partial_shipping_address)required

Any residential or business mailing address, anywhere in the world.

Note: Either name or company_name must be set. Both may be specified, if relevant.

ship_from.​namestringnon-emptyrequired

The name of a contact person at this address. This field may be set instead of - or in addition to - the company_name field.

Example: "John Doe"
ship_from.​phonestringnon-empty

The phone number of a contact person at this address. The format of this phone number varies depending on the country.

Example: "+1 204-253-9411 ext. 123"
ship_from.​emailstring or null

Email for the address owner.

Example: "example@example.com"
ship_from.​company_namestring or nullnon-empty

If this is a business address, then the company name should be specified here.

Example: "The Home Depot"
ship_from.​address_line1stringnon-emptyrequired

The first line of the street address. For some addresses, this may be the only line. Other addresses may require 2 or 3 lines.

Example: "1999 Bishop Grandin Blvd."
ship_from.​address_line2string or nullnon-empty

The second line of the street address. For some addresses, this line may not be needed.

Example: "Unit 408"
ship_from.​address_line3string or nullnon-empty

The third line of the street address. For some addresses, this line may not be needed.

Example: "Building #7"
ship_from.​city_localitystringnon-emptyrequired

The name of the city or locality

Example: "Winnipeg"
ship_from.​state_provincestringnon-emptyrequired

The state or province. For some countries (including the U.S.) only abbreviations are allowed. Other countries allow the full name or abbreviation.

Example: "Manitoba"
ship_from.​postal_codestring(postal_code)non-emptyrequired

postal code

Example: "78756-3717"
ship_from.​country_codestring(country_code)= 2 characters
Example: "CA"
ship_from.​address_residential_indicatorstring(address_residential_indicator)

Indicates whether this is a residential address.

Default "unknown"
Enum"unknown""yes""no"
Example: "no"
ship_from.​instructionsstring or nullnon-empty

Additional text about how to handle the shipment at this address.

warehouse_idstring or null(se_id)[ 1 .. 25 ] characters^se(-[a-z0-9]+)+$required

The warehouse that the shipment is being shipped from. Either warehouse_id or ship_from must be specified.

Default null
Example: "se-28529731"
return_toobject(partial_shipping_address)required

Any residential or business mailing address, anywhere in the world.

Note: Either name or company_name must be set. Both may be specified, if relevant.

return_to.​namestringnon-emptyrequired

The name of a contact person at this address. This field may be set instead of - or in addition to - the company_name field.

Example: "John Doe"
return_to.​phonestringnon-empty

The phone number of a contact person at this address. The format of this phone number varies depending on the country.

Example: "+1 204-253-9411 ext. 123"
return_to.​emailstring or null

Email for the address owner.

Example: "example@example.com"
return_to.​company_namestring or nullnon-empty

If this is a business address, then the company name should be specified here.

Example: "The Home Depot"
return_to.​address_line1stringnon-emptyrequired

The first line of the street address. For some addresses, this may be the only line. Other addresses may require 2 or 3 lines.

Example: "1999 Bishop Grandin Blvd."
return_to.​address_line2string or nullnon-empty

The second line of the street address. For some addresses, this line may not be needed.

Example: "Unit 408"
return_to.​address_line3string or nullnon-empty

The third line of the street address. For some addresses, this line may not be needed.

Example: "Building #7"
return_to.​city_localitystringnon-emptyrequired

The name of the city or locality

Example: "Winnipeg"
return_to.​state_provincestringnon-emptyrequired

The state or province. For some countries (including the U.S.) only abbreviations are allowed. Other countries allow the full name or abbreviation.

Example: "Manitoba"
return_to.​postal_codestring(postal_code)non-emptyrequired

postal code

Example: "78756-3717"
return_to.​country_codestring(country_code)= 2 characters
Example: "CA"
return_to.​address_residential_indicatorstring(address_residential_indicator)

Indicates whether this is a residential address.

Default "unknown"
Enum"unknown""yes""no"
Example: "no"
return_to.​instructionsstring or nullnon-empty

Additional text about how to handle the shipment at this address.

is_returnboolean or null

An optional indicator if the shipment is intended to be a return. Defaults to false if not provided.

Default false
confirmationstring(delivery_confirmation)required

The type of delivery confirmation that is required for this shipment.

Default "none"
Enum"none""delivery""signature""adult_signature""direct_signature""delivery_mailed""verbal_confirmation""delivery_code""age_verification_16_plus"
customsobject or null(international_shipment_options)required

Customs information. This is usually only needed for international shipments.

Default null
customs.​contentsstring(package_contents)required

The type of contents in this shipment. This may impact import duties or customs treatment.

Default "merchandise"
Enum"merchandise""documents""gift""returned_goods""sample""other"
customs.​contents_explanationstring

Explanation for contents (required if the contents is provided as other)

customs.​non_deliverystring(non_delivery)required

Indicates what to do if a package is unable to be delivered.

Default "return_to_sender"
Enum"return_to_sender""treat_as_abandoned"
customs.​terms_of_trade_codestring(Allowed incoterms)

Specifies the supported terms of trade code (incoterms)

Enum"exw""fca""cpt""cip""dpu""dap""ddp""fas""fob""cfr"
customs.​declarationstring

Declaration statement to be placed on the commercial invoice

customs.​invoice_additional_detailsobject(invoice_additional_details)

The additional information to put on commercial invoice

customs.​importer_of_recordobject(importer_of_records)

importer of records address, anywhere in the world.

customs.​license_numberstring

The license number to be used in the customs.

customs.​certificate_numberstring

The certificate number to be used in the customs.

customs.​customs_itemsArray of objects(customs_item)>= 0 itemsDeprecated

Customs declarations for each item in the shipment. (Please provide this information under products inside packages)

Default []
advanced_optionsobject(advanced_shipment_options)required

Advanced shipment options. These are entirely optional.

advanced_options.​bill_to_accountstring or null

This field is used to bill shipping costs to a third party. This field must be used in conjunction with the bill_to_country_code, bill_to_party, and bill_to_postal_code fields.

Default null
advanced_options.​bill_to_country_codestring or null(country_code)= 2 characters
Default null
Example: "CA"
advanced_options.​bill_to_partystring or null(bill_to_party)

Indicates whether to bill shipping costs to the recipient or to a third-party. When billing to a third-party, the bill_to_account, bill_to_country_code, and bill_to_postal_code fields must also be set.

Default null
Enum"recipient""third_party"
advanced_options.​bill_to_postal_codestring or null

The postal code of the third-party that is responsible for shipping costs.

Default null
advanced_options.​contains_alcoholboolean

Indicates that the shipment contains alcohol.

Default false
advanced_options.​delivered_duty_paidboolean

Indicates that the shipper is paying the international delivery duties for this shipment. This option is supported by UPS, FedEx, and DHL Express.

Default false
advanced_options.​dry_iceboolean

Indicates if the shipment contain dry ice

Default false
advanced_options.​dry_ice_weightobject or null(weight)

The weight of the dry ice in the shipment

advanced_options.​non_machinableboolean

Indicates that the package cannot be processed automatically because it is too large or irregularly shaped. This is primarily for USPS shipments. See Section 1.2 of the USPS parcel standards for details.

Default false
advanced_options.​saturday_deliveryboolean

Enables Saturday delivery, if supported by the carrier.

Default false
advanced_options.​fedex_freightobject

Provide details for the Fedex freight service

advanced_options.​use_ups_ground_freight_pricingboolean or null

Whether to use UPS Ground Freight pricing. If enabled, then a freight_class must also be specified.

Default null
advanced_options.​freight_classstring or null

The National Motor Freight Traffic Association freight class, such as "77.5", "110", or "250".

Default null
Example: "77.5"
advanced_options.​custom_field1string or null<= 100 characters

An arbitrary field that can be used to store information about the shipment.

Default null
advanced_options.​custom_field2string or null<= 100 characters

An arbitrary field that can be used to store information about the shipment.

Default null
advanced_options.​custom_field3string or null<= 100 characters

An arbitrary field that can be used to store information about the shipment.

Default null
advanced_options.​origin_typestring or null(origin_type)

Indicates if the package will be picked up or dropped off by the carrier

Default null
Enum"pickup""drop_off"
advanced_options.​additional_handlingboolean or null

Indicate to the carrier that this shipment requires additional handling.

Default null
advanced_options.​shipper_releaseboolean or null
Default null
advanced_options.​collect_on_deliveryobject(collect_on_delivery)

Defer payment until package is delivered, instead of when it is ordered.

advanced_options.​third_party_consigneeboolean

Third Party Consignee option is a value-added service that allows the shipper to supply goods without commercial invoices being attached

Default false
advanced_options.​dangerous_goodsboolean

Indicates if the Dangerous goods are present in the shipment

Default false
advanced_options.​dangerous_goods_contactobject

Contact information for Dangerous goods

advanced_options.​windsor_framework_detailsobject

The Windsor framework is a new regulation in the UK that simplifies customs procedures for goods moved from the UK mainland to Northern Ireland.

advanced_options.​license_numberstring or null

license_number - This field was part of a historical implementation for passing customs-related data. For new integrations, please use the corresponding parameters within the shipment.customs object.

Default null
Example: "514785"
advanced_options.​invoice_numberstring or null

invoice_number - This field was part of a historical implementation for passing customs-related data. For new integrations, please use the corresponding parameters within the shipment.customs object.

Default null
Example: "IOC56888"
advanced_options.​certificate_numberstring or null

certificate_number - This field was part of a historical implementation for passing customs-related data. For new integrations, please use the corresponding parameters within the shipment.customs object.

Default null
Example: "784515"
advanced_options.​fragileboolean

Indicates that the contents of the package are fragile and should be handled with care.

Default false
Example: true
advanced_options.​delivery-as-addressedboolean

Instructs the carrier to deliver the package only to the exact address provided.

Default false
advanced_options.​return-after-first-attemptboolean

Ensures the shipment is immediately flagged for return to the sender if the initial delivery attempt fails.

Default false
advanced_options.​regulated_content_typestring or null(regulated_content_type)

Indicates the category of goods in the shipment that is subject to special regulatory or compliance requirements.

Default null
Enum"day_old_poultry""other_live_animal"
advanced_options.​property name*anyadditional property
insurance_providerstring(insurance_provider)required

The insurance provider to use for any insured packages in the shipment.

Default "none"
Enum"none""shipsurance""carrier""third_party"
tagsArray of objects(tag)>= 0 itemsread-onlyrequired

Arbitrary tags associated with this shipment. Tags can be used to categorize shipments, and shipments can be queried by their tags.

Default []
tags[].​tag_idinteger(int32)>= 1read-only

An integer uniquely identifying a tag.

Example: 8712
tags[].​namestringnon-emptyrequired

The tag name.

Example: "Fragile"
tags[].​colorstringnon-empty

A hex-coded string identifying the color of the tag.

Example: "#FF0000"
order_source_codestring(order_source_name)

The order sources that are supported by ShipEngine

Enum"amazon_ca""amazon_us""brightpearl""channel_advisor""cratejoy""ebay""etsy""jane""groupon_goods""magento"
packagesArray of objects(package)non-emptyrequired

The packages in the shipment.

Note: Some carriers only allow one package per shipment. If you attempt to create a multi-package shipment for a carrier that doesn't allow it, an error will be returned.

packages[].​shipment_package_idstring(se_id)[ 1 .. 25 ] characters^se(-[a-z0-9]+)+$read-only

A string that uniquely identifies this shipment package

Example: "se-28529731"
packages[].​package_idstring(se_id)[ 1 .. 25 ] characters^se(-[a-z0-9]+)+$

A string that uniquely identifies this package type

Example: "se-28529731"
packages[].​package_codestring(package_code)[ 1 .. 50 ] characters^[a-z0-9]+(_[a-z0-9]+)*$

A package type, such as thick_envelope, small_flat_rate_box, large_package, etc. Use the code package for custom or unknown package types.

Example: "small_flat_rate_box"
packages[].​package_namestring

The name of the of the package type

packages[].​weightobject(weight)required

The package weight

packages[].​weight.​valuenumber>= 0required

The weight, in the specified unit

packages[].​weight.​unitstring(weight_unit)required

The possible weight unit values

Enum"pound""ounce""gram""kilogram"
packages[].​dimensionsobject(dimensions)

The package dimensions

packages[].​insured_valueobject(monetary_value)

The insured value of the package. Requires the insurance_provider field of the shipment to be set.

Default {"currency":"USD","amount":0}
packages[].​label_messagesobject(label_messages)

Custom messages to print on the shipping label for the package. These are typically used to print invoice numbers, product numbers, or other internal reference numbers. Not all carriers support label messages. The number of lines and the maximum length of each line also varies by carrier.

CarrierMax linesMax line length
USPS (Stamps.com)360
FedEx335 for the first line. 30 for additional lines.
UPS235
OnTrac225
packages[].​external_package_idstringnon-empty

An external package id.

packages[].​tracking_numberstring(tracking_number)non-emptyread-only

The tracking number for the package. The format depends on the carrier.

Example: "1Z932R800392060079"
packages[].​content_descriptionstring or null[ 1 .. 35 ] characters

A short description of the package content. Required for shipments moving to, from, and through Mexico.

Example: "Hand knitted wool socks"
packages[].​productsArray of objects(products)>= 0 items

Details about products inside packages (Information provided would be used on custom documentation)

Default []
total_weightobject(weight)read-onlyrequired

The combined weight of all packages in the shipment

total_weight.​valuenumber>= 0required

The weight, in the specified unit

total_weight.​unitstring(weight_unit)required

The possible weight unit values

Enum"pound""ounce""gram""kilogram"
comparison_rate_typestring or null

Calculate a rate for this shipment with the requested carrier using a ratecard that differs from the default. Only supported for UPS and USPS.

Example: "retail"
zoneinteger or null(int32)>= 0read-only

Certain carriers base their rates off of custom zones that vary depending upon the ship_to and ship_from location

Example: 6
Response
application/json
{ "shipment_id": "se-28529731", "carrier_id": "se-28529731", "service_code": "usps_first_class_mail", "shipping_rule_id": "se-28529731", "external_order_id": "string", "items": [], "tax_identifiers": [ {} ], "external_shipment_id": "string", "shipment_number": "string", "ship_date": "2018-09-23T00:00:00.000Z", "created_at": "2018-09-23T15:00:00.000Z", "modified_at": "2018-09-23T15:00:00.000Z", "shipment_status": "pending", "ship_to": { "name": "John Doe", "phone": "+1 204-253-9411 ext. 123", "email": "example@example.com", "company_name": "The Home Depot", "address_line1": "1999 Bishop Grandin Blvd.", "address_line2": "Unit 408", "address_line3": "Building #7", "city_locality": "Winnipeg", "state_province": "Manitoba", "postal_code": "78756-3717", "country_code": "CA", "address_residential_indicator": "no", "instructions": "string", "geolocation": [] }, "ship_from": { "name": "John Doe", "phone": "+1 204-253-9411 ext. 123", "email": "example@example.com", "company_name": "The Home Depot", "address_line1": "1999 Bishop Grandin Blvd.", "address_line2": "Unit 408", "address_line3": "Building #7", "city_locality": "Winnipeg", "state_province": "Manitoba", "postal_code": "78756-3717", "country_code": "CA", "address_residential_indicator": "no", "instructions": "string" }, "warehouse_id": null, "return_to": { "name": "John Doe", "phone": "+1 204-253-9411 ext. 123", "email": "example@example.com", "company_name": "The Home Depot", "address_line1": "1999 Bishop Grandin Blvd.", "address_line2": "Unit 408", "address_line3": "Building #7", "city_locality": "Winnipeg", "state_province": "Manitoba", "postal_code": "78756-3717", "country_code": "CA", "address_residential_indicator": "no", "instructions": "string" }, "is_return": false, "confirmation": "none", "customs": null, "advanced_options": { "bill_to_account": null, "bill_to_country_code": null, "bill_to_party": null, "bill_to_postal_code": null, "contains_alcohol": false, "delivered_duty_paid": false, "dry_ice": false, "dry_ice_weight": {}, "non_machinable": false, "saturday_delivery": false, "fedex_freight": {}, "use_ups_ground_freight_pricing": null, "freight_class": "77.5", "custom_field1": null, "custom_field2": null, "custom_field3": null, "origin_type": null, "additional_handling": null, "shipper_release": null, "collect_on_delivery": {}, "third_party_consignee": false, "dangerous_goods": false, "dangerous_goods_contact": {}, "windsor_framework_details": {}, "license_number": "514785", "invoice_number": "IOC56888", "certificate_number": "784515", "fragile": true, "delivery-as-addressed": false, "return-after-first-attempt": false, "regulated_content_type": null }, "insurance_provider": "none", "tags": [], "order_source_code": "amazon_ca", "packages": [ {} ], "total_weight": { "value": 0, "unit": "pound" }, "comparison_rate_type": "retail", "zone": 6 }

Update shipment by ID

Request

Update a shipment object based on its ID

Security
api_key
Path
shipment_idstring(se_id)[ 1 .. 25 ] characters^se(-[a-z0-9]+)+$required

Shipment ID

Example: se-28529731
Bodyapplication/jsonrequired
carrier_idstring(se_id)[ 1 .. 25 ] characters^se(-[a-z0-9]+)+$

The carrier account that is billed for the shipping charges

Example: "se-28529731"
service_codestring(service_code)^[a-z0-9]+(_[a-z0-9-]+)* ?$

A carrier service, such as fedex_ground, usps_first_class_mail, flat_rate_envelope, etc.

Example: "usps_first_class_mail"
shipping_rule_idstring(se_id)[ 1 .. 25 ] characters^se(-[a-z0-9]+)+$

ID of the shipping rule, which you want to use to automate carrier/carrier service selection for the shipment

Example: "se-28529731"
external_order_idstring or null

ID that the Order Source assignedd

itemsArray of objects(shipment_item)

Describe the packages included in this shipment as related to potential metadata that was imported from external order sources

Default []
tax_identifiersArray of objects or null(tax_identifier)
external_shipment_idstring or null<= 50 characters

A unique user-defined key to identify a shipment. This can be used to retrieve the shipment.

Warning: The external_shipment_id is limited to 50 characters. Any additional characters will be truncated.

shipment_numberstring or null<= 50 characters

A non-unique user-defined number used to identify a shipment. If undefined, this will match the external_shipment_id of the shipment.

Warning: The shipment_number is limited to 50 characters. Any additional characters will be truncated.

ship_datestring(date-time)(date)^\d{4}-\d{2}-\d{2}(T\d{2}:\d{2}:\d{2}(\.\d+)?...

An ISO 8601 string that represents a date, but not a specific time. The value may contain a time component, but it will be set to 00:00:00 UTC by ShipEngine.

Example: "2018-09-23T00:00:00.000Z"
ship_toobject(partial_shipping_address_to)required

Any residential or business mailing address, anywhere in the world.

Note: Either name or company_name must be set. Both may be specified, if relevant.

ship_to.​namestringnon-emptyrequired

The name of a contact person at this address. This field may be set instead of - or in addition to - the company_name field.

Example: "John Doe"
ship_to.​phonestringnon-empty

The phone number of a contact person at this address. The format of this phone number varies depending on the country.

Example: "+1 204-253-9411 ext. 123"
ship_to.​emailstring or null

Email for the address owner.

Example: "example@example.com"
ship_to.​company_namestring or nullnon-empty

If this is a business address, then the company name should be specified here.

Example: "The Home Depot"
ship_to.​address_line1stringnon-emptyrequired

The first line of the street address. For some addresses, this may be the only line. Other addresses may require 2 or 3 lines.

Example: "1999 Bishop Grandin Blvd."
ship_to.​address_line2string or nullnon-empty

The second line of the street address. For some addresses, this line may not be needed.

Example: "Unit 408"
ship_to.​address_line3string or nullnon-empty

The third line of the street address. For some addresses, this line may not be needed.

Example: "Building #7"
ship_to.​city_localitystringnon-emptyrequired

The name of the city or locality

Example: "Winnipeg"
ship_to.​state_provincestringnon-emptyrequired

The state or province. For some countries (including the U.S.) only abbreviations are allowed. Other countries allow the full name or abbreviation.

Example: "Manitoba"
ship_to.​postal_codestring(postal_code)non-emptyrequired

postal code

Example: "78756-3717"
ship_to.​country_codestring(country_code)= 2 characters
Example: "CA"
ship_to.​address_residential_indicatorstring(address_residential_indicator)

Indicates whether this is a residential address.

Default "unknown"
Enum"unknown""yes""no"
Example: "no"
ship_to.​instructionsstring or nullnon-empty

Additional text about how to handle the shipment at this address.

ship_to.​geolocationArray of objects
ship_fromobject(partial_shipping_address)required

Any residential or business mailing address, anywhere in the world.

Note: Either name or company_name must be set. Both may be specified, if relevant.

ship_from.​namestringnon-emptyrequired

The name of a contact person at this address. This field may be set instead of - or in addition to - the company_name field.

Example: "John Doe"
ship_from.​phonestringnon-empty

The phone number of a contact person at this address. The format of this phone number varies depending on the country.

Example: "+1 204-253-9411 ext. 123"
ship_from.​emailstring or null

Email for the address owner.

Example: "example@example.com"
ship_from.​company_namestring or nullnon-empty

If this is a business address, then the company name should be specified here.

Example: "The Home Depot"
ship_from.​address_line1stringnon-emptyrequired

The first line of the street address. For some addresses, this may be the only line. Other addresses may require 2 or 3 lines.

Example: "1999 Bishop Grandin Blvd."
ship_from.​address_line2string or nullnon-empty

The second line of the street address. For some addresses, this line may not be needed.

Example: "Unit 408"
ship_from.​address_line3string or nullnon-empty

The third line of the street address. For some addresses, this line may not be needed.

Example: "Building #7"
ship_from.​city_localitystringnon-emptyrequired

The name of the city or locality

Example: "Winnipeg"
ship_from.​state_provincestringnon-emptyrequired

The state or province. For some countries (including the U.S.) only abbreviations are allowed. Other countries allow the full name or abbreviation.

Example: "Manitoba"
ship_from.​postal_codestring(postal_code)non-emptyrequired

postal code

Example: "78756-3717"
ship_from.​country_codestring(country_code)= 2 characters
Example: "CA"
ship_from.​address_residential_indicatorstring(address_residential_indicator)

Indicates whether this is a residential address.

Default "unknown"
Enum"unknown""yes""no"
Example: "no"
ship_from.​instructionsstring or nullnon-empty

Additional text about how to handle the shipment at this address.

warehouse_idstring or null(se_id)[ 1 .. 25 ] characters^se(-[a-z0-9]+)+$

The warehouse that the shipment is being shipped from. Either warehouse_id or ship_from must be specified.

Default null
Example: "se-28529731"
return_toobject(partial_shipping_address)

Any residential or business mailing address, anywhere in the world.

Note: Either name or company_name must be set. Both may be specified, if relevant.

is_returnboolean or null

An optional indicator if the shipment is intended to be a return. Defaults to false if not provided.

Default false
confirmationstring(delivery_confirmation)

The type of delivery confirmation that is required for this shipment.

Default "none"
Enum"none""delivery""signature""adult_signature""direct_signature""delivery_mailed""verbal_confirmation""delivery_code""age_verification_16_plus"
customsobject or null(international_shipment_options)

Customs information. This is usually only needed for international shipments.

Default null
advanced_optionsobject(advanced_shipment_options)

Advanced shipment options. These are entirely optional.

insurance_providerstring(insurance_provider)

The insurance provider to use for any insured packages in the shipment.

Default "none"
Enum"none""shipsurance""carrier""third_party"
order_source_codestring(order_source_name)

The order sources that are supported by ShipEngine

Enum"amazon_ca""amazon_us""brightpearl""channel_advisor""cratejoy""ebay""etsy""jane""groupon_goods""magento"
packagesArray of objects(package)non-empty

The packages in the shipment.

Note: Some carriers only allow one package per shipment. If you attempt to create a multi-package shipment for a carrier that doesn't allow it, an error will be returned.

comparison_rate_typestring or null

Calculate a rate for this shipment with the requested carrier using a ratecard that differs from the default. Only supported for UPS and USPS.

Example: "retail"
validate_addressstring(validate_address)

The possible validate address values

Default "no_validation"
Enum"no_validation""validate_only""validate_and_clean"
curl -i -X PUT \
  https://docs.shipstation.com/_mock/apis/shipengine/openapi/v1/shipments/se-28529731 \
  -H 'API-Key: YOUR_API_KEY_HERE' \
  -H 'Content-Type: application/json' \
  -d '{
    "carrier_id": "se-28529731",
    "service_code": "usps_first_class_mail",
    "shipping_rule_id": "se-28529731",
    "external_order_id": "string",
    "items": [],
    "tax_identifiers": [
      {
        "taxable_entity_type": "shipper",
        "identifier_type": "vat",
        "issuing_authority": "string",
        "value": "string"
      }
    ],
    "external_shipment_id": "string",
    "shipment_number": "string",
    "ship_date": "2018-09-23T00:00:00.000Z",
    "ship_to": {
      "name": "John Doe",
      "phone": "+1 204-253-9411 ext. 123",
      "email": "example@example.com",
      "company_name": "The Home Depot",
      "address_line1": "1999 Bishop Grandin Blvd.",
      "address_line2": "Unit 408",
      "address_line3": "Building #7",
      "city_locality": "Winnipeg",
      "state_province": "Manitoba",
      "postal_code": "78756-3717",
      "country_code": "CA",
      "address_residential_indicator": "no",
      "instructions": "string",
      "geolocation": [
        {
          "type": "what3words",
          "value": "cats.with.thumbs"
        }
      ]
    },
    "ship_from": {
      "name": "John Doe",
      "phone": "+1 204-253-9411 ext. 123",
      "email": "example@example.com",
      "company_name": "The Home Depot",
      "address_line1": "1999 Bishop Grandin Blvd.",
      "address_line2": "Unit 408",
      "address_line3": "Building #7",
      "city_locality": "Winnipeg",
      "state_province": "Manitoba",
      "postal_code": "78756-3717",
      "country_code": "CA",
      "address_residential_indicator": "no",
      "instructions": "string"
    },
    "warehouse_id": null,
    "return_to": {
      "name": "John Doe",
      "phone": "+1 204-253-9411 ext. 123",
      "email": "example@example.com",
      "company_name": "The Home Depot",
      "address_line1": "1999 Bishop Grandin Blvd.",
      "address_line2": "Unit 408",
      "address_line3": "Building #7",
      "city_locality": "Winnipeg",
      "state_province": "Manitoba",
      "postal_code": "78756-3717",
      "country_code": "CA",
      "address_residential_indicator": "no",
      "instructions": "string"
    },
    "is_return": false,
    "confirmation": "none",
    "customs": null,
    "advanced_options": {
      "bill_to_account": null,
      "bill_to_country_code": null,
      "bill_to_party": null,
      "bill_to_postal_code": null,
      "contains_alcohol": false,
      "delivered_duty_paid": false,
      "dry_ice": false,
      "dry_ice_weight": {
        "value": 0,
        "unit": "pound"
      },
      "non_machinable": false,
      "saturday_delivery": false,
      "fedex_freight": {
        "shipper_load_and_count": "string",
        "booking_confirmation": "string"
      },
      "use_ups_ground_freight_pricing": null,
      "freight_class": "77.5",
      "custom_field1": null,
      "custom_field2": null,
      "custom_field3": null,
      "origin_type": null,
      "additional_handling": null,
      "shipper_release": null,
      "collect_on_delivery": {
        "payment_type": "any",
        "payment_amount": {
          "currency": "string",
          "amount": 0
        }
      },
      "third_party_consignee": false,
      "dangerous_goods": false,
      "dangerous_goods_contact": {
        "name": "string",
        "phone": "string"
      },
      "windsor_framework_details": {
        "movement_indicator": "c2c",
        "not_at_risk": true
      },
      "license_number": "514785",
      "invoice_number": "IOC56888",
      "certificate_number": "784515",
      "fragile": true,
      "delivery-as-addressed": false,
      "return-after-first-attempt": false,
      "regulated_content_type": null
    },
    "insurance_provider": "none",
    "order_source_code": "amazon_ca",
    "packages": [
      {
        "package_id": "se-28529731",
        "package_code": "small_flat_rate_box",
        "package_name": "string",
        "weight": {
          "value": 0,
          "unit": "pound"
        },
        "dimensions": {
          "unit": "inch",
          "length": 0,
          "width": 0,
          "height": 0
        },
        "insured_value": {
          "currency": "USD",
          "amount": 0
        },
        "label_messages": {
          "reference1": null,
          "reference2": null,
          "reference3": null
        },
        "external_package_id": "string",
        "content_description": "Hand knitted wool socks",
        "products": []
      }
    ],
    "comparison_rate_type": "retail",
    "validate_address": "no_validation"
  }'

Responses

The request was a success.

Bodyapplication/json
shipment_idstring(se_id)[ 1 .. 25 ] characters^se(-[a-z0-9]+)+$read-onlyrequired

A string that uniquely identifies the shipment

Example: "se-28529731"
carrier_idstring(se_id)[ 1 .. 25 ] characters^se(-[a-z0-9]+)+$required

The carrier account that is billed for the shipping charges

Example: "se-28529731"
service_codestring(service_code)^[a-z0-9]+(_[a-z0-9-]+)* ?$required

A carrier service, such as fedex_ground, usps_first_class_mail, flat_rate_envelope, etc.

Example: "usps_first_class_mail"
shipping_rule_idstring(se_id)[ 1 .. 25 ] characters^se(-[a-z0-9]+)+$

ID of the shipping rule, which you want to use to automate carrier/carrier service selection for the shipment

Example: "se-28529731"
external_order_idstring or null

ID that the Order Source assignedd

itemsArray of objects(shipment_item)

Describe the packages included in this shipment as related to potential metadata that was imported from external order sources

Default []
tax_identifiersArray of objects or null(tax_identifier)
external_shipment_idstring or null<= 50 characters

A unique user-defined key to identify a shipment. This can be used to retrieve the shipment.

Warning: The external_shipment_id is limited to 50 characters. Any additional characters will be truncated.

shipment_numberstring or null<= 50 characters

A non-unique user-defined number used to identify a shipment. If undefined, this will match the external_shipment_id of the shipment.

Warning: The shipment_number is limited to 50 characters. Any additional characters will be truncated.

ship_datestring(date-time)(date)^\d{4}-\d{2}-\d{2}(T\d{2}:\d{2}:\d{2}(\.\d+)?...required

An ISO 8601 string that represents a date, but not a specific time. The value may contain a time component, but it will be set to 00:00:00 UTC by ShipEngine.

Example: "2018-09-23T00:00:00.000Z"
created_atstring(date-time)(date_time)^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d+)?(...read-onlyrequired

An ISO 8601 string that represents a date and time.

Example: "2018-09-23T15:00:00.000Z"
modified_atstring(date-time)(date_time)^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d+)?(...read-only

An ISO 8601 string that represents a date and time.

Example: "2018-09-23T15:00:00.000Z"
shipment_statusstring(shipment_status)read-onlyrequired

The current status of the shipment

Default "pending"
Enum"pending""processing""label_purchased""cancelled"
ship_toobject(partial_shipping_address_to)required

Any residential or business mailing address, anywhere in the world.

Note: Either name or company_name must be set. Both may be specified, if relevant.

ship_to.​namestringnon-emptyrequired

The name of a contact person at this address. This field may be set instead of - or in addition to - the company_name field.

Example: "John Doe"
ship_to.​phonestringnon-empty

The phone number of a contact person at this address. The format of this phone number varies depending on the country.

Example: "+1 204-253-9411 ext. 123"
ship_to.​emailstring or null

Email for the address owner.

Example: "example@example.com"
ship_to.​company_namestring or nullnon-empty

If this is a business address, then the company name should be specified here.

Example: "The Home Depot"
ship_to.​address_line1stringnon-emptyrequired

The first line of the street address. For some addresses, this may be the only line. Other addresses may require 2 or 3 lines.

Example: "1999 Bishop Grandin Blvd."
ship_to.​address_line2string or nullnon-empty

The second line of the street address. For some addresses, this line may not be needed.

Example: "Unit 408"
ship_to.​address_line3string or nullnon-empty

The third line of the street address. For some addresses, this line may not be needed.

Example: "Building #7"
ship_to.​city_localitystringnon-emptyrequired

The name of the city or locality

Example: "Winnipeg"
ship_to.​state_provincestringnon-emptyrequired

The state or province. For some countries (including the U.S.) only abbreviations are allowed. Other countries allow the full name or abbreviation.

Example: "Manitoba"
ship_to.​postal_codestring(postal_code)non-emptyrequired

postal code

Example: "78756-3717"
ship_to.​country_codestring(country_code)= 2 characters
Example: "CA"
ship_to.​address_residential_indicatorstring(address_residential_indicator)

Indicates whether this is a residential address.

Default "unknown"
Enum"unknown""yes""no"
Example: "no"
ship_to.​instructionsstring or nullnon-empty

Additional text about how to handle the shipment at this address.

ship_to.​geolocationArray of objects
ship_fromobject(partial_shipping_address)required

Any residential or business mailing address, anywhere in the world.

Note: Either name or company_name must be set. Both may be specified, if relevant.

ship_from.​namestringnon-emptyrequired

The name of a contact person at this address. This field may be set instead of - or in addition to - the company_name field.

Example: "John Doe"
ship_from.​phonestringnon-empty

The phone number of a contact person at this address. The format of this phone number varies depending on the country.

Example: "+1 204-253-9411 ext. 123"
ship_from.​emailstring or null

Email for the address owner.

Example: "example@example.com"
ship_from.​company_namestring or nullnon-empty

If this is a business address, then the company name should be specified here.

Example: "The Home Depot"
ship_from.​address_line1stringnon-emptyrequired

The first line of the street address. For some addresses, this may be the only line. Other addresses may require 2 or 3 lines.

Example: "1999 Bishop Grandin Blvd."
ship_from.​address_line2string or nullnon-empty

The second line of the street address. For some addresses, this line may not be needed.

Example: "Unit 408"
ship_from.​address_line3string or nullnon-empty

The third line of the street address. For some addresses, this line may not be needed.

Example: "Building #7"
ship_from.​city_localitystringnon-emptyrequired

The name of the city or locality

Example: "Winnipeg"
ship_from.​state_provincestringnon-emptyrequired

The state or province. For some countries (including the U.S.) only abbreviations are allowed. Other countries allow the full name or abbreviation.

Example: "Manitoba"
ship_from.​postal_codestring(postal_code)non-emptyrequired

postal code

Example: "78756-3717"
ship_from.​country_codestring(country_code)= 2 characters
Example: "CA"
ship_from.​address_residential_indicatorstring(address_residential_indicator)

Indicates whether this is a residential address.

Default "unknown"
Enum"unknown""yes""no"
Example: "no"
ship_from.​instructionsstring or nullnon-empty

Additional text about how to handle the shipment at this address.

warehouse_idstring or null(se_id)[ 1 .. 25 ] characters^se(-[a-z0-9]+)+$

The warehouse that the shipment is being shipped from. Either warehouse_id or ship_from must be specified.

Default null
Example: "se-28529731"
return_toobject(partial_shipping_address)required

Any residential or business mailing address, anywhere in the world.

Note: Either name or company_name must be set. Both may be specified, if relevant.

return_to.​namestringnon-emptyrequired

The name of a contact person at this address. This field may be set instead of - or in addition to - the company_name field.

Example: "John Doe"
return_to.​phonestringnon-empty

The phone number of a contact person at this address. The format of this phone number varies depending on the country.

Example: "+1 204-253-9411 ext. 123"
return_to.​emailstring or null

Email for the address owner.

Example: "example@example.com"
return_to.​company_namestring or nullnon-empty

If this is a business address, then the company name should be specified here.

Example: "The Home Depot"
return_to.​address_line1stringnon-emptyrequired

The first line of the street address. For some addresses, this may be the only line. Other addresses may require 2 or 3 lines.

Example: "1999 Bishop Grandin Blvd."
return_to.​address_line2string or nullnon-empty

The second line of the street address. For some addresses, this line may not be needed.

Example: "Unit 408"
return_to.​address_line3string or nullnon-empty

The third line of the street address. For some addresses, this line may not be needed.

Example: "Building #7"
return_to.​city_localitystringnon-emptyrequired

The name of the city or locality

Example: "Winnipeg"
return_to.​state_provincestringnon-emptyrequired

The state or province. For some countries (including the U.S.) only abbreviations are allowed. Other countries allow the full name or abbreviation.

Example: "Manitoba"
return_to.​postal_codestring(postal_code)non-emptyrequired

postal code

Example: "78756-3717"
return_to.​country_codestring(country_code)= 2 characters
Example: "CA"
return_to.​address_residential_indicatorstring(address_residential_indicator)

Indicates whether this is a residential address.

Default "unknown"
Enum"unknown""yes""no"
Example: "no"
return_to.​instructionsstring or nullnon-empty

Additional text about how to handle the shipment at this address.

is_returnboolean or null

An optional indicator if the shipment is intended to be a return. Defaults to false if not provided.

Default false
confirmationstring(delivery_confirmation)required

The type of delivery confirmation that is required for this shipment.

Default "none"
Enum"none""delivery""signature""adult_signature""direct_signature""delivery_mailed""verbal_confirmation""delivery_code""age_verification_16_plus"
customsobject or null(international_shipment_options)required

Customs information. This is usually only needed for international shipments.

Default null
customs.​contentsstring(package_contents)required

The type of contents in this shipment. This may impact import duties or customs treatment.

Default "merchandise"
Enum"merchandise""documents""gift""returned_goods""sample""other"
customs.​contents_explanationstring

Explanation for contents (required if the contents is provided as other)

customs.​non_deliverystring(non_delivery)required

Indicates what to do if a package is unable to be delivered.

Default "return_to_sender"
Enum"return_to_sender""treat_as_abandoned"
customs.​terms_of_trade_codestring(Allowed incoterms)

Specifies the supported terms of trade code (incoterms)

Enum"exw""fca""cpt""cip""dpu""dap""ddp""fas""fob""cfr"
customs.​declarationstring

Declaration statement to be placed on the commercial invoice

customs.​invoice_additional_detailsobject(invoice_additional_details)

The additional information to put on commercial invoice

customs.​importer_of_recordobject(importer_of_records)

importer of records address, anywhere in the world.

customs.​license_numberstring

The license number to be used in the customs.

customs.​certificate_numberstring

The certificate number to be used in the customs.

customs.​customs_itemsArray of objects(customs_item)>= 0 itemsDeprecated

Customs declarations for each item in the shipment. (Please provide this information under products inside packages)

Default []
advanced_optionsobject(advanced_shipment_options)required

Advanced shipment options. These are entirely optional.

advanced_options.​bill_to_accountstring or null

This field is used to bill shipping costs to a third party. This field must be used in conjunction with the bill_to_country_code, bill_to_party, and bill_to_postal_code fields.

Default null
advanced_options.​bill_to_country_codestring or null(country_code)= 2 characters
Default null
Example: "CA"
advanced_options.​bill_to_partystring or null(bill_to_party)

Indicates whether to bill shipping costs to the recipient or to a third-party. When billing to a third-party, the bill_to_account, bill_to_country_code, and bill_to_postal_code fields must also be set.

Default null
Enum"recipient""third_party"
advanced_options.​bill_to_postal_codestring or null

The postal code of the third-party that is responsible for shipping costs.

Default null
advanced_options.​contains_alcoholboolean

Indicates that the shipment contains alcohol.

Default false
advanced_options.​delivered_duty_paidboolean

Indicates that the shipper is paying the international delivery duties for this shipment. This option is supported by UPS, FedEx, and DHL Express.

Default false
advanced_options.​dry_iceboolean

Indicates if the shipment contain dry ice

Default false
advanced_options.​dry_ice_weightobject or null(weight)

The weight of the dry ice in the shipment

advanced_options.​non_machinableboolean

Indicates that the package cannot be processed automatically because it is too large or irregularly shaped. This is primarily for USPS shipments. See Section 1.2 of the USPS parcel standards for details.

Default false
advanced_options.​saturday_deliveryboolean

Enables Saturday delivery, if supported by the carrier.

Default false
advanced_options.​fedex_freightobject

Provide details for the Fedex freight service

advanced_options.​use_ups_ground_freight_pricingboolean or null

Whether to use UPS Ground Freight pricing. If enabled, then a freight_class must also be specified.

Default null
advanced_options.​freight_classstring or null

The National Motor Freight Traffic Association freight class, such as "77.5", "110", or "250".

Default null
Example: "77.5"
advanced_options.​custom_field1string or null<= 100 characters

An arbitrary field that can be used to store information about the shipment.

Default null
advanced_options.​custom_field2string or null<= 100 characters

An arbitrary field that can be used to store information about the shipment.

Default null
advanced_options.​custom_field3string or null<= 100 characters

An arbitrary field that can be used to store information about the shipment.

Default null
advanced_options.​origin_typestring or null(origin_type)

Indicates if the package will be picked up or dropped off by the carrier

Default null
Enum"pickup""drop_off"
advanced_options.​additional_handlingboolean or null

Indicate to the carrier that this shipment requires additional handling.

Default null
advanced_options.​shipper_releaseboolean or null
Default null
advanced_options.​collect_on_deliveryobject(collect_on_delivery)

Defer payment until package is delivered, instead of when it is ordered.

advanced_options.​third_party_consigneeboolean

Third Party Consignee option is a value-added service that allows the shipper to supply goods without commercial invoices being attached

Default false
advanced_options.​dangerous_goodsboolean

Indicates if the Dangerous goods are present in the shipment

Default false
advanced_options.​dangerous_goods_contactobject

Contact information for Dangerous goods

advanced_options.​windsor_framework_detailsobject

The Windsor framework is a new regulation in the UK that simplifies customs procedures for goods moved from the UK mainland to Northern Ireland.

advanced_options.​license_numberstring or null

license_number - This field was part of a historical implementation for passing customs-related data. For new integrations, please use the corresponding parameters within the shipment.customs object.

Default null
Example: "514785"
advanced_options.​invoice_numberstring or null

invoice_number - This field was part of a historical implementation for passing customs-related data. For new integrations, please use the corresponding parameters within the shipment.customs object.

Default null
Example: "IOC56888"
advanced_options.​certificate_numberstring or null

certificate_number - This field was part of a historical implementation for passing customs-related data. For new integrations, please use the corresponding parameters within the shipment.customs object.

Default null
Example: "784515"
advanced_options.​fragileboolean

Indicates that the contents of the package are fragile and should be handled with care.

Default false
Example: true
advanced_options.​delivery-as-addressedboolean

Instructs the carrier to deliver the package only to the exact address provided.

Default false
advanced_options.​return-after-first-attemptboolean

Ensures the shipment is immediately flagged for return to the sender if the initial delivery attempt fails.

Default false
advanced_options.​regulated_content_typestring or null(regulated_content_type)

Indicates the category of goods in the shipment that is subject to special regulatory or compliance requirements.

Default null
Enum"day_old_poultry""other_live_animal"
advanced_options.​property name*anyadditional property
insurance_providerstring(insurance_provider)required

The insurance provider to use for any insured packages in the shipment.

Default "none"
Enum"none""shipsurance""carrier""third_party"
tagsArray of objects(tag)>= 0 itemsread-onlyrequired

Arbitrary tags associated with this shipment. Tags can be used to categorize shipments, and shipments can be queried by their tags.

Default []
tags[].​tag_idinteger(int32)>= 1read-only

An integer uniquely identifying a tag.

Example: 8712
tags[].​namestringnon-emptyrequired

The tag name.

Example: "Fragile"
tags[].​colorstringnon-empty

A hex-coded string identifying the color of the tag.

Example: "#FF0000"
order_source_codestring(order_source_name)

The order sources that are supported by ShipEngine

Enum"amazon_ca""amazon_us""brightpearl""channel_advisor""cratejoy""ebay""etsy""jane""groupon_goods""magento"
packagesArray of objects(package)non-emptyrequired

The packages in the shipment.

Note: Some carriers only allow one package per shipment. If you attempt to create a multi-package shipment for a carrier that doesn't allow it, an error will be returned.

packages[].​shipment_package_idstring(se_id)[ 1 .. 25 ] characters^se(-[a-z0-9]+)+$read-only

A string that uniquely identifies this shipment package

Example: "se-28529731"
packages[].​package_idstring(se_id)[ 1 .. 25 ] characters^se(-[a-z0-9]+)+$

A string that uniquely identifies this package type

Example: "se-28529731"
packages[].​package_codestring(package_code)[ 1 .. 50 ] characters^[a-z0-9]+(_[a-z0-9]+)*$

A package type, such as thick_envelope, small_flat_rate_box, large_package, etc. Use the code package for custom or unknown package types.

Example: "small_flat_rate_box"
packages[].​package_namestring

The name of the of the package type

packages[].​weightobject(weight)required

The package weight

packages[].​weight.​valuenumber>= 0required

The weight, in the specified unit

packages[].​weight.​unitstring(weight_unit)required

The possible weight unit values

Enum"pound""ounce""gram""kilogram"
packages[].​dimensionsobject(dimensions)

The package dimensions

packages[].​insured_valueobject(monetary_value)

The insured value of the package. Requires the insurance_provider field of the shipment to be set.

Default {"currency":"USD","amount":0}
packages[].​label_messagesobject(label_messages)

Custom messages to print on the shipping label for the package. These are typically used to print invoice numbers, product numbers, or other internal reference numbers. Not all carriers support label messages. The number of lines and the maximum length of each line also varies by carrier.

CarrierMax linesMax line length
USPS (Stamps.com)360
FedEx335 for the first line. 30 for additional lines.
UPS235
OnTrac225
packages[].​external_package_idstringnon-empty

An external package id.

packages[].​tracking_numberstring(tracking_number)non-emptyread-only

The tracking number for the package. The format depends on the carrier.

Example: "1Z932R800392060079"
packages[].​content_descriptionstring or null[ 1 .. 35 ] characters

A short description of the package content. Required for shipments moving to, from, and through Mexico.

Example: "Hand knitted wool socks"
packages[].​productsArray of objects(products)>= 0 items

Details about products inside packages (Information provided would be used on custom documentation)

Default []
total_weightobject(weight)read-onlyrequired

The combined weight of all packages in the shipment

total_weight.​valuenumber>= 0required

The weight, in the specified unit

total_weight.​unitstring(weight_unit)required

The possible weight unit values

Enum"pound""ounce""gram""kilogram"
comparison_rate_typestring or null

Calculate a rate for this shipment with the requested carrier using a ratecard that differs from the default. Only supported for UPS and USPS.

Example: "retail"
zoneinteger or null(int32)>= 0read-only

Certain carriers base their rates off of custom zones that vary depending upon the ship_to and ship_from location

Example: 6
address_validationobject(address_validation_result)required

The address validation

address_validation.​statusstring(address_validation_status)required

The possible address validation status values

Enum"unverified""verified""warning""error"
address_validation.​original_addressobject(partial_address)required

Any residential or business mailing address, anywhere in the world.

Note: Either name or company_name must be set. Both may be specified, if relevant.

address_validation.​original_address.​namestringnon-emptyrequired

The name of a contact person at this address. This field may be set instead of - or in addition to - the company_name field.

Example: "John Doe"
address_validation.​original_address.​phonestringnon-empty

The phone number of a contact person at this address. The format of this phone number varies depending on the country.

Example: "+1 204-253-9411 ext. 123"
address_validation.​original_address.​emailstring or null

Email for the address owner.

Example: "example@example.com"
address_validation.​original_address.​company_namestring or nullnon-empty

If this is a business address, then the company name should be specified here.

Example: "The Home Depot"
address_validation.​original_address.​address_line1stringnon-emptyrequired

The first line of the street address. For some addresses, this may be the only line. Other addresses may require 2 or 3 lines.

Example: "1999 Bishop Grandin Blvd."
address_validation.​original_address.​address_line2string or nullnon-empty

The second line of the street address. For some addresses, this line may not be needed.

Example: "Unit 408"
address_validation.​original_address.​address_line3string or nullnon-empty

The third line of the street address. For some addresses, this line may not be needed.

Example: "Building #7"
address_validation.​original_address.​city_localitystringnon-emptyrequired

The name of the city or locality

Example: "Winnipeg"
address_validation.​original_address.​state_provincestringnon-emptyrequired

The state or province. For some countries (including the U.S.) only abbreviations are allowed. Other countries allow the full name or abbreviation.

Example: "Manitoba"
address_validation.​original_address.​postal_codestring(postal_code)non-emptyrequired

postal code

Example: "78756-3717"
address_validation.​original_address.​country_codestring(country_code)= 2 characters
Example: "CA"
address_validation.​original_address.​address_residential_indicatorstring(address_residential_indicator)

Indicates whether this is a residential address.

Default "unknown"
Enum"unknown""yes""no"
Example: "no"
address_validation.​matched_addressobject or null(partial_address)read-onlyrequired

Any residential or business mailing address, anywhere in the world.

Note: Either name or company_name must be set. Both may be specified, if relevant.

address_validation.​matched_address.​namestringnon-emptyrequired

The name of a contact person at this address. This field may be set instead of - or in addition to - the company_name field.

Example: "John Doe"
address_validation.​matched_address.​phonestringnon-empty

The phone number of a contact person at this address. The format of this phone number varies depending on the country.

Example: "+1 204-253-9411 ext. 123"
address_validation.​matched_address.​emailstring or null

Email for the address owner.

Example: "example@example.com"
address_validation.​matched_address.​company_namestring or nullnon-empty

If this is a business address, then the company name should be specified here.

Example: "The Home Depot"
address_validation.​matched_address.​address_line1stringnon-emptyrequired

The first line of the street address. For some addresses, this may be the only line. Other addresses may require 2 or 3 lines.

Example: "1999 Bishop Grandin Blvd."
address_validation.​matched_address.​address_line2string or nullnon-empty

The second line of the street address. For some addresses, this line may not be needed.

Example: "Unit 408"
address_validation.​matched_address.​address_line3string or nullnon-empty

The third line of the street address. For some addresses, this line may not be needed.

Example: "Building #7"
address_validation.​matched_address.​city_localitystringnon-emptyrequired

The name of the city or locality

Example: "Winnipeg"
address_validation.​matched_address.​state_provincestringnon-emptyrequired

The state or province. For some countries (including the U.S.) only abbreviations are allowed. Other countries allow the full name or abbreviation.

Example: "Manitoba"
address_validation.​matched_address.​postal_codestring(postal_code)non-emptyrequired

postal code

Example: "78756-3717"
address_validation.​matched_address.​country_codestring(country_code)= 2 characters
Example: "CA"
address_validation.​matched_address.​address_residential_indicatorstring(address_residential_indicator)

Indicates whether this is a residential address.

Default "unknown"
Enum"unknown""yes""no"
Example: "no"
address_validation.​messagesArray of objects(response_message)read-onlyrequired

The list of messages that were generated during the address validation request.

Default []
address_validation.​messages[].​codestring(address_validation_code)read-onlyrequired

The error codes that can be returned by the address validation API

Enum"a1000""a1001""a1002""a1003""a1004""a1005""a1006""a1007""a1008""r1000"
address_validation.​messages[].​messagestringnon-emptyread-onlyrequired

Message explaining the address validation error

Example: "Invalid Postal Code"
address_validation.​messages[].​typestring(address_validation_message_type)read-onlyrequired

The different types of messages that can be returned by the address validation API

Enum"error""warning""info"
address_validation.​messages[].​detail_codestring or null(address_validation_detail_code)required

The detailed error codes that can be returned by the address validation API

Enum"unsupported_country""non_supported_country""minimum_postal_code_verification_failed""street_does_not_match_unique_street_name""multiple_directionals""multiple_matches""suite_not_valid""suite_missing""incompatible_paired_labels""invalid_house_number"
errorsArray of stringsDeprecatedread-onlyrequired

An array of errors that occurred while creating shipment.

Example: ["Parameter value '100000000.00' is out of range."]
Response
application/json
{ "shipment_id": "se-28529731", "carrier_id": "se-28529731", "service_code": "usps_first_class_mail", "shipping_rule_id": "se-28529731", "external_order_id": "string", "items": [], "tax_identifiers": [ {} ], "external_shipment_id": "string", "shipment_number": "string", "ship_date": "2018-09-23T00:00:00.000Z", "created_at": "2018-09-23T15:00:00.000Z", "modified_at": "2018-09-23T15:00:00.000Z", "shipment_status": "pending", "ship_to": { "name": "John Doe", "phone": "+1 204-253-9411 ext. 123", "email": "example@example.com", "company_name": "The Home Depot", "address_line1": "1999 Bishop Grandin Blvd.", "address_line2": "Unit 408", "address_line3": "Building #7", "city_locality": "Winnipeg", "state_province": "Manitoba", "postal_code": "78756-3717", "country_code": "CA", "address_residential_indicator": "no", "instructions": "string", "geolocation": [] }, "ship_from": { "name": "John Doe", "phone": "+1 204-253-9411 ext. 123", "email": "example@example.com", "company_name": "The Home Depot", "address_line1": "1999 Bishop Grandin Blvd.", "address_line2": "Unit 408", "address_line3": "Building #7", "city_locality": "Winnipeg", "state_province": "Manitoba", "postal_code": "78756-3717", "country_code": "CA", "address_residential_indicator": "no", "instructions": "string" }, "warehouse_id": null, "return_to": { "name": "John Doe", "phone": "+1 204-253-9411 ext. 123", "email": "example@example.com", "company_name": "The Home Depot", "address_line1": "1999 Bishop Grandin Blvd.", "address_line2": "Unit 408", "address_line3": "Building #7", "city_locality": "Winnipeg", "state_province": "Manitoba", "postal_code": "78756-3717", "country_code": "CA", "address_residential_indicator": "no", "instructions": "string" }, "is_return": false, "confirmation": "none", "customs": null, "advanced_options": { "bill_to_account": null, "bill_to_country_code": null, "bill_to_party": null, "bill_to_postal_code": null, "contains_alcohol": false, "delivered_duty_paid": false, "dry_ice": false, "dry_ice_weight": {}, "non_machinable": false, "saturday_delivery": false, "fedex_freight": {}, "use_ups_ground_freight_pricing": null, "freight_class": "77.5", "custom_field1": null, "custom_field2": null, "custom_field3": null, "origin_type": null, "additional_handling": null, "shipper_release": null, "collect_on_delivery": {}, "third_party_consignee": false, "dangerous_goods": false, "dangerous_goods_contact": {}, "windsor_framework_details": {}, "license_number": "514785", "invoice_number": "IOC56888", "certificate_number": "784515", "fragile": true, "delivery-as-addressed": false, "return-after-first-attempt": false, "regulated_content_type": null }, "insurance_provider": "none", "tags": [], "order_source_code": "amazon_ca", "packages": [ {} ], "total_weight": { "value": 0, "unit": "pound" }, "comparison_rate_type": "retail", "zone": 6, "errors": [ "Parameter value '100000000.00' is out of range." ], "address_validation": { "status": "unverified", "original_address": {}, "matched_address": {}, "messages": [] } }

Cancel a shipment

Request

Mark a shipment cancelled, if it is no longer needed or being used by your organized. Any label associated with the shipment needs to be voided first An example use case would be if a batch label creation job is going to run at a set time and only queries pending shipments. Marking a shipment as cancelled would remove it from this process

Security
api_key
Path
shipment_idstring(se_id)[ 1 .. 25 ] characters^se(-[a-z0-9]+)+$required

Shipment ID

Example: se-28529731
curl -i -X PUT \
  https://docs.shipstation.com/_mock/apis/shipengine/openapi/v1/shipments/se-28529731/cancel \
  -H 'API-Key: YOUR_API_KEY_HERE'

Responses

The request was successful.

Body
string(empty_response_body)= 0 characters
Response
No response example

Get shipment rates

Request

Get Rates for the shipment information associated with the shipment ID

Security
api_key
Path
shipment_idstring(se_id)[ 1 .. 25 ] characters^se(-[a-z0-9]+)+$required

Shipment ID

Example: se-28529731
Query
created_at_startstring(date-time)

Used to create a filter for when a resource was created (ex. A shipment that was created after a certain time)

Example: created_at_start=2019-03-12T19:24:13.657Z
curl -i -X GET \
  'https://docs.shipstation.com/_mock/apis/shipengine/openapi/v1/shipments/se-28529731/rates?created_at_start=2019-03-12T19%3A24%3A13.657Z' \
  -H 'API-Key: YOUR_API_KEY_HERE'

Responses

The request was a success.

Bodyapplication/json
ratesArray of objects(rate)read-onlyrequired

An array of shipment rates

rates[].​rate_idstring(se_id)[ 1 .. 25 ] characters^se(-[a-z0-9]+)+$read-onlyrequired

A string that uniquely identifies the rate

Example: "se-28529731"
rates[].​rate_typestring(rate_type)read-onlyrequired

The possible rate type values

Enum"check""shipment"
rates[].​carrier_idstring(se_id)[ 1 .. 25 ] characters^se(-[a-z0-9]+)+$read-onlyrequired

A string that uniquely identifies the carrier

Example: "se-28529731"
rates[].​shipping_amountobject(monetary_value)read-onlyrequired

The shipping amount. Should be added with confirmation_amount, insurance_amount and other_amount to calculate the total purchase price.

rates[].​shipping_amount.​currencystring(currency)required

The currencies that are supported by ShipEngine are the ones that specified by ISO 4217: https://www.iso.org/iso-4217-currency-codes.html

rates[].​shipping_amount.​amountnumber>= 0required

The monetary amount, in the specified currency.

rates[].​insurance_amountobject(monetary_value)read-onlyrequired

The insurance amount. Should be added with shipping_amount, confirmation_amount and other_amount to calculate the total purchase price.

rates[].​insurance_amount.​currencystring(currency)required

The currencies that are supported by ShipEngine are the ones that specified by ISO 4217: https://www.iso.org/iso-4217-currency-codes.html

rates[].​insurance_amount.​amountnumber>= 0required

The monetary amount, in the specified currency.

rates[].​confirmation_amountobject(monetary_value)read-onlyrequired

The confirmation amount. Should be added with shipping_amount, insurance_amount and other_amount to calculate the total purchase price.

rates[].​confirmation_amount.​currencystring(currency)required

The currencies that are supported by ShipEngine are the ones that specified by ISO 4217: https://www.iso.org/iso-4217-currency-codes.html

rates[].​confirmation_amount.​amountnumber>= 0required

The monetary amount, in the specified currency.

rates[].​other_amountobject(monetary_value)read-onlyrequired

Any other charges associated with this rate. Should be added with shipping_amount, insurance_amount and confirmation_amount to calculate the total purchase price.

rates[].​other_amount.​currencystring(currency)required

The currencies that are supported by ShipEngine are the ones that specified by ISO 4217: https://www.iso.org/iso-4217-currency-codes.html

rates[].​other_amount.​amountnumber>= 0required

The monetary amount, in the specified currency.

rates[].​requested_comparison_amountobject(monetary_value)read-only

The total shipping cost for the specified comparison_rate_type.

rates[].​tax_amountobject(monetary_value)read-only

Tariff and additional taxes associated with an international shipment.

rates[].​rate_detailsArray of objects(rate_detail)read-only

A list of rate details that are associated with this rate. This is useful for displaying a breakdown of the rate to the user.

rates[].​zoneinteger or null(int32)>= 0read-onlyrequired

Certain carriers base their rates off of custom zones that vary depending upon the ship_to and ship_from location

Example: 6
rates[].​package_typestring or nullnon-emptyread-onlyrequired

package type that this rate was estimated for

Example: "package"
rates[].​delivery_daysinteger(int32)>= 1read-only

The number of days estimated for delivery, this will show the actual delivery time if for example, the package gets shipped on a Friday

Example: 5
rates[].​guaranteed_servicebooleanread-onlyrequired

Indicates if the rate is guaranteed.

rates[].​estimated_delivery_datestring(date-time)(date)^\d{4}-\d{2}-\d{2}(T\d{2}:\d{2}:\d{2}(\.\d+)?...read-only

An ISO 8601 string that represents a date, but not a specific time. The value may contain a time component, but it will be set to 00:00:00 UTC by ShipEngine.

Example: "2018-09-23T00:00:00.000Z"
rates[].​carrier_delivery_daysstringnon-emptyread-only

The carrier delivery days

rates[].​ship_datestring(date-time)non-emptyread-only

ship date

rates[].​negotiated_ratebooleanread-onlyrequired

Indicates if the rates been negotiated

rates[].​service_typestringnon-emptyread-onlyrequired

service type

rates[].​service_codestringnon-emptyread-onlyrequired

service code for the rate

rates[].​trackablebooleanread-onlyrequired

Indicates if rate is trackable

rates[].​carrier_codestringnon-emptyread-onlyrequired

carrier code

rates[].​carrier_nicknamestringnon-emptyread-onlyrequired

carrier nickname

rates[].​carrier_friendly_namestringnon-emptyread-onlyrequired

carrier friendly name

rates[].​validation_statusstring(validation_status)read-onlyrequired

The possible validation status values

Enum"valid""invalid""has_warnings""unknown"
rates[].​warning_messagesArray of strings>= 0 itemsread-onlyrequired

The warning messages

rates[].​error_messagesArray of strings>= 0 itemsread-onlyrequired

The error messages

rates[].​rate_attributesArray of objects

Optional attributes that indicate the most profitable rates

invalid_ratesArray of objects(rate)read-onlyrequired

An array of invalid shipment rates

Default []
invalid_rates[].​rate_idstring(se_id)[ 1 .. 25 ] characters^se(-[a-z0-9]+)+$read-onlyrequired

A string that uniquely identifies the rate

Example: "se-28529731"
invalid_rates[].​rate_typestring(rate_type)read-onlyrequired

The possible rate type values

Enum"check""shipment"
invalid_rates[].​carrier_idstring(se_id)[ 1 .. 25 ] characters^se(-[a-z0-9]+)+$read-onlyrequired

A string that uniquely identifies the carrier

Example: "se-28529731"
invalid_rates[].​shipping_amountobject(monetary_value)read-onlyrequired

The shipping amount. Should be added with confirmation_amount, insurance_amount and other_amount to calculate the total purchase price.

invalid_rates[].​shipping_amount.​currencystring(currency)required

The currencies that are supported by ShipEngine are the ones that specified by ISO 4217: https://www.iso.org/iso-4217-currency-codes.html

invalid_rates[].​shipping_amount.​amountnumber>= 0required

The monetary amount, in the specified currency.

invalid_rates[].​insurance_amountobject(monetary_value)read-onlyrequired

The insurance amount. Should be added with shipping_amount, confirmation_amount and other_amount to calculate the total purchase price.

invalid_rates[].​insurance_amount.​currencystring(currency)required

The currencies that are supported by ShipEngine are the ones that specified by ISO 4217: https://www.iso.org/iso-4217-currency-codes.html

invalid_rates[].​insurance_amount.​amountnumber>= 0required

The monetary amount, in the specified currency.

invalid_rates[].​confirmation_amountobject(monetary_value)read-onlyrequired

The confirmation amount. Should be added with shipping_amount, insurance_amount and other_amount to calculate the total purchase price.

invalid_rates[].​confirmation_amount.​currencystring(currency)required

The currencies that are supported by ShipEngine are the ones that specified by ISO 4217: https://www.iso.org/iso-4217-currency-codes.html

invalid_rates[].​confirmation_amount.​amountnumber>= 0required

The monetary amount, in the specified currency.

invalid_rates[].​other_amountobject(monetary_value)read-onlyrequired

Any other charges associated with this rate. Should be added with shipping_amount, insurance_amount and confirmation_amount to calculate the total purchase price.

invalid_rates[].​other_amount.​currencystring(currency)required

The currencies that are supported by ShipEngine are the ones that specified by ISO 4217: https://www.iso.org/iso-4217-currency-codes.html

invalid_rates[].​other_amount.​amountnumber>= 0required

The monetary amount, in the specified currency.

invalid_rates[].​requested_comparison_amountobject(monetary_value)read-only

The total shipping cost for the specified comparison_rate_type.

invalid_rates[].​tax_amountobject(monetary_value)read-only

Tariff and additional taxes associated with an international shipment.

invalid_rates[].​rate_detailsArray of objects(rate_detail)read-only

A list of rate details that are associated with this rate. This is useful for displaying a breakdown of the rate to the user.

invalid_rates[].​zoneinteger or null(int32)>= 0read-onlyrequired

Certain carriers base their rates off of custom zones that vary depending upon the ship_to and ship_from location

Example: 6
invalid_rates[].​package_typestring or nullnon-emptyread-onlyrequired

package type that this rate was estimated for

Example: "package"
invalid_rates[].​delivery_daysinteger(int32)>= 1read-only

The number of days estimated for delivery, this will show the actual delivery time if for example, the package gets shipped on a Friday

Example: 5
invalid_rates[].​guaranteed_servicebooleanread-onlyrequired

Indicates if the rate is guaranteed.

invalid_rates[].​estimated_delivery_datestring(date-time)(date)^\d{4}-\d{2}-\d{2}(T\d{2}:\d{2}:\d{2}(\.\d+)?...read-only

An ISO 8601 string that represents a date, but not a specific time. The value may contain a time component, but it will be set to 00:00:00 UTC by ShipEngine.

Example: "2018-09-23T00:00:00.000Z"
invalid_rates[].​carrier_delivery_daysstringnon-emptyread-only

The carrier delivery days

invalid_rates[].​ship_datestring(date-time)non-emptyread-only

ship date

invalid_rates[].​negotiated_ratebooleanread-onlyrequired

Indicates if the rates been negotiated

invalid_rates[].​service_typestringnon-emptyread-onlyrequired

service type

invalid_rates[].​service_codestringnon-emptyread-onlyrequired

service code for the rate

invalid_rates[].​trackablebooleanread-onlyrequired

Indicates if rate is trackable

invalid_rates[].​carrier_codestringnon-emptyread-onlyrequired

carrier code

invalid_rates[].​carrier_nicknamestringnon-emptyread-onlyrequired

carrier nickname

invalid_rates[].​carrier_friendly_namestringnon-emptyread-onlyrequired

carrier friendly name

invalid_rates[].​validation_statusstring(validation_status)read-onlyrequired

The possible validation status values

Enum"valid""invalid""has_warnings""unknown"
invalid_rates[].​warning_messagesArray of strings>= 0 itemsread-onlyrequired

The warning messages

invalid_rates[].​error_messagesArray of strings>= 0 itemsread-onlyrequired

The error messages

rate_request_idstring(se_id)[ 1 .. 25 ] characters^se(-[a-z0-9]+)+$read-onlyrequired

A string that uniquely identifies the rate request

Example: "se-28529731"
shipment_idstring(se_id)[ 1 .. 25 ] characters^se(-[a-z0-9]+)+$read-onlyrequired

A string that uniquely identifies the shipment

Example: "se-28529731"
created_atstring(date-time)(se_id)[ 1 .. 25 ] characters^se(-[a-z0-9]+)+$required

When the rate was created

Example: "se-28529731"
statusstring(rate_response_status)read-onlyrequired

The possible rate response status values

Enum"working""completed""partial""error"
errorsArray of objects(error)required
errors[].​error_sourcestring(error_source)required

The source of the error, as indicated by the name this informs us if the API call failed because of the carrier, the order source, or the ShipEngine API itself.

Enum"carrier""order_source""shipengine"
errors[].​error_typestring(error_type)required

The type of error

Enum"account_status""business_rules""validation""security""system""integrations"
errors[].​error_codestring(error_code)required

The error code specified for the failed API Call

Enum"auto_fund_not_supported""batch_cannot_be_modified""carrier_conflict""carrier_disconnected""carrier_not_connected""carrier_not_supported""confirmation_not_supported""default_warehouse_cannot_be_deleted""field_conflict""field_value_required"
errors[].​messagestringnon-emptyread-onlyrequired

An error message associated with the failed API call

Example: "Body of request cannot be null."
errors[].​carrier_idstring(se_id)[ 1 .. 25 ] characters^se(-[a-z0-9]+)+$read-only

A string that uniquely identifies the carrier that generated the error.

Example: "se-28529731"
errors[].​carrier_codestring(carrier_code)^[a-z0-9]+(_[a-z0-9]+)*$read-only

A shipping carrier, such as fedex, dhl_express, stamps_com, etc.

Example: "dhl_express"
errors[].​field_namestringread-only

The name of the field that caused the error

Example: "shipment.ship_to.phone_number"
Response
application/json
{ "rates": [ {} ], "invalid_rates": [], "rate_request_id": "se-28529731", "shipment_id": "se-28529731", "created_at": "se-28529731", "status": "working", "errors": [ {} ] }

Update shipments tags

Request

Update Shipments Tags

Security
api_key
Bodyapplication/jsonrequired
shipments_tagsArray of objects
Example: [{"shipment_id":"se-1014296","tags":["Fragile","International"]},{"shipment_id":"se-1014297","tags":["Fragile","International"]}]
curl -i -X PUT \
  https://docs.shipstation.com/_mock/apis/shipengine/openapi/v1/shipments/tags \
  -H 'API-Key: YOUR_API_KEY_HERE' \
  -H 'Content-Type: application/json' \
  -d '{
    "shipments_tags": [
      {
        "shipment_id": "se-1014296",
        "tags": [
          "Fragile",
          "International"
        ]
      },
      {
        "shipment_id": "se-1014297",
        "tags": [
          "Fragile",
          "International"
        ]
      }
    ]
  }'

Responses

NoContent

Response
No content

Get shipment tags

Request

Get Shipment tags based on its ID

Security
api_key
Path
shipment_idstring(se_id)[ 1 .. 25 ] characters^se(-[a-z0-9]+)+$required

Shipment ID

Example: se-28529731
curl -i -X GET \
  https://docs.shipstation.com/_mock/apis/shipengine/openapi/v1/shipments/se-28529731/tags \
  -H 'API-Key: YOUR_API_KEY_HERE'

Responses

The request was a success.

Bodyapplication/json
tagsArray of strings(tag_name)required
Example: ["Fragile"]
Response
application/json
{ "tags": [ "Fragile" ] }

Add tag to shipment

Request

Add a tag to the shipment object

Security
api_key
Path
shipment_idstring(se_id)[ 1 .. 25 ] characters^se(-[a-z0-9]+)+$required

Shipment ID

Example: se-28529731
tag_namestring(tag_name)non-emptyrequired

Tags are arbitrary strings that you can use to categorize shipments. For example, you may want to use tags to distinguish between domestic and international shipments, or between insured and uninsured shipments. Or maybe you want to create a tag for each of your customers so you can easily retrieve every shipment for a customer.

Example: Fragile
curl -i -X POST \
  https://docs.shipstation.com/_mock/apis/shipengine/openapi/v1/shipments/se-28529731/tags/Fragile \
  -H 'API-Key: YOUR_API_KEY_HERE'

Responses

The requested object creation was a success.

Bodyapplication/json
tagsArray of strings(tag_name)required
Example: ["Fragile"]
Response
application/json
{ "tags": [ "Fragile" ] }

Remove tag from shipment

Request

Remove an existing tag from the Shipment object

Security
api_key
Path
shipment_idstring(se_id)[ 1 .. 25 ] characters^se(-[a-z0-9]+)+$required

Shipment ID

Example: se-28529731
tag_namestring(tag_name)non-emptyrequired

Tags are arbitrary strings that you can use to categorize shipments. For example, you may want to use tags to distinguish between domestic and international shipments, or between insured and uninsured shipments. Or maybe you want to create a tag for each of your customers so you can easily retrieve every shipment for a customer.

Example: Fragile
curl -i -X DELETE \
  https://docs.shipstation.com/_mock/apis/shipengine/openapi/v1/shipments/se-28529731/tags/Fragile \
  -H 'API-Key: YOUR_API_KEY_HERE'

Responses

The request was successful.

Body
string(empty_response_body)= 0 characters
Response
No response example

Tags

tags

Operations

Tokens

Manage authentication tokens for secure API access.

Operations

Tracking

Track packages across any of our 20+ supported carrier accounts and create tracking events to keep your customers up-to-date. Easily integrate real-time tracking information for shipments into your app, email, or SMS.

Operations

Warehouses

warehouses

Operations

Webhooks

Webhooks are a powerful feature of ShipEngine that can save you from sending repeated polling requests to check on the state of something. With webhooks, ShipEngine will automatically contact your servers when the state changes. This can include parcel tracking events, notification of the completion of a batch operation, or new sales orders.

Operations