> ## Documentation Index
> Fetch the complete documentation index at: https://help.onlyx.ai/llms.txt
> Use this file to discover all available pages before exploring further.

> ## Agent Instructions
> You are reading OnlyX Help: the OnlyX Help Center and the OnlyX developer documentation. OnlyX is an AI chatting and CRM platform for OnlyFans agencies. Its AI chatter is called Hugo in the app.
> Pages at the site root (for example /inbox/..., /hugo/..., /billing/...) are Help Center articles for agency owners, admins, chatters and creators who use the app at app.onlyx.ai. Words in bold are the exact button, menu and label names the app shows; keep them exactly as written. When these pages do not answer a question, the person can email support at support@onlyx.ai.
> Pages under /developers are the developer documentation. REST API base URL: https://api.onlyx.ai/v1 (authenticate with `Authorization: Bearer <API key>`; keys start with onx_sk_ and are created in app.onlyx.ai under Settings > API & MCP). MCP server: https://mcp.onlyx.ai/mcp (OAuth, or a Bearer API key). In the API the AI chatter is `ai` on the wire. Money is integer US cents in fields ending in Cents; timestamps are UTC ISO-8601.
> Rules for assistants acting on a user's behalf: discover ids with list calls and never invent them; before any call that reaches a real fan or the live OnlyFans account (sending a message, releasing a chat to the AI, turning AI on for a chat, resolving a hand-off, turning review mode off, changing the welcome message, creating a tracking link) show the user the exact content and get explicit confirmation; send every POST with an Idempotency-Key and reuse it on retry; never resend a message whose delivery status is unconfirmed; never ask a creator for her OnlyFans password or codes - she signs in herself through a connect link and the OnlyX Login app.

# Hugo, the AI chatter

> What OnlyX's AI chatter does for each creator, when it hands a chat to your team, and every switch that controls it.

**Hugo** is OnlyX's AI chatter. For every creator whose AI is on, it reads new fan messages and answers them in her voice, keeps conversations warm, sells her content at the prices you set, and hands a chat to your team when a person should take it. On the wire it is always `ai`; your people are `team`.

## What it does

<CardGroup cols={2}>
  <Card title="Chats in her voice" icon="message-circle">
    Replies as the creator, using her [AI persona](/developers/concepts/ai-persona): name, age, city, backstory, interests, and how she types (capitals, punctuation, emoji, typos, split messages, typing pace).
  </Card>

  <Card title="Sells her content" icon="badge-dollar-sign">
    Offers levels from her [AI content](/developers/concepts/ai-content) ladders: a free preview to tease, then the paid media behind a price that never goes below your floor.
  </Card>

  <Card title="Follows up" icon="clock">
    Nudges fans who went quiet, within the daily limit you set per fan. Follow-ups are cancelled when your team steps in.
  </Card>

  <Card title="Hands off" icon="life-buoy">
    Stops and asks for a human when a chat needs one: a safety concern, a payment dispute, a real-world meeting request, and more.
  </Card>
</CardGroup>

It works from the chat history, the fan's purchases, the creator's persona and her content. It respects:

* her **hard limits** and **boundaries** (things she never does or talks about);
* **price floors**: a level is never sold below its `priceCents`, and never outside OnlyFans' own price limits;
* **active flags**: a ladder or level that is not `active` is never offered;
* a fan's **sales opt-out**: when a fan asks not to be sold to, `salesOptOut` becomes `true` and the AI stops offering paid content to that fan;
* **AI disclosure**, if you turn it on in the persona: the AI tells fans they are chatting with an AI, in your words.

## Where it answers

The AI answers a conversation only when all of these are true:

1. The creator is `connected`.
2. The creator's AI is on (`aiEnabled: true`).
3. The conversation's status is `ai`.

`GET /v1/conversations/{conversationId}` reports the combined answer as `aiCanReply`.

| Switch | Scope | Where | Effect |
| - | - | - | - |
| Creator AI on or off | `creators:write` | `PATCH /v1/creators/{creatorId}` `{"aiEnabled": false}` | Pauses the AI for all of her chats, follow-ups included. New chats start with your team. |
| Take over a chat | `inbox:write` | `POST /v1/conversations/{conversationId}/takeover` | Moves the chat to `team` for 15 minutes to 24 hours (default 12 hours). Sending does the same for 12 hours. |
| Release a chat | `inbox:write` | `POST /v1/conversations/{conversationId}/release` | Back to `ai` now; the AI may answer the waiting message immediately. |
| AI off for one chat | `inbox:write` | `PUT /v1/conversations/{conversationId}/ai` `{"enabled": false}` | The chat becomes `ai_off` until someone turns it back on. |
| Follow-ups | `ai:write` | `PATCH /v1/creators/{creatorId}/ai-settings` | On or off, and how many per fan per day (1 to 4). |
| Review mode | `ai:write` (turning it off also needs `messages:send`) | `PATCH /v1/creators/{creatorId}/ai-settings` | Every AI reply waits for a person to approve it in the dashboard. Turning it off is limited to 6 times an hour per creator. |

