{"templateId":"markdown","versions":[{"version":"shipstation-v2","label":"ShipStation V2 API","link":"/apis/shipstation-v2/docs/guides/rate-limits","default":true,"active":false,"folderId":"58c9a61d"},{"version":"shipengine","label":"ShipStation API (formerly ShipEngine)","link":"/apis/shipengine/docs/guides/rate-limits","default":false,"active":true,"folderId":"58c9a61d"},{"version":"shipstation-v1","label":"ShipStation V1 API","link":"/apis/shipstation-v1/docs/guides/rate-limits","default":false,"active":false,"folderId":"58c9a61d"}],"sharedDataIds":{"sidebar":"sidebar-apis/@shipengine/sidebars.yaml"},"props":{"metadata":{"markdoc":{"tagList":[]},"type":"markdown"},"seo":{"title":"Usage & Rate Limits","keywords":"shipping, labels, shipstation, documentation, api","siteUrl":"https://docs.shipstation.com","lang":"en-US","llmstxt":{"hide":false,"title":"ShipStation API LLM Docs","description":"Find links and references to all markdown documentation for use with LLMs","excludeFiles":[]}},"dynamicMarkdocComponents":[],"compilationErrors":[],"ast":{"$$mdtype":"Tag","name":"article","attributes":{},"children":[{"$$mdtype":"Tag","name":"Heading","attributes":{"level":1,"id":"usage--rate-limits","__idx":0},"children":["Usage & Rate Limits"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["ShipStation API limits certain API usage to maximize stability and performance. Accounts that send too many requests in quick succession will receive a ",{"$$mdtype":"Tag","name":"a","attributes":{"href":"https://httpstatuses.com/429"},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["429 Too Many Requests"]},"error response"]},"."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["In addition, third-party APIs (such as carriers, insurance providers, or marketplaces) may impose their own rate limits. So if you get a rate limit error, be sure to check ",{"$$mdtype":"Tag","name":"a","attributes":{"href":"/apis/shipengine/docs/guides/errors"},"children":["the ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["error_source"]}," field"]}," to determine whether it's from ShipStation API or from a third party."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"rate-limit","__idx":1},"children":["Rate Limit"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["By default, ShipStation API allows you to send up to 200 requests per minute. If you need a higher limit, please submit a ",{"$$mdtype":"Tag","name":"a","attributes":{"href":"https://help.shipengine.com/hc/en-us/requests/new"},"children":["support ticket"]}," with the details of what you need. We may be able to increase your rate limit or we may be able to suggest alternative ways to achieve your goals with fewer or less-frequent requests."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"monitor-request-polling","__idx":2},"children":["Monitor Request Polling"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["ShipStation API implements usage limits to ensure consistent performance and uptimes. When testing or planning your use of ShipStation API, be sure to monitor the number of requests you are making. Effectively monitoring your requests will also help avoid unnecessary charges for using ShipStation API."]},{"$$mdtype":"Tag","name":"blockquote","attributes":{},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["NOTE:"]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"different-usage-limits-for-sandbox-environment","__idx":3},"children":["Different Usage Limits for Sandbox Environment"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The sandbox environment is limited to 20 requests per minute."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"handling-limits-gracefully","__idx":4},"children":["Handling Limits Gracefully"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Requests exceeding the rate limit will receive a ",{"$$mdtype":"Tag","name":"a","attributes":{"href":"https://httpstatuses.com/429"},"children":[{"$$mdtype":"Tag","name":"code","attributes":{},"children":["429 Too Many Requests"]},"error response"]},". The response will also include a ",{"$$mdtype":"Tag","name":"code","attributes":{},"children":["Retry-After"]}," header that specifies the number of seconds to wait until your next request can be processed. With this information you can implement retry logic as a way to gracefully handle rate limits."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Keep in mind that rate limits apply to ",{"$$mdtype":"Tag","name":"em","attributes":{},"children":["all"]}," requests, so it would be wise to implement any retry logic at a global level. Otherwise, many requests sent around the same time will all be rate-limited and will all retry at the same time, which will cause many of them to be rate limited again."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"bulk-operations","__idx":5},"children":["Bulk Operations"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The most common cause of rate limit errors is bulk processing, such as validating hundreds of addresses, creating hundreds of labels, or calculating rates for hundreds of shipments at the same time. Fortunately, ShipStation API provides bulk API endpoints for these use cases, which allow you to perform hundreds or thousands of operations with a single request."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Learn more about bulk operations with the following:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"a","attributes":{"href":"/apis/shipengine/docs/labels/bulk"},"children":["Batch label creation"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"a","attributes":{"href":"/apis/shipengine/docs/rates/multiple-shipments"},"children":["Calculate rates for multiple shipments"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"a","attributes":{"href":"/apis/shipengine/docs/addresses/validation"},"children":["Validate multiple addresses"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"a","attributes":{"href":"/apis/shipengine/docs/reference/create-shipments"},"children":["Create multiple shipments"]}]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"a","attributes":{"href":"/apis/shipengine/docs/tracking/webhooks"},"children":["Subscribe to tracking webhooks"]}]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"automated-testing","__idx":6},"children":["Automated Testing"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["If you have automated tests for your code and those tests make ShipStation API calls, then you may sporadically experience test failure due to rate limits. This test failure will occur even if your tests use ",{"$$mdtype":"Tag","name":"a","attributes":{"href":"/apis/shipengine/docs/guides/auth#api-keys"},"children":["sandbox API keys"]}," since our ",{"$$mdtype":"Tag","name":"a","attributes":{"href":"/apis/shipengine/docs/getting-started/sandbox"},"children":["sandbox environment"]}," has lower rate limits for some endpoints."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Instead, we recommend building your ShipStation API integration in such a way that you can substitute a ",{"$$mdtype":"Tag","name":"a","attributes":{"href":"https://learning.postman.com/docs/designing-and-developing-your-api/mocking-data/mocking-with-examples/"},"children":["mock for testing purposes"]},". Using a mock gives you more reliable behavior and allows you to test for various error conditions as well as successful responses. Mocks can also make your tests faster since there won't be any network latency (unless you specifically simulate latency in the mock)."]}]},"headings":[{"value":"Usage & Rate Limits","id":"usage--rate-limits","depth":1},{"value":"Rate Limit","id":"rate-limit","depth":2},{"value":"Monitor Request Polling","id":"monitor-request-polling","depth":3},{"value":"Different Usage Limits for Sandbox Environment","id":"different-usage-limits-for-sandbox-environment","depth":3},{"value":"Handling Limits Gracefully","id":"handling-limits-gracefully","depth":2},{"value":"Bulk Operations","id":"bulk-operations","depth":2},{"value":"Automated Testing","id":"automated-testing","depth":2}],"frontmatter":{"seo":{"title":"Usage & Rate Limits"}},"lastModified":"2026-04-08T10:47:45.000Z","pagePropGetterError":{"message":"","name":""}},"slug":"/apis/shipengine/docs/guides/rate-limits","userData":{"isAuthenticated":false,"teams":["anonymous"]},"isPublic":true}