Blog
Language
Book a pilotLog in

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.

MethodPathOperation idWhat it does
GET/api/agent/chatgetAgentChatServiceInfoDescribe the agent chat endpoint
POST/api/agent/chataskClarmAgentAsk the Clarm agent a question
GET/api/trackpingTrackingEndpointLiveness probe for the tracking endpoint
POST/api/tracktrackVisitorEventRecord a widget or site analytics event
GET/api/analytics-regiongetAnalyticsRegionResolve the analytics region for the caller
POST/api/waitlistjoinLaunchWaitlistJoin the Clarm launch waitlist
POST/api/demo-bookingbookProductDemoSubmit a demo booking from a Clarm agent conversation
GET/openapi.jsongetOpenApiSpecJsonFetch this OpenAPI document as JSON
GET/llms.txtgetLlmsTxtFetch 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.yaml

Command-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.

CommandWhat 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 sitemapList 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.md

Negotiated 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.