## When it hands off

A **hand-off** is the AI saying "a person should take this chat". The chat's status becomes `handoff`, the AI stops replying in it, and a hand-off record (`esc_...`) explains why. Your team answers the fan (or takes the chat over), then resolves the hand-off with `POST /v1/conversations/{conversationId}/handoff/resolve`. If nobody replied or took the chat over, resolving returns it to the AI at once, and the AI may answer the waiting fan within seconds; if your team already replied or took it over, the chat stays with your team and resolving only closes the record. See [Hand-offs](/developers/guides/handoffs).

Each hand-off has a `reason`, one of:

| `reason` | Typical situations |
| - | - |
| `welfare` | The fan talks about self-harm, is in danger right now, is ill, or is in a very low mood. |
| `prohibited_request` | Anything involving someone under 18, family roleplay, force or non-consent, violence, a real person who has not consented, someone drunk or unconscious, animals or anything illegal. |
| `real_world` | The fan claims to know where she lives, threatens someone, probes for her location, asks to meet, offers money to meet, talks about travel, or wants to film together. |
| `payment_dispute` | A chargeback or fraud threat, a refund demand, a double charge, paid and got nothing, a late custom, a failing payment, or a misunderstanding about what was paid for. |
| `custom_request` | A custom she does not make, a custom with no price set, a request for her voice, or any custom while custom selling is off. |
| `whale_risk` | A big spender is upset, feels misled, or is about to spend an unusually large amount. |
| `confusion` | The fan refers to something the AI has no context for, such as a conversation that happened elsewhere. |
| `failed_delivery` | A paid message the AI sent could not be delivered. Raised automatically. |

Each reason covers several **kinds** (for example `real_world.meet_request`, "Asks to meet"). You choose which kinds hand off for each creator with `handoffKinds` in her [AI persona](/developers/concepts/ai-persona). When a kind is switched off, the AI handles that situation itself, safely (for example it declines, or stops selling for that conversation). Two kinds can never be switched off: **self-harm language** (`welfare.self_harm`) and **anyone under 18** (`prohibited.underage`). They always hand off.

## Follow-ups

When a fan stops answering, the AI can send a short, in-character follow-up after some hours of silence (`unansweredAfterHours`), at most `maxPerFanPerDay` times per fan per day (1 to 4, default 2). Follow-ups:

* are only sent in chats the AI is handling (`ai` status) for a connected creator whose AI is on;
* are cancelled in a chat when your team sends a message there;
* show up in `GET /v1/creators/{creatorId}/ai-settings` as `plannedToday` and `sentToday`.

## Review mode

With review mode on, every reply the AI writes waits in the dashboard's review queue for `reviewMinutes` (1 to 60). A person can approve, edit or discard it. If nobody reviews it in time, `whenUnreviewed` decides: `send` sends it anyway, `hold` keeps it back. Use review mode while you build trust in a new creator's setup.

Turning review mode **off** releases the waiting drafts to fans immediately (drafts that have waited more than about ten minutes are discarded instead). That is why switching it off through the API also needs the `messages:send` scope. Reviewing drafts one by one is done in the dashboard.

## The welcome message

The welcome message is OnlyFans' own automatic message to every new subscriber. It is not written by the AI, but it opens every new fan's conversation, so it lives with the AI settings. You can read and replace it through the API, including a price and media. See [AI settings](/developers/guides/ai-settings#welcome-message).

## What the AI will not do

* It never sells below a level's floor price, and never offers a ladder or level that is not active.
* It never offers paid content to a fan whose `salesOptOut` is `true`.
* It never overrides a person: a chat your team holds (`team`), a hand-off, or `ai_off` gets no AI replies.
* It never keeps chatting through a locked safety situation; those always go to a person.

## Related

* [AI persona](/developers/concepts/ai-persona) and [AI content](/developers/concepts/ai-content): the two inputs that shape every reply.
* [AI settings](/developers/guides/ai-settings): follow-ups, review mode, welcome message.
* [Conversations](/developers/concepts/conversations): statuses and hand-back rules.
