Fansly API LogoFansly API

Webhook Events

Learn more about all Fansly API webhook events you can subscribe to.

Webhooks are the best way for your application to receive real-time updates from the Fansly API. Instead of constantly polling for changes, you can configure webhooks to proactively send events directly to your server.

This reference covers all available webhook events you can subscribe to. Some events are currently active and will send detailed JSON payloads, while others are upcoming and will be supported in future updates.

Active Events

The following events are currently fully supported. You will receive a webhook notification with a JSON payload when these events occur.

Account Connected (accounts.connected)

Triggered when a Fansly account is successfully connected.

{
  "event": "accounts.connected",
  "accountId": "fansly_ACCOUNT_ID",
  "timestamp": "2026-07-08T18:00:00.000Z",
  "data": {
    "id": "FANSLY_ACCOUNT_ID", // Your Fansly account ID
    "accountName": "my_fansly_account",
    "connectedAt": "2026-07-08T18:00:00.000Z"
  }
}

Message Received (messages.received)

Triggered when a new message is received.

{
  "event": "messages.received",
  "accountId": "fansly_ACCOUNT_ID",
  "timestamp": "2026-07-08T18:05:05.157Z",
  "data": {
    "type": 1,
    "attachments": [],
    "content": "hi",
    "groupId": "GROUP_ID",
    "senderId": "SENDER_ID",
    "inReplyTo": "",
    "interactions": [
      {
        "groupId": "GROUP_ID",
        "userId": "USER_ID",
        "readAt": 0,
        "deliveredAt": 0,
        "messageId": "MESSAGE_ID"
      }
    ],
    "id": "MESSAGE_ID",
    "createdAt": 1783533902.804,
    "embeds": []
  }
}

Message Sent (messages.sent)

Triggered when a new message is sent.

{
  "event": "messages.sent",
  "accountId": "fansly_ACCOUNT_ID",
  "timestamp": "2026-07-08T18:04:32.438Z",
  "data": {
    "type": 1,
    "attachments": [],
    "content": "hey there",
    "groupId": "GROUP_ID",
    "senderId": "SENDER_ID",
    "inReplyTo": "",
    "interactions": [
      {
        "groupId": "GROUP_ID",
        "userId": "USER_ID",
        "readAt": 0,
        "deliveredAt": 0,
        "messageId": "MESSAGE_ID"
      }
    ],
    "id": "MESSAGE_ID",
    "createdAt": 1783533871.59,
    "embeds": []
  }
}

PPV Message Purchased (ppv.purchased)

Triggered when a user purchases a pay-per-view (PPV) message.

{
  "accountId": "fansly_ACCOUNT_ID",
  "event": "ppv.purchased",
  "timestamp": "2026-06-23T18:11:59.242Z",
  "data": {
    "orderId": "ORDER_ID", // Order ID
    "accountMediaId": "MEDIA_ID", // Media content ID
    "correlationAccountId": "CREATOR_ID", // Creator account ID
    "accountId": "FAN_ID", // Fan ID
    "type": 1,
    "orderMetadata": {
      "accountMediaPrice": 1000 // Price in cents
    }
  }
}

Post Liked (posts.liked)

Triggered when a fan likes one of your posts.

{
  "event": "posts.liked",
  "accountId": "fansly_ACCOUNT_ID",
  "timestamp": "2026-08-17T22:21:48.930Z",
  "data": {
    "id": "NOTIFICATION_ID", // Fansly notification ID
    "postId": "POST_ID", // The post that was liked
    "fanId": "FAN_ID", // Account that liked the post
    "creatorId": "CREATOR_ID" // Your Fansly account ID
  }
}

Tip Received (tips.received)

Triggered when a tip is received.

{
  "accountId": "fansly_ACCOUNT_Id",
  "event": "tips.received",
  "timestamp": "2026-06-23T18:11:59.305Z",
  "data": {
    "id": "TIP_ID",
    "type": 2110,
    "originWalletId": null,
    "destinationWalletId": "WALLET_ID",
    "status": 1,
    "amount": 9999, // Amount in cents
    "destinationTax": 2000,
    "destinationAmount": 800,
    "correlationId": "CORRELATION_ID"
  }
}

New Subscription (subscriptions.new)

Triggered when a new subscription is created.

Payload structure coming soon.

User Typing (users.typing)

Triggered when a fan is typing in a conversation.

{
  "event": "users.typing",
  "accountId": "fansly_ACCOUNT_ID",
  "timestamp": "2026-08-17T22:21:29.586Z",
  "data": {
    "id": "CONVERSATION_ID-TYPED_AT", // Conversation ID and announce time
    "conversationId": "CONVERSATION_ID", // Conversation being typed in
    "fanId": "FAN_ID", // Account that is typing
    "creatorId": "CREATOR_ID", // Your Fansly account ID
    "typingAt": 1787005287761 // Unix milliseconds
  }
}
Throttled to one event per conversation every 15 seconds, so a long message sends one event rather than many. There is no matching "stopped typing" event — expire the state on your side.

All Event Types

Below is the complete list of all webhook events that can be configured, including both active and upcoming events.

Event ValueDescriptionStatus
accounts.connectedAccount connectedActive
messages.receivedMessage receivedActive
messages.sentMessage sentActive
ppv.purchasedPPV message purchasedActive
posts.likedPost likedActive
tips.receivedTip receivedActive
subscriptions.newNew subscriptionActive
users.typingUser typingActive
subscriptions.renewedRenewed subscriptionUpcoming
transactions.newNew transactionUpcoming
accounts.reconnectedAccount reconnectedUpcoming
accounts.session_expiredAccount session expiredUpcoming
accounts.authentication_failedAccount authentication failedUpcoming
accounts.otp_code_requiredOTP code requiredUpcoming
accounts.face_otp_requiredFace OTP requiredUpcoming

On this page