Regions
Where meetbot runs today, where it will run, and how to think about data residency until we ship multi-region.
We run a single hosted region today. Honest scope first; expansion second.
Today (May 2026)
| Region | Status | Base URL | Hosted in |
|---|---|---|---|
| EU | GA | https://api.meetbot.dev | Hetzner — Falkenstein, Germany |
Bots, the orchestrator, the Postgres database, and your recording bucket proxy all live in the EU region. Customer media is uploaded directly from the bot to your S3-compatible bucket — wherever you host it, you keep it. We never persist the recording bytes outside your bucket.
GDPR: data processing addendum on request — email legal@meetbot.dev. We are the data processor; you remain the controller for any meeting content.
On the roadmap
| Region | ETA | Planned base URL | Triggered by |
|---|---|---|---|
| US-East | Q4 2026 | https://us-east.api.meetbot.dev | First US enterprise customer with residency requirement |
| US-West | TBD | https://us-west.api.meetbot.dev | Latency-sensitive Zoom Webinars workloads |
| APAC | TBD | https://apac.api.meetbot.dev | First APAC customer at meaningful volume |
We will not pre-build regions on speculation. Each region adds operational surface (Postgres, observability, on-call rotation) — we add the infrastructure when a paying customer needs it.
How regions will work once they exist
Each region will run an independent orchestrator + Postgres + bot
fleet. Bots dispatched against https://api.meetbot.dev will continue to
land in EU; pin a region by hitting its base URL directly:
import { createMeetbot } from "@meetbot/sdk";
// Default: EU region
const meetbot = createMeetbot({ apiKey: process.env.MEETBOT_API_KEY! });
// Future: pin to US-East
const meetbotUs = createMeetbot({
apiKey: process.env.MEETBOT_API_KEY!,
baseUrl: "https://us-east.api.meetbot.dev",
});API keys will be valid across regions; data (recordings, transcripts, calendar grants) stays in the region where it was created. There is no plan for a global control plane that forwards requests across regions — each region is its own product surface.
What stays single-region forever
- Stripe billing — one account, one global tax setup. No per-region split.
- Customer dashboard at
meetbot.dev/account/*— UI is global; data fetched from the region the bot ran in. - Auth (better-auth + magic link / Google) — one identity per email.
See also
- Billing — pricing is identical across regions once they ship; no US-vs-EU surcharge.
- Webhooks: Signature Verification — the signing key is global per team.