curl --request PATCH \
--url https://api.onlyx.ai/v1/creators/{creatorId}/ai-settings \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"followUps": {
"maxPerFanPerDay": 1
}
}
'import requests
url = "https://api.onlyx.ai/v1/creators/{creatorId}/ai-settings"
payload = { "followUps": { "maxPerFanPerDay": 1 } }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({followUps: {maxPerFanPerDay: 1}})
};
fetch('https://api.onlyx.ai/v1/creators/{creatorId}/ai-settings', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));Update AI settings
Changes the AI switch, follow-ups or review mode; send only what changes. These settings reach real fans: aiEnabled: true lets the AI answer every waiting fan, follow-ups are real messages, and turning review mode off releases every waiting draft to fans immediately — except drafts that have waited longer than 10 minutes, which are discarded rather than sent late. Because of that, turning review.enabled from on to off also needs the messages:send scope (403 INSUFFICIENT_SCOPE otherwise) and is limited to 6 per hour per creator. Confirm with a person before changing any of them on someone’s behalf.
Scope: requires ai:write; turning review.enabled from on to off also requires messages:send.
Rate limits: 6 review-off switches per hour per creator, across all credentials — on top of the general limit of 120 requests per 60 seconds per credential.
Idempotency: send an Idempotency-Key header to make retries safe: a replay within 24 hours returns the original response with Idempotent-Replayed: true.
Reaches fans: this operation can reach a real fan or change the live OnlyFans account. Confirm it with a person before calling it on their behalf.
curl --request PATCH \
--url https://api.onlyx.ai/v1/creators/{creatorId}/ai-settings \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"followUps": {
"maxPerFanPerDay": 1
}
}
'import requests
url = "https://api.onlyx.ai/v1/creators/{creatorId}/ai-settings"
payload = { "followUps": { "maxPerFanPerDay": 1 } }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.patch(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PATCH',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({followUps: {maxPerFanPerDay: 1}})
};
fetch('https://api.onlyx.ai/v1/creators/{creatorId}/ai-settings', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));Authorizations
An API key (onx_sk_…) created in OnlyX under Settings → API & MCP, or an OAuth access token (onx_at_…) issued to a connected app. Send it as Authorization: Bearer <credential>. API keys may also be sent as X-API-Key: <key>.
Headers
Optional. A unique value (8 to 64 letters, digits, - or _; a UUID is ideal) that makes a retry safe: the same key with the same request within 24 hours returns the stored response, with Idempotent-Replayed: true, instead of doing the work twice. The same key with a different request is 409 IDEMPOTENCY_KEY_REUSED; while the first request still runs it is 409 IDEMPOTENCY_IN_PROGRESS. A malformed key is 400 VALIDATION_ERROR.
8 - 64^[A-Za-z0-9_-]{8,64}$Path Parameters
The creator id (cre_…).
Body
Send only what you want to change. Mass messages cannot be changed through the API in v1.
Response
The AI settings after the change.
How the AI chatter behaves for one creator. New fields may be added to this report; ignore fields you do not know.
The creator's master AI switch (the same value as aiEnabled on the Creator).
The AI's own follow-up messages to fans who went quiet. These are real messages to fans.
Show child attributes
Show child attributes
The AI's scheduled messages to fan lists. Read-only in v1: configure them in the dashboard.
Show child attributes
Show child attributes
Review mode: whether every AI reply waits for a person to approve it.
Show child attributes
Show child attributes