Send Chat Message
Send a message to a fan. Provide text, a gif, or one or more mediaUuids. A body with none of the three is rejected before Fanvue is called.
Media is referenced by the UUIDs Fanvue already holds for this creator; uploading new media is not part of this API. Set a price to make the message pay-to-view, and mediaPreviewUuid to show one of the attached items unlocked as its teaser.
Send an Idempotency-Key header to make a retry safe: the second request with the same key and body replays the first response instead of sending a second message. Proxies Fanvue's POST /v1/chats/{userUuid}/message.
Authorization
default Get your API Key from OnlyFansAPI Console - https://app.onlyfansapi.com/api-keys
In: header
Path Parameters
The Fanvue Account ID
The fan's Fanvue user UUID. Chats are keyed by the counterpart, so this is also the chat id.
Request Body
application/json
The message text (1 - 5000 characters). Required unless gif or mediaUuids is provided; alongside a GIF or media it is rendered as a caption.
Unlock price in USD cents, minimum 300 ($3.00). Makes the message pay-to-view, and requires mediaUuids: Fanvue rejects a priced message with no media attached.
UUIDs of existing Fanvue media to attach.
UUID of a single media item shown for free as the teaser of a pay-to-view message. Requires a price and attached media.
A third-party GIF to send in place of media, with id, format (GIF or WEBP), url, width, height and an optional title. Cannot be combined with mediaUuids, mediaPreviewUuid or price.
Response Body
application/json
curl -X POST "https://app.onlyfansapi.com/api/fanvue/fanvue_acct_XXXXXXXXXXXXXXX/chats/f47ac10b-58cc-4372-a567-0e02b2c3d479/messages" \ -H "Content-Type: application/json" \ -d '{}'{
"data": {
"messageUuid": "9c2d4f81-77a3-4e60-b1c5-2a8e6d0f4b12"
},
"_meta": {
"_credits": {
"used": 1,
"balance": 10055811,
"note": "Always"
},
"_cache": {
"is_cached": false,
"note": "Cache disabled for this endpoint"
},
"_rate_limits": {
"limit_minute": 5000,
"limit_day": null,
"remaining_minute": 4999,
"remaining_day": null,
"notice": "We have decided to remove our daily rate limits. Please remove any references to these in your integrations."
}
}
}