# Chersus - Sub-50ms micro-model APIs, billed per character

![](/brand/carapace-hero-tilted.svg)
Micro-model APIs

# Lightning-fast AI microservices

Too small for an LLM, too costly to host yourself: Chersus runs purpose-built micro-model APIs, sub-50ms, billed per input character, on sovereign EU infrastructure. Convenience without the bill, economics without the headcount.
[Request access](/en/signup/)[Read the docs](/en/docs/)
Free up to 50K characters a month. No credit card.
governance.pii.redact live
```
<span class="text-[#FF9C63]">curl</span> -X POST https://api.chersus.com/v1/run \
  -H <span class="text-[#7FD8B8]">"Authorization: Bearer chrs_live_YOUR_KEY"</span> \
  -H <span class="text-[#7FD8B8]">"Content-Type: application/json"</span> \
  -d '{
    <span class="text-[#7BA6FF]">"input"</span>: { <span class="text-[#7BA6FF]">"type"</span>: <span class="text-[#7FD8B8]">"text"</span>, <span class="text-[#7BA6FF]">"value"</span>: <span class="text-[#7FD8B8]">"Contact Jane Doe at jane.doe@example.com about invoice #4821."</span> },
    <span class="text-[#7BA6FF]">"pipeline"</span>: [
      { <span class="text-[#7BA6FF]">"id"</span>: <span class="text-[#7FD8B8]">"redact"</span>, <span class="text-[#7BA6FF]">"service"</span>: <span class="text-[#7FD8B8]">"governance.pii.redact"</span> }
    ]
  }'
```

```
{
  <span class="text-[#7BA6FF]">"trace_id"</span>: <span class="text-[#7FD8B8]">"chs_01J9X4Q7K2M8N3P5R6T7V8W9X0"</span>,
  <span class="text-[#7BA6FF]">"status"</span>: <span class="text-[#7FD8B8]">"completed"</span>,
  <span class="text-[#7BA6FF]">"output"</span>: { <span class="text-[#7BA6FF]">"type"</span>: <span class="text-[#7FD8B8]">"text"</span>, <span class="text-[#7BA6FF]">"value"</span>: <span class="text-[#7FD8B8]">"Contact [REDACTED] at [REDACTED] about invoice #4821."</span> },
  <span class="text-[#7BA6FF]">"results"</span>: {
    <span class="text-[#7FD8B8]">"redact"</span>: { <span class="text-[#7BA6FF]">"kind"</span>: <span class="text-[#7FD8B8]">"transform"</span>, <span class="text-[#7BA6FF]">"status"</span>: <span class="text-[#7FD8B8]">"ok"</span>, <span class="text-[#7BA6FF]">"billed"</span>: <span class="text-[#7FD8B8]">"input"</span>, <span class="text-[#7BA6FF]">"changes"</span>: <span class="text-[#FF9C63]">2</span> }
  },
  <span class="text-[#7BA6FF]">"usage"</span>: {
    <span class="text-[#7BA6FF]">"billed"</span>: [
      { <span class="text-[#7BA6FF]">"charge"</span>: <span class="text-[#7FD8B8]">"input"</span>, <span class="text-[#7BA6FF]">"unit"</span>: <span class="text-[#7FD8B8]">"characters"</span>, <span class="text-[#7BA6FF]">"quantity"</span>: <span class="text-[#FF9C63]">61</span> }
    ]
  },
  <span class="text-[#7BA6FF]">"audit"</span>: { <span class="text-[#7BA6FF]">"region"</span>: <span class="text-[#7FD8B8]">"eu-nl-1"</span>, <span class="text-[#7BA6FF]">"retention"</span>: <span class="text-[#7FD8B8]">"none"</span>, <span class="text-[#7BA6FF]">"total_ms"</span>: <span class="text-[#FF9C63]">26</span> }
}
```

Compliance-clean licenses

Sovereign EU infrastructure

GDPR-compliant by design

