curl --request POST \
--url https://api.fanvue.com/v1/chats/lists/dynamic/translate \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'X-Fanvue-API-Version: <x-fanvue-api-version>' \
--data '
{
"description": "<string>"
}
'import requests
url = "https://api.fanvue.com/v1/chats/lists/dynamic/translate"
payload = { "description": "<string>" }
headers = {
"X-Fanvue-API-Version": "<x-fanvue-api-version>",
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
'X-Fanvue-API-Version': '<x-fanvue-api-version>',
Authorization: 'Bearer <token>',
'Content-Type': 'application/json'
},
body: JSON.stringify({description: '<string>'})
};
fetch('https://api.fanvue.com/v1/chats/lists/dynamic/translate', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"name": "Big spenders",
"spec": {
"version": 2,
"match": "any",
"groups": [
{
"conditions": [
{
"dimension": "total_spent",
"operator": "gte",
"value": 5000
}
]
}
]
},
"notes": []
}{
"error": "<string>",
"message": "<string>"
}{
"error": "<string>"
}{
"error": "<string>"
}{
"error": "<string>",
"message": "<string>",
"nextVersion": "<string>"
}{
"error": "<string>"
}Translate a plain-language description into a dynamic smart list definition
Dynamic smart lists are user-created, filter-defined audience segments — distinct from the read-only, system-generated /lists/smart cohorts (subscribers, followers, etc.) and from the static, manually-curated /lists/custom lists. A dynamic smart list’s membership is computed from a stored filter definition over relationship, spend, engagement, and memory dimensions, and is re-evaluated on read. Spend condition values are in USD cents (e.g. 5000 for $50).
This resource requires the account’s dynamic smart list builder to be enabled; a 403 response means it is not.
Uses an LLM to translate a plain-language audience description (e.g. “fans who spent over $50 and haven’t messaged in 2 weeks”) into a filter definition, which can then be previewed or saved as-is via the other /lists/dynamic routes. Requests are capped separately from other dynamic smart list routes given the cost of each translation.
curl --request POST \
--url https://api.fanvue.com/v1/chats/lists/dynamic/translate \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--header 'X-Fanvue-API-Version: <x-fanvue-api-version>' \
--data '
{
"description": "<string>"
}
'import requests
url = "https://api.fanvue.com/v1/chats/lists/dynamic/translate"
payload = { "description": "<string>" }
headers = {
"X-Fanvue-API-Version": "<x-fanvue-api-version>",
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
'X-Fanvue-API-Version': '<x-fanvue-api-version>',
Authorization: 'Bearer <token>',
'Content-Type': 'application/json'
},
body: JSON.stringify({description: '<string>'})
};
fetch('https://api.fanvue.com/v1/chats/lists/dynamic/translate', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"name": "Big spenders",
"spec": {
"version": 2,
"match": "any",
"groups": [
{
"conditions": [
{
"dimension": "total_spent",
"operator": "gte",
"value": 5000
}
]
}
]
},
"notes": []
}{
"error": "<string>",
"message": "<string>"
}{
"error": "<string>"
}{
"error": "<string>"
}{
"error": "<string>",
"message": "<string>",
"nextVersion": "<string>"
}{
"error": "<string>"
}write:chat— Create new chats and send messages. This scope is required for any chat-related actions that modify data.read:fan— Access fan-related data and information within the platform.
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"
Body
Plain-language description of the audience to translate into a filter definition
1 - 500Was this page helpful?