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.
Active Events
The following events are currently fully supported. You will receive a webhook notification with a JSON payload when these events occur.
Every webhook shares the same envelope. Only data changes between event types:
{
"event": "posts.liked",
"accountId": "fansly_ACCOUNT_ID",
"timestamp": "2026-07-08T18:00:00.000Z",
"data": { }
}Account Events
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": "CREATOR_ID",
"accountName": "my_fansly_account",
"connectedAt": "2026-07-08T18:00:00.000Z"
}
}Message Events
Message Received (messages.received)
Triggered when a fan sends you a message.
{
"event": "messages.received",
"accountId": "fansly_ACCOUNT_ID",
"timestamp": "2026-07-08T18:05:05.157Z",
"data": {
"senderId": "FAN_ID", // Account that sent the message
"content": "hi",
"attachments": [
{
"contentId": "MEDIA_ID",
"contentType": 7,
"messageId": "MESSAGE_ID",
"pos": 0
}
],
"correlationId": "CORRELATION_ID",
"groupId": "GROUP_ID",
"interactions": [
{
"groupId": "GROUP_ID",
"userId": "CREATOR_ID",
"readAt": 0,
"deliveredAt": 0,
"messageId": "MESSAGE_ID"
}
],
"id": "MESSAGE_ID",
"createdAt": 1783533902.804,
"embeds": []
}
}Message Sent (messages.sent)
Triggered when a message is sent from your account.
{
"event": "messages.sent",
"accountId": "fansly_ACCOUNT_ID",
"timestamp": "2026-07-08T18:04:32.438Z",
"data": {
"type": 1,
"attachments": [
{
"contentType": 1,
"contentId": "MEDIA_ID",
"messageId": "MESSAGE_ID",
"pos": 0
}
],
"content": "hey there",
"groupId": "GROUP_ID",
"senderId": "CREATOR_ID",
"inReplyTo": "",
"interactions": [
{
"groupId": "GROUP_ID",
"userId": "FAN_ID",
"readAt": 0,
"deliveredAt": 0,
"messageId": "MESSAGE_ID"
}
],
"id": "MESSAGE_ID",
"createdAt": 1783533871.59,
"embeds": []
}
}Message Read (messages.read)
Triggered when messages in a conversation are marked as read.
{
"event": "messages.read",
"accountId": "fansly_ACCOUNT_ID",
"timestamp": "2026-07-08T18:06:11.742Z",
"data": {
"groupId": "GROUP_ID", // The conversation
"messageIds": ["MESSAGE_ID"], // Every message marked read by this receipt
"userId": "CREATOR_ID", // Account whose messages were read
"userReadReceiptsEnabled": true,
"type": 1,
"recipients": [
{
"userId": "FAN_ID",
"readReceiptsEnabled": true
},
{
"userId": "CREATOR_ID",
"readReceiptsEnabled": true
}
]
}
}Message Liked (messages.liked)
Triggered when a message is reacted to.
{
"event": "messages.liked",
"accountId": "fansly_ACCOUNT_ID",
"timestamp": "2026-07-08T18:07:02.410Z",
"data": {
"accountId": "FAN_ID",
"messageId": "MESSAGE_ID",
"type": 1,
"groupId": "GROUP_ID",
"id": "REACTION_ID"
}
}Message Unliked (messages.unliked)
Triggered when a reaction is removed from a message.
{
"event": "messages.unliked",
"accountId": "fansly_ACCOUNT_ID",
"timestamp": "2026-07-08T18:07:48.220Z",
"data": {
"accountId": "FAN_ID",
"messageId": "MESSAGE_ID",
"type": 1,
"id": "REACTION_ID",
"groupId": "GROUP_ID"
}
}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",
"conversationId": "CONVERSATION_ID",
"fanId": "FAN_ID",
"creatorId": "CREATOR_ID",
"typingAt": 1787005287761
}
}Post Events
Post Created (posts.created)
Triggered when a post is published to one of your walls.
{
"event": "posts.created",
"accountId": "fansly_ACCOUNT_ID",
"timestamp": "2026-07-08T18:10:46.096Z",
"data": {
"postId": "POST_ID",
"wallId": "WALL_ID",
"wall": {
"id": "WALL_ID",
"accountId": "CREATOR_ID",
"pos": 2,
"name": "Posts",
"description": "",
"private": 0,
"metadata": ""
},
"post": {
"id": "POST_ID",
"accountId": "CREATOR_ID",
"content": "Hello everyone!",
"fypFlags": 0,
"inReplyTo": null,
"inReplyToRoot": null,
"createdAt": 1788529184,
"expiresAt": null,
"attachments": []
},
"metadata": {
"recentPost": true
}
}
}Post Updated (posts.updated)
Triggered when an existing post is edited.
{
"event": "posts.updated",
"accountId": "fansly_ACCOUNT_ID",
"timestamp": "2026-07-08T18:11:26.470Z",
"data": {
"id": "POST_ID",
"accountId": "CREATOR_ID",
"content": "Hello everyone! (edited)",
"fypFlags": 0,
"inReplyTo": null,
"inReplyToRoot": null,
"createdAt": 1788529184,
"expiresAt": 0,
"attachments": [],
"likeCount": 0,
"postReplyPermissionFlags": [],
"wallIds": ["WALL_ID", "WALL_ID"]
}
}Post Deleted (posts.deleted)
Triggered when a post is removed from a wall.
{
"event": "posts.deleted",
"accountId": "fansly_ACCOUNT_ID",
"timestamp": "2026-07-08T18:12:50.656Z",
"data": {
"postId": "POST_ID",
"wallId": "WALL_ID"
}
}Post Pinned (posts.pinned)
Triggered when a post is pinned to a wall.
{
"event": "posts.pinned",
"accountId": "fansly_ACCOUNT_ID",
"timestamp": "2026-07-08T18:13:50.287Z",
"data": {
"postId": "POST_ID",
"accountId": "CREATOR_ID",
"pos": 0,
"wallId": "WALL_ID"
}
}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",
"postId": "POST_ID",
"fanId": "FAN_ID",
"creatorId": "CREATOR_ID"
}
}Post Unliked (posts.unliked)
Triggered when a fan removes their like from one of your posts.
{
"event": "posts.unliked",
"accountId": "fansly_ACCOUNT_ID",
"timestamp": "2026-07-08T18:15:10.633Z",
"data": {
"id": "NOTIFICATION_ID",
"postId": "POST_ID",
"fanId": "FAN_ID",
"creatorId": "CREATOR_ID"
}
}Post Comment (posts.commented)
Triggered when someone comments on a post.
{
"event": "posts.commented",
"accountId": "fansly_ACCOUNT_ID",
"timestamp": "2026-07-08T18:14:27.047Z",
"data": {
"accountId": "FAN_ID",
"content": "Great post!",
"fypFlags": 0,
"inReplyTo": "POST_ID",
"quotedPostId": null,
"replyPermissionFlags": 0,
"postReplyPermissionFlags": [],
"expiresAt": 0,
"attachments": [],
"wallIds": [],
"pinWallIds": [],
"pinned": 0,
"id": "COMMENT_ID",
"inReplyToRoot": "POST_ID"
}
}Follower Events
User Followed (users.followed)
Triggered when an account follows you.
{
"event": "users.followed",
"accountId": "fansly_ACCOUNT_ID",
"timestamp": "2026-07-08T18:16:11.712Z",
"data": {
"followerId": "FAN_ID",
"accountId": "CREATOR_ID",
"id": "FOLLOW_ID",
"accountSortOrder": 1
}
}User Unfollowed (users.unfollowed)
Triggered when an account unfollows you.
{
"event": "users.unfollowed",
"accountId": "fansly_ACCOUNT_ID",
"timestamp": "2026-07-08T18:17:24.890Z",
"data": {
"followerId": "FAN_ID",
"accountId": "CREATOR_ID",
"id": "FOLLOW_ID",
"createdAt": 1788456476000
}
}Payment Events
Tip Received (tips.received)
Triggered when a tip is received.
{
"event": "tips.received",
"accountId": "fansly_ACCOUNT_ID",
"timestamp": "2026-06-23T18:11:59.305Z",
"data": {
"id": "TRANSACTION_ID",
"type": 7101,
"originWalletId": null,
"destinationWalletId": "WALLET_ID",
"status": 1,
"amount": 1000,
"destinationTax": 2000,
"destinationAmount": 800,
"correlationId": "CORRELATION_ID"
}
}amount and destinationAmount are in cents. destinationAmount is what you receive after fees.PPV Message Purchased (ppv.purchased)
Triggered when a user purchases a pay-per-view (PPV) message.
{
"event": "ppv.purchased",
"accountId": "fansly_ACCOUNT_ID",
"timestamp": "2026-06-23T18:11:59.242Z",
"data": {
"orderId": "ORDER_ID",
"accountMediaId": "MEDIA_ID",
"correlationAccountId": "CREATOR_ID",
"accountId": "FAN_ID",
"type": 1,
"orderMetadata": {
"accountMediaPrice": 1000
}
}
}New Transaction (transactions.new)
Triggered on every balance movement. Subscribe to this for a single feed of all earnings instead of handling each payment event separately.
{
"event": "transactions.new",
"accountId": "fansly_ACCOUNT_ID",
"timestamp": "2026-07-08T18:20:50.172Z",
"data": {
"id": "TRANSACTION_ID",
"type": 7101,
"originWalletId": null,
"destinationWalletId": "WALLET_ID",
"status": 1,
"amount": 1000, // Gross amount in cents
"destinationTax": 2000, // Platform fee in basis points (2000 = 20%)
"destinationAmount": 800, // Net amount you receive, in cents
"correlationId": "CORRELATION_ID"
}
}id if you need to reconcile them.Subscription Events
New Subscription (subscriptions.new)
Triggered when a subscription is created or renewed.
{
"event": "subscriptions.new",
"accountId": "fansly_ACCOUNT_ID",
"timestamp": "2026-07-08T18:24:36.368Z",
"data": {
"id": "SUBSCRIPTION_ID",
"historyId": "HISTORY_ID",
"accountId": "CREATOR_ID",
"subscriberId": "FAN_ID",
"subscriptionTierId": "TIER_ID",
"subscriptionTierName": "Gold",
"subscriptionTierColor": "#FFD700",
"planId": "PLAN_ID",
"promoId": null,
"giftCodeId": "GIFT_CODE_ID",
"status": 3,
"price": 250,
"renewPrice": 5000,
"renewCorrelationId": "HISTORY_ID",
"autoRenew": 1,
"version": 5,
"billingCycle": 30,
"duration": 37,
"renewDate": 1788467245000,
"createdAt": 1788465372000,
"endsAt": 1791664045863,
"promoDuration": null,
"promoStartsAt": null,
"promoEndsAt": null,
"updatedAt": 1788467245865,
"subscriptionStreak": 1,
"subscriptionTotalDays": 30,
"giftCodeRenew": true
}
}price and renewPrice are in cents. billingCycle is in days.Subscription Renewed (subscriptions.renewed)
Triggered when an existing subscription rebills for another cycle. Same payload shape as subscriptions.new, with a freshly minted historyId for the cycle.
{
"event": "subscriptions.renewed",
"accountId": "fansly_ACCOUNT_ID",
"timestamp": "2026-07-08T18:25:14.902Z",
"data": {
"id": "SUBSCRIPTION_ID",
"historyId": "HISTORY_ID",
"accountId": "CREATOR_ID",
"subscriberId": "FAN_ID",
"subscriptionTierId": "TIER_ID",
"subscriptionTierName": "Gold",
"subscriptionTierColor": "#FFD700",
"planId": "PLAN_ID",
"promoId": null,
"giftCodeId": "GIFT_CODE_ID",
"status": 3,
"price": 250,
"renewPrice": 5000,
"renewCorrelationId": "HISTORY_ID",
"autoRenew": 1,
"version": 5,
"billingCycle": 30,
"duration": 37,
"renewDate": 1788467245000,
"createdAt": 1788465372000,
"endsAt": 1791664045863,
"promoDuration": null,
"promoStartsAt": null,
"promoEndsAt": null,
"updatedAt": 1788467245865,
"subscriptionStreak": 1,
"subscriptionTotalDays": 30,
"giftCodeRenew": true
}
}subscriptionStreak counts completed billing cycles and subscriptionTotalDays the total time subscribed. id stays fixed for the life of the subscription; historyId identifies the individual cycle.Subscription Expired (subscriptions.expired)
Triggered when a subscription reaches the end of its billing period without renewing.
{
"event": "subscriptions.expired",
"accountId": "fansly_ACCOUNT_ID",
"timestamp": "2026-07-08T18:26:05.128Z",
"data": {
"id": "NOTIFICATION_ID",
"subscriptionId": "SUBSCRIPTION_ID",
"fanId": "FAN_ID",
"creatorId": "CREATOR_ID"
}
}All Event Types
Below is the complete list of all webhook events that can be configured, including both active and upcoming events.
| Event Value | Description | Status |
|---|---|---|
accounts.connected | Account connected | Active |
messages.received | Message received | Active |
messages.sent | Message sent | Active |
messages.read | Message read | Active |
messages.liked | Message liked | Active |
messages.unliked | Message unliked | Active |
users.typing | User typing | Active |
posts.created | Post created | Active |
posts.updated | Post updated | Active |
posts.deleted | Post deleted | Active |
posts.pinned | Post pinned | Active |
posts.liked | Post liked | Active |
posts.unliked | Post unliked | Active |
posts.commented | Post comment | Active |
users.followed | User followed | Active |
users.unfollowed | User unfollowed | Active |
tips.received | Tip received | Active |
ppv.purchased | PPV message media purchased | Active |
transactions.new | New transaction | Active |
subscriptions.new | New subscription | Active |
subscriptions.expired | Subscription expired | Active |
subscriptions.renewed | Renewed subscription | Active |
accounts.reconnected | Account reconnected | Upcoming |
accounts.session_expired | Account session expired | Upcoming |
accounts.authentication_failed | Account authentication failed | Upcoming |
accounts.otp_code_required | OTP code required | Upcoming |
accounts.face_otp_required | Face OTP required | Upcoming |