# Data flows & privacy

URL: https://docs.bithuman.ai/deploy/privacy

> What reaches bitHuman in each deployment mode: where the avatar renders, where the conversation runs, what usage reports carry, and what bitHuman stores.

Two things decide what leaves your hardware: where the avatar **renders**, and where the conversation **runs**. This page answers both for each mode.

## By mode

| Question | bitHuman cloud | Your servers | On the device |
|---|---|---|---|
| **The avatar renders** | on bitHuman's servers, in the US | on your Mac or Linux machines; its audio and video stay there | in your app on the device, or in the browser tab (`render=local`) |
| **The conversation runs** | on bitHuman's voice service, or with the providers whose keys you connect | where you choose: the CLI's local conversation brain, your own services, or bitHuman's | where your app chooses; with the web embed, on bitHuman's servers |
| **Usage reports** | none: bitHuman runs the session | usage only, no audio, video, images or conversation text | the same as your servers |
| **Transcripts at bitHuman** | stored with the agent | none stored | none stored |
| **Your API secret** | on your server; browsers get scoped embed tokens | on your machine | held by your app on the device |

[Fully offline](https://docs.bithuman.ai/deploy/offline) runs on Linux PCs and terminals with no required reconnection; it is arranged through sales.

## What leaves your hardware

Pick a mode to see where each kind of data goes. Rows marked **Reaches bitHuman** are what crosses from your hardware to bitHuman.

| Data | bitHuman cloud | Your servers | On the device | CPU only (no GPU) | Fully offline | Web embed, render=local |
|---|---|---|---|---|---|---|
| Portrait | Reaches bitHuman: uploaded once to the bitHuman cloud, where the avatar is created | Reaches bitHuman: uploaded once to the bitHuman cloud, where the avatar is created | Reaches bitHuman: uploaded once to the bitHuman cloud, where the avatar is created | Reaches bitHuman: uploaded once to the bitHuman cloud, where the avatar is created | Reaches bitHuman: uploaded once to the bitHuman cloud, where the avatar is created | Reaches bitHuman: uploaded once to the bitHuman cloud, where the avatar is created |
| Avatar model file | At bitHuman: stays in the bitHuman cloud, where the avatar renders, in the US | Comes from bitHuman: downloads once, then renders on your machine | Comes from bitHuman: downloads once; on Android, usage reporting is then the only traffic | Comes from bitHuman: downloads once, then renders on your machine | Stays on your hardware: runs on the machine; creating the avatar happens online first | Comes from bitHuman: the avatar's web bundle downloads to the browser |
| Live audio | Reaches bitHuman: reaches bitHuman to run the session, encrypted in transit | Your choice of services: goes where the conversation runs: nowhere with the CLI's local conversation brain, or to your services or bitHuman's | Your choice of services: goes to the voice and language services your app uses; with your own, bitHuman receives none | Your choice of services: goes where the conversation runs: nowhere with the CLI's local conversation brain, or to your services or bitHuman's | Stays on your hardware: stays on the machine, off the internet | Reaches bitHuman: reaches bitHuman: the conversation runs on bitHuman's servers |
| Avatar video | Comes from bitHuman: rendered by bitHuman and streamed to your viewer | Stays on your hardware: stays on your machine | Stays on your hardware: renders on the device; bitHuman never receives it | Stays on your hardware: renders on the PC's CPU and stays there | Stays on your hardware: stays on the machine | Stays on your hardware: renders in the visitor's tab with WebGPU |
| Transcripts | At bitHuman: kept with the agent; deleting the agent deletes them | Stays on your hardware: none stored at bitHuman | Stays on your hardware: none stored at bitHuman | Stays on your hardware: none stored at bitHuman | Stays on your hardware: stay on the machine | At bitHuman: the conversation runs on bitHuman's servers |
| Knowledge and persona | At bitHuman: your persona lives with the managed agent; deleting the agent deletes its records | Your choice of services: where the conversation runs; any OpenAI-compatible model works, including one in your own network | Your choice of services: stays with your app and the services it uses | Your choice of services: where the conversation runs; any OpenAI-compatible model works, including one in your own network | Stays on your hardware: agreed with sales for your site | At bitHuman: your persona lives with the managed agent |
| Provider keys | Reaches bitHuman: encrypted at rest when you connect them | Your choice of services: stay with the services you run | Your choice of services: stay with your app and the services it uses | Your choice of services: stay with the services you run | Stays on your hardware: agreed with sales for your site | Reaches bitHuman: encrypted at rest when you connect them |
| API secret | Stays on your hardware: on your server; browsers get scoped embed tokens | Stays on your hardware: on your machine; checked when a session starts | Stays on your hardware: held by your app; checked when a session starts | Stays on your hardware: on your machine; checked when a session starts | Stays on your hardware: arranged through sales, for Business & Enterprise | Stays on your hardware: never in the browser: the embed uses scoped tokens |
| Usage reports | At bitHuman: bitHuman meters the session it runs: active session time, talking or idle | Reaches bitHuman: reach bitHuman, with no audio, video, images or conversation text | Reaches bitHuman: usage metering only, never audio, video or conversation text | Reaches bitHuman: reach bitHuman, with no audio, video, images or conversation text | Stays on your hardware: metered on the machine; no required reconnection | At bitHuman: bitHuman meters the session: active session time, talking or idle |

## Rendering on your hardware

When the avatar renders on your hardware, its audio and video stay there. When the avatar renders in your app on the device and you use your own voice and language services, bitHuman receives usage metering only, never audio, video or conversation text. On Android, after the one-time model download, the only network traffic is usage reporting.

With the web embed, the conversation runs on bitHuman's servers, even when the avatar renders in the tab (`render=local`).

## The conversation

- **The local conversation brain:** with the CLI's [local conversation brain](https://docs.bithuman.ai/platforms/cli/local-brain) (`BITHUMAN_LOCAL=1`), speech recognition, the language model and the voice run on the machine; audio, transcripts and generated speech never leave it. The session still reports usage online.
- **Your own model:** a managed agent works with any OpenAI-compatible language model endpoint, including one in your own network ([Providers](https://docs.bithuman.ai/api/providers)).
- **Your own stack:** the Swift and Android SDKs take any 16 kHz mono speech your pipeline produces and return frames.

## Usage reports

Self-hosted and on-device sessions check your credential when they start and report usage while they run. Usage reports contain no audio, video, images or conversation text. Self-hosted and on-device sessions store no transcript at bitHuman.

## Creating an avatar

Avatar creation from a portrait happens in the bitHuman cloud; the finished avatar model then runs on your devices. The portrait is uploaded for that step, in every mode.

## Security and access

- **In transit:** encrypted with HTTPS/TLS; WebRTC media uses DTLS-SRTP. Provider keys you connect are encrypted at rest.
- **Access:** organization roles (owner, admin, member), an audit-log API, API-secret rotation with immediate revocation, and scoped runtime and embed tokens so browsers never hold your secret ([Organizations](https://docs.bithuman.ai/api/organizations), [API secrets](https://docs.bithuman.ai/api/api-keys)).
- **Region:** avatars in the bitHuman cloud render in the US.

## Retention and deletion

Deleting an agent deletes its records, including transcripts, and its model files ([Agents](https://docs.bithuman.ai/api/agents)).

## Your content

bitHuman's [privacy policy](https://www.bithuman.ai/legal/privacy) says: "We do not use your content to train our AI models unless you explicitly opt in." and "We do not sell your personal information." For the EU AI Act, see [our reading of Article 50](https://docs.bithuman.ai/legal/eu-ai-act).
