INTEGRATION

OnlyFans API Slack Integration

Get real-time OnlyFans API Slack notifications for revenue milestones, new subscribers, churn alerts, and payout updates. Keep your entire agency team informed without switching tabs or refreshing dashboards. The integration uses OFAPI webhooks to push formatted messages to any Slack channel in under five seconds.

What You Can Send to Slack

Revenue alerts

Get notified when a creator crosses a daily or monthly revenue threshold. Track subscription income, tips, PPV sales, and referral earnings in real time.

Churn notifications

Know the moment a subscriber expires or fails to renew. Trigger re-engagement workflows before it is too late.

New subscriber alerts

Celebrate every new subscriber with an instant Slack message that includes username, subscription tier, and spend history.

Payout confirmations

Get a message in your finance channel when a payout processes, including the amount and transaction ID.

Setup Guide

1

Create a Slack Incoming Webhook

In your Slack workspace, navigate to Apps → Incoming Webhooks and create a new webhook. Select the channel where you want OFAPI alerts to appear. Copy the webhook URL — it will look like https://hooks.slack.com/services/T.../B.../xxx.

2

Register Your Webhook in OFAPI

In the OFAPI dashboard, go to Settings → Webhooks and add a new endpoint. Point it at your relay server (see Step 3) and subscribe to the events you care about: subscriber.new, subscriber.expired, revenue.received.

3

Deploy a Relay Script

Build a small HTTP server that receives OFAPI webhook events and forwards them to Slack as formatted messages. Here is a complete example in Python using Flask:

slack_relay.py Python
import os
import requests
from flask import Flask, request, jsonify

app = Flask(__name__)

SLACK_WEBHOOK = os.environ["SLACK_WEBHOOK_URL"]
OFAPI_SECRET  = os.environ["OFAPI_WEBHOOK_SECRET"]

@app.route("/webhook", methods=["POST"])
def handle_webhook():
    payload = request.json
    event   = payload["event"]
    data    = payload["data"]

    # Format message based on event type
    if event == "revenue.received":
        text = f":moneybag: *Revenue* — {data['creator']} earned ${data['amount']:.2f} ({data['type']})"
    elif event == "subscriber.new":
        text = f":tada: *New Sub* — {data['username']} subscribed to {data['creator']}"
    elif event == "subscriber.expired":
        text = f":warning: *Churn* — {data['username']} expired on {data['creator']}"
    else:
        text = f":bell: *{event}* — {data}"

    # Send to Slack
    requests.post(SLACK_WEBHOOK, json={"text": text})
    return jsonify({"ok": True}), 200
4

Test the Integration

Use the Send Test Event button in the OFAPI dashboard webhook settings. A test payload will fire to your relay, and you should see a formatted message in your Slack channel within seconds. If nothing appears, check your server logs and confirm the Slack webhook URL is correct.

Example Slack Message Payload

This is the JSON your relay script sends to the Slack Incoming Webhook API:

Slack API Request Body JSON
{
  "text": ":moneybag: *Revenue* — luna_model earned $47.50 (tip)",
  "channel": "#revenue-alerts",
  "username": "OFAPI Bot",
  "icon_emoji": ":chart_with_upwards_trend:"
}

Never miss a revenue event again

Webhooks are available on Pro and Enterprise plans. Get your API key and start pushing alerts to Slack in minutes.