Authorization header. Keys are scoped to one of four environments and one of
four roles.
Quick start — get a trial key
No signup, no credit card:API key format
Every WAVIS key has the prefixwvs_<env>_<32-hex>:
| Prefix | Environment | Use case |
|---|---|---|
wvs_live_* | Production | Real billing, real workloads |
wvs_test_* | Sandbox | No Stripe billing — safe for CI |
wvs_dev_* | Development | Internal use only |
wvs_trial_* | Trial | Temp keys from /onboarding/temp-key |
Sending the API key
Both forms are accepted:Roles (RBAC)
Every key has a role determining which endpoints it can call:| Role | Can do | Cannot do |
|---|---|---|
| VIEWER | GET keys/usage/status | Create/modify anything |
| DEVELOPER | All compute, manage keys + webhooks | Billing, subscription |
| ACCOUNT_ADMIN | Everything DEVELOPER can + billing/invoices | — |
| TRIAL | Limited compute (10 ops total) | Billing, webhooks, key management |
Creating production keys
Sign in at dashboard.wavis.xyz and:- Go to API Keys → Create new key
- Pick environment (
live/test/dev) - Pick role (
VIEWER/DEVELOPER/ACCOUNT_ADMIN) - Copy the returned key — shown once only
Rotating a key
- The new key is returned once — store it immediately.
- The old key remains valid for 24 hours as a grace period.
- After 24 hours, the old key is auto-revoked.
- A
key_rotatedwebhook event fires when rotation completes.
Revoking a key
204 No Content. Revocation is immediate — no grace period.
Environment variables
Standard convention across the SDKs:WAVIS_API_KEY if you don’t pass apiKey explicitly.
Brute-force protection
WAVIS enforces two automatic lockouts:- Per-key: 10 invalid attempts in 5 minutes → 15-minute lockout for that key.
- Per-IP: 20 invalid attempts in 5 minutes → 15-minute lockout for that IP.
429 Too Many Requests. Wait or use a different IP.
Security best practices
- Never commit keys to git. Use
.envfiles +.gitignore, or your CI’s secret manager. - Use
wvs_test_*keys in CI. They don’t trigger billing and have separate quotas. - Rotate keys quarterly. Set a calendar reminder. Use webhooks to update downstream systems automatically.
- Use VIEWER role for read-only services (monitoring, dashboards). Limits blast radius if leaked.
- Set a budget cap in the dashboard — even a leaked key cannot drain your account beyond the cap.
Troubleshooting
401 Unauthorized — invalid API key
The key was revoked, expired (trial), or the prefix was typo’d. Check
dashboard.wavis.xyz → API Keys.
403 Forbidden — insufficient role
You’re calling a billing/admin endpoint with a DEVELOPER or VIEWER key.
Generate an account_admin role key for billing operations.
429 Too Many Requests — brute force lockout
Too many invalid auth attempts. Wait 15 minutes, or contact support
(support@wavis.xyz) if the lockout is in error.
Trial key returned 402 Payment Required
Trial keys are limited to 10 operations. Either get a new trial key or
sign up at wavis.xyz.
Next Steps
API Reference
All endpoints, request/response schemas
Key Management
FHE key lifecycle (separate from API keys)