The EU AI Act arrives August 2. Can you prove where your AI data goes?
Comparison

Akumi vs calling the provider yourself

Pointing your SDK straight at OpenAI or Anthropic is the fastest way to a working prototype, and it is exactly what most teams do first. The bill comes due at the compliance review: a US processor, a transfer to defend, no pseudonymization, and an audit trail you have to build. Akumi keeps the same call and moves the hard parts into the platform.

The short answer

Going direct is the right first move and almost everyone makes it. You have an API key, an SDK you already know, and a working prototype by the end of the day. Nothing here argues with that.

The problem arrives later, and it is never the code. It is the review: your prompts carry client matters, patient records or financial personal data, and every one of them is being sent to a US processor. That is a transfer to justify, a sub-processor for your DPO to approve, and an EU AI Act exposure you cannot wave away. Meanwhile the things you assumed you would add later, pseudonymization, retrieval that keeps one customer out of another customer's answers, an audit trail a regulator would accept, are all still unwritten. Akumi keeps the call you already wrote and moves that layer into the platform.

What Akumi is

An EU-sovereign AI platform behind one OpenAI-compatible endpoint. EU-resident models answer by default, a PII firewall pseudonymizes personal data before anything leaves, a guard scans prompts and tool output, retrieval and per-user memory sit behind the same call, and every request is recorded in a metadata-only audit trail. Migration from a direct integration is a base_url and a key.

What going direct means

Your application calls OpenAI, Anthropic or Google itself. You hold one API key and one contract per provider, you get their SDK, their model line-up on launch day, and their list price with nobody in between. Everything above the completion, residency, redaction, retrieval, isolation, audit, is your application's responsibility.

The prototype is easy. The review is not.

Dimension Akumi Direct to provider
Time to first token One base_url change and a key. The same SDK, the same code, the same afternoon. A key and you are running, until the first compliance question arrives.
Where the data goes EU-resident models by default. Non-EU routing is blocked at a fail-closed guard unless you allow it explicitly. Straight to a US provider on every request, whatever the prompt happens to contain.
Personal data Pseudonymized before egress by the PII firewall, restored in your response. Whatever your prompt contains is what the provider receives.
Audit trail Metadata-only record of model, provider, region and modules for every request, retained on your policy. Provider dashboards, built for billing rather than for a DPO, and nothing tying a request to a region.
Retrieval and memory Conversation memory and your documents share one knowledge graph behind the same endpoint, so an answer follows the link from a user to their organization to the document that answers them, and arrives with the sources it used. Yours to build: a store, an embedding pipeline, a chunking strategy, retrieval code, and the tenant isolation logic holding it all apart.
Billing and contracts One EU vendor, one invoice, and usage attributed per request and per module. A contract, a key and an invoice per provider, with no per-request attribution across them.
Switching models Change a string. The router handles fallback, and provider differences are absorbed behind one schema. A new SDK, new auth, new payload shape and new error handling for every provider you add.

An EU region is not an EU processor.

The usual first fix is to pick a European region and consider the residency question closed. It is not. Choosing a region changes where the compute sits; it does not change who is processing the data or under which jurisdiction. Sending personal data to a US-headquartered provider remains a transfer that needs a lawful basis, a data processing agreement and standard contractual clauses, and it stays a Schrems II conversation however European the endpoint looks.

Akumi answers on EU-sovereign models by default, so the transfer does not happen in the first place. Where you do want an external model, that is an explicit decision rather than an accident: the egress guard fails closed, so a request only leaves the EU when the payload is firewalled or a compliance acknowledgment has been recorded against it. The failure mode of a misconfiguration is a refused request, not a quiet export.

Dimension Akumi Direct to provider
Who processes the data An EU-sovereign provider, on EU infrastructure, by default. A US-headquartered processor, whichever region you selected.
Transfer paperwork Not triggered on the default path, because nothing leaves the EU. A lawful basis, a DPA and SCCs for every request carrying personal data.
Turning on external models An explicit, recorded decision, enforced by a guard that fails closed. The default, and the only, behaviour.

The SDK gives you a completion. You still owe the rest.

A provider SDK returns tokens. Everything that makes those tokens safe to put in front of a customer is yours: detecting and masking personal data on the way out and restoring it on the way back, catching prompt injection before a tool call acts on it, storing and retrieving your own documents without leaking one tenant into another's answers, caching repeated questions so you stop paying twice, and recording enough about each request that someone can later answer where it ran.

