API Overview
The API gives you programmatic access to your data — inbound orders, inventory, shipments, and more. All requests are made over HTTPS and responses are returned in JSON.
Base URL
Your API base URL is your domain prefixed with api.. All endpoints are prefixed with /api/v1.
Your base URL is: https://api.example.com/api/v1
Base URL
https://api.{your-domain}/api/v1
Authentication
Every API request requires two headers: an Authorization header and an X-Warehouse-Id header.
API Key
API keys are used to authenticate all API requests. They don't expire and are ideal for integrations, scripts, and automated workflows.
To get an API key, go to Settings > API Keys in your dashboard, or see the Managing API Keys guide.
Include your API key in the Authorization header using the ApiKey prefix.
API keys are shown only once at creation. Copy and store securely. See Managing API Keys for details.
Authenticated Request
curl https://api.example.com/api/v1/inbound \
-H "Authorization: ApiKey {your-api-key}" \
-H "X-Warehouse-Id: {warehouse_id}"
Warehouse ID
All endpoints require the X-Warehouse-Id header. This identifies which warehouse your request applies to. You can find your warehouse ID in your dashboard settings.
Making Your First Request
Here's a complete example that fetches your inbound orders.
This request retrieves the first 10 inbound orders from your account. The response includes order details like item name, quantity, status, and tracking information.
Request
curl -G https://api.example.com/api/v1/inbound \
-H "Authorization: ApiKey {your-api-key}" \
-H "X-Warehouse-Id: {warehouse_id}" \
-d limit=10 \
-d offset=0
Response
{
"status": "success",
"message": "Fetched orders.",
"data": {
"orders": [
{
"order_id": "64c65048-b335-4921-b09d-68d4142d5655",
"item_name": "Widget A",
"quantity": 24,
"status": "inbound",
"fulfillment_type": "fba",
"created_at": "2025-03-25T21:05:40Z"
}
],
"results": { "total": 150, "limit": 10, "offset": 0 }
}
}
Response Format
All API responses follow a consistent JSON structure.
Success responses
Successful requests return a status of "success" along with a message, a data object, and errors as null.
Error responses
Failed requests return a status of "failed" with a message describing what went wrong, data as null, and an errors array with specific details.
Common HTTP status codes:
- 200 — Success
- 400 — Validation error (check
errorsarray) - 401 — Unauthorized (invalid or expired credentials)
- 404 — Not found
- 409 — Conflict
Success
{
"status": "success",
"message": "Fetched orders.",
"data": {
"orders": [...]
},
"errors": null
}
Error
{
"status": "failed",
"message": "Unauthorized.",
"data": null,
"errors": ["Invalid token."]
}
Pagination
List endpoints support pagination using limit and offset query parameters.
- Name
limit- Type
- integer
- Description
Maximum number of items to return. Defaults to 200. Pass
-1to return all records.
- Name
offset- Type
- integer
- Description
Number of items to skip before starting to return results. Defaults to 0.
- Name
sort_key- Type
- string
- Description
Field to sort by. Defaults to
created_at.
- Name
sort_order- Type
- string
- Description
Sort direction:
ascordesc. Defaults todesc.
Paginated responses include a results object with the total count, limit, and offset.
Paginated Request
curl -G https://api.example.com/api/v1/inbound \
-H "Authorization: ApiKey {your-api-key}" \
-H "X-Warehouse-Id: {warehouse_id}" \
-d limit=50 \
-d offset=100
Pagination in Response
{
"results": {
"total": 350,
"limit": 50,
"offset": 100
}
}
Rate Limiting
API requests do not have strict rate limits, but please be reasonable with your usage.
If you receive a 429 Too Many Requests response, wait before retrying.
