Get earnings data

Returns cursor-paginated invoice data for the authenticated creator over a specified time period. Each transaction includes information about the fan who made the payment. Reversals are included as refund/chargeback rows with negative gross (matching /insights/spending); filter them with source.

Pass transactionOrderIds (comma-separated, max 100) to fetch only specific transactions by ID — useful for re-fetching known transactions to pick up status changes. It combines with the other filters and normal pagination still applies.

Pass experienceUuid to return only the revenue one fan experience produced: its one-off access purchases, its first subscription charge, every renewal, and the refunds and chargebacks reversing any of them. Every row also reports experienceUuid and experienceAppUuid, so an unfiltered page can be attributed client-side too.

<Info> **Polling for real-time updates? Use a webhook instead.**

If you are calling this endpoint on a schedule to detect new activity, subscribe to the creator.payment.succeeded, creator.refund.created, creator.dispute.created, creator.dispute.flagged webhook events instead — you'll get pushed updates in real time without polling. See the webhook documentation. </Info>

Webhooks replace polling for detecting these events, but for authoritative financial figures you should still reconcile against this endpoint. The creator.payment.succeeded payload's data.id is the Fanvue invoice number, which matches the transactionOrderId on the rows returned here — pass it to transactionOrderIds to cross-check specific transactions without a full re-poll.

get/insights/earnings

Query parameters

startDatestring 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).

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).

endDatestring 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). Non-inclusive - data before this date is included.

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). Non-inclusive - data before this date is included.

sourceEarningSource[]

Comma-separated list of earning sources

Comma-separated list of earning sources. Default: all

transactionOrderIdsstring[]

Comma-separated transaction order IDs (max 100)

Comma-separated transaction order IDs to fetch (max 100). Use to re-fetch specific transactions by ID and pick up status changes. Combines with the other filters; normal pagination still applies.

experienceUuidstring uuid

Return only earnings attributed to this fan experience. Matches every charge the experience produced, including one-off access purchases, the first subscription charge and each renewal, plus the refunds and chargebacks that reverse any of them, so a filtered total nets out correctly. Combines with the other filters; normal pagination still applies.

Use this rather than filtering on source: a renewal reports source: "renewal", so source=fanExperience under-reports recurring experience revenue from the second charge onwards.

Return only earnings attributed to this fan experience. Matches every charge the experience produced, including one-off access purchases, the first subscription charge and each renewal, plus the refunds and chargebacks that reverse any of them, so a filtered total nets out correctly. Combines with the other filters; normal pagination still applies.

Use this rather than filtering on source: a renewal reports source: "renewal", so source=fanExperience under-reports recurring experience revenue from the second charge onwards.

cursorstring

Cursor for pagination - If given, pass nextCursor to get the next page.

Cursor for pagination - If given, pass nextCursor to get the next page.

sizenumber

Number of items to return per page (1-50, default: 20). When omitted on a cursor request, the size from the previous page (carried in the cursor) is reused.

Number of items to return per page (1-50, default: 20). When omitted on a cursor request, the size from the previous page (carried in the cursor) is reused.

Headers

X-Fanvue-API-Versionstring required
Example:2025-06-26

API version to use for the request

Response

Earnings data with cursor pagination

nextCursorstring nullable required

Cursor for next page, null if no more data

Changes