Overview
Voyant authenticates every API request with a workspace-scoped API key. Keys can optionally carry fine-grained scopes that the API enforces per-route.Create a key
Using a key
x-workspace-id when necessary.
Scopes
Routes declare required scopes (e.g.,products:read, bookings:write). The middleware allows access
when your key’s scopes match using:
- Exact match:
products:read - Resource wildcard:
products:*(all actions on products) - Action wildcard:
*:read(read all resources) - Global wildcard:
*(full access)
Available scopes
- Products & Catalog
- Bookings & Customers
- Inventory & Departures
- Media & Webhooks
products:read- View products, itineraries, pricingproducts:write- Create and update productsproducts:delete- Delete productscollections:read/collections:write/collections:deletetags:read/tags:write/tags:deletedrafts:read/drafts:write
Scope templates
Use these predefined templates when creating keys in the dashboard:| Template | Scopes | Use case |
|---|---|---|
| Read Only | *:read | Reporting, analytics dashboards |
| Full Access | * | Admin integrations |
| Booking Management | bookings:*, customers:*, payments:read | Reservation systems |
| Product Catalog | products:*, inventory:*, media:*, drafts:* | CMS integrations |
Some routes rely only on the base workspace authentication (no explicit scope) and don’t require additional scopes beyond a valid API key.
Rotation & revocation
Rotating keys is zero-downtime:
Revocation is immediate. The dashboard also triggers a KV cache purge so the revoked key stops working right away.
Common errors
Best practices
- Use separate keys per workspace (each workspace has its own keys)
- Use sandbox workspaces for development and testing
- Prefer scoped keys for live workspaces
- Store keys in a secrets manager; never commit to source control
- Rotate keys periodically
- Monitor usage and rate limits in the dashboard