Documentation Index
Fetch the complete documentation index at: https://docs.podflare.ai/llms.txt
Use this file to discover all available pages before exploring further.
Podflare has two auth surfaces. This page covers API auth — the
bearer token SDKs send on every request. The control plane (humans
logging into a dashboard to manage orgs, keys, and billing) will be
built on Clerk once the web app ships.
API auth model
- Every request to
/v1/*except/v1/healthzrequiresAuthorization: Bearer <key>. - Valid keys are configured server-side (env var in v0, DB later).
- A dev-mode toggle disables enforcement entirely for local work.
Configuring hostd
Comma-separated list of valid bearer tokens. Any of these authenticates
a request. If unset and hostd is bound to a loopback address, auth
is silently disabled (dev mode). Hostd refuses to start otherwise.
Set to
1 to bypass auth entirely. Only useful for local dev / the
SSH-tunnel loop. Logs a loud warning at startup.Where hostd binds. A non-loopback bind + no keys + no disable flag is
refused at startup — we won’t accidentally expose an unauth’d API.
SDK usage
Headers
The SDK sets three headers, all pass-through to hostd:| Header | Purpose |
|---|---|
Authorization: Bearer <key> | API auth (this page). |
traceparent: 00-<trace>-<span>-<flags> | W3C Trace Context for span nesting. |
content-type: application/json | Request body shape. |
MCP server
Pass the key in the MCP server’s env block so it forwards on every sandbox call:Errors
401 Unauthorized— no key, or the key isn’t in hostd’s allowlist. Response body:{"error": "missing Authorization: Bearer <key>"}or{"error": "invalid api key"}.
What’s coming (Clerk control plane)
Next steps once we build the dashboard:- User signs up via Clerk (email, Google, GitHub — social login + MFA).
- User lands in a Podflare workspace (Clerk org).
- Dashboard lets them CRUD API keys, see usage, view traces.
- Keys are stored in our database with scopes + rotation support, not the env var baseline v0 uses.
- The SDK flow above stays identical — only the key issuance surface changes.