Each of those is a few weeks the first time and a permanent maintenance surface afterwards, because models, attacks and regulations all keep moving. On Akumi they are modules on the same request, each metered separately so you can see what governance actually costs. The honest version of this comparison is not that you cannot build it. It is that you will keep building it.

Dimension Akumi Direct to provider
Personal data Pseudonymized before egress, restored in your response, on by default. Your code, your regexes, your maintenance.
Prompt injection Guard scans prompts and tool output every turn and fails with a typed error you can branch on. Nothing by default. Tool output is trusted unless you make it otherwise.
Repeated questions Exact and semantic response cache, so a near-duplicate skips the inference charge. Billed again, every time.
Where it ran Recorded per request: model, provider, region and modules, metadata only. A billing dashboard, which is not the same artefact.

One provider is an integration. Four is a maintenance project.

Most teams do not stay on one provider. A cheaper model appears, a customer asks for something specific, an outage forces a fallback, and suddenly you are carrying several SDKs with different payload shapes, different auth, different error semantics and different rate-limit behaviour, plus the routing logic to choose between them and the contracts and invoices behind each.

Akumi puts them behind one OpenAI-compatible schema with one key, one bill, and a router that handles fallback. Adding a provider is a string, not a sprint, and usage stays attributable per request and per module across all of them.

Dimension Akumi Direct to provider
Adding a provider Change a string. Fallback and provider differences are absorbed by the router. A new SDK, new auth, new payload shape, new error handling.
Contracts and invoices One EU vendor, one agreement, one invoice. One of each, per provider.
Usage visibility Attributed per request and per module across every provider. Per provider dashboard, with no view across them.

The prototype was easy. This is the part that stalls.

Choose Akumi if

  • The prototype worked and now legal, security or your DPO has to sign it off.
  • Your prompts carry client matters, patient records, or financial personal data.
  • You would otherwise be building pseudonymization, retrieval isolation, and an audit trail yourself.
  • You want one EU vendor and one bill instead of a provider contract per model.
  • You would rather your engineers shipped features than maintained four provider integrations.

Questions people ask

Is it hard to move from OpenAI to Akumi?

No. Akumi is OpenAI-compatible, so the migration is a base_url and a key. The same client library, the same request shape, the same streaming and tool-calling behaviour. There are also first-party SDKs for PHP, TypeScript and Python if you would rather use those.

Does using an EU region of OpenAI or Azure solve data residency?

It solves where the compute runs, not who processes the data. A US-headquartered provider is still the processor, so a transfer of personal data still needs a lawful basis, a DPA and standard contractual clauses. Akumi answers on EU-sovereign models by default, so that transfer does not occur on the default path.

Can I still use OpenAI or Anthropic models on Akumi?

Yes, under an explicit routing policy. External models are off by default and reaching one requires either a firewalled payload or a recorded compliance acknowledgment. The egress guard fails closed, so it never happens silently or by misconfiguration.

What does Akumi add that a provider SDK does not?

A PII firewall that pseudonymizes before egress and restores afterwards, a guard against prompt injection that also scans tool output, retrieval and per-end-user memory on one knowledge graph, an exact and semantic response cache, per-request observability, and a metadata-only audit trail recording the model, provider and region for every call.

Is Akumi more expensive than going direct?

Per token, yes: inference is metered in credits at a markup over provider cost, which pays for EU-sovereign serving, the governance modules and one bill instead of several. Against that, the response cache removes the inference charge on repeated questions, and the comparison most teams actually care about is against the engineering time of building and maintaining the same governance layer themselves.

Will my prompts be used to train models?

No. Akumi is a processor acting on your instructions under a DPA, and the audit trail is metadata only: prompts, completions and retrieved content are never stored in it.

How do I prove to an auditor where a request ran?

From the log. Every request records the model, the provider and the region that served it, so residency is answered per request rather than by pointing at a policy or a region setting.

Do I need to talk to sales?

No. Signup is self-serve and pricing is published. You need a payment method before running inference, then a key and one base_url gets you a first response in minutes.

Weighing other options?

Akumi vs Azure OpenAI Akumi vs self-hosting open models Akumi vs Aimable Akumi vs Zylon

Keep the code, change the destination.

Akumi is OpenAI-compatible, so the migration is a base_url and a key. Start free, send a real request, and see what the audit trail gives you.