Skip to main content
VoiceGateway Hosted Cloud is a managed collector, ClickHouse-backed storage, and shared dashboard at dash.voicegateway.dev. You bring your own provider API keys (OpenAI, Deepgram, Cartesia, and the rest). Your agent pushes per-call telemetry (spend, latency, call counts) to the hosted ingest endpoint, and the dashboard renders it. We store the telemetry rows, nothing else. The same attach() and guard() calls you use for self-hosting work identically here. Only the sink changes: a remote collector instead of a local SQLite file. The SFU and SIP layers run from your own CLI either way.
The hosted cloud never receives your call audio or transcripts. attach() reads per-component metrics events (cost, latency, errors) and pushes only those numeric rows to the collector.

1

Sign up and get an ingest key

Open dash.voicegateway.dev and create an account. After signing in, go to Settings > Ingest keys and issue a new key.The key looks like vk_.... Copy it into your secret store immediately. The dashboard shows the full key only once.The same page shows your personal ingest URL, in the form:
Copy that URL too. You will need both values in the next step.
2

Set the three environment variables

attach() reads three variables. Set them in your agent’s runtime environment (your shell, Dockerfile, Railway/Fly secret store, or .env file):
When VOICEGW_COLLECTOR_URL is present, attach() builds a remote sink that batches rows and pushes them to the hosted collector instead of writing to local SQLite. The vk_ key authenticates the request and maps every row to your tenant. VOICEGW_PROJECT tags every captured row so costs appear per-project on the dashboard.
Use your platform’s secret manager so the vk_ key never lands in source control.
3

Add attach() to your agent

Call attach() with no project= argument and it picks up VOICEGW_PROJECT automatically. Pass project= explicitly to override the env var for a specific call.
That is the whole integration. The three env vars point telemetry at the hosted collector and tag every row with your project. Pass project= to attach() to override the env var for a specific session.
4

Watch costs land on the dashboard

Run a call. Within a few seconds, open dash.voicegateway.dev and navigate to your project. You will see spend, latency, and call counts broken down by STT, LLM, and TTS.
If rows do not appear after the first call, check that all three env vars are exported in the process that runs your agent, then see Troubleshooting.

Pricing

See voicegateway.dev for the full breakdown and current usage-metered details.

Next steps

attach() reference

Full options for the attach call: project, budget, metadata, and flush behaviour.

guard() reference

Add real-time budget enforcement and per-call spend limits on top of attach.

Quickstart

Run the collector locally or on your own infra instead of using hosted cloud.