Answer the security review with the mechanism itself.
Every customer runs inside a workspace of its own, and every run inside a machine of its own. This page is how that boundary holds, who else touches your data, and what we have not built or certified.
Isolation
Prove a run reaches one customer, and nothing else.
Every agent run starts in a fresh microVM that belongs to exactly one workspace, holding the agent's current version, the resources it declares and the tools it's allowed to call, and nothing else; the code the model writes runs there, and when the run ends the machine is destroyed and the record is what stays.
A run can't reach another run, another workspace or the host, and its CPU, memory, disk and network are bounded per sandbox.
| Layer | Where it lives |
|---|---|
| Compute | Per run. A fresh microVM belonging to one workspace, destroyed when the run ends. |
| Credentials | Per workspace. Encrypted at rest, decrypted only inside that workspace's runs. |
| Knowledge and memory | Per workspace. An agent reads the workspace it runs in and no other. |
| Record | Per workspace. Runs, approvals, versions and cost, kept after the machine is gone. |
| Usage | Pooled at your organization, reported per workspace, so each customer's share of the month is separate. |
| Control plane | Shared. The API, the scheduler and the webhook dispatcher are one system for every organization on Levain. They route work to workspaces and enforce the boundary between them. |
A misdirected call is refused, never quietly redirected.
One organization key reaches every workspace in your organization, and every call it makes has to name the workspace it acts on.
- A workspace id that doesn't exist, or belongs to another organization, returns 404.
- An organization key with no workspace named resolves only when the organization has exactly one workspace. Otherwise the call is refused with 400 and asks you to pick.
- A key issued for a single workspace that names a different one is refused with 403 rather than silently ignored, so a caller never acts somewhere other than where it asked to.
Credentials
Hold your customer's tokens where the model never sees them.
Your customer authorizes Slack, GitHub or any other provider inside your product, against your OAuth app, and your backend pushes the resulting tokens into that customer's workspace, where their agents pick them up on the next run. Levain stores them encrypted, ships them only into that workspace's runs, and the model never sees them.
- Pushing a credential is create-or-rotate: the same call with a fresh token replaces the old one.
- Levain never refreshes a pushed token. Refresh tokens and OAuth client secrets stay with the owner of the OAuth app, which is you.
- An OAuth access credential has to carry an expiry; the API refuses it without one.
- Listing a workspace's integrations returns each credential's expiry and whether it has lapsed. Secret material is never returned.
- Deleting an integration deletes the stored secret immediately. The integration record is kept, marked revoked, so the record stays intact.
- When a run finds a credential no longer works, a webhook fires, so your product can ask that customer to reconnect.
Models
Send prompts without them becoming somebody's training data.
Anthropic and OpenAI don't train their models on data sent through the API, and in production inference runs through AWS Bedrock, where traffic stays within Bedrock and isn't sent to a provider's own external API. Every provider that can serve a request is named in the sub-processor list below.
- Every agent's model traffic goes through a proxy provisioned with the run, inside its sandbox. Direct provider routes are used in development and when you bring your own key.
- Bring your own key and the request hits your provider account, so that provider bills you for the tokens.
- Your key is encrypted at rest, decrypted only inside the sandbox at run time, and never returned by the API. Revocation is immediate, and runs after it fall back to Levain's provider accounts.
- Either way the call is recorded: the model, the token counts, the latency and the cost, in the run's session and in your analytics. The per-run and per-workspace cost figures are built from that.
-
Anthropic
-
OpenAI
-
Amazon Bedrock
Your data
Take your data out whenever you want.
Agents, runs, records and each workspace's knowledge are readable and exportable through the API, with the workspace named on the call, and usage comes back per workspace in millionths of a USD. There is no export fee and no lock on your model keys.
Deletion is on request today: email privacy@levainlabs.com and we delete the workspace's data; there is no delete endpoint you can call. Suspending a workspace is a different action, one that refuses new runs and keeps everything, which is what offboarding usually wants.
What we collect, how long we keep it and the rights you can exercise are in the Privacy Policy.
Sub-processors
See everyone who touches your data, named.
Last updated: 20 August 2026
A sub-processor is a third party that processes personal data on our behalf to help us deliver the Service. The list below is current as of the date above; we give Customers advance notice before adding one that processes Customer Content, and Customers may object on reasonable grounds.
To receive notifications of changes, email privacy@levainlabs.com with the subject "subscribe: sub-processors".
In production, model inference runs through AWS Bedrock, which hosts foundation models from a range of providers including Anthropic, Meta, Cohere, Mistral AI, AI21 Labs, Stability AI, and Amazon's own model families. Customers may build agents that invoke any model the platform exposes from this catalog, and the corresponding model owner acts as a sub-processor when its model serves a request. Direct provider routes (outside Bedrock) are used in development and when a Customer brings their own provider key (BYOK).
| Sub-processor | Purpose | Data | Location |
|---|---|---|---|
| Infrastructure | |||
| Amazon Web Services aws.amazon.com/compliance/data-privacy | Compute (EKS), object storage (S3), managed database (RDS), key management (KMS), model inference (Bedrock), transactional email (SES), and content delivery (CloudFront). The Service runs on AWS infrastructure end to end. | Customer Content, Account Data, usage and telemetry logs, transactional emails. | United States, with regional services as configured |
| AI model providers | |||
| Anthropic anthropic.com/legal/privacy | Claude model inference. Used via AWS Bedrock for production traffic, and directly for development and BYOK Customer keys. | Prompts and any context the Customer's agents send to Claude, plus the model's outputs. Anthropic does not train its models on data sent through the API. | United States |
| OpenAI openai.com/policies/privacy-policy | Model inference. Used directly for development and when a Customer brings their own OpenAI key. | Prompts and context the Customer's agents send to OpenAI, plus the model's outputs. OpenAI does not train its models on data sent through the API. | United States |
| Other foundation model providers via AWS Bedrock aws.amazon.com/bedrock | When a Customer's agent invokes a Bedrock-hosted model from a provider other than Anthropic (for example, Meta Llama, Cohere, Mistral, AI21 Labs, or Stability AI), that provider's model serves the request from inside AWS Bedrock. AWS's commercial agreement with each model provider governs how data is handled in that environment. The set of providers and models available through Bedrock changes over time; the operative list at any moment is the one AWS publishes. | Prompts and outputs for invocations the Customer routes to the model. Traffic stays within AWS Bedrock and is not sent to the provider's own external API. | Various; processing performed within AWS Bedrock |
| Identity and access | |||
| WorkOS workos.com/legal/privacy | User authentication, single sign-on (SSO), and directory sync for Customer organisations. | Account Data: name, work email, authentication tokens, and SSO/SCIM directory metadata. | United States |
| Payments | |||
| Stripe stripe.com/privacy | Payment processing, billing, invoicing, tax handling. | Billing contact details, billing address, payment-method information. Card numbers are handled directly by Stripe; we do not store them. | United States, Ireland (EU) |
| Analytics and advertising measurement | |||
| Google business.safety.google/privacy | Website analytics (Google Analytics 4) and ad conversion measurement (Google Ads), both loaded through Google Tag Manager on our website, documentation site, and blog. We also send Google a record of a paid-plan purchase from our own servers so a signup can be attributed to the ad click that led to it. Not used to personalize ads, build advertising profiles, or retarget you. | IP address, device and browser information, pages viewed, the ad-click and analytics identifiers described in section 10 of our Privacy Policy, and the amount, currency, and order reference of a paid-plan purchase. No Customer Content. Collection follows your cookie choice: nothing is set in the EEA, the UK, or Switzerland until you accept, and you can opt out at any time elsewhere. | United States |
| Anti-abuse | |||
| Google reCAPTCHA Enterprise policies.google.com/privacy | Bot and abuse detection on the public contact form. Not used inside the authenticated application. | IP address, browser and device signals, interaction signals collected by reCAPTCHA at page load, the email and message you submit through the contact form. | United States |
What no third party touches
These components are part of the Service but are operated by Levain Labs on our own AWS infrastructure rather than by a third party, so they are not sub-processors:
- Application databases (PostgreSQL on AWS RDS managed by us, ClickHouse self-hosted on EKS, Redis self-hosted on EKS).
- The LiteLLM proxy that routes inference requests.
- Internal observability and logging (the LGTM stack: Loki, Grafana, Tempo, Mimir), self-hosted on EKS.
Third-party services that a Customer connects to their own agents (for example, Slack, GitHub, Intercom, or other integrations chosen by the Customer) are not our sub-processors. The Customer's relationship with those services is governed by the Customer's own agreement with them.
Questions about this list, requests for change notifications, or objections to a new sub-processor: privacy@levainlabs.com.
Written 29 August 2026
What we don't have yet
- No SOC 2 report. We haven't been through the audit, so there is no Type 1 or Type 2 report to send you.
- No HIPAA BAA. We don't sign one, so protected health information doesn't belong on Levain.
- No VPC deployment. Levain runs on our own AWS account; there is no install inside yours.
Questions a security review asks.
Can one customer's agent read another customer's data?
No. An agent runs inside one workspace and reads that workspace only: its knowledge, its memory, its credentials. The run itself executes in a fresh microVM belonging to that workspace, and every API call has to name the workspace it acts on, with a key that is allowed to reach it.
Do the model providers train on our data?
Anthropic and OpenAI don't train their models on data sent through the API. In production, inference runs through AWS Bedrock, where traffic stays within Bedrock and isn't sent to a provider's own external API. If you'd rather the tokens never touch our provider accounts at all, bring your own key and the calls go through yours.
What happens when one of our customers leaves?
Suspend their workspace and it refuses new runs while keeping its data, agents and configuration, so re-onboarding is the same call in reverse. Deleting an integration removes the stored secret immediately. Deleting the workspace's data is on request: email privacy@levainlabs.com.
Do you have a SOC 2 report?
No, and the section above lists what else we don't have. What we can give you is the mechanism: how the boundary is drawn, what each workspace holds, who else processes data. If your review needs more than this page carries, talk to an engineer and we'll answer your questionnaire directly.
Check the mechanism yourself.
A free organization comes with a workspace to build in. The calls behind this page are in the docs.