Authentication
Vitable uses API keys for trusted server-to-server requests and bound access tokens for Vitable Drops running in a browser.
Get an API Key
Contact the Vitable team to request credentials. Store the API key in a secret manager or protected environment variable and use a different key for each environment when available.
Never expose an API key in frontend code, a mobile application, logs, or a public repository. Treat it like a password.
Authenticate Server Requests
Send the API key as a Bearer token in the Authorization header:
All timestamps in API requests and responses use ISO 8601 in UTC, such as 2026-01-23T14:30:00+00:00.
Issue Bound Access Tokens
A Drop must never receive your API key. Instead, your backend calls POST /v1/auth/access-tokens and returns the short-lived result to your frontend.
Choose a bound_entity that matches the widget:
The response contains access_token and expires_in. Do not assume a fixed lifetime: pass both values to the Drops SDK so it can refresh the session before expiration.
See Set Up Vitable Drops for a complete backend endpoint and provider configuration.
Handle Rate Limits
When a request exceeds its rate limit, the API returns 429 Too Many Requests. Inspect these response headers instead of assuming a fixed limit:
Retry 429 responses with exponential backoff and jitter. For lifecycle changes, use webhooks instead of frequent polling.
Security Checklist
- Keep API calls and bound-token issuance on an authenticated backend.
- Authorize the signed-in user before issuing a token for an employee or employer.
- Return only the bound token and its expiration to the browser.
- Restrict CORS and protect token endpoints against cross-site request forgery.
- Do not log credentials or place them in query strings.

