The same API the admin panel calls, with an MCP endpoint in front of it.
Two doors onto the objects that run an AXL account: contacts and deals, courses and lessons, products, orders and payments, sites and pages, email broadcasts, webinars, automations, files. Reach them with an API key carrying exactly the rights you grant it, or a browser sign-in that hands your agent an ordinary admin token. Same operations, same permission checks, same account boundary as your session.
claude mcp add axl --transport http https://app.axl.tech/mcp
Then sign in in your browser. No key to paste, no secret in a file, no developer plan to buy first.
Choose Claude, copy the connection details, and finish setup in your client.
Everything you need before you write a line.
| What | Value |
|---|---|
| MCP endpoint | https://app.axl.tech/mcp: Streamable HTTP, JSON-RPC over POST only, stateless. The admin shows it under Settings → MCP |
| REST base URL | https://app.axl.tech/api/v1/: JSON over HTTPS |
| Agent auth | OAuth 2.1 with dynamic client registration and PKCE; S256 and state are required, not optional |
| Machine auth | An API key in an Authorization header; the value you copy already carries Bearer. Created in Settings → API Keys, rights set per key |
| Surface | ~1,100 operations across 60+ modules, using the same calls as the admin panel, not a subset that lags behind it |
| Conventions | String ids, never integers: 22-character short GUIDs, 36 in a few tables. UTC in every date field. Soft delete by default: a deleted record is flagged, not erased. |
| Response envelope | A success flag, a body, and an errors array carrying code, type, message and often the field |
| Limits | Concurrency, not requests per second: 429 with Retry-After: 1 plus X-Concurrency-Limit and X-Concurrency-Remaining, which are authoritative; read them rather than hard-coding. Sequential calls are unlimited, browser sessions are never throttled, and it fails open |
| File links | Downloads are pre-signed and expire after six hours; generate them when needed, do not store them |
| Response cap on MCP | Roughly 200,000 characters, then truncation with a hint to narrow the fields or paginate. REST is not capped |
| Locked account | A negative balance answers everything but billing reads with 403 lockedSchoolAccessDenied, carrying a billing link and a do-not-retry hint |
MCP tool reference
| Tool | Purpose |
|---|---|
capability_map | Maps the account surface and the rules between modules. |
list_recipes · search_docs | Finds a proven workflow and the product guidance behind it. |
list_modules · list_operations · search_operations | Finds the operation that matches the requested job. |
get_operation_schema · get_fields_schema | Returns parameters, request bodies, responses and selectable fields. |
get_extended_filter_schema · get_scenario_node_schema · get_quiz_item_schema · check_scenario_node_payload | Explains and validates shapes that a plain operation schema cannot express. |
invoke_operation | Runs one operation. This is the only call in the set that writes anything. |
Looking for outcomes rather than constants? What an agent actually finishes →
Get a credential, read, then write.
- 01 Get a credential A key you scope, or a browser sign-in. Settings → API Keys
- 02 Read before you write Count the rows a filter matches first. The count operation
-
03
Pace on the headers
Not on a timer of your own.
X-Concurrency-Remaining - 04 Then write Publishing and sending stay separate, deliberate calls.
Four pages, one surface.
-
The MCP endpoint
Add the server, sign in in the browser, approve the named client. Your agent then gets a small fixed tool set, of which exactly one call writes anything.
Transport, the OAuth 2.1 flow and every client → -
Credentials
OAuth hands an agent an ordinary admin token with the approving admin's rights. A key is narrower: one that triggers an automation cannot read your contacts.
Creating and scoping API keys → -
The REST API
An unsupported filter condition is ignored silently:
Fields, filters, writes and files →200and the wrong rows, never an error. Cross-check every filter against the count operation. -
Webhooks, both directions
Not a subscriptions API. Outbound, a scenario node calls your endpoint and branches on the answer; inbound, one POST starts any active automation.
The scenario-run endpoint, with its body →
Each client has a setup page under /developers/mcp: Claude, ChatGPT and Codex, Cursor, Windsurf, VS Code, Cline. Anything else that speaks MCP goes through mcp-remote.
What an agent can never do, and the one thing that is only a speed bump.
Pointing an agent at a live business is a permissions problem before it is an AI problem, so the limits sit in the server rather than in a prompt. 21 sensitive operations (credentials, rights and roles, billing writes) are dropped from the tool catalog at startup: no listing, no search hit, no schema, and the execute call treats them as operations that do not exist. Eight more are absent for reasons that are not safety. The set is pinned by a test, and a second refuses to let a blocked operation keep a recipe pointing at it. That is the honest version of “we have guardrails”: not a policy document, a failing build.
The blocked table, the refusals and the pipeline →confirm=true is a speed bump a caller sets on itself. It is not a human-approval guarantee.
Nothing in the transport verifies that a human was asked, or answered, or exists. We know it can be self-granted because it was: in a live test an agent was warned about the blast radius of a large delete, and set the flag itself in the same reply.
So never read a sentence on this site as “human approval is enforced”. What is enforced is that the dangerous shape does not execute silently on the first attempt. If you need a wall rather than a speed bump, use permissions: a right the token does not carry cannot be talked around.
The limits we have not solved
- •Publish and send separation is a convention plus a default, not a lock.
- •The MCP scope is coarse: one scope, carrying the approving admin's rights. Narrower credentials are keys, not scopes.
- •Agent writes appear in the ordinary history timeline. No agent-only log, and only operations that already write history events appear there.
- •The blocked set is platform-wide, not per-account. Your own policy belongs in rights.
Evaluating for a regulated workflow? The posture questions outside the agent surface are on /security.
Risky requests stop before the API call and return a safer next step.
Agent connectors stopped being rare; Kajabi, Thinkific, GoHighLevel, ClickFunnels and Circle each ship one, and we are not going to pretend otherwise. What we could not find is a competitor that publishes which operations it removes from its AI surface. That is a claim about our search, not about their products.
Read from the vendors' own pages: kajabi.com/product/mcp, support.myclickfunnels.com, api.circle.so/mcp, marketplace.gohighlevel.com/docs/other/mcp and support.thinkific.com. Thinkific MCP is Plus only, read-only and still rolling out, checked 21 August 2026. The dated scoreboard across nine platforms →
What builders ask before they wire anything up.
The API, webhooks and bring-your-own-agent connection are part of AXL. Plans start at $49 per month with included usage; your agent's own model usage is billed by the provider you run it with. Work out your number →
Published and open at app.axl.tech/api/public, with the localized OpenAPI document downloadable from the same page: contacts, courses, products, orders, payments, certificates, libraries, scenarios, homework verification and the partnership endpoints. The rest are documented through the schema tools on the MCP surface and the knowledge base.
Through the ordinary history timeline, which records agent writes exactly as it records yours, and the deep link each successful write returns. The limit, precisely: only operations that already write history events show up there, and there is no agent-only log.
Point it at a trial account and try to break it.
One line to connect, a browser sign-in, and an agent with your rights and no more. Or skip the agent: a key scoped to one job pushes contacts and orders in, starts automations, and reads the analytics back out.
Start free