Corti Models

Run frontier LLMs on sovereign EU infrastructure

One OpenAI-compatible API on EU infrastructure we own from the metal up. $50 free credits, first call in five minutes.

Start for freeSee how it works
Terminal
corti · v1.4.2 · models init ◆ Which models should Corti offer?  ranked; the top selected model is the default  ▸ ■ corti-s1               256K  default    ■ corti-s1-instant       256K    ■ corti-s1-mini          256K    ■ corti-s1-mini-instant  256K    ■ corti-s1-embedding      16K ✓ creds   model 2/5   tools  scope  plan
  • ISO 27001
  • ISO 42001
  • GDPR
  • NIS2
  • DORA
  • EU AI Act

Frontier AI used to mean a US API you can't control, or open weights you can't run.

Corti runs the strongest open weights on EU infrastructure you can audit.

Corti Models, for work that can't fail.

Frontier models without the tradeoff. Open weights on sovereign EU hardware.

Pay for what runs

Pay for tokens, not seats. One credit balance from prototype to production.

Fast enough for a loop

180 ms to first token, 118.5 tokens a second on corti-s1.

Provable where it ran

Attestation before inference. Isolation enforced by hardware, not policy.

Clears review

ISO 27001, ISO 42001, GDPR, NIS2, DORA, EU AI Act. No US cloud in the request path.

Not convinced?

Corti Models will satisfy the toughest critic

The engine

How a model becomes a Corti model

An open-weight model is a starting point, not a product. Three things happen before your request (evaluate, harden, serve), and Corti owns all three.

  • 01Evaluate

    The strongest open weights change every few months. We don't care which lab.

    • Track every new model as it ships
    • Test on real work, not benchmarks
    • Keep the API. The model improves underneath.
  • 02Harden

    A download isn't a product. We tune it, break it. If it doesn't hold, it doesn't ship.

    • Inference tuned for latency, not just throughput
    • Tuned for coding and structured output
    • Every release passes our eval suites
  • 03Serve

    Hardware, cluster, serving stack, API: one operator owns every layer.

    • Hardware we own, in Europe
    • No US cloud in the request path
    • Isolation enforced by hardware

Running 1M+ interactions a week

Ten years of clinical AI, now backing your workloads

We spent ten years building AI for clinical work, where a model that's wrong five percent of the time is a liability. The same standard backs every call you make to Corti Models.

  • #1 on OpenAI HealthBench Professional
  • Published at NeurIPS, ICML, ICLR, ACL, and npj Digital Medicine
  • Named one of TIME's World's Top HealthTech Companies, 2026
  • 100M+ patients served annually

Use Corti Models

In your coding agent, or in your app

  • Path 01

    Agentic coding in the terminal

    Point OpenCode, Crush, or Pi at Corti Models with the CLI. Same workflow.

    bash
    # run the setup wizardnpx @corti/cli models init # load credentials, then launch your agentset -a; . ~/.env; set +aopencode
    Read the docs →
  • Path 02

    Direct API in your product

    Point your OpenAI SDK at Corti Models with a new URL and key. Same code.

    python
    client = OpenAI(    base_url="https://ai.eu.corti.app/v1",    api_key="<your-api-key>") r = client.chat.completions.create(    model="corti-s1", messages=msgs)
    Read the docs →

The lineup

Frontier models hosted in Europe.

ModelReasoningInputCached inputOutput
corti-s1-instant

Fast interactive coding and inline completion

No$2.00 / MTok$0.20 / MTok$8.00 / MTok
corti-s1-mini

High-volume review, tests, and refactors

Yes$1.00 / MTok$0.10 / MTok$4.00 / MTok
corti-s1-mini-instant

Cost-sensitive completion at scale

No$1.00 / MTok$0.10 / MTok$4.00 / MTok
corti-s1-embedding

Codebase search, retrieval, and indexing

n/a$0.03 / MTok—no output charge

Switching is easy

Change the endpoint. Keep the rest.

SDK, prompts, and evals stay. A new base URL and key put inference on EU hardware. The compatibility that makes arriving cheap makes leaving cheap.

switching.py
from openai import OpenAI
 
client = OpenAI(
− base_url="https://api.us-east/v1",
+ base_url="https://ai.eu.corti.app/v1",
api_key="<your-api-key>",
)
 
completion = client.chat.completions.create(
model="corti-s1",
messages=[{"role": "user", "content": prompt}],
)

Pricing

Pay for tokens, not seats

Per-seat coding assistants charge whether developers use them or not. We charge for what runs, at European infrastructure cost.

  • One credit balance across Corti APIs
  • Same credits for development, testing, and production
  • Per-team limits and request-level reporting
Directional estimate
500
$39
5x
Per-seat licences$234,000 / yr
Corti Models$46,800 / yr

Difference of $187,200 a year, before the procurement and compliance overhead you stop paying for.

Five endpoints. corti-s1 is the flagship reasoning model. corti-s1-instant is the same weights tuned for low latency. corti-s1-mini and corti-s1-mini-instant are the smaller, cheaper variants. A separate endpoint handles embeddings.

A reseller changes who invoices you. The inference still runs under US jurisdiction. Corti operates the hardware, so your request is processed on machines we run, in Europe, under European law.

Yes. Most teams swap a base URL and an API key and are running in an afternoon. The compatibility that makes adoption cheap also makes exit cheap.

On some work it is, and we'll tell you where. For most production volume (coding, extraction, classification, routing) the gap has closed and the economics haven't. Most teams run both and send us the volume.

An open-weight model is a starting point, not a product. Before your request touches it, three things happen: we evaluate candidate models against defined suites, harden the ones that pass through tuning, compression, and grading, and serve them on infrastructure we operate. If selection, tuning, serving, and hardware were easy, self-hosting would work. Mostly it doesn't. The teams who try spend months on it and still ship a model that fails on real work. That's the layer Corti owns.

No. Prompts and completions are never stored, logged, or used for training. Hardware attestation verifies isolation before every inference. When the request finishes, the data is gone.

You keep calling corti-s1. We upgrade the weights behind that ID when a stronger model clears our bar. No code change. We tell you what changed.

A base URL and a key. Teams typically have a working integration in an afternoon and a governance model in a few weeks.

Moving off Corti is the same base URL change as moving on. We don't hold your prompts, completions, or tuning data. The compatibility that makes adoption cheap makes exit cheap.

Sovereignty is about who operates the infrastructure, not where the research was done. Open weights are a static artefact. No data reaches the original developer.

Run your next workload
on graded models, served in Europe.

Install the CLI, keep the agent you already use. First call in five minutes, $50 free.