Documentation Index
Fetch the complete documentation index at: https://runinfra.ai/docs/llms.txt
Use this file to discover all available pages before exploring further.
Two key scopes
RunInfra supports two API key types. Pick the one that matches your integration shape.Workspace-scoped (recommended)
A single key reaches every verified active deployment in your workspace. Themodel field in the request body selects the target:
base_url once and use their OpenAI code unchanged. Ideal for:
- Dashboards with multiple model endpoints
- Backend services that route to different models at runtime
- Team-level integrations where one key covers all workspace pipelines
Pipeline-scoped (legacy)
A key bound to one specific pipeline. The pipeline id sits in the URL path:- Clients that should only touch one pipeline
- Per-team keys with hard isolation
- Existing integrations built before the workspace-scoped flow
Creating a key
Go to Settings → API Keys
Click 'Create API Key'
Pick the scope:
- Workspace, key reaches any verified deployed model
- Pipeline, pick a specific pipeline
Copy the full key immediately
The key is shown once. After you close the dialog only the hashed form is stored; we cannot recover the plaintext.
Key format
Every key starts withrp_live_ followed by 64 hex chars:
Rotation
Rotate a compromised or aging key without downtime:Click 'Rotate' on the key row
The UI issues a new secret and links it to the old one via
rotated_from_id.Update your environment with the new key
Both old and new keys work during the grace window, deploy the new secret, roll out, verify traffic.
audit_logs for SOC2 CC6.6 forensic trail.
Expiration
Keys default to never expire. For compliance or ephemeral-CI use cases, setexpires_at on creation:
/api/cron/api-key-expiry), if it lags, the gateway still refuses the key at the first authenticated request post-expiration, so there is no window of use after expires_at.
Revocation
DELETE /api/apikeys/{id} or click Revoke in the UI. The key’s is_active flips to false and every future request returns 401 with a structured JSON body:
Environment variable conventions
We recommend:OPENAI_API_KEY automatically, for zero-config drop-in, map OPENAI_API_KEY=$RUNINFRA_API_KEY + OPENAI_BASE_URL=$RUNINFRA_BASE_URL.
Security posture
Hashed at rest
SHA-256 on insert; plaintext never written to disk.
Constant-time compare
Hash lookup is indexed, not string-compared, timing attacks can’t enumerate keys.
SOC2 audit log
Every failed auth, deactivation, rotation, and expiration logs to
audit_logs (CC6.6).Per-key rate limit
Upstash sliding-window per
keyId, separate from network-layer Vercel DDoS protection.