X-API-Key request header — there are no OAuth flows or session tokens. Keep your keys secret: anyone who holds a valid key can make API calls on your account’s behalf.
Getting your API key
1
Log in to your VoiceInfra dashboard
Go to portal.voiceinfra.ai and sign in to your account.
2
Navigate to Settings → API Keys
Open the Settings menu from the left sidebar and select API Keys.
3
Click Generate New Key
Click the Generate New Key button. Give the key a descriptive name (for example,
production-crm or staging-tests) so you can identify it later.4
Copy the key immediately
Your new API key is displayed only once. Copy it now and store it somewhere safe — you will not be able to retrieve it again from the dashboard.
5
Store it securely
Add the key to your environment variables, a secrets manager (such as AWS Secrets Manager, HashiCorp Vault, or Doppler), or your CI/CD pipeline’s secret store. Never hard-code it in your source files.
Using your API key
Pass the key in theX-API-Key header on every request. The header name is case-sensitive.
cURL example
Multiple API keys
You can create as many API keys as you need. A common pattern is to create one key per environment or integration:production-crm— used by your CRM to trigger live customer callsstaging-automation— used during QA and testingzapier-integration— scoped to a specific no-code workflow
Revoking a key
- Go to Settings → API Keys in your dashboard.
- Find the key you want to remove.
- Click Revoke.
401 Unauthorized.
Security best practices
Never embed keys in client-side code or version control
Never embed keys in client-side code or version control
API keys in front-end JavaScript or committed to a Git repository are effectively public. Always load keys from environment variables or a secrets manager at runtime on your server.
Use environment variables or a secrets manager
Use environment variables or a secrets manager
Reference your key as
process.env.VOICEINFRA_API_KEY (Node.js) or os.environ['VOICEINFRA_API_KEY'] (Python). For production workloads, use a dedicated secrets manager with access controls and audit logging.Create separate keys per service or environment
Create separate keys per service or environment
Scope each key to a single use case. This limits the blast radius if a key is compromised and makes it easy to rotate or revoke without affecting unrelated integrations.
Rotate keys periodically
Rotate keys periodically
Generate a replacement key, update your integration, verify it works, then revoke the old key. Aim to rotate keys at least every 90 days or immediately after a suspected exposure.
Revoke unused keys promptly
Revoke unused keys promptly
If a key was created for a project that has ended, revoke it. Dormant keys are unnecessary risk.
Authentication errors
If a request fails authentication, the API returns401 Unauthorized with the following error body:
- Missing header — make sure the request includes
X-API-Key. The header name is case-sensitive;x-api-keyorX-Api-Keywill not work. - Invalid key — double-check the key value. Copy it directly from your password manager or secrets store to avoid introducing extra whitespace or truncated characters.
- Revoked key — if the key was revoked, generate a new one and update your integration.