---
title: "List chatter earnings by creator (cursor-paginated)"
method: GET
path: "/agencies/insights/chatter-earnings"
---

# List chatter earnings by creator (cursor-paginated)

`GET /agencies/insights/chatter-earnings`

## Request

- Base URL: `https://api.fanvue.com`
- URL: `https://api.fanvue.com/agencies/insights/chatter-earnings`
- Auth: OAuth 2
  - Authorization code: `https://auth.fanvue.com/oauth2/auth`
  - Token URL: `https://auth.fanvue.com/oauth2/token` scopes: `read:agency`

Returns one row per chatter and creator for the authenticated user's agency over the requested period: what each chatter earned on each creator, for payroll. The rows come from the same read as the earnings leaderboard breakdown, so the two always agree.

Earnings are attributed to the purchase date. `revenue` is `ppvRevenue` plus `tipsRevenue`, all gross USD cents. A tip is credited to the chatter who sent the last 1:1 message in that chat shortly before it was paid. Refunds and chargebacks are reported in their own fields and never subtracted. Net figures are after the Fanvue fee.

Chatters whose accounts are deleted or banned, and tips credited to no chatter, are not returned, so the rows alone do not sum to the agency's total chat earnings. `totals` does include them: it is the same for every page and equals the leaderboard's totals for the same filters and period.

Rows are ordered by `revenue` descending. Page with the opaque `nextCursor` from the previous response, keeping the same filters. Pages are re-read on every request, so a period that includes the current day can shift between pages as new sales land; request a period that has ended for a stable payroll export. Without both `startDate` and `endDate` the period is all time.
Agencies without the chatter earnings breakdown enabled get a 404.
<Info>Requires: Agency admin access</Info>

## Query parameters

- `cursor` string: Opaque pagination cursor from a previous response's `nextCursor`. Omit to fetch the first page.
- `size` integer: Number of items to return (1-50, default: 15)
- `startDate` string, date-time: Start date as ISO 8601 datetime string with optional timezone offset (e.g., 2024-10-20T00:00:00+01:00 or 2024-10-20T00:00:00Z). Stats are aggregated by UTC day.
- `endDate` string, date-time: End date as ISO 8601 datetime string with optional timezone offset (e.g., 2024-10-25T00:00:00+01:00 or 2024-10-25T00:00:00Z). Stats are aggregated by UTC day.
- `chatterUuids` string: Comma-separated chatter UUIDs to filter by (max 100). Defaults to all chatters in the agency.
- `creatorUuid` string, uuid: UUID of one of the agency's creators to restrict rows to. A creator outside the agency fails the request with 403. Defaults to every creator.

## Headers

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

## Response `200`

Cursor-paginated chatter earnings by creator

