Clarm developer resources
Clarm Atlas lets non-technical teams build AI coworker agents using building blocks pre-approved by IT and compliance. This page is for the other audience: the engineer or the agent that needs to talk to Clarm programmatically.
Everything below is public and unauthenticated. Product APIs that touch a workspace live on app.clarm.com behind a dashboard session or an org-scoped API key, and are documented inside the product.
Public Clarm API
Every endpoint is described in the OpenAPI document at https://clarm.com/openapi.json. The table below is generated from that same document.
| Method | Path | Operation id | What it does |
|---|---|---|---|
| GET | /api/agent/chat | getAgentChatServiceInfo | Describe the agent chat endpoint |
| POST | /api/agent/chat | askClarmAgent | Ask the Clarm agent a question |
| GET | /api/track | pingTrackingEndpoint | Liveness probe for the tracking endpoint |
| POST | /api/track | trackVisitorEvent | Record a widget or site analytics event |
| GET | /api/analytics-region | getAnalyticsRegion | Resolve the analytics region for the caller |
| POST | /api/waitlist | joinLaunchWaitlist | Join the Clarm launch waitlist |
| POST | /api/demo-booking | bookProductDemo | Submit a demo booking from a Clarm agent conversation |
| GET | /openapi.json | getOpenApiSpecJson | Fetch this OpenAPI document as JSON |
| GET | /llms.txt | getLlmsTxt | Fetch the curated site summary for language models |
Ask the Clarm agent
One POST, no API key. The answer comes back with the sources it drew on.
curl -X POST https://clarm.com/api/agent/chat \
-H "Content-Type: application/json" \
-d '{"message": "What does Clarm Atlas do and how much does it cost?"}'Rate limited to 20 requests per minute per IP and 200 per hour across the endpoint. Over the limit you get a 429 with a Retry-After header.
Build tool definitions from the spec
Every operation has a unique operationId, a description, typed parameters, and a response schema, which is what a function-calling runtime needs to generate a tool without a human filling in the gaps.
curl -s https://clarm.com/openapi.json | jq '.paths | keys'
curl -s https://clarm.com/openapi.yaml -o clarm-openapi.yamlCommand-line interface (preview)
@clarm/cli wraps the public API so an agent or a developer can script against Clarm without writing an HTTP client first. Node 20 or newer, no runtime dependencies, no API key.
@clarm/cli is in preview and has not been released to the public npm registry yet. Email [email protected] for early access.
| Command | What it does |
|---|---|
| clarm ask "<question>" | Ask the Clarm agent and get the answer with its sources |
| clarm openapi [--yaml] | Print the OpenAPI description of the public API |
| clarm llms [--full] | Print llms.txt or llms-full.txt |
| clarm page <path> | Print any clarm.com page as markdown |
| clarm sitemap | List every URL in the sitemap |
Global options: --json for machine-readable output, and --base-url (or CLARM_BASE_URL) to point the CLI at a different origin.
Markdown content negotiation
Every page on clarm.com has a markdown representation, following the acceptmarkdown.com convention. Ask for it with an Accept header, or append .md to the path.
curl -H "Accept: text/markdown" https://clarm.com/pricing/
curl https://clarm.com/pricing.mdNegotiated responses carry Vary: Accept, Accept-Encoding, so a cache never hands the HTML variant to a client that asked for markdown. HTML pages advertise their twin with a Link: rel="alternate" header. A request that only says */* gets HTML, which keeps browsers working.
Machine-readable files
- /openapi.json
OpenAPI 3.1 description of every public endpoint. Unique operation ids, typed request and response schemas, and a description on every operation, so it converts straight into LLM function-calling tool definitions.
- /openapi.yaml
The same document in YAML, for tools that prefer it.
- /llms.txt
Curated summary of clarm.com for language models: what Clarm does, the commercial model, contact routes, and the highest-value pages.
- /llms-full.txt
Extended reference: product detail, API examples, compliance posture, case studies, and the full article inventory.
- /sitemap.xml
Every indexable URL with last-modified dates and hreflang alternates.
- /robots.txt
Crawl policy. Named AI crawlers are allowed on the public tree.
- /404.md
The recovery document a missing path returns to an agent, listing where to look next.
Embed the Clarm widget
One line of HTML puts a Clarm agent on any site. The widget id comes from your workspace.
<script src="https://app.clarm.com/widget/loader.js"
data-widget-id="YOUR_WIDGET_ID" async></script>Widget analytics post to /api/track on the embedding origin, which proxies to the Clarm analytics service. The payload is described in the OpenAPI document under trackVisitorEvent.
Getting help
Integration questions go to [email protected]. Security, compliance, and procurement questions are answered on the Trust Center, and everything else is on the contact page.