INTEGRATION

OnlyFans API Google Sheets Integration

Auto-sync OnlyFans API Google Sheets data for revenue reporting, subscriber tracking, and payout reconciliation. Stop manually copying numbers from dashboards into spreadsheets. This integration pulls live data from the OFAPI and writes it directly into the Google Sheets your team already uses for reporting — automatically, on a schedule, or in real time via webhooks.

What Gets Synced

Revenue by creator

Daily and monthly earnings broken down by subs, tips, PPV, and referrals.

Subscriber counts

Total active, new, and expired subscribers per creator per day.

Payout history

Every payout transaction with amounts, dates, and status for reconciliation.

Top fan rankings

Top spenders by total value, updated on each sync cycle.

Setup Guide

1

Create a Service Account

Go to the Google Cloud Console, create a new project (or use an existing one), enable the Google Sheets API, and create a service account. Download the JSON key file. This gives your script programmatic access to write to spreadsheets.

Install dependencies Shell
pip install gspread google-auth requests
2

Share Your Spreadsheet

Open your target Google Sheet and share it with the service account email (found in the JSON key file, looks like your-bot@project.iam.gserviceaccount.com). Give it Editor access.

3

Deploy the Sync Script

This Python script fetches revenue data from the OFAPI and appends it to your Google Sheet. Run it on a cron job or trigger it from a webhook relay.

sync_to_sheets.py Python
import os, requests, gspread
from google.oauth2.service_account import Credentials

# Config
API_KEY    = os.environ["OFAPI_KEY"]
BASE_URL   = "http://157.180.79.226:4024/api/v1/onlyfans"
SHEET_NAME = "OFAPI Revenue"

# Auth — Google Sheets
creds = Credentials.from_service_account_file(
    "service-account.json",
    scopes=["https://www.googleapis.com/auth/spreadsheets"]
)
gc = gspread.authorize(creds)
sheet = gc.open(SHEET_NAME).sheet1

# Fetch creators
headers = {"X-API-Key": API_KEY}
models  = requests.get(f"{BASE_URL}/models", headers=headers).json()

for model in models["models"]:
    # Fetch revenue for each creator
    stats = requests.get(
        f"{BASE_URL}/models/{model['id']}/statistics/overview",
        headers=headers
    ).json()

    # Append row: [date, creator, subs, tips, ppv, total]
    sheet.append_row([
        stats["date"],
        model["username"],
        stats["subscriptions"],
        stats["tips"],
        stats["ppv"],
        stats["total_revenue"],
    ])

print(f"Synced {len(models['models'])} creators to Google Sheets")
4

Automate It

Run the script on a daily cron schedule for batch reporting, or set up a webhook relay that triggers the sync in real time whenever a revenue.received event fires. For no-code setups, you can also trigger this via Zapier or Make.

Automate your revenue reporting

Stop copying numbers by hand. Sync OnlyFans revenue data to Google Sheets in minutes.