Ключ API OpenAI создают в личном кабинете на странице platform.openai.com/api-keys: войдите в аккаунт, нажмите «Create new secret key», задайте имя и скопируйте строку вида sk-... — её показывают один раз. В Python ключ не пишут прямо в коде: его кладут в переменную окружения OPENAI_API_KEY, а официальная библиотека openai читает её сама. Ниже — рабочий пример, безопасное хранение, обработка ошибок и ротация.

Обновлено: июль 2026. Материал редакции Zerocoder. Точные цены, лимиты и имена моделей уточняйте на platform.openai.com — они меняются.

Коротко: как сгенерировать API-ключ OpenAI и подключить его

  • Ключ создаётся на platform.openai.com/api-keys → «Create new secret key». Секретная часть видна один раз — сохраните сразу.
  • Для работы API нужен привязанный способ оплаты и положительный баланс: без биллинга запросы вернут ошибку квоты.
  • Ключ храните в переменной окружения или в файле .env, который добавлен в .gitignore. Никогда не в коде и не во фронтенде.
  • Установка: pip install openai. Первый вызов — через client.chat.completions.create(...).
  • Утёкший ключ немедленно отзывают на той же странице и выпускают новый — это и есть ротация.
ОНЛАЙН-ПРАКТИКУМ
ЗАПУСК нейросети DEEPSEEK R1 ЛОКАЛЬНО НА СВОЕМ КОМПЬЮТЕРЕ
ЧТО БУДЕТ НА ОБУЧЕНИИ?
  • ПОКАЖЕМ, КАК РАЗВЕРНУТЬ МОДЕЛЬ нейросети DEEPSEEK R1 ПРЯМО НА СВОЁМ КОМПЬЮТЕРЕ
  • Где и как применять? Потестируем модель после установки на разных задачах
  • Как дообучить модель под себя?

Где создать API-ключ OpenAI: пошагово

Получить и подключить API-ключ OpenAI за 5 шагов
Получить и подключить API-ключ OpenAI за 5 шагов

Весь процесс идёт в одном месте — панели разработчика OpenAI. Регистрация в ChatGPT и доступ к API — это один аккаунт, отдельно заводить ничего не нужно.

  1. Войдите в аккаунт. Откройте platform.openai.com и авторизуйтесь тем же логином, что и в ChatGPT.
  2. Откройте раздел ключей. Перейдите на platform.openai.com/api-keys (пункт «API keys» в меню профиля).
  3. Создайте ключ. Нажмите «Create new secret key», задайте понятное имя (например, local-test) — так проще отзывать ненужные ключи позже.
  4. Скопируйте секрет. Строку вида sk-... показывают один раз. Закрыли окно — придётся выпускать новый ключ. Сохраните его в менеджер паролей, а не в переписку.
  5. Проверьте биллинг. В разделе Billing привяжите карту и убедитесь, что на балансе есть средства или кредиты. Без оплаты ключ валиден, но запросы упрутся в ошибку квоты.

Мини-вывод: сам ключ создаётся за минуту, но без привязанной оплаты он бесполезен — проверьте баланс до первого запроса.

Как безопасно хранить API-ключ OpenAI

Секретный ключ — это доступ к вашим деньгам. Боты-парсеры сканируют публичные репозитории и находят слитые ключи за секунды, после чего баланс обнуляется чужими запросами. Поэтому действует одно жёсткое правило: ключ не должен попадать ни в исходный код, ни в git, ни во фронтенд.

Рабочая схема для Python — переменная окружения плюс файл .env. Создайте в корне проекта файл .env:

OPENAI_API_KEY=sk-ваш_ключ_сюда

И сразу добавьте его в .gitignore, чтобы он не ушёл в репозиторий:

# .gitignore .env

Что нельзя делать никогда: вшивать ключ строкой в .py-файл, отправлять его в браузер (любой JS-код виден пользователю), пересылать в мессенджерах, коммитить «на минутку». Если ключ хоть раз оказался в git-истории — считайте его скомпрометированным и отзывайте, даже если файл потом удалили.

Мини-вывод: код с ключом можно показывать кому угодно, если ключ живёт в .env вне репозитория.

Первый вызов OpenAI API из Python

Установите официальную библиотеку и загрузчик переменных окружения:

pip install openai python-dotenv

Базовый вызов. Если ключ лежит в переменной окружения OPENAI_API_KEY, конструктор OpenAI() подхватит его сам — передавать ключ в код не нужно:

