---
title: "List per-creator-per-day earnings across all agency creators"
method: GET
path: "/agencies/earnings"
---

# List per-creator-per-day earnings across all agency creators

`GET /agencies/earnings`

Returns a single 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.
<Info>Requires: Agency admin access</Info>

## Query parameters

- `page` integer — Page number to retrieve (starts from 1)
- `size` integer — Number of items to return per page (1-50, default: 15)
- `startDate` string, date-time, required — Start of the date range (inclusive). UTC ISO 8601 datetime with offset.
- `endDate` string, date-time, required — End of the date range (exclusive). UTC ISO 8601 datetime with offset.
- `creatorUuids` string[] — Comma-separated list of creator UUIDs (max 50)

## Headers

- `X-Fanvue-API-Version` string, required

## Response `200`

Paginated list of per-creator-per-day earnings across the agency's creators

- object
  - `data` object[], required — Array of per-creator-per-day earnings rows across the agency's creators
    - `creatorUuid` string, uuid, required — UUID of the agency-managed creator the earnings row belongs to
    - `date` string, date, required — UTC calendar day the earnings were bucketed on (YYYY-MM-DD)
    - `gross` integer, required — Total gross earnings for the creator on this day, in USD cents
    - `net` integer, required — Total creator-net earnings (after platform fees) for the creator on this day, in USD cents
    - `currency` 'USD', required — Always 'USD'. Earnings are summed in USD across all of the day's invoices regardless of the local currency the fan originally paid in, so the figure reconciles with the USD dashboard total.
  - `pagination` object, required — Pagination information
    - `page` number, required — Current page number
    - `size` number, required — Number of records returned in this response
    - `hasMore` boolean, required — Whether there are more items available on subsequent pages

## Other responses

- `400` — Bad Request - API version not supported OR validation failed (dates, sources, cursor, pagination)
- `401` — Unauthorized Response
- `403` — Unauthorized Response
- `410` — API version no longer supported (sunset)
- `429` — Too many requests - rate limit exceeded

---

[API](https://skmtc.net/fanvue/apis/fanvue-api.md) · [All operations](https://skmtc.net/fanvue/apis/fanvue-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/fanvue/fanvue-api/revisions/c5ddcd5c7e72/schema)
