- Production — locked to your server IPs, higher rate limits
- Development — unrestricted IPs, lower rate limits
- Partner integrations — separate keys for each partner with their own limits
Creating an API Key
Select an agent
Choose which agent this key will access. You can only create keys for agents you have an active subscription to.
Configure the key
- Name — A descriptive name (e.g., “Production Server”, “Dev Environment”)
- Expiration — Optional expiration date
- Rate limits — Custom per-minute and per-day limits, or use subscription defaults
- IP restrictions — Lock the key to specific IPs or allow any IP
Using Your API Key
Include your API key in theAuthorization header:
X-Kovrex-Key header:
IP Restrictions
IP restrictions limit which IP addresses can use a key. This is strongly recommended for production keys.Adding IP Restrictions
You can specify:- Individual IPs —
192.168.1.100 - CIDR ranges —
10.0.0.0/8(allows 10.0.0.0 - 10.255.255.255)
| CIDR | Range | Use case |
|---|---|---|
/32 | Single IP | One server |
/24 | 256 IPs | Small subnet |
/16 | 65,536 IPs | Large network |
/8 | 16.7M IPs | Cloud provider range |
Best Practices
Do
- Use IP restrictions for all production keys
- Use CIDR ranges for dynamic cloud environments
- Create separate keys for each environment
Don't
- Use unrestricted keys in production
- Share keys across teams or partners
- Commit keys to version control
Unrestricted Keys
Keys without IP restrictions can be used from any IP address. Only use these for:- Local development
- Environments where IP restrictions aren’t feasible
- Testing and prototyping
Rate Limits
Rate limits protect both you and the agent operators from excessive usage.How Rate Limits Work
Each key has two limits:- Per-minute — Maximum requests in a 60-second sliding window
- Per-day — Maximum requests in a calendar day (UTC)
Rate Limit Headers
Every response includes rate limit headers:Handling Rate Limits
When you exceed a rate limit, you’ll receive a429 Too Many Requests response:
Managing Keys
Viewing Key Details
Go to Dashboard → API Keys to see all your keys with:- Usage stats (calls today, calls this month)
- Last used timestamp
- Configuration (rate limits, IP restrictions, expiration)
Updating a Key
You can update a key’s:- Name
- Rate limits
- IP restrictions
You cannot change which agent a key is scoped to. Create a new key for a different agent.
Regenerating a Key
If a key is compromised or you need to rotate it:- Click the ⋮ menu on the key card
- Select Regenerate
- Copy the new key immediately
Revoking a Key
To permanently disable a key:- Click the ⋮ menu on the key card
- Select Revoke
401 Unauthorized response.
Error Responses
| Status | Code | Description |
|---|---|---|
401 | missing_api_key | No API key provided |
401 | invalid_api_key | Key doesn’t exist or is malformed |
401 | revoked_api_key | Key has been revoked |
401 | expired_api_key | Key has passed its expiration date |
403 | ip_not_allowed | Request IP not in key’s allowlist |
403 | subscription_inactive | Agent subscription is not active |
429 | rate_limit_minute | Per-minute rate limit exceeded |
429 | rate_limit_day | Per-day rate limit exceeded |
Billing
API key usage is tracked for billing purposes. On the Billing page, you can see:- Total calls and cost per agent
- Breakdown by individual key
- Daily and monthly trends
Security Checklist
Production deployment
Production deployment
- Use IP-restricted keys
- Set appropriate rate limits
- Store keys in environment variables or secrets manager
- Never commit keys to version control
- Use separate keys for each environment
Team access
Team access
- Create separate keys for each team member or integration
- Use descriptive names to track ownership
- Revoke keys when team members leave
- Review active keys quarterly
Incident response
Incident response
- Monitor for unusual usage patterns
- Have a process to quickly revoke compromised keys
- Know how to regenerate keys without downtime
FAQ
How many keys can I create?
How many keys can I create?
There’s no hard limit on keys per agent. Create as many as you need for your use cases.
Can one key access multiple agents?
Can one key access multiple agents?
No, each key is scoped to a single agent. Create separate keys for each agent you subscribe to.
What happens when a key expires?
What happens when a key expires?
Expired keys stop working immediately. You’ll receive a
401 expired_api_key error. Create a new key to continue access.Can I see which IP addresses used my key?
Can I see which IP addresses used my key?
Yes, the usage logs show the source IP for each request. Contact support for detailed access logs.
How do I rotate keys without downtime?
How do I rotate keys without downtime?
Create a new key, update your application to use both keys (fallback pattern), deploy, then revoke the old key.

