Configure My AI for developers
Configure My AI turns one saved configuration — provider, model, system prompt, rules
and context — into an HTTP endpoint you can call from anywhere. This page lists every
developer resource: the REST API and its OpenAPI specification, endpoint tokens and
their scopes, the cma-agent command-line tool, the
embeddable widgets, and the files an AI agent reads to work all of this out for itself.
Call the Configure My AI API
Build a configuration in the app, attach an endpoint to it, then generate a token for that endpoint. The configuration holds the provider, the model, the system prompt and the rules, so a request body is only the conversation.
curl -X POST https://configuremyai.com/api/v1/{workspace}/{endpoint} \
-H "Content-Type: application/json" \
-H "Authorization: Bearer cmai_your_token" \
-d '{"messages":[{"role":"user","content":"Summarise this quarter."}]}'
The call blocks until the answer is ready, up to 300 seconds.
Past that you get 504 with a
poll_url; the work is still running and the status
operation collects it.
Machine-readable files
Fixed addresses, all generated from the running app rather than checked in, so none of them can describe a version of the API that no longer exists.
-
/openapi.json
OpenAPI 3.1. Every operation has a unique
operationId, typed parameters, response schemas and a description, so it converts straight into LLM function definitions. Also served as YAML at /openapi.yaml. - /llms.txt The llmstxt.org index: what this service is, when to reach for it, when not to, and where everything else lives. The long form is at /llms-full.txt.
- /.well-known/oauth-protected-resource RFC 9728 protected-resource metadata: the named scopes a credential can carry, how a token is presented, and where the docs are.
- /api/public/v1 The public catalogue. No credential: which providers and models exist, what the plans cost, and whether the service is up.
- /sitemap.xml Every indexable URL with a lastmod date.
Every public page also answers Accept: text/markdown with a
markdown representation of itself, and sets Vary: Accept so
a cache cannot hand you the wrong one.
Authentication and scopes
Endpoint tokens are generated by the account holder in the app — no sales step, no
approval queue. One token is scoped to one endpoint and carries its own rate limit and
expiry. Send it as Authorization: Bearer cmai_…, or as
X-API-Key where you cannot set that header.
The named permissions a credential can hold are published as
scopes_supported in the protected-resource metadata, and on
every operation in the OpenAPI document:
| Scope | What it allows |
|---|---|
| endpoints:invoke | Send messages to an AI endpoint you hold a token for, and read the result. |
| endpoints:read | Read the status of a request you previously submitted to an endpoint. |
| bots:read | List the bots in the workspace the token belongs to, and read a bot run's status and transcript. |
| bots:run | Start a bot run: open a conversation, post an instruction, and queue the agentic loop. |
| bots:steer | Interject into a bot run already in flight, so it changes course mid-turn. |
| configurations:read | List the AI configurations in the signed-in workspace. |
| chats:read | List conversations in the signed-in workspace. |
| chats:write | Start a conversation and post messages to it. |
| profile:read | Read the signed-in account and its active workspace. |
| devices:read | Read what the server believes about a paired machine. |
| devices:write | Heartbeat, verify, and report installed runtimes for a paired machine. |
| jobs:claim | Claim the next unit of work queued for a paired machine. |
| jobs:write | Report progress and post the result of a claimed job. |
| repos:write | Drive git and open pull requests through the connected GitHub account. |
| web:read | Fetch, browse, and search the web through the server on a run behalf. |
| billing:read | Read the workspace billing summary. Read-only; nothing here can spend. |
| notifications:read | Read unread notification counts for the signed-in account. |
| notifications:write | Mark notifications read and register a push token. |
| public:read | Read the public service catalogue. Requires no credential. |
The cma-agent command-line tool
cma-agent is the official CLI. It pairs a machine you own to
your account, then runs Configure My AI work through a coding CLI already installed and
signed in there — Claude Code, Cursor, Codex CLI, Gemini CLI, Antigravity, CodeWhale or
Ollama — so a configuration can spend a subscription you already pay for instead of an
API key.
brew install 9thdesigns/tap/cma-agent
cma-agent pair
cma-agent status
Not on Homebrew? npm install -g https://github.com/9thdesigns/cma-agent installs the
same thing; it needs Node 20
or newer.
Embedding and integrations
- Chat widgets A configured assistant on your own site, with a loader script and its own token.
- Embed widgets Embeddable forms and shareable mini apps that run off the same configuration as the API.
- Bots and the gateway Scheduled and event-driven work, and the gateway that stops a bot that has misunderstood its job.