How to Choose a Shipping API

Published on October 13, 2022
Written by
Filed under Shipping News
Read time 16 Minutes
  1. What is a Shipping API?
  2. Carriers
  3. Scalability
  4. Support
  5. Technology

{ 1 } What is a Shipping API?

A shipping API offers a robust, customizable solution to the challenges of shipping. Ultimately, a shipping API is a group of APIs that can be used individually or together to accomplish tasks such as generating labels, retrieving rates, producing end of day forms, and updating tracking. There’s no need to go through the tedious process of directly integrating your website/OMS with carriers individually. Let’s take a closer look at a shipping API’s key features and its benefits.

Key functions of a shipping API:

— Generate Labels
— Give Rates
— Provide Tracking Updates
— Easily Integrate with Carriers
— Address Validation
— Connect Carriers
— Create Shipping Manifests
— Void Returns

Label Creation

Though shipping APIs serve additional purposes, their primary function is to generate shipping labels. Once you connect your carrier accounts to a shipping API, shipment data is transmitted to a create label API endpoint. The shipping API then transmits the shipment data to the carrier. The carrier then returns label data. The label data contains a URL that is used to download the label. It can then be printed immediately or saved for later.

How to download a label

There are generally two ways to download a label. You either print it immediately upon creation or generate the label and print it later in two separate API calls.

Generate and Download Immediately

When your label data is retrieved from the carrier, one parameter that is returned is the label_download_href_url. This is what allows you to download and print the shipping label. YYou can also send this download URL via email, SMS, or other means to let a fulfillment company retrieve and generate the labels. Using a curl command, the request returned contains a label’s unique secure auth token that is used to download and print the label. (Label data is generally stored for around 90 days.)

Generate and Download Separately

If you wish to download a label when it is generated, there is usually a parameter you set when retrieving the label data that allows you to print immediately. It is usually named something like: “label_download_type”: “inline”,.

Address Validation

Address validation lets you cross-reference a database to approve or correct a ship to address. Though the main function is to standardize invalid addresses, this features can also distinguish between residential and commercial addresses. It helps minimize additional fees such as address correction surcharges and helps ref1ect proper residential surcharges.

Rate Comparison

You don’t use the same shipping method for every order. And finding the best fit for a shipment doesn’t have to be a guessing game. Rate shopping between multiple carriers and their services lets you view all available shipping rates for any connected carriers. With these available rates, it is possible to build features that automatically assign services based on rate.

Similarly, features like “Estimate a Rate” allow you to see ballpark rates with information as minimal as ship from postal code, ship to postal code, weight, and dimensions. This works well if you want to build a rating feature into your app that lets you or customers quickly view available shipping rates.


A robust tracking solution is key for keeping you and your customers up to date on a shipment’s progress. Reduce customer inquiries by finding a shipping API that offers real-time tracking updates that can be accessed through an app, email, or SMS.

New call-to-action

{ 2 } Carriers & Fulfillment

One way to measure the success of a shipping API is by the number of carrier integrations. The more carriers you have available to you, the more likely your shipping API is to scale with your business. Furthermore, a long list of partners and carrier integrations are signs that an API is both stable and dependable.

Quicker Connections

Although shipping APIs don’t have a UI, your account should come with a dashboard. A dashboard allows you to quickly connect your carrier accounts through a carrier connection portal. This can be a much quicker alternative to having developers connect to the carriers directly. Alternatively, your team can still integrate carriers programmatically if desired. Using the dashboard’s carrier connection portal, you can quickly and easily get started with all your carriers and start shipping right away.

Discounted Rates

In order to qualify for discounts through a carrier, you often have to negotiate contracted rates directly with the carrier, when you have a high enough shipping volume. Luckily, the discounted rates available through a shipping API are usually available to you immediately after signing up. These discounts can be significant, sometimes saving up to 40% on rates. Furthermore, they usually require no contract and are available regardless of your shipping volume.

New call-to-action

{ 3 } Scalability

A shipping API can grow with your order management system a lot more easily than a standalone shipping application. Since shipping APIs cater to larger ecommerce companies, they’ll be able to better accommodate your growth. When onboarding, keep an eye out for the following scalable features.


Pay As You Go: Pay per shipment—typically between $0.01-$0.05 per shipment.

Subscription: A subscription-based plan generally allows for between 5,000 and 10,000 shipments per month.

Volume Based: A negotiated plan that’s typically for larger accounts doing more than 5,000-10,000 shipments per month. Additional support and more advanced features can be included at this plan level.


