Ship compliance features. We maintain the framework knowledge.
The compliance model API. Point your OpenAI SDK at a new base URL; name a framework and its curated module is injected before the answer.
Use the ISMS Copilot API when your own code needs compliance answers: ISMS Copilot maintains curated modules for 150+ frameworks, and the response names the modules that ran.
https://api.ismscopilot.com/v1
curl https://api.ismscopilot.com/v1/chat/completions \
-H "Authorization: Bearer sk-isms-..." \
-H "Content-Type: application/json" \
-d '{
"model": "isms-fast",
"messages": [
{"role": "user", "content": "List 3 ISO 27001 access control requirements."}
]
}'TL;DR
ISMS Copilot APIOpenAI-compatible text-only /v1/chat/completions
Any foundation-model APITokens from a general-purpose model; wire varies by provider
ISMS Copilot APICurated modules, detected or pinned, injected at inference
Any foundation-model APITraining recall plus your system prompt
ISMS Copilot APIISMS Copilot. Public GET /v1/frameworks catalog
Any foundation-model APIYou own the corpus forever
ISMS Copilot APIx-isms-frameworks header names the modules that ran
Any foundation-model APINo built-in module list on the response
ISMS Copilot APIauto, none, or pin up to 8 catalog ids
Any foundation-model APIRoll your own retrieval
ISMS Copilot APIDocumented Zero Data Retention for prompts and outputs
Any foundation-model APIOften retained for a limited abuse window
The API in 27 seconds
API or MCP server: pick by who makes the call
APIYour own code: your product, CI, scheduled jobs, pipelines
MCP serverYou, inside your AI tool: Claude, ChatGPT, Cursor, Codex or any MCP client
APIAn sk-isms key and a new base URL in your OpenAI SDK
MCP serverThe server URL, then sign in (Claude, ChatGPT) or a personal access token (Cursor, Codex)
APIPrepaid API credits, billed per token
MCP serverYour ISMS Copilot chat plan, including Free
What comes back
Trimmed. The x-isms-frameworks header and the ismscopilot object tell you which curated modules were injected and how much knowledge went in.
HTTP/1.1 200 OK
x-isms-frameworks: ISO_27001
{
"model": "isms-fast",
"choices": [
{ "message": { "role": "assistant", "content": "ISO/IEC 27001:2022 Annex A, control A.5.15 ..." } }
],
"usage": { "prompt_tokens": 1842, "completion_tokens": 312 },
"ismscopilot": {
"frameworks": ["ISO_27001"],
"knowledge_characters": 4926,
"knowledge_tokens_method": "chars_div_3_v1"
}
}Same model, with and without the knowledge
On this frozen 20-task compliance set, the same base model scored differently depending on the scaffold around it; the largest increase came when curated framework knowledge was injected at inference time, especially on less-known frameworks.
- Naked
- 68.0% overall
- Best DIY prompt
- 76.0% overall
- DIY + knowledge module
- 96.9% overall
- Full ISMS Copilot
- 92.1% overall
The module is the same curated reference ISMS Copilot injects when your question names a framework, and the same one the API exposes. Outside the trap questions, the naked model fabricated 8 control and article identifiers, including an entire invented ISO 42001 Annex A structure. The product fabricated zero. The primary endpoint was frozen in advance: full product versus the better of the two DIY prompts. The pre-registered verdict is a tie, and that is the verdict we report.
Try the catalog without a key
No key needed. Returns count and registry_hash. 150+ modules; the live catalog is authoritative.
curl https://api.ismscopilot.com/v1/frameworksModels
The four standard aliases cost $2.80 per million input tokens and $8.80 per million output tokens, on either path. isms-mini costs $0.50 in and $2.00 out. The console stays the billing source of truth.
- isms-mini
- GLM-5.3-Flash, global, bulk lane, no thinking mode
- isms-fast
- GLM 5.3, global
- isms-thinking
- GLM 5.3, global, reasoning
- isms-fast-eu
- GLM 5.3 hosted by Mistral, EU processing path
- isms-thinking-eu
- GLM 5.3 hosted by Mistral, EU processing path, reasoning
Framework control
auto detects named frameworks in the conversation, none injects nothing, or pin up to 8 catalog ids. ismscopilot.system: "none" opts out of the persona.
{
"model": "isms-thinking",
"messages": [{ "role": "user", "content": "Map A.5.23 to SOC 2." }],
"ismscopilot": {
"frameworks": ["ISO_27001", "SOC_2"]
}
}One product, customers in many countries
Building a compliance product with its own assistant? Pin each customer's national modules on their requests: NIS_2_NL for a Dutch customer, NIS_2_IT for an Italian one. Every EU member state has its own NIS 2 module (tracking the draft where the national law is still pending), and each request carries only its own, so adding a country never changes answers for the customers you already have.
The response names the modules that ran. Changes to any module are listed at GET /v1/frameworks/changelog.
curl https://api.ismscopilot.com/v1/chat/completions \
-H "Authorization: Bearer sk-isms-..." \
-H "Content-Type: application/json" \
-d '{
"model": "isms-fast",
"messages": [
{"role": "user", "content": "Which NIS 2 incident reports do we owe, and to whom?"}
],
"ismscopilot": { "frameworks": ["NIS_2_NL"] }
}'Auth and limits
- Key
- sk-isms-... shown once, created in the console
- Header
- Authorization: Bearer sk-isms-...
- Keys per user
- Up to 20 active, optional spend caps per key by hour, day, week, month
- Streaming
- Supported on both processing paths
- Not supported
- Tool calling, JSON mode, n > 1, logprobs, images. Text-only subset.
- Thinking floor
- max_tokens raised to 1024 on thinking aliases; effective value returned in x-isms-max-tokens-effective
Credits
- Billing
- Prepaid credits, no subscription
- Free first answers
- USD 2 once, added when you create a key in the console (accounts with a confirmed email that have never had API credit; while the offer runs)
- Minimum top-up
- USD 20
- Welcome credit
- USD 10 once, for paying chat subscribers
- Unit rates
- platform.ismscopilot.com/pricing
Zero Data Retention
Prompts and outputs are not stored in the API data layer. Console usage history is metadata only. The global path runs on zero-retention upstream endpoints; the EU path runs on Mistral under a commercial ZDR agreement. Request content is never used for training. Usage and billing metadata are retained.
Works with
- Any OpenAI SDK
Swap base_url and the key. Python, Node, Go, Ruby, the rest.
- opencode, Continue, Aider, Cline
Custom OpenAI-compatible (text-only) provider pointed at the base URL.
- CursorChat only
Plain chat only, through the Override OpenAI Base URL setting (caveated, not a verified integration). Agent mode sends tool calls this API rejects: use the sub-agent step.
- LangChain, Vercel AI SDK, n8n, LiteLLM, Cloudflare AI GatewayGuides
Setup guides for each, with framework pinning and the text-only limits stated.
- Claude CodeSub-agent
Cannot use this endpoint as its model backend (Anthropic API shape). Run it as a compliance sub-agent step, or use Account MCP.
Related reading
Status: live
Create an sk-isms key at platform.ismscopilot.com/keys and send the first request. Your first answers are free: while the offer runs, an account that has never had API credit gets a one-time USD 2 credit when it creates a key in the console. Machine summary: GET /api/public/api/v1.
Frequently Asked Questions
Is it fully OpenAI-compatible?
It is a documented text-only subset of the chat completions API: no tool calling, no JSON mode, n=1, no logprobs, no images. Streaming works. Existing OpenAI SDKs work once you swap the base URL and the key.
Does it search the standard at request time?
No. Detection is name-level: a named framework in the conversation selects a curated module that is injected before generation. A bare clause number injects nothing. No verbatim ISO or AICPA text is returned.
Which frameworks?
150+ curated modules. GET /v1/frameworks returns the live list with a registry hash and needs no key.
What does it cost?
Your first answers are free: while the offer runs, an account that has never had API credit gets a one-time USD 2 credit when it creates a key in the console. After that, prepaid credits with a USD 20 minimum top-up. Paying chat subscribers get a one-time USD 10 welcome credit instead. Unit rates: $2.80 in and $8.80 out per million tokens for isms-fast, isms-thinking and their -eu twins; $0.50 in and $2.00 out for isms-mini. The console at platform.ismscopilot.com/pricing is the billing source of truth.
Where does it run?
Global aliases run through zero-retention upstream endpoints; the -eu aliases run on Mistral in the EU. The processing region comes back in a response header.
Can I use it from Claude Code?
Not as the model backend; Claude Code speaks the Anthropic API. Use it as a sub-agent step from a script, or connect Account MCP for account-level access.
Send the first request tonight
Create a key and paste the curl. New to the API? Your first answers are free (USD 2 of credit, while the offer runs). The response tells you which modules ran.
ISMS Copilot