What type of API does ShipStation provide?
Based on the search results provided, ShipStation uses a REST API. Here are the key points:
API Type
ShipStation has a REST API. The documentation specifically refers to it as the "ShipStation API" and provides details on how to use REST endpoints.
Key Features of ShipStation's REST API
-
Authentication: Uses Basic HTTP authentication with an API Key as the username and API Secret as the password.
-
Base URL: The API uses https://ssapi.shipstation.com/
as the base URL for all endpoints.
-
Rate Limiting: The API implements rate limiting to ensure consistent performance and scalability.
-
Data Format: The API likely uses JSON for data exchange, as is common with REST APIs (though this is not explicitly stated in the provided information).
-
Endpoints: The API provides various endpoints for different functionalities like managing orders, shipments, and carriers.
Additional Considerations
-
The API supports 64-bit integers for number fields, which is important to note for data handling.
-
DateTime values in the API use ISO 8601 format and are in PST/PDT timezone.
-
The API returns standard HTTP status codes for different responses (200 for success, 400 for bad request, etc.).
Best Practices
When working with ShipStation's REST API:
- Ensure your application can handle rate limiting responses.
- Use the correct authentication method (Basic HTTP).
- Be aware of the datetime format and timezone used.
- Handle 64-bit integers correctly in your application.
Does the ShipStation API have webhooks?
Yes, the official ShipStation API does have webhooks. Here are the key points about ShipStation's webhook functionality:
Webhook Support
- ShipStation offers webhook support as part of their API.
Event Types
You can subscribe to the following types of webhook events:
- ORDER_NOTIFY - Notifies when a new order is created
- ITEM_ORDER_NOTIFY - Notifies when a new order item is created
- SHIP_NOTIFY - Notifies when an order is shipped
- ITEM_SHIP_NOTIFY - Notifies when an order item is shipped
- FULFILLMENT_SHIPPED - Notifies when a fulfillment order is shipped
- FULFILLMENT_REJECTED - Notifies when a fulfillment order is rejected
Subscribing to Webhooks
- You can subscribe to webhooks by making a POST request to the
/webhooks/subscribe
endpoint.
- The request body must include:
target_url
: The URL to send webhook events to
event
: The type of event to subscribe to (from the list above)
store_id
(optional): To limit webhooks to a specific store
friendly_name
(optional): A display name for the webhook
Webhook Payload
- Webhook events are sent as HTTP POST requests to the specified target URL.
- The request body contains a JSON object with details about the event.
Managing Webhooks
- You can view and edit existing webhooks through the ShipStation UI in your account settings.
Limitations
- Currently, there is no webhook event for order updates, which has been requested as a feature enhancement by users.
In summary, ShipStation's API provides webhook functionality for several key events related to orders, shipments, and fulfillments. However, some users have requested additional event types, such as order updates, to further reduce the need for frequent API polling.
Rate Limits and other limitations
Based on the search results, here are the key points about the API Rate Limits of the ShipStation API:
Rate Limit Details
-
ShipStation imposes a limit of 40 API calls per minute per API key and secret [1][2][4].
-
If the rate limit is exceeded, an HTTP 429 (Too Many Requests) status code will be returned [2][4].
All API responses include headers with rate limiting information [2][4]:
- X-Rate-Limit-Limit: The maximum number of requests per minute to the endpoint
- X-Rate-Limit-Remaining: The available requests remaining in the current window
- X-Rate-Limit-Reset: The number of seconds remaining until the next window begins
Handling Rate Limits
-
When the limit is reached, applications should stop making requests until X-Rate-Limit-Reset seconds have elapsed [2][4].
-
Applications need to be able to handle the HTTP 429 status code and rate limiting headers [2].
Best Practices
-
Configure a suitable ingestion frequency for pipelines to avoid hitting rate limits [1].
-
Build logic to respect the rate limits and pause requests when limits are reached [2][4].
-
Consider optimizing API usage, such as batching requests where possible, to stay within limits [5].
Additional Notes
-
The rate limits are per API key and secret, so using multiple credentials could potentially increase throughput [1][2].
-
Some users have noted that the rate limits can be restrictive for certain use cases like calculating rates across multiple carriers [5].
In summary, the ShipStation API has a fairly standard rate limiting system of 40 requests per minute per credential set. Applications need to be built to respect these limits and handle rate limit responses gracefully.
Latest API Version
Based on the search results provided, I could not find a specific mention of the most recent version of the ShipStation API. However, I can provide some relevant information about the ShipStation API:
Key Points:
-
The ShipStation API is available for any plan and allows developers to build applications that interface with the ShipStation platform.
-
The API can be used to automate many tasks including:
- Managing Orders
- Managing Shipments
- Creating Shipping Labels
- Retrieving Shipping Rates
-
ShipStation also offers a Custom Store API that allows direct integration of a company's marketplace into ShipStation.
API Functionality:
The ShipStation API provides access to various functionalities, including:
- Account management
- Carrier information
- Customer data
- Order management
- Product management
- Shipment handling
- Store management
- User management
- Warehouse management
- Webhook management
Best Practices:
-
When choosing between the Custom Store API and the regular API, consider your integration needs:
- Custom Store API is suitable for pulling order information and pushing tracking data
- The regular API offers more extensive functionality but requires more development effort
-
Refer to the official ShipStation API documentation for the most up-to-date information on endpoints and functionality.
-
Be aware that some features available in the ShipStation UI may not be immediately available in the API. For example, as of the time of the community post, updating the 'Deliver By' date via the API was not supported.
While I couldn't provide the specific version number of the most recent ShipStation API, it's important to note that APIs are often versioned, and the most current version would be available in the official documentation. For the most accurate and up-to-date information, I recommend checking the official ShipStation API documentation or contacting their support directly.
How to get a ShipStation developer account and API Keys?
To get a developer account for ShipStation to create an API integration, you need to follow these steps:
-
Become a ShipStation partner:
- ShipStation's API is primarily intended for direct partners.
- To become a direct partner or request more information, you should contact ShipStation's Partners and Integrations team.
-
Fill out the partner form:
- Visit the ShipStation website and look for a form to fill out to express your interest in becoming a partner.
- Provide the necessary information about your company and integration plans.
-
Wait for ShipStation to contact you:
- After submitting the form, ShipStation will review your application and get in touch with you.
-
Once approved as a partner, you can register an account:
- Use the
/accounts/registeraccount
endpoint to create a new ShipStation account.
- This endpoint doesn't require API key and API Secret credentials.
- You'll need to provide information such as first name, last name, email, password, company name, and address.
-
Receive API credentials:
- Upon successful account creation, you'll receive an API key and API Secret.
- These credentials will be used for authenticating your API requests.
What can you do with the ShipStation API?
Based on the search results provided, here is a list of data models you can interact with using the ShipStation API, along with what is possible for each model:
Orders
- Managing orders
- Creating and updating orders
- Importing and exporting order data
- Retrieving order information
- Updating modified orders (e.g., for Shopify integration)
Shipments
- Managing shipments
- Creating shipping labels
- Retrieving shipment information
- Updating shipment statuses
- Handling partial shipments
Products
- Updating product information
- Managing inventory levels
- Syncing product data between ShipStation and other platforms
Customers
- Retrieving customer data
- Creating new customer records
- Updating customer information
Carriers
- Retrieving shipping rates
- Accessing carrier information
- Listing available packages for carriers
Labels
- Creating and managing shipping labels
- Retrieving label information
Tracking
- Retrieving real-time tracking information
- Updating tracking statuses
Inventory
- Managing inventory levels
- Setting up inventory alerts
- Reserving inventory for specific orders
Custom Fields
- Importing and managing custom field data
- Utilizing custom fields for order details
Stores
- Managing store integrations
- Selecting specific stores for data transmission
Taxes
- Handling sales tax information
- Matching sales tax to specific tax agencies
Branding
- Customizing tracking pages, returns portals, and customer communications
Workflows
- Setting up and managing automation rules
- Creating custom workflow apps (e.g., with Monday integration)
Key Points to Consider:
- The ShipStation API uses Basic HTTP authentication with an API Key and API Secret.
- There are API rate limits in place to ensure consistent performance.
- The API supports 64-bit integers for number data types, which may require special handling in some systems.
- The API allows for extensive customization and automation of shipping and order fulfillment processes.
- Integration with third-party tools like QuickBooks, HubSpot, Monday, and Shopify is possible, extending the API's capabilities.
Best Practices:
- Always handle HTTP rate limiting status messages in your integration.
- Use the correct base URL for API requests: https://ssapi.shipstation.com/.
- Ensure your infrastructure can handle 64-bit integers or store them as strings when necessary.
- Leverage the API to automate repetitive tasks and streamline workflows.
- Consider using tools like Nanonets to simplify third-party integrations with ShipStation.