Data Exports
Our data exports offer full historic data of transactions, chat messages, media, and much more.
Available data export types
Transactions
Chat Messages
Media
Trial Links
Tracking Links
Smart Links
Payouts
Chargebacks
Public Profiles
Followings
Fans
Profile Visitors
Export type reference
The type column below is the value you pass to the Create Data Export endpoint.
| Export type | type | File formats | Date range | Requires a creator account |
|---|---|---|---|---|
| Transactions | transactions | CSV, XLSX | Required | Yes |
| Chat Messages | chat_messages | CSV, XLSX | Required | No |
| Media | media_vault | ZIP | Required | Yes |
| Trial Links | trial_links | CSV, XLSX | Required | Yes |
| Tracking Links | tracking_links | CSV, XLSX | Required | Yes |
| Smart Links | smart_links | CSV, XLSX | Optional | Yes |
| Payouts | payouts | CSV, XLSX | Required | Yes |
| Chargebacks | chargebacks | CSV, XLSX | Required | Yes |
| Public Profiles | public_profiles | CSV, XLSX | Not applicable | No |
| Fans | fans | CSV, XLSX | Not applicable | Yes |
| Followings | followings | CSV, XLSX | Not applicable | No |
| Profile Visitors | profile_visitors | CSV, XLSX | Required | Yes |
Public Profiles does not take accounts
Every export type except public_profiles requires at least one connected account in account_ids. Public Profiles is looked up by username instead, so it works without a connected account.
Getting started
You can create and manage data exports in two ways:
- Dashboard: Visit the Data Exports page on our Console for a no-code interface
- API: Use our Data Exports API endpoints to programmatically create and manage exports
Starting an export via Dashboard
To get started, click on the "Create Export" button, which will take you to the export creation page. You're then prompted customize your export:
Data type
As the first step, select the type of data you want to export. Please refer to the list above for available export types.
Export fields
Select the fields you want to include in your export. For a full list of available fields, please refer to the available export fields list.
Accounts
Choose which accounts you want to include in your export. You can select all connected accounts, or select specific accounts.
Date range
Select the data range that you wish to be included in your export.
View the export cost
For some Data Export types, it is not possible to calculate the cost upfront. If this is the case, it will be calculated once the export is completed. For other Data Export types, you will see the cost of the export here.
Select the export file type
Click on "Export Data", and choose either CSV or Excel (XSLX). This will start the export!
That's it!
Your data export will now be processed by our servers in the background, and you will be able to download it once completed.
Using the API
Data exports can be created and managed either through our Dashboard or programmatically using our API endpoints. The API provides full control over the export lifecycle, allowing you to automate data exports and integrate them into your workflows.
Export workflow
The data export process follows a two-step workflow:
Create Data Export
Use the Create Data Export endpoint to create a new export request. This endpoint will calculate the required credits based on your selected parameters (data type, fields, accounts, and date range) and prepare the export for processing.
Start Data Export
Once the export has been created and credit calculation is complete, use the Start Data Export endpoint to begin processing. This will charge the calculated credits and start the actual export process.
Monitoring exports
You can monitor the status and progress of your exports using the following endpoints:
- List Data Exports - Get a paginated list of all data exports for your team
- Get Data Export Status - Check the current status, progress, and download URL for a specific export
Once an export is completed, you can download the file using the download URL provided in the export status response.
Big data exports
Depending on the chosen date range and account size, your export might take several hours to complete if you're exporting a large amount of data. You can safely close the browser window, and return to the Data Exports page later to check the status of your export.
Understanding export progress & row counts
When you create an export, we first scan OnlyFans to find every record that matches your selection, then write those records to the export file. The status endpoints — Get Data Export Status and List Data Exports — and the dashboard surface a few fields that describe this progress:
| Field | Dashboard label | What it means |
|---|---|---|
total_rows | Total Rows | The number of matching records found for your export during scanning. Your credit cost is based on this number. For most export types every found row is written to the file, so total_rows equals the number of rows in the delivered file. |
rows_processed | — | The number of rows actually written to the export file — i.e. the delivered count. |
failed_downloads | — | Media exports only. The number of media files that could not be downloaded (failed_downloads = total_rows − rows_processed). It is 0 for every other export type. |
Why a media export can show more “rows” than files delivered
For media exports, each "row" is an individual file that has to be downloaded from OnlyFans and added to the ZIP. Unlike CSV or Excel exports — where every found row is always written to the file — a media file download can occasionally fail at the moment it runs (for example, a temporary access error).
We automatically retry failed downloads, but a few may still not succeed within a single export run. This means a completed media export can legitimately contain fewer files than its Total Rows. The dashboard reflects this by showing, for example, "48 of 50 media downloaded" and, when any files failed, a "Completed with N failed" status instead of a plain success — so the numbers always reconcile:
total_rows (found) = rows_processed (delivered) + failed_downloads
If some files failed, simply re-run the export to attempt the remaining files again. These failures are usually transient and succeed on a later run.
Other export types always match
This rows-vs-delivered distinction only applies to media exports. For transactions, chat messages, payouts, and every other export type, each found row is always written to the file — so total_rows and rows_processed are always equal.
DRM-protected videos aren't included in exports
Media Vault exports don't include videos that have DRM enabled in OnlyFans. These files are encrypted, so the export counts them as failed_downloads rather than writing them to the export file. Photos and other non-DRM media are unaffected.
You can still retrieve a DRM-protected video individually with the Download DRM-protected Media endpoint, which resolves the Widevine license and returns a decrypted MP4. Bulk export of DRM videos is not supported.
Profile Visitors granularity
A Profile Visitors export contains one row per account, per day in your selected date range — not one aggregated row for the whole range.
OnlyFans buckets its profile statistics chart into coarser periods as the requested range widens, so a single request for a long range loses day-level detail. We therefore request each day individually and store it, which keeps the daily numbers intact regardless of how long a range you export.
This also means the row count — and therefore the cost — scales with the number of days multiplied by the number of accounts. A 90-day export across 3 accounts produces 270 rows.
Not every account has profile statistics
OnlyFans only exposes profile visitor statistics to accounts that are eligible for them. If statistics are unavailable for an account, it simply contributes no rows to the export.
Available export fields
Field names below map to the export_columns values accepted by the Create Data Export endpoint. Omit export_columns to receive every field for the chosen type.
Pricing
The following pricing applies to our data exports:
| Export type | Cost |
|---|---|
| Transactions | 1 credit per 20 results |
| Chat Messages | 1 credit per 20 results |
| Media | 1 credit per 20 results |
| Trial Links | 1 credit per 20 results |
| Tracking Links | 1 credit per 20 results |
| Smart Links | Free |
| Payouts | 1 credit per 20 results |
| Chargebacks | 1 credit per 20 results |
| Public Profiles | 3 credits per profile |
| Fans | 1 credit per 20 results |
| Followings | 1 credit per 20 results |
| Profile Visitors | 1 credit per 20 results |
What counts as a “result” for Profile Visitors
One result is one account-day. A 90-day export across 3 accounts is 270 results, so 14 credits.