Say yes to the customer in the next country.
If your compliance product has its own assistant and customers in more than one country, pin the right national modules on each request to the ISMS Copilot API. Each customer gets answers grounded in their own law, the others are untouched, and the law library is ours to keep current.
One request, pinned to one customer's country
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"] }
}'The case every growing compliance platform meets
A compliance platform builds its controls and its assistant on one country's NIS 2 law. Then a customer from another member state signs, asks about their own obligations, and gets answers from the first country's law. That country transposed the same directive into its own statute, with its own entity categories, reporting chain and registration deadline. Loading the new law into the assistant's shared knowledge changes answers for every existing customer. Leaving it out leaves the new customer with a law that is not theirs. Every platform that sells into a second country meets a version of this: NIS 2 is transposed separately by each member state, each with its own statute or pending bill.
How it fits in your product
- 01
Route by customer
Your backend already knows where each customer operates. Map that to catalog ids: NIS_2_IT for Italy, NIS_2_NL for the Netherlands, plus whatever else the customer is under, such as GDPR, ISO_27001 or DORA.
- 02
Pin the modules on each request
Send them in ismscopilot.frameworks, up to 8 per request. Only that request gets those modules. The next customer's request carries its own, so nothing leaks between them.
import os from openai import OpenAI client = OpenAI(base_url="https://api.ismscopilot.com/v1", api_key=os.environ["ISMS_API_KEY"]) # Your backend already knows where each customer operates. NIS2_BY_COUNTRY = {"BE": "NIS_2_BE", "IT": "NIS_2_IT", "NL": "NIS_2_NL"} def ask(tenant, messages): frameworks = [NIS2_BY_COUNTRY[tenant.country], *tenant.frameworks] # at most 8 return client.chat.completions.with_raw_response.create( model="isms-fast", messages=messages, extra_body={"ismscopilot": {"frameworks": frameworks}}, ) # Log response.headers["x-isms-frameworks"] with the answer. - 03
Log what ran
Every response names the injected modules in the x-isms-frameworks header and the ismscopilot object. Store it next to the answer, so support and your compliance team can see which law an answer stood on.
- 04
Keep your assistant's voice
Set ismscopilot.system to "none" and our persona steps aside: your system prompt stays in charge, and the framework knowledge is still injected.
- 05
Know when a law changed
Poll GET /v1/frameworks/changelog, public and cacheable with an ETag, and filter on the ids your customers use. Each event says what changed and when.
One shared knowledge base, or modules per request
| When you add a country | ISMS Copilot API, pinned per request | Laws loaded into your own assistant |
|---|---|---|
| Existing customers | Untouched: their requests carry their own modules | Every answer can now pull from the new country's law |
| Keeping the law current | Ours: re-checked against the official source, changes in a public changelog | Yours, for every country, for as long as you sell there |
| Proof of what an answer used | Module ids on every response | Whatever your retrieval logs |
| Your product logic | Yours: controls, templates and workflows stay in your platform | Yours |
What is in the catalog
130+ modules. GET /v1/frameworks lists them live, with each module's version and last-verified date, and needs no key.
- NIS 2
- A module for each of the 27 member states, tracking its national law, plus the directive and Implementing Regulation (EU) 2024/2690. Where a country has not adopted its law yet, the module says so and tracks the draft.
- Data protection
- GDPR plus national laws such as Germany's BDSG, the Dutch UAVG, UK GDPR and Switzerland's FADP
- Financial sector
- DORA and its technical standards, Swiss FINMA circulars
- Standards
- ISO 27001, ISO 27701, ISO 42001, SOC 2, TISAX, HDS and more, as original reference notes, never the copyrighted text
- Beyond Europe
- China, Japan, India, Australia, Canada, Singapore and others
How the knowledge stays current
Each module is checked against its official publisher: the Dutch Staatsblad, Italy's Gazzetta Ufficiale, the EU Official Journal. An update is verified against the primary source and reviewed by two independent AI models before it merges, with an evidence record of the source it was read from, and reaches production with a release. The catalog's last_verified date says when a module's edition was last checked; it is not a promise that every sentence is right. Your compliance experts still decide what your product tells customers. The API takes the legwork of keeping the law library current.
Public changelog of knowledge changes since 2026-08-25 →What it does not do
- It is not the full statute text. Modules are curated reference notes with section numbers. For a word-by-word comparison, pass the official text in the request.
- It does not add a country to your platform. Your controls, templates and implementation steps stay yours to build.
- No per-customer sub-accounts yet. To split usage by customer, give each one its own key: up to 20 active keys per user, each with its own spend cap, all drawing on that user's prepaid credits.
- No webhook for knowledge changes. Poll the changelog.
- Text only: no tool calling, no JSON mode.
Where to go next
- Serve customers in many countries
The docs guide: routing, pinning, logging, the changelog
- The ISMS Copilot API
Models, rates, limits, Zero Data Retention
- NIS 2 transposition tracker
Where each member state stands
- Netherlands: NIS 2
The module pinned in the example request
- Build vs buy compliance AI for a GRC product
The wider decision
- No assistant of your own yet?
Embed ours in your product instead
Frequently Asked Questions
Does a customer in a new country change answers for my existing customers?
No. Modules are chosen per request. A request pinned to one country's NIS 2 module gets that country's law; another customer's request carries its own. Nothing is shared between requests, and there is no account-wide knowledge to pollute.
Why not put the laws in our own retrieval?
You can. Then you own the corpus: finding each country's official text, re-checking it when it is amended, and keeping one customer's law out of another customer's answers. The API does that work and tells you on every response which modules it used.
Is this the full legal text?
No. Modules are curated reference notes with section numbers, written in original words. For an exact-wording comparison, send the official text in the request alongside the pinned modules.
Which NIS 2 countries are covered?
All 27 member states have a module. Where a law is not adopted yet, the module tracks its status and the draft. The live catalog at GET /v1/frameworks has the current version of each.
Can our assistant keep its own name and tone?
Yes. Set ismscopilot.system to "none" and send your own system prompt. Framework knowledge is still injected.
What happens to our customers' prompts?
Prompts and outputs are not stored in the API data layer and are never used for training. Usage and billing metadata are kept. Details and subprocessors are on the Trust Center.
Can we try it before paying?
The catalog and the changelog need no key, so you can check coverage for free. Completions draw on prepaid credits: with a zero balance the first call returns HTTP 429 with the code insufficient_quota, so check your balance in the console and top up if needed before you test. Paying ISMS Copilot chat subscribers get a one-time welcome credit.
How is this different from Embed?
Embed puts the ISMS Copilot assistant inside your product. The API is for when you already have your own assistant and want it to know the law.
Pin your next country
Create a key, check your credit balance and top up if needed, map one customer to their national module, compare the answer.
ISMS Copilot