Skip to main content
An API key authenticates requests to Novita AI. This page explains how to create and store a key, use it across environments, and configure its access controls. Use this page to:
  • 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 the Authorization request header:
An example request:

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: The dedicated guides explain policy behavior, permissions, configuration, and rejection errors.

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.
When you create a key, choose one of four expiration options: Permanent / 90 days / 30 days / 24 hours.
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.
An expired key is rejected when used, but its configuration remains visible and the delete action is still available. Expiration is different from disabling a key. To restore access, create a new key. To disable a key before it expires, delete it in the console; the deletion takes effect immediately.

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:

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 as NOVITA_API_KEY keeps it out of your source code.

Temporary vs. permanent

A key set with export (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.
Read the key from the environment in your code:

The variable is set but the code still can’t find it

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.
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.
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.
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.
Last modified on September 1, 2026