The length of time it takes to receive an API response is almost imperceivable to the human eye. However, once you start making hundreds or thousands of calls per hour, latency becomes more noticeable. An API call should take a subsecond. Anything taking more than 0.5 seconds can become noticeably slow and those lost seconds can really start adding up.

Rate Limits

The number of calls you’re allowed to make to a system’s API endpoints within a certain timeframe (frequently per minute or hour) is your rate limit. Once you exceed your rate limit, a (429) Too Many Requests error is returned. The number of API calls you’re allowed to make varies from system to system. However, if your business grows beyond your current rate limit, you can pay to increase it. (Please note that 1 call does not equal 1 order. It is possible for a single API call to update thousands of shipments.)

New call-to-action

{ 4 } Support

The support a shipping API gives its users goes far beyond an API guide. Having dedicated onboarding, account managers, and points of contact will help set you up for success as soon as you sign up. Additional features like sandboxing environments allow you to test the capabilities of an API without the stress of using live accounts or funds.


Complete documentation is necessary for any API program. If the call isn’t properly documented, you won’t be able to make the call. Easy to read, thorough documentation allows for a quicker, more efficient integration with a shipping API.

Feature Support

You may not always be able to contact the developer(s) that set up your API integrations, but having direct contact with an API support team is a great start. Being able to gain insight into errors or why a call isn’t responding is something you should look for in your shipping API. You don’t need to be a shipping expert to integrate with a shipping API. A major bonus of an API support team is that it can provide setup advice and additional context about a carrier’s functionality. This is also a great resource for any contracted developers that may need additional context for why a specific call functions the way it does.


A sandbox account allows you to test API calls outside of a production environment. This is an important tool when choosing a shipping API, because the sandbox can give you the freedom to test out your integration without affecting real data or using actual funding. Sandbox accounts are often a complimentary feature. An added bonus is if they offer a staging carrier account that lets you generate sample rates and labels without using a live account or real funds.

New call-to-action

{ 5 } Technology

A shipping API gives resources and features that greatly reduce the dev time needed to incorporate shipping functionality into your app. Detailed documentation is a great start, but there are a few more dev resources that really expedite the integration process. An expansive knowledge base containing sample calls and SDKs will give engineers the tools necessary to correctly build the desired functionality. Furthermore, a shipping API can be a developer’s ace in the hole for quickly integrating a carrier’s functionality into an app. The following points are important to remember when looking for a solution.

Native SDKs

An SDK (Software Development Kit) allows you to build the shipping functionality much more quickly. For instance, there are SDKs that function to integrate a shipping API to an interface/platform using a specific programming language (C#, Java, JavaScript, PHP, Python, Ruby). There can also be SDKs devoted to a specific action or function, such as address validation. Check the developer guide for any available SDKs. Sometimes, SDKs are not displayed publicly. In this case, reach out to a support/tech/onboarding agent in order to access them.

Let’s compare APIs and SDKs. If you were making tacos, an API would be a cookbook with a lot of different recipes in it. Search for “how to make tacos,” and the API returns an answer. An SDK, however, is more like a taco dinner kit with salsa, seasoning, tortillas, etc. in the box with the cooking instructions on the back. Through detailed examples, pre-defined code libraries, and other tools, an SDK is a “one-stop shop” for building a specific API integration.

Old Tech (Carriers) vs New Tech (Shipping APIs)

Carriers don’t always prioritize upgrading to newer RESTful APIs as readily as a shipping API does. Building a direct integration with a carrier may require working with tedious older SOAP APIs, XMLRPC, or even something like CSV-over-FTP. Perhaps the strongest selling point for a shipping API is that the connection has been built to the carrier. Simply log into your shipping API web portal and enter basic account information or POST a simple curl request to connect. Adding a carrier account to a shipping API can take less time than it does to find a carrier’s API docs.

Design and Uniformity

A good indicator of a strong codebase is uniformity. For instance, if one field name has multiple spellings or iterations, this can be a sign of poor QAing or a high frequency of turnover between a product’s releases. An oversight like this can be missed and cause your calls to error out.

Example: Make sure that terms like “ID” have the same structure throughout a system’s documentation for various fields: shipment_id, trackingID, & carrierId.

Take the Next Step With a Shipping API

Are you ready to find the best shipping API for your business? Consider the ideas shared in this ebook, and use the checklist on the next page as you evaluate options and make a decision. The checklist includes simple questions you can ask at different steps in your search for the right shipping API.

When you have other questions or need more guidance, you can always reach out to an expert here at ShipEngine. Get in touch by visiting

Written by

James Messer

James Messer is a copywriter specializing in shipping, logistics, and ecommerce.

Want to learn more about ShipStation?