- Authenticate requests to Novita AI with a Bearer API key.
- Create an API key in the console and store it safely.
- Set the key as an environment variable on Linux, macOS, or Windows.
- Check how long a key stays valid and which key operations the OpenAPI supports.
- Configure model and network access policies for a key.
Authentication
Novita AI uses Bearer authentication for API access. Send your API key in theAuthorization request header:
Create an API key
1
Open Key Management
Go to Key Management in the console.
2
Create a new key
Select Create API Key, then give the key a name that reflects its purpose, such as
production or local-testing.3
Copy and store the key
The full key is shown only once, when it is created. Copy it immediately and store it in a secure location, such as a secrets manager or an environment variable. If you lose it, you cannot recover it; create a new key instead.
Configure access controls
Access controls are optional and configured per API key:- Model Access for API Keys controls which models a key can call within your team’s enabled model range.
- Network Access for API Keys controls which source IPs can use a key for model invocation.
Key format and validity
- Every key begins with the
sk_prefix. - A key is shown in full only once, when it is created. After that, the console shows a masked form.
- Each account can create up to 10 API keys.
You set the expiration when you create the key. It cannot be changed afterward: you cannot renew a key or expire it immediately. Permanent keys remain valid indefinitely, so a leaked key remains usable for longer. Use permanent keys only when appropriate. Expiration is configured in the console only; the OpenAPI does not create keys or set, change, or remove their expiration.
What the OpenAPI covers
You create and delete API keys in the console only. The Novita OpenAPI has no endpoints for creating or deleting keys, and it does not support configuring a key’s expiration. The key-related OpenAPI endpoints let you list keys and manage their model and network access policies:- List API Keys — list the keys on your team, with an optional model access summary.
- Get API Key Model Access Policy — read a single key’s model access policy.
- Set API Key Model Access Policy — set or update a key’s model access policy.
- Reset API Key Model Access Policy — reset a key’s model access policy to the default. This resets the policy only; it does not delete the key itself.
- Get API Key IP Access Policy — read a single key’s network access policy.
- Set API Key IP Access Policy — set or update a key’s allowed source IPs.
- Delete API Key IP Access Policy — clear a key’s network access policy, restoring no source-IP restriction.
Store your key as an environment variable
Hardcoding a key in source code can expose it, for example when you commit the file. Reading it from an environment variable such asNOVITA_API_KEY keeps it out of your source code.
Temporary vs. permanent
A key set withexport (Linux/macOS) or set (Windows) lasts only for the current terminal session and is gone when you close it. This is suitable for a quick test. To keep the key across sessions, set it permanently as shown below, then open a new terminal for the change to take effect.
The variable is set but the code still can’t find it
You set it temporarily and opened a new terminal
You set it temporarily and opened a new terminal
A key set with
export or $env: exists only in the terminal session where you ran the command. A new terminal or tab does not inherit it. Set the key permanently (>> ~/.zshrc, setx), or run the export/$env: command again in the session you are using.You set it permanently but didn't restart
You set it permanently but didn't restart
A permanent change (a shell profile or
setx) applies to terminals started after the change. Open a new terminal, then restart your IDE or editor so it can read the updated environment. On Windows, setx does not affect terminals that are already open.A service manager doesn't inherit your shell environment
A service manager doesn't inherit your shell environment
Processes launched by
systemd, supervisor, Docker, or a CI runner do not read your interactive shell profile. Set the variable in the service’s own configuration, such as a systemd unit’s Environment=, a docker run -e flag, or the CI project’s secrets, rather than in ~/.bashrc.You ran the command under sudo
You ran the command under sudo
sudo does not pass your environment through by default, so a variable exported by your user is not visible to the elevated process. Use sudo -E to preserve the environment, or set the variable in the elevated context.Related
- Common Error Codes — resolve
401and403responses related to keys. - Rate limits — request and token limits that apply to your account.