Partner

Get Dashboard Performance

Quick Report and Commission over time: credited earnings and rebate, active traders, USD trading volume and USD net deposits, each as a window total and as a series of `granularity` buckets in `timeZone`, plus the pending earnings and rebate of the window as totals. Earnings and rebate are per credit currency (normally the partner's payout currency); pending amounts are per currency each reward was calculated in, until it is credited. Nothing is converted at request time, and amounts in different currencies are never summed. Rebate, volume and active traders cover trades made while a client was in the partner's structure; net deposits are client-centric (all operations of the clients currently in the structure).

GET
/partner/dashboard/performance

Authorization

appToken read
AuthorizationBearer <token>

App access token issued by POST /tokens (client credentials). Full-access Apps hold the read and write scopes, read-only Apps hold read only. Send it as Authorization: Bearer <token>.

In: header

Scope: read

Query Parameters

userId*string

Identifier of the partner user (the IB record) whose dashboard is requested

Formatuuid
startTime*string

Start of the window (inclusive), RFC 3339 with an offset. Encode + as %2B: a raw + in a query string reads as a space. Any window length is accepted; long windows take longer.

Formatdate-time
endTime*string

End of the window (exclusive), RFC 3339 with an offset; must be after startTime. Operations at exactly this time are not counted; to include a whole day, pass the next day's 00:00.

Formatdate-time
timeZone?string

IANA time zone that places the bucket boundaries; window bounds are instants either way. A bucket starts at the first instant of its local hour, day or month, so daylight saving changes inside the window are bucketed correctly. An unknown name is rejected with 400.

Default"UTC"
granularity*string

Bucket size of the series. A window with more than 5,000 buckets is rejected with 400 (an hourly series over a year, for example).

Value in

  • "hour"
  • "day"
  • "month"
comparative?boolean

When true, every metric also carries its change versus the previous equal-length window [startTime − (endTime − startTime), startTime). When false, absoluteChange and relativeChange are null.

Defaultfalse

Response Body

application/json

application/json

application/json

application/json

application/json

application/json

application/json

curl -X GET "https://example.com/partner/dashboard/performance?userId=497f6eca-6276-4993-bfeb-53cbbbba6f08&startTime=2026-10-01T00%3A00%3A00%2B02%3A00&endTime=2026-11-01T00%3A00%3A00%2B01%3A00&granularity=hour"
{  "report": {    "granularity": "hour",    "timeZone": "Europe/Berlin",    "earnings": [      {        "currency": "EUR",        "actualValue": "1200.00",        "absoluteChange": "150.00",        "relativeChange": "14.29",        "series": [          {            "startTime": "2026-10-26T00:00:00+01:00",            "value": "40.00"          }        ]      }    ],    "pendingEarnings": [      {        "currency": "USD",        "actualValue": "1250000.00"      }    ],    "rebate": [      {        "currency": "EUR",        "actualValue": "1200.00",        "absoluteChange": "150.00",        "relativeChange": "14.29",        "series": [          {            "startTime": "2026-10-26T00:00:00+01:00",            "value": "40.00"          }        ]      }    ],    "pendingRebate": [      {        "currency": "USD",        "actualValue": "1250000.00"      }    ],    "activeTraders": {      "actualValue": 87,      "absoluteChange": 5,      "relativeChange": "6.10",      "series": [        {          "startTime": "2026-10-26T00:00:00+01:00",          "value": 12        }      ]    },    "volumeUsd": {      "currency": "EUR",      "actualValue": "1200.00",      "absoluteChange": "150.00",      "relativeChange": "14.29",      "series": [        {          "startTime": "2026-10-26T00:00:00+01:00",          "value": "40.00"        }      ]    },    "netDeposits": {      "currency": "EUR",      "actualValue": "1200.00",      "absoluteChange": "150.00",      "relativeChange": "14.29",      "series": [        {          "startTime": "2026-10-26T00:00:00+01:00",          "value": "40.00"        }      ]    }  }}
{  "error": {    "message": "validation failed",    "code": "validation_error",    "details": [      {        "field": "startTime",        "issue": "the window has more than 5000 hour buckets"      }    ]  }}
{  "message": "string",  "code": "string",  "errors": {    "property1": [      "string"    ],    "property2": [      "string"    ]  },  "details": [    {      "field": "string",      "issue": "string"    }  ]}
{  "error": {    "message": "partner user not found",    "code": "not_found"  }}
{  "message": "string",  "code": "string",  "errors": {    "property1": [      "string"    ],    "property2": [      "string"    ]  },  "details": [    {      "field": "string",      "issue": "string"    }  ]}
{  "message": "string",  "code": "string",  "errors": {    "property1": [      "string"    ],    "property2": [      "string"    ]  },  "details": [    {      "field": "string",      "issue": "string"    }  ]}
{  "error": {    "message": "the report took too long to build",    "code": "gateway_timeout"  }}