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.

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

GET
/api/v1/inbound
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 errors array)
  • 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 -1 to 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: asc or desc. Defaults to desc.

Paginated responses include a results object with the total count, limit, and offset.

Paginated Request

GET
/api/v1/inbound
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.

Was this page helpful?