curl --request GET \
--url https://api.platform.dakota.xyz/developer-fees/statement \
--header 'x-api-key: <api-key>'const options = {method: 'GET', headers: {'x-api-key': '<api-key>'}};
fetch('https://api.platform.dakota.xyz/developer-fees/statement', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.platform.dakota.xyz/developer-fees/statement"
headers = {"x-api-key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.platform.dakota.xyz/developer-fees/statement"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-api-key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}{
"totals": {
"earned": "12480.55",
"paid": "9200.00",
"owed": "3280.55"
},
"months": [
{
"month": "2026-09",
"earned": "2140.20",
"paid": "0"
},
{
"month": "2026-08",
"earned": "3510.80",
"paid": "3510.80"
}
],
"assets": [
{
"asset": "eip155:8453/erc20:0x833589fcd6edb6e08f4c7c32d4f71b54bda02913",
"symbol": "USDC",
"earned": "10204.30"
},
{
"asset": "eip155:8453/erc20:0x3788806ff15b639146a0309218190572ff365059",
"symbol": "RD",
"earned": "1890.25"
}
],
"transactions": {
"items": [
{
"id": "3JSAEmeRoI3MYTxJR43kVc1kQ82",
"date": 1789603200,
"asset": "eip155:8453/erc20:0x833589fcd6edb6e08f4c7c32d4f71b54bda02913",
"symbol": "USDC",
"volume": "40000.00",
"fee": "40.00"
}
],
"total": 1284
}
}{
"type": "https://docs.dakota.xyz/api-reference/errors#not-found",
"title": "Customer Not Found",
"status": 404,
"detail": "Customer cst_2abc123 was not found in your organization.",
"instance": "https://api.platform.dakota.xyz/customers/cst_2abc123",
"request_id": "req_7f3a8b2c"
}{
"type": "https://docs.dakota.xyz/api-reference/errors#not-found",
"title": "Customer Not Found",
"status": 404,
"detail": "Customer cst_2abc123 was not found in your organization.",
"instance": "https://api.platform.dakota.xyz/customers/cst_2abc123",
"request_id": "req_7f3a8b2c"
}Get your developer fee statement
Returns what your developer fees came to over a date range: the totals earned and paid in the range, the balance owed as of the range end, per-month sub-totals, per-asset earnings, and the fee transactions the earned figure is made of.
The statement is always your own. Nothing in a request names a client.
owed is cumulative and is not bounded by from: a balance you were
owed before the range still counts. Payouts are initiated by Dakota, so
an owed balance is what is due rather than what is scheduled.
All money figures are decimal strings. The USD totals are USD; a
per-asset earned is in that assetās own units.
curl --request GET \
--url https://api.platform.dakota.xyz/developer-fees/statement \
--header 'x-api-key: <api-key>'const options = {method: 'GET', headers: {'x-api-key': '<api-key>'}};
fetch('https://api.platform.dakota.xyz/developer-fees/statement', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.platform.dakota.xyz/developer-fees/statement"
headers = {"x-api-key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.platform.dakota.xyz/developer-fees/statement"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("x-api-key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}{
"totals": {
"earned": "12480.55",
"paid": "9200.00",
"owed": "3280.55"
},
"months": [
{
"month": "2026-09",
"earned": "2140.20",
"paid": "0"
},
{
"month": "2026-08",
"earned": "3510.80",
"paid": "3510.80"
}
],
"assets": [
{
"asset": "eip155:8453/erc20:0x833589fcd6edb6e08f4c7c32d4f71b54bda02913",
"symbol": "USDC",
"earned": "10204.30"
},
{
"asset": "eip155:8453/erc20:0x3788806ff15b639146a0309218190572ff365059",
"symbol": "RD",
"earned": "1890.25"
}
],
"transactions": {
"items": [
{
"id": "3JSAEmeRoI3MYTxJR43kVc1kQ82",
"date": 1789603200,
"asset": "eip155:8453/erc20:0x833589fcd6edb6e08f4c7c32d4f71b54bda02913",
"symbol": "USDC",
"volume": "40000.00",
"fee": "40.00"
}
],
"total": 1284
}
}{
"type": "https://docs.dakota.xyz/api-reference/errors#not-found",
"title": "Customer Not Found",
"status": 404,
"detail": "Customer cst_2abc123 was not found in your organization.",
"instance": "https://api.platform.dakota.xyz/customers/cst_2abc123",
"request_id": "req_7f3a8b2c"
}{
"type": "https://docs.dakota.xyz/api-reference/errors#not-found",
"title": "Customer Not Found",
"status": 404,
"detail": "Customer cst_2abc123 was not found in your organization.",
"instance": "https://api.platform.dakota.xyz/customers/cst_2abc123",
"request_id": "req_7f3a8b2c"
}Authorizations
Query Parameters
Unix seconds lower bound on the fee's completion time (inclusive).
Unix seconds upper bound on the fee's completion time (inclusive). Also the as-of date for the owed balance.
1-based page of the fee transactions list. The page size is 250;
transactions.total reports the full count so you can tell when a
range runs past one page.
x >= 1Was this page helpful?