< 50ms median latency
Services
## One service per job.
[### Governance

Strip or tokenize personal data before it reaches a log, a warehouse, or a downstream model. Detokenize on demand, from your own token map.](/en/services/governance/)[### Security

Catch jailbreaks, prompt injection, and toxic content before they reach your model or your users. Each check returns a verdict and a score, ready to gate on.](/en/services/security/)[### Routing

Classify intent and detect language without hand-rolled keyword matching. Every message lands at the right step or queue.](/en/services/routing/)[### Data

Turn free text into typed fields, parsed addresses, and ISO dates. Structured output your systems can insert without a parsing layer of your own.](/en/services/data/)[### Analytics

Score sentiment and traffic patterns across everything you route through Chersus. Structured scores come back, never prose.](/en/services/analytics/)[### Content

Tell AI-written text from human writing, watermark-aware where a provenance signal exists. A verdict and a score, ready to route into a review queue.](/en/services/content/)[All services →](/en/services/)
Command chaining

## Clean and check in a single run.

One request · two services · two billed steps

Input

Contact Jane Doe at
jane.doe@example.com

40 chars in
→
governance.pii.redact

billed 40 chars
step 1

26 ms
→
security.toxicity.flag

billed 32 chars
step 2

30 ms
→
Result

Contact [REDACTED] at [REDACTED]

clean · 56 ms total

Billed 72 chars · €0.0058 · every step bills the characters it processes

Chain services in one request. Every step bills the characters it processes, and a stop condition halts the run before the steps you do not need.
[See chaining in the docs →](/en/docs/chaining/)Coming soon
### Workflows: branch, loop, then route

Branch on a result and re-check with a cap: if a check flags, rewrite and try again, up to three times, then route. Same billing, same pipeline shape, planned on top of chaining.
[Read the spec →](/en/docs/workflows/)
Audit trace

## Proof, never content.

*audit trace (trimmed)*

```
{
  "id": "redact",
  "service": "governance.pii.redact",
  "version": 2,
  "model": "Roblox/roblox-pii-classifier-v2",
  "input_sha256": "9f2c1e...a1",
  "output_sha256": "6b7d44...0f",
  "duration_ms": 26
}
```

Every run returns an audit trace: SHA-256 hashes of the input and output, never the content itself. You can prove what ran, with which model and version, without exposing what was in it. You keep the receipt. We keep nothing.
Sovereignty
## Sovereign by construction.

Every request runs on sovereign EU infrastructure, across 26 cities, and never leaves European jurisdiction. Your input lives in memory for the duration of the run. We never persist, log, or train on it. When the request ends, the data is gone.

We act as processor under Art. 28 GDPR, with a simple DPA and a really short subprocessor list.

- Strictly European stack
- Hosted in the European Union
- No third-party models
- Zero retention policy
[Data processing addendum →](/en/legal/data-processing-addendum/)[Subprocessors →](/en/legal/subprocessors/)Pricing
## Billed per input character.

You pay for the characters you send, and the rate steps down as you grow. You never pay for output, and the first 50K characters every month are free.

### Free

0 – 50K characters / month

€0

Zero friction for hobbyists

### Standard

50K – 5M characters / month

€0.04

per 1K characters, per step

Instant time-to-market

### Scale

5M – 50M characters / month

€0.02

per 1K characters, per step

Cheaper than hyperscaler LLMs

### Corporate

50M – 500M characters / month

€0.01

per 1K characters, per step

Predictability at corporate scale

Volume500M+ characters / month

€0.005per 1K characters, per step

... which is cheaper than internal DevOps teams
[See full pricing →](/en/pricing/)Positioning
## The sweet spot.

Hyperscaler LLMs buy convenience with money. Self-hosting buys money with headcount. Both are correct on one axis and wrong on the other. The sweet spot, low cost with nothing to own, is unoccupied. That is the position Chersus holds.

## Start redacting in minutes.

Create an account, copy your key, make your first run before your coffee cools.
[Request access](/en/signup/)[Read the quickstart](/en/docs/quickstart/)