curl --request GET \
--url https://api.fanvue.com/v1/agencies/earnings \
--header 'Authorization: Bearer <token>' \
--header 'X-Fanvue-API-Version: <x-fanvue-api-version>'import requests
url = "https://api.fanvue.com/v1/agencies/earnings"
headers = {
"X-Fanvue-API-Version": "<x-fanvue-api-version>",
"Authorization": "Bearer <token>"
}
response = requests.get(url, headers=headers)
print(response.text)const options = {
method: 'GET',
headers: {
'X-Fanvue-API-Version': '<x-fanvue-api-version>',
Authorization: 'Bearer <token>'
}
};
fetch('https://api.fanvue.com/v1/agencies/earnings', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"data": [
{
"creatorUuid": "c3d4e5f6-7g8h-9i0j-1k2l-m3n4o5p6q7r8",
"date": "2024-01-15",
"gross": 15000,
"net": 12750,
"currency": "USD"
},
{
"creatorUuid": "c3d4e5f6-7g8h-9i0j-1k2l-m3n4o5p6q7r9",
"date": "2024-01-14",
"gross": 8500,
"net": 7225,
"currency": "USD"
}
],
"nextCursor": "k0FQ1m9yZXN0aWdpb3VzLW9wYXF1ZS1jdXJzb3I",
"total": null
}{
"error": "<string>",
"message": "<string>"
}{
"error": "<string>"
}{
"error": "<string>"
}{
"error": "<string>",
"message": "<string>",
"nextVersion": "<string>"
}{
"error": "<string>"
}List per-creator-per-day earnings across all agency creators (cursor-paginated)
Returns a single cursor-paginated stream of per-creator-per-day earnings rows across every creator the authenticated agency manages, sorted by most recent day first. Each row is bucketed by paid_at (UTC) and tagged with creatorUuid so consumers can group results without an additional join.
Only PAID earning invoices that count towards creator insights are included. Each gross/net figure is the sum of the day’s invoices in USD cents (currency is always "USD"), so totals reconcile with the USD figure shown on the dashboard.
Page with the opaque nextCursor from the previous response. The result set is bounded by the requested date range, so total is not computed and is always null.
curl --request GET \
--url https://api.fanvue.com/v1/agencies/earnings \
--header 'Authorization: Bearer <token>' \
--header 'X-Fanvue-API-Version: <x-fanvue-api-version>'import requests
url = "https://api.fanvue.com/v1/agencies/earnings"
headers = {
"X-Fanvue-API-Version": "<x-fanvue-api-version>",
"Authorization": "Bearer <token>"
}
response = requests.get(url, headers=headers)
print(response.text)const options = {
method: 'GET',
headers: {
'X-Fanvue-API-Version': '<x-fanvue-api-version>',
Authorization: 'Bearer <token>'
}
};
fetch('https://api.fanvue.com/v1/agencies/earnings', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"data": [
{
"creatorUuid": "c3d4e5f6-7g8h-9i0j-1k2l-m3n4o5p6q7r8",
"date": "2024-01-15",
"gross": 15000,
"net": 12750,
"currency": "USD"
},
{
"creatorUuid": "c3d4e5f6-7g8h-9i0j-1k2l-m3n4o5p6q7r9",
"date": "2024-01-14",
"gross": 8500,
"net": 7225,
"currency": "USD"
}
],
"nextCursor": "k0FQ1m9yZXN0aWdpb3VzLW9wYXF1ZS1jdXJzb3I",
"total": null
}{
"error": "<string>",
"message": "<string>"
}{
"error": "<string>"
}{
"error": "<string>"
}{
"error": "<string>",
"message": "<string>",
"nextVersion": "<string>"
}{
"error": "<string>"
}read:agency— Read agency information, including the agency’s team members.read:creator— Access creator profiles, content, and creator-specific information.
Authorizations
OAuth 2.0 access token, presented as a JWT bearer token in the Authorization header. Obtain a token via the authorization-code flow; the scopes granted to the token determine which operations it may call.
Headers
API version to use for the request
"2025-06-26"
Query Parameters
Opaque pagination cursor from a previous response's nextCursor. Omit to fetch the first page.
Number of items to return (1-50, default: 15)
1 <= x <= 50Start of the date range (inclusive). UTC ISO 8601 datetime with offset.
End of the date range (exclusive). UTC ISO 8601 datetime with offset.
Comma-separated list of creator UUIDs to restrict results to a subset of the agency's managed creators (max 50) Comma-separated list of creator UUIDs (max 50)
50Response
Cursor-paginated list of per-creator-per-day earnings across the agency's creators
Array of per-creator-per-day earnings rows across the agency's creators
Show child attributes
Show child attributes
Opaque cursor for the next page, or null when there are no more results
Total number of items across all pages, or null when no count is computed
Was this page helpful?