- object
  - `data` object[], required: Array of chatter × creator rows, ordered by revenue descending
    - `chatterUuid` string, uuid, required: UUID of the chatter (agency team member)
    - `chatterName` string, required: Chatter's nickname within the agency, falling back to display name
    - `avatarUrl` string, nullable, required: URL of the chatter's avatar image, or null
    - `isCurrentMember` boolean, required: False when the chatter has left the agency; their earnings in range still count
    - `creatorUuid` string, uuid, nullable, required: UUID of the creator the earnings were made for, or null if it cannot be resolved
    - `creatorName` string, nullable, required: Creator's display name, or null
    - `creatorHandle` string, nullable, required: Creator's handle, or null
    - `creatorAvatarUrl` string, nullable, required: URL of the creator's avatar image, or null
    - `revenue` integer, required: Gross earnings in cents, ppvRevenue plus tipsRevenue, by purchase date
    - `ppvRevenue` integer, required: Gross pay-per-view sales in cents, by purchase date. Refunds and chargebacks are not subtracted.
    - `ppvsSold` integer, required: Pay-per-view messages sold, by purchase date
    - `thisPeriodRevenue` integer, required: Of ppvRevenue, the cents from content sent within the date range
    - `earlierSendsRevenue` integer, required: Of ppvRevenue, the cents from content sent before the date range start. 0 when no range is given.
    - `earlierSendsCount` integer, required: Sales counted in earlierSendsRevenue
    - `tipsRevenue` integer, required: Gross chat tips in cents credited to the chatter, by purchase date. Refunds and chargebacks are not subtracted.
    - `tipsCount` integer, required: Tips counted in tipsRevenue
    - `netRevenue` integer, required: Net counterpart of revenue, in cents, after the Fanvue fee
    - `ppvNetRevenue` integer, required: Net counterpart of ppvRevenue, in cents
    - `thisPeriodNetRevenue` integer, required: Net counterpart of thisPeriodRevenue, in cents
    - `earlierSendsNetRevenue` integer, required: Net counterpart of earlierSendsRevenue, in cents
    - `tipsNetRevenue` integer, required: Net counterpart of tipsRevenue, in cents
    - `fanvueFee` integer, required: Fanvue fee on the pay-per-view sales and tips, in cents
    - `refundAmount` integer, required: Gross cents of the sales and tips later refunded. Reported, never subtracted
    - `refundsCount` integer, required: Count of the sales and tips later refunded
    - `chargebackAmount` integer, required: Gross cents of the sales and tips later charged back. Reported, never subtracted
    - `chargebacksCount` integer, required: Count of the sales and tips later charged back
  - `nextCursor` string, nullable, required: Opaque cursor for the next page, or null when there are no more results
  - `total` integer, nullable, required: Total number of items across all pages, or null when no count is computed
  - `totals` object, required: Every chatter's earnings summed for the filters, across all pages: the rows plus deleted or banned chatters and tips credited to no chatter. Equals the earnings leaderboard's totals for the same agency, filters and period.
    - `revenue` integer, required: Gross earnings in cents, ppvRevenue plus tipsRevenue, by purchase date
    - `ppvRevenue` integer, required: Gross pay-per-view sales in cents, by purchase date. Refunds and chargebacks are not subtracted.
    - `ppvsSold` integer, required: Pay-per-view messages sold, by purchase date
    - `thisPeriodRevenue` integer, required: Of ppvRevenue, the cents from content sent within the date range
    - `earlierSendsRevenue` integer, required: Of ppvRevenue, the cents from content sent before the date range start. 0 when no range is given.
    - `earlierSendsCount` integer, required: Sales counted in earlierSendsRevenue
    - `tipsRevenue` integer, required: Gross chat tips in cents credited to the chatter, by purchase date. Refunds and chargebacks are not subtracted.
    - `tipsCount` integer, required: Tips counted in tipsRevenue
    - `netRevenue` integer, required: Net counterpart of revenue, in cents, after the Fanvue fee
    - `ppvNetRevenue` integer, required: Net counterpart of ppvRevenue, in cents
    - `thisPeriodNetRevenue` integer, required: Net counterpart of thisPeriodRevenue, in cents
    - `earlierSendsNetRevenue` integer, required: Net counterpart of earlierSendsRevenue, in cents
    - `tipsNetRevenue` integer, required: Net counterpart of tipsRevenue, in cents
    - `fanvueFee` integer, required: Fanvue fee on the pay-per-view sales and tips, in cents
    - `refundAmount` integer, required: Gross cents of the sales and tips later refunded. Reported, never subtracted
    - `refundsCount` integer, required: Count of the sales and tips later refunded
    - `chargebackAmount` integer, required: Gross cents of the sales and tips later charged back. Reported, never subtracted
    - `chargebacksCount` integer, required: Count of the sales and tips later charged back

## Other responses

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

## Changes

- **2026-10-21** `966260af2770`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/fanvue/apis/fanvue-api/changes/agencies/insights/chatter-earnings/get.md)

---

[API](https://skmtc.dev/fanvue/apis/fanvue-api.md) - [All operations](https://skmtc.dev/fanvue/apis/fanvue-api/llms.txt) - [OpenAPI document](https://skmtc.dev/fanvue/apis/fanvue-api/revisions/966260af2770?raw)
