Runtime API authentication
Category: Developer. Status: Normative.
Published runtime requests use a Vertcie public API key. The key grants only supported runtime operations; it is not a user login, administrative credential, or storage credential.
Send the key
Preferred transport:
GET /api/get-published-file?publishedFileId=PUBLISHED_FILE_ID HTTP/1.1
Host: VERTCIE_HOST
x-vertcie-key: VERTCIE_PUBLIC_API_KEY
Origin: https://app.example.comSome compatibility calls may accept apiKey in the query string. New integrations must use x-vertcie-key; query parameters can leak through browser history, analytics, logs, screenshots, and referrers.
The same header authorizes active and exact Runtime manifest requests. Revision selection does not change or broaden key permissions:
GET /api/runtime/publications/PUBLISHED_FILE_ID/revisions/4/manifests/expanders HTTP/1.1
Host: VERTCIE_HOST
x-vertcie-key: VERTCIE_PUBLIC_API_KEY
Origin: https://app.example.comBrowser use
A browser runtime key is intentionally public but must be restricted to the approved application origins and the minimum runtime capabilities. Send the browser's real Origin. Do not attempt to hide a browser key through obfuscation or use it for privileged operations.
Server use
Load the key from the deployment environment and send it only to the configured Vertcie host:
const response = await fetch(
`${process.env.VERTCIE_API_URL}/api/get-published-file?publishedFileId=${encodeURIComponent(publishedFileId)}`,
{ headers: { "x-vertcie-key": process.env.VERTCIE_API_KEY! } },
);Never log the key or forward it to an arbitrary URL supplied by a user.
Rotation
- Issue a replacement key with the intended origins.
- Deploy the replacement.
- Verify representative runtime traffic.
- Revoke the previous key.
Authentication errors
| Status | Meaning | Action |
|---|---|---|
401 | Key is missing, invalid, inactive, or expired | Stop and replace the key |
403 | Request origin is not permitted | Correct the origin policy |
429 | Request rate is limited | Retry with bounded exponential backoff and jitter |
503 | Runtime authorization is temporarily unavailable | Surface an unavailable state and retry conservatively |
Do not bypass a failed API request by accessing implementation storage directly.