How errors are returned
Every response is 200 OK, including every error. Always check success first:
{ "success": false, "message": "Incorrect group by value!" }{ "success": false, "error": "You don't have access." }Both keys are in use. Problems with what you sent come back under message; problems with access, plan or availability come back under error. A robust client should read whichever is present.
Every error you can get
Text | Key | What it means | What to do |
|
| No | Add it |
|
|
| Add both |
|
| No | Add |
|
|
| Use exactly |
|
| No | Add one of the seven values |
|
| Unrecognised | Check spelling — the values are lowercase |
|
|
| Use |
|
|
| Use |
|
| The key is not recognised, or the account it belongs to does not have the API Data Feed | Check the key in Settings; confirm the feature is on your plan |
|
| The report is not included in your plan | Use a report you have, or talk to us about adding it |
|
| A date is further back than your plan allows | The message names the earliest usable date — start from there |
|
| The API Data Feed toggle in Settings is Inactive | Turn it on in Settings |
|
| Too much data for one request | Ask for a shorter period and make several calls |
|
| StatsDrone could not reach the service that builds the report | Retry after a short wait; contact support if it persists |
Common situations
I get success: true but data is empty or every account has empty stats. That is a valid answer meaning "nothing matched". Check that the period really has activity, that the tag filter is not excluding everything, and that the accounts you expect are not frozen or failing to sync — read info.status and info.error.
An account I expect is missing entirely. Accounts with no data are normally included. An account genuinely absent from the response is one this API key is not allowed to see — team-member keys are limited to the affiliate accounts assigned to that team member.
My tag filter matches nothing. Remove the spaces from tag names: send tags=VIPClient for "VIP Client". Also check matchAny — matchAny=false requires *every* selected tag to be present on the same account.
The numbers are not in the currency I asked for. An account whose own currency has no available exchange rate is returned unconverted. info.currency on that account always tells you what the figures are actually in — read it rather than assuming.
My integration stopped working overnight. Someone generated a new API key in Settings. That revokes the previous key immediately. Copy the current key from Settings into your integration.
Totals do not match the app. Check the currency (info.currency), that the period matches exactly, and that you are comparing the same report. Also note flat_fee is never currency-converted, so on a converted response total_income mixes a converted commission with an unconverted flat fee.
