Skip to main content

Who is this for?

You work with returns data for a Shopify brand. You are most likely a developer that works directly for a brand, or at a B2B company which works with brands (3PL, WMS, CX automation, etc.)

Base URL

https://api.fratereturns.com/api

Preview

Look how easy it is to query returns data for a client:
curl -X GET "https://api.fratereturns.com/api/v2/return-groups" \
  -H "X-Frate-Api-Token: YOUR_API_TOKEN"
And I get a response like:
[
  {
    "type": "return_group",
    "id": 929725,
    "return_method": "TRADITIONAL",
    "credit_method": "STORE_CREDIT",
    "created_at": "2025-07-02T16:30:09.429280+00:00",
    "updated_at": "2025-07-02T16:39:00.560311+00:00",
    "order": {...},
    "customer": {...},
    "shipments": [...],
    "returns": [...],
    "exchange_line_items": [...],
    "refund_transactions": [...],
    "suggested_refund": {...}
  }
]

How to get an API token?

Create an API Token from the Frate app: API token UI example Once you create it, it will only be available for a one-time-copy, to make sure to copy it right away to your password manager. Then, in every request to Frate, use that value for the header X-Frate-Api-Token.

What is the rate limit?

You can make up to 300 requests per minute per API key. If the limit is exceeded, the API will respond with a 429 Too Many Requests status. In this case, pause API calls briefly before retrying.

How to make a paginated request?

There are two types of pagination found in the API.

Limit/offset

The following endpoints support limit/offset based pagination: ReturnGroups.
curl -G "https://api.fratereturns.com/api/v2/return-groups" \
  -H "X-Frate-Api-Token: YOUR_API_TOKEN" \
  --data-urlencode "offset=1" \
  --data-urlencode "limit=1"

Cursor

The following endpoints support cursor based pagination: AllowlistItems.
curl -G "https://api.fratereturns.com/api/v2/allowlist-items" \
  -H "X-Frate-Api-Token: YOUR_API_TOKEN" \
  --data-urlencode "before=1" \
  --data-urlencode "limit=1"

How do I handle errors?

We don’t have a great error system at the moment. If you see an error, get in contact with support.