from openai import OpenAI client = OpenAI() # ключ берётся из переменной окружения OPENAI_API_KEY completion = client.chat.completions.create( model="gpt-5.5", # актуальное имя модели смотрите на странице Models messages=[ {"role": "system", "content": "Ты помощник, отвечающий кратко."}, {"role": "user", "content": "Объясни, что такое API-ключ, одним предложением."}, ], ) print(completion.choices[0].message.content)

Если вы храните ключ в .env, загрузите его явно через python-dotenv — это надёжнее, чем полагаться на глобальное окружение системы:

import os from dotenv import load_dotenv from openai import OpenAI load_dotenv() # читает .env и кладёт значения в окружение client = OpenAI(api_key=os.getenv("OPENAI_API_KEY")) completion = client.chat.completions.create( model="gpt-5.5", messages=[{"role": "user", "content": "Привет!"}], ) print(completion.choices[0].message.content)

Ответ модели лежит в completion.choices[0].message.content. Старый синтаксис из туториалов 2023 года — openai.Completion.create(engine="text-davinci-002", ...) — больше не работает: библиотека переехала на объект-клиент и метод chat.completions.create. Если видите пример с engine= или ChatCompletion.create без клиента — он устарел.

Мини-вывод: рабочая связка сегодня — OpenAI() + client.chat.completions.create, ключ приходит из окружения.

Обработка ошибок и лимитов OpenAI API

В продакшене запрос падает не «иногда», а регулярно: сеть, лимиты, кончившийся баланс. Библиотека openai бросает типизированные исключения — их ловят по классам. Официальное соответствие статус-кодов и классов ошибок:

HTTP-код Класс исключения Что произошло
400 BadRequestError Неверные параметры запроса
401 AuthenticationError Ключ неверный, отозван или истёк
403 PermissionDeniedError Нет доступа (в т.ч. неподдерживаемый регион)
404 NotFoundError Ресурс не найден
429 RateLimitError Слишком частые запросы или закончилась квота
≥500 InternalServerError Сбой на стороне OpenAI
APIConnectionError Сервер недоступен (сеть)

Минимальный устойчивый вызов с обработкой:

import openai from openai import OpenAI client = OpenAI() try: completion = client.chat.completions.create( model="gpt-5.5", messages=[{"role": "user", "content": "Проверка связи"}], ) print(completion.choices[0].message.content) except openai.AuthenticationError: print("401: ключ неверный или отозван — проверьте OPENAI_API_KEY") except openai.RateLimitError: print("429: превышен лимит или кончилась квота — снизьте частоту или пополните баланс") except openai.APIConnectionError as e: print("Сервер недоступен:", e.__cause__) except openai.APIStatusError as e: print("Другой код ответа:", e.status_code)

Разница между двумя частыми 429 важна: «too many requests» лечится паузами и экспоненциальным бэкоффом, а «insufficient quota» — только пополнением баланса, повторами вы её не обойдёте.

Мини-вывод: ловите как минимум AuthenticationError, RateLimitError и APIConnectionError — это 90% реальных сбоев.

Ротация и отзыв API-ключа

Ротация — это плановая или срочная замена ключа. Отзыв делается на той же странице platform.openai.com/api-keys: напротив ключа есть «Revoke» — после нажатия он мгновенно перестаёт работать.

Когда менять ключ:

  • Срочно — если ключ мог утечь (попал в git, в лог, в скриншот, в переписку). Сначала выпустите новый, обновите .env, затем отзовите старый — так сервис не встанет.
  • Планово — раз в несколько месяцев, особенно если ключом пользовалось несколько человек.
  • По ролям — заводите отдельные ключи под окружения (local, staging, prod) и под каждый сервис. Тогда компрометацию одного ключа гасят точечно, не трогая остальные.

Осмысленные имена ключей при создании окупаются именно здесь: в списке из десятка ключей вы сразу видите, какой отозвать.

Мини-вывод: порядок при утечке — новый ключ, обновление конфигов, отзыв старого. Не наоборот.

Доступ к OpenAI API из России

OpenAI обслуживает не все страны: при обращении из неподдерживаемого региона API возвращает ошибку 403 с причиной «unsupported country, region, or territory». На практике это значит, что и регистрация, и оплата, и сами запросы должны идти из поддерживаемой юрисдикции.

Обобщённо разработчики решают это так: аккаунт и биллинг оформляют на способ оплаты и данные поддерживаемой страны, а серверную часть, которая ходит в API, размещают на зарубежном хостинге. Ключевой момент безопасности сохраняется: запросы к OpenAI идут только с вашего сервера, где лежит ключ, а не из браузера пользователя. Конкретные платёжные и сетевые сервисы здесь не рекомендуем — их доступность и легальность меняются, проверяйте актуальный список поддерживаемых стран в справке OpenAI.

Мини-вывод: ошибка 403 по региону снимается корректной юрисдикцией аккаунта и серверным размещением, а не хардкодом ключа во фронтенд.

Типичные ошибки при работе с ключом

  • Ключ в коде или в git. Самая дорогая ошибка: слитый ключ выкачивают за минуты. Лечение — .env + .gitignore и немедленный отзыв при утечке.
  • 401 AuthenticationError. Опечатка в ключе, лишние пробелы, старый отозванный ключ или неверная переменная окружения. Проверьте, что OPENAI_API_KEY действительно прочитан.
  • 429 без биллинга. Свежий аккаунт без привязанной оплаты получает ошибку квоты. Повторы не помогут — нужен баланс.
  • Устаревший синтаксис. engine= и openai.Completion.create из старых гайдов вызывают ошибку. Используйте client.chat.completions.create.
  • Ключ во фронтенде. Любой ключ в JS-коде виден пользователю. Запросы к API должны идти только с сервера.

Чек-лист перед первым запросом

  • Ключ создан на platform.openai.com/api-keys и сохранён в менеджер паролей.
  • Биллинг привязан, на балансе есть средства.
  • Ключ лежит в .env, файл добавлен в .gitignore.
  • Установлены openai и python-dotenv.
  • Вызов идёт через client.chat.completions.create, ответ читается из choices[0].message.content.
  • Обёрнуто в try/except на AuthenticationError, RateLimitError, APIConnectionError.
  • Продумана ротация: понятные имена ключей, план отзыва при утечке.

Частые вопросы

Где взять API-ключ OpenAI?

На странице platform.openai.com/api-keys в личном кабинете разработчика. Нажмите «Create new secret key» и скопируйте строку sk-... — она показывается один раз.

Бесплатный ли API-ключ OpenAI?

Сам ключ создаётся бесплатно, но запросы к моделям тарифицируются по токенам. Для работы нужен привязанный способ оплаты и положительный баланс; условия стартовых кредитов меняются — смотрите раздел Billing.

Почему появляется ошибка 401 при правильном ключе?

Чаще всего ключ прочитан не полностью (пробелы, обрезка), указана не та переменная окружения, либо ключ был отозван. Проверьте значение OPENAI_API_KEY и при сомнении выпустите новый ключ.

Что делать, если ключ попал в GitHub?

Считать его скомпрометированным. Выпустить новый ключ, обновить конфиги, затем отозвать старый через «Revoke». Удаление файла из репозитория не спасает — ключ остаётся в git-истории.

Можно ли использовать OpenAI API из России?

Из неподдерживаемого региона API отвечает ошибкой 403. Обобщённо: аккаунт и оплату оформляют на поддерживаемую юрисдикцию, а запросы отправляют с зарубежного сервера, где хранится ключ. Актуальный список стран — в справке OpenAI.

Какой синтаксис вызова актуален сейчас?

Через объект-клиент: client = OpenAI(), затем client.chat.completions.create(model=..., messages=[...]). Старые примеры с engine= и Completion.create не работают.

Источники: быстрый старт OpenAI, официальная библиотека openai-python.

Большой практикум
ЗАМЕНИ ВСЕ НЕЙРОСЕТИ НА ОДНУ — PERPLEXITY
ПОКАЖЕМ НА КОНКРЕТНЫХ КЕЙСАХ
  • Освой нейросеть Perplexity и узнай, как пользоваться функционалом остальных ИИ в одном
  • УЧАСТВОВАТЬ ЗА 0 РУБ.
  • Расскажем, как получить подписку
Участвовать бесплатно
ОНЛАЙН-ПРАКТИКУМ
ЗАПУСК нейросети DEEPSEEK R1 ЛОКАЛЬНО НА СВОЕМ КОМПЬЮТЕРЕ
ЧТО БУДЕТ НА ОБУЧЕНИИ?
  • ПОКАЖЕМ, КАК РАЗВЕРНУТЬ МОДЕЛЬ нейросеть DEEPSEEK R1 ПРЯМО НА СВОЁМ КОМПЬЮТЕРЕ
Участвовать бесплатно