Skip to main content
The API is available on the Enthusiast and Whale plans. If you downgrade to Free, requests return 403 until you upgrade again. See Plans and limits.
The Churning Tracker API is a JSON REST API for your buying group orders, gift card orders, shipments, and credit cards. Orders you create through it show up in the app like any other, with the source set to api.

Base URL

Endpoints

Resale and cashback orders, payouts, deleting orders, and changing credit cards aren’t in the API yet.

Authentication

Every request needs two headers: x-api-key and x-api-secret.
1

Generate credentials

Go to Settings → Security and click Generate API credentials under API Access.
2

Copy the secret

The secret is shown once. Copy it somewhere safe before leaving the page. The key stays visible in Settings.
3

Make a request

If you lose the secret, click Refresh secret to get a new one with the same key. Revoke deletes both, and every request using them fails from then on. Both take effect immediately.
The key and secret give full read and write access to your orders. Keep them out of client-side code and public repositories.

Conventions

  • Money is in cents. 59999 means $599.99. The one exception is a redemption code’s value, which is in dollars.
  • Dates are YYYY-MM-DD and times are HH:mm or HH:mm:ss, in your local time.
  • Unknown fields are rejected in request bodies and query strings, so a typo returns 400 instead of being ignored.
  • Order numbers are unique across your orders. Creating a second order with the same number returns 409.
  • Redemption codes are write-only. You can send them when creating or updating an order, but responses don’t include them.
  • Tracking numbers are for buying group orders only, and are added through POST /shipments rather than on the order itself.

Updating orders

PATCH changes only the fields you send. Send null to clear orderTime, creditCardId, subCreditCardId, retailerAccount, or notes. orderLineItems and redemptionCodes replace the whole list when sent. Within orderLineItems, include a line item’s id to keep it and change only the fields you list. Leave the id out to add a new line item. Any existing line item you don’t include is removed.

Pagination

List endpoints take limit (1 to 100, default 25) and offset (default 0) and return a pagination object. Keep increasing offset by limit until it reaches totalCount.

Errors

Errors always have the same shape. Validation errors add an issues array that points at each bad field.

Rate limits

Requests are rate limited per account. When you hit it, back off and retry after a short wait.

Buying group IDs

Refer to these featured buying group IDs when creating buying group orders.