Аутентификация
Как аутентифицировать запросы к Nexara API с помощью API-ключа.
Все запросы к Nexara API аутентифицируются с помощью API-ключа, который передаётся в заголовке Authorization по схеме Bearer.
API-ключ
API-ключ выглядит так:
nx-XXXXXXXXXXXXXXXXXXXXXXXXКлюч начинается с префикса nx-, за которым следуют 24 случайных символа (латинские буквы в верхнем и нижнем регистре и цифры).
API-ключ подобен паролю от аккаунта. Он даёт полный доступ к вашему аккаунту и позволяет списывать средства с вашего баланса. Никогда не публикуйте ключи в клиентском коде, репозиториях или сообщениях. Храните его в переменных окружения или в защищённом хранилище секретов. Если думаете, что Ваш ключ утек в сеть, немедленно замените его в личном кабинете.
Получение ключа
API-ключи создаются и управляются в личном кабинете — app.nexara.ru. Там же можно создавать новые ключи, задавать им имена и удалять (отзывать) ненужные.
Использование ключа
Передавайте ключ в HTTP-заголовке Authorization в формате Bearer <ваш_ключ>:
Authorization: Bearer nx-XXXXXXXXXXXXXXXXXXXXXXXXcURL
curl https://api.nexara.ru/v1/audio/transcriptions \
-H "Authorization: Bearer nx-XXXXXXXXXXXXXXXXXXXXXXXX" \
-F "file=@audio.mp3" \
-F "model=whisper-1"Чтобы не подставлять ключ в каждый запрос, сохраните его в переменную окружения NEXARA_API_KEY, а затем ссылайтесь на неё как $NEXARA_API_KEY:
export NEXARA_API_KEY="nx-XXXXXXXXXXXXXXXXXXXXXXXX"
curl https://api.nexara.ru/v1/audio/transcriptions \
-H "Authorization: Bearer $NEXARA_API_KEY" \
-F "file=@audio.mp3" \
-F "model=whisper-1"Команда export действует только в текущей сессии терминала. Чтобы переменная
сохранялась между сессиями, добавьте строку export NEXARA_API_KEY="nx-..." в файл конфигурации вашей оболочки (например,
~/.bashrc или ~/.zshrc).
Python (OpenAI SDK)
Nexara API совместим с OpenAI SDK — достаточно указать base_url и передать API-ключ Nexara. Обратите внимание, что в таком случае Bearer добавлять к ключу не нужно.
from openai import OpenAI
client = OpenAI(
api_key="nx-XXXXXXXXXXXXXXXXXXXXXXXX",
base_url="https://api.nexara.ru/v1",
)
with open("audio.mp3", "rb") as audio_file:
transcript = client.audio.transcriptions.create(
model="whisper-1",
file=audio_file,
)
print(transcript.text)Не храните ключ прямо в коде. Считывайте его из переменной окружения, например
os.environ["NEXARA_API_KEY"].
Ошибки аутентификации
Если ключ отсутствует или недействителен, API возвращает статус 403 Forbidden с описанием в поле detail:
| Сообщение | Причина | Как исправить |
|---|---|---|
No token specified | Заголовок Authorization отсутствует, пуст или имеет неверный формат (ожидается Bearer <ключ>). | Добавьте заголовок Authorization: Bearer <ваш_ключ>. |
Invalid token | Ключ не существует или был отозван (удалён). | Проверьте правильность ключа или создайте новый в личном кабинете. |
Пример тела ответа:
{
"detail": "Invalid token"
}Заголовок обязательно должен быть в формате Bearer <ключ>. Значение без префикса Bearer, лишние пробелы или Bearer без самого ключа будут восприняты как отсутствие токена и приведут к ошибке No token specified.
Отзыв ключа
Если ключ скомпрометирован, удалите его в личном кабинете. Удалённый ключ немедленно перестаёт работать — все последующие запросы с ним будут отклонены с ошибкой Invalid token. При необходимости создайте новый ключ на замену.