curl --request GET \
--url https://api.fanvue.com/v1/creators/{creatorUserUuid}/insights/unsubscribe-reasons \
--header 'Authorization: Bearer <token>' \
--header 'X-Fanvue-API-Version: <x-fanvue-api-version>'import requests
url = "https://api.fanvue.com/v1/creators/{creatorUserUuid}/insights/unsubscribe-reasons"
headers = {
"X-Fanvue-API-Version": "<x-fanvue-api-version>",
"Authorization": "Bearer <token>"
}
response = requests.get(url, headers=headers)
print(response.text)const options = {
method: 'GET',
headers: {
'X-Fanvue-API-Version': '<x-fanvue-api-version>',
Authorization: 'Bearer <token>'
}
};
fetch('https://api.fanvue.com/v1/creators/{creatorUserUuid}/insights/unsubscribe-reasons', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"reasons": [
{
"reason": "too_expensive",
"currentWeekCount": 3,
"rollingCount": 28
},
{
"reason": "not_enough_content",
"currentWeekCount": 2,
"rollingCount": 19
},
{
"reason": "content_not_expected",
"currentWeekCount": 1,
"rollingCount": 11
},
{
"reason": "creator_not_active",
"currentWeekCount": 0,
"rollingCount": 6
},
{
"reason": "other",
"currentWeekCount": 1,
"rollingCount": 9
}
],
"currentWeekTotal": 7,
"rollingTotal": 73
}{
"error": "<string>",
"message": "<string>"
}{
"error": "<string>"
}{
"error": "<string>"
}{
"message": "<string>"
}{
"error": "<string>",
"message": "<string>",
"nextVersion": "<string>"
}{
"error": "<string>"
}Get unsubscribe reasons for a creator
Returns a breakdown of why fans are unsubscribing from the specified creator, based on exit-survey data.
This is the same fan-health data surfaced in the Creator Agent. It is aggregated weekly (not real-time): currentWeekCount covers the most recent snapshot period and rollingCount spans the last 12 weeks.
Reasons returned: too_expensive, not_enough_content, content_not_expected, creator_not_active, and other. The *Total fields count all surveys in the window and may exceed the sum of the listed reasons.
curl --request GET \
--url https://api.fanvue.com/v1/creators/{creatorUserUuid}/insights/unsubscribe-reasons \
--header 'Authorization: Bearer <token>' \
--header 'X-Fanvue-API-Version: <x-fanvue-api-version>'import requests
url = "https://api.fanvue.com/v1/creators/{creatorUserUuid}/insights/unsubscribe-reasons"
headers = {
"X-Fanvue-API-Version": "<x-fanvue-api-version>",
"Authorization": "Bearer <token>"
}
response = requests.get(url, headers=headers)
print(response.text)const options = {
method: 'GET',
headers: {
'X-Fanvue-API-Version': '<x-fanvue-api-version>',
Authorization: 'Bearer <token>'
}
};
fetch('https://api.fanvue.com/v1/creators/{creatorUserUuid}/insights/unsubscribe-reasons', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"reasons": [
{
"reason": "too_expensive",
"currentWeekCount": 3,
"rollingCount": 28
},
{
"reason": "not_enough_content",
"currentWeekCount": 2,
"rollingCount": 19
},
{
"reason": "content_not_expected",
"currentWeekCount": 1,
"rollingCount": 11
},
{
"reason": "creator_not_active",
"currentWeekCount": 0,
"rollingCount": 6
},
{
"reason": "other",
"currentWeekCount": 1,
"rollingCount": 9
}
],
"currentWeekTotal": 7,
"rollingTotal": 73
}{
"error": "<string>",
"message": "<string>"
}{
"error": "<string>"
}{
"error": "<string>"
}{
"message": "<string>"
}{
"error": "<string>",
"message": "<string>",
"nextVersion": "<string>"
}{
"error": "<string>"
}read:creator— Access creator profiles, content, and creator-specific information.read:insights— Access analytics, metrics, and insights data for performance tracking.
Authorizations
OAuth 2.0 access token, presented as a JWT bearer token in the Authorization header. Obtain a token via the authorization-code flow; the scopes granted to the token determine which operations it may call.
Headers
API version to use for the request
"2025-06-26"
Path Parameters
Query Parameters
ISO 8601 datetime anchoring the current-week window. Counts are aggregated on weekly fan-health snapshots, so this is snapped to the snapshot boundary. If omitted, defaults to the most recent snapshot period.
Response
Creator unsubscribe reasons breakdown
Per-reason counts. Based on exit surveys, aggregated weekly — not real-time.
Show child attributes
Show child attributes
Total exit surveys in the most recent snapshot week (across all reasons)
Total exit surveys across the last 12 weeks (across all reasons)
Was this page helpful?