The Only API docs

Use these docs with an AI

Copy any page as Markdown, open it in ChatGPT or Claude, or point an agent at an MCP server.

This documentation is built to be read by machines as well as people. Every page has a plain-Markdown twin, the whole corpus is available as text bundles, and there are two MCP servers — one for the docs, one for the API itself.

Copy any page

Every page header carries a Copy Markdown button and an Open ▾ menu:

ActionWhat it does
Copy Markdown (button)Puts the page's raw Markdown on your clipboard
View as MarkdownOpens the .md twin
Open in ChatGPT / Claude / Cursor / Scira AIOpens that assistant pre-filled with "Read <page URL>, I want to ask questions about it."

The Open menu does not upload anything

Those links carry a prompt asking the assistant to fetch the page itself, so they only work if it has web access — and it will fetch the HTML, not the smaller .md twin. For a guaranteed clean paste, use Copy Markdown.

Markdown twins

Append .md to any documentation URL:

curl https://docs.theonlyapi.com/docs/webhooks.md
curl https://docs.theonlyapi.com/docs/crm/messaging/send-a-dm-or-ppv.md

Content negotiation works too — request the normal URL with Accept: text/markdown and you get Markdown back:

curl -H 'Accept: text/markdown' https://docs.theonlyapi.com/docs/pagination

API reference pages are rendered from the spec

The 529 endpoint pages have no prose body of their own — they are rendered from the OpenAPI document. Their Markdown twins are generated from the same spec, so each one arrives as a complete, self-contained brief: signature, description, auth, parameters, request body, response shapes and a runnable curl example. An agent can make a correct call from one page.

Text bundles

FileContents
/llms.txtIndex of every page, with descriptions. Start here.
/llms-guides.txtEvery guide, full text. The one to paste into a chat.
/llms-crm.txtAll 95 CRM endpoints, full text.
/llms-of.txtAll 434 OnlyFans passthrough endpoints, full text.
/llms-full.txtEverything. Large — for crawlers and indexers.
/agents.mdA short operating brief for coding agents.

The split exists for a practical reason: llms-full.txt is over a megabyte, which is more than most models want in one paste. llms-guides.txt is the file a human should actually hand to an assistant.

# Give an assistant everything it needs to write an integration
curl https://docs.theonlyapi.com/llms-guides.txt

MCP servers

There are two, and they do different jobs. Connecting the wrong one is the usual confusion.

Docs MCP

Read-only access to this documentation. No account, no key.

claude mcp add --transport http theonlyapi-docs https://docs.theonlyapi.com/mcp
{
  "mcpServers": {
    "theonlyapi-docs": {
      "type": "http",
      "url": "https://docs.theonlyapi.com/mcp"
    }
  }
}

Tools:

ToolPurpose
search_docsFull-text search across every page
get_pageFetch one page as Markdown by path
list_endpointsList API endpoints, filtered by surface, tag or method
get_endpointFull reference for one endpoint by method and path
list_tagsEvery tag with its surface and endpoint count — cheap orientation before list_endpoints

Use this when you want an agent to learn the API — answer questions, write integration code, look up a parameter.

API MCP

The product's own MCP server, which actually calls the API on your behalf: 59 tools across accounts, fans, messaging, earnings, subscribers, campaigns, webhooks, automations and events.

claude mcp add --transport http theonlyapi https://theonlyapi.com/mcp

It supports OAuth 2.1 with PKCE, and clients that cannot do OAuth may send a CRM API key as Authorization: Bearer <key>.

Notable behaviours:

  • The destructive and money-moving tools require confirm=true — sending a DM, requesting a payout, changing subscription price, deleting an account, webhook or automation, and any non-GET through the escape hatches. Lower-risk writes (tagging a fan, creating a webhook or automation) apply immediately.
  • Non-GET proxying is off by default. Enable mcp_unsafe_proxy in the dashboard danger zone, or via PATCH /api/crm/{crm_id}/mcp/unsafe-proxy, if you need the escape-hatch tools. Note the toggle applies to static bearer-key clients only — OAuth sessions (ChatGPT, Claude.ai) never get non-GET proxying.
  • No dedicated vault, media-upload, mass-DM or scheduling tools exist — of_send_message sends one text DM to one fan, with no price, media or recipient list. Those surfaces are reachable only through the of_crm_request escape hatch, which needs confirm=true for any non-GET.

Full setup instructions for ChatGPT, Claude, Cursor and Claude Code are on the MCP integration page.

The OpenAPI spec

If your tooling speaks OpenAPI, skip the prose entirely:

curl https://theonlyapi.com/api/openapi.json

OpenAPI 3.1, 450 paths, 529 operations, every operation with a summary. This reference is generated from it.

Prompting suggestions

  • Give it the guides, not the full bundle. llms-guides.txt plus the two or three endpoint pages you care about beats a megabyte of everything.
  • Name the surface. "Use the CRM layer, not the /api2/v2 passthrough" removes most wrong answers, because the two have different response envelopes.
  • Warn it about the money rule. Agents will happily write SUM(amount) for earnings, which is wrong — see the chargeback trap.
  • Warn it about pagination. The /chats and /messages quirks in Pagination are not guessable; an agent will write a walker that loses data unless it has read that page.

On this page