INTEGRATION

Your Revenue Data in Google Sheets — Automatically, Without Manual Pulls

Every manual data pull is compounding waste: 10 creators, 10 logins, 10 copy-paste sessions, and a spreadsheet that is already stale by the time it is done. Built to eliminate the hours lost every week to the same manual process. Now the OFAPI writes directly into your Google Sheets — revenue by creator, subscriber counts, payout history, top spenders — automatically, on your schedule. The same infrastructure used to track $50M+ in revenue across 60+ creators.

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   = "https://api.ofapi.dev/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.

Wake up to updated spreadsheets. Stop starting every morning with manual pulls.

Agencies reconciling revenue by hand routinely miss $4K–$12K per creator per month in tracking gaps and attribution errors. The data is there — the OFAPI just needs a direct line into your Sheets. Set it up once in under 20 minutes.