Best Practices

ShipEngine is a flexible API solution that can be utilized in multiple ways. However, there are best practices we recommend when using and integrating with ShipEngine.

Error Logging

It is important to set up error logging for easier troubleshooting both locally and when contacting ShipEngine support.

The most important piece of information that can help support find your requests is the request_id. For faster and more efficient troubleshooting, be sure to log this value from the response data.

Monitor Request Polling

ShipEngine implements usage limits to ensure consistent performance and uptimes. When testing or planning your use of ShipEngine, be sure to monitor the amount of requests you are making. Effectively monitoring your requests will also help to avoid unnecessary charges for using ShipEngine.

Our default usage limit for the production environment is 200 requests per minute. If this limit is exceeded, you will be met with 429 errors.

The Sandbox Environment

The sandbox environment has different usage limits than production. Those limits are 20 requests per minute.


A common way to reduce the amount of requests you make is to implement webhooks. ShipEngine offers webhooks for the following events:

  • Any tracking event

  • Batch completed

  • Shipment rate updated

  • Carrier Connected

  • Sales Orders Imported (Beta)

  • Store Refresh Completed (Beta)

Label Images

The URLs provided by ShipEngine at label creation are valid for 90 days. If your workflow requires the need to access these URLs after 90 days, we recommend storing the label images locally.