curl --request GET \
--url https://api.onlyx.ai/v1/creators/{creatorId}/connection \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.onlyx.ai/v1/creators/{creatorId}/connection"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.onlyx.ai/v1/creators/{creatorId}/connection', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"checkedAt": "2026-09-26T10:21:07.000Z",
"connected": true,
"creatorId": "cre_8f2c1a9b0d7e4c3f2a1b",
"duplicateOfCreatorId": null,
"message": "Connected. Her inbox is syncing.",
"nextStep": "none",
"status": "connected",
"sync": {
"phase": "initial",
"progress": 35,
"steps": [
{
"key": "conversations",
"label": "Recent conversations",
"status": "done"
},
{
"key": "waiting",
"label": "Fans waiting for a reply",
"status": "running"
},
{
"key": "vault",
"label": "Vault media",
"status": "pending"
}
]
},
"verificationRequired": false
}Get the connection status
Returns the creator’s OnlyFans connection in detail: the status, OnlyX’s own explanation, the nextStep to take, and the progress of the sync that runs after she connects. Each call checks the live connection, so poll it every 10 seconds or more while she signs in through her connect link, until status is connected; stop on not_a_creator or duplicate, which are final. When status is verification, OnlyFans wants a human check that can only be completed in app.onlyx.ai. This call is limited to one per 5 seconds per creator for each credential (429 RATE_LIMITED with Retry-After).
Scope: requires creators:read.
Rate limits: 1 call per 5 seconds per creator for each credential — on top of the general limit of 120 requests per 60 seconds per credential.
curl --request GET \
--url https://api.onlyx.ai/v1/creators/{creatorId}/connection \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.onlyx.ai/v1/creators/{creatorId}/connection"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.onlyx.ai/v1/creators/{creatorId}/connection', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));{
"checkedAt": "2026-09-26T10:21:07.000Z",
"connected": true,
"creatorId": "cre_8f2c1a9b0d7e4c3f2a1b",
"duplicateOfCreatorId": null,
"message": "Connected. Her inbox is syncing.",
"nextStep": "none",
"status": "connected",
"sync": {
"phase": "initial",
"progress": 35,
"steps": [
{
"key": "conversations",
"label": "Recent conversations",
"status": "done"
},
{
"key": "waiting",
"label": "Fans waiting for a reply",
"status": "running"
},
{
"key": "vault",
"label": "Vault media",
"status": "pending"
}
]
},
"verificationRequired": false
}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>.
Path Parameters
The creator id (cre_…).
Response
The connection status, OnlyX's explanation, the next step and the sync progress.
When OnlyX checked this status (ISO-8601 UTC).
true only when status is connected.
The creator this status is for.
When status is duplicate: the creator in your workspace that already holds this OnlyFans account, if this credential can see it. Otherwise null.
OnlyX's own explanation of the current status, one or two sentences for a person.
What to do now. send_connect_link: create a connect link and send it to her. wait: poll again in 10 seconds or more. complete_verification_in_app: open the creator in app.onlyx.ai. none: nothing to do. delete_and_readd: she signed in with a fan account; delete this creator in the dashboard, add her again and ask her to sign in with her creator account. use_duplicate: use the creator in duplicateOfCreatorId and delete this copy in the dashboard.
send_connect_link, wait, complete_verification_in_app, none, delete_and_readd, use_duplicate disconnected: not signed in (send a connect link). connecting: the creator is signing in, or OnlyX is re-establishing the session. verification: OnlyFans asked for a human check; resolve it in app.onlyx.ai. connected: live. not_a_creator: a fan account signed in (final). duplicate: this OnlyFans account is already another creator in your workspace (final).
disconnected, connecting, verification, connected, not_a_creator, duplicate Progress of the sync that runs after she connects.
Show child attributes
Show child attributes
true when OnlyFans wants a human check on the session (status is verification). Resolve it in app.onlyx.ai; the API reports it but cannot complete it.