Ключ 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 ПРЯМО НА СВОЁМ КОМПЬЮТЕРЕ
- Где и как применять? Потестируем модель после установки на разных задачах
- Как дообучить модель под себя?
Где создать API-ключ OpenAI: пошагово

Весь процесс идёт в одном месте — панели разработчика OpenAI. Регистрация в ChatGPT и доступ к API — это один аккаунт, отдельно заводить ничего не нужно.
- Войдите в аккаунт. Откройте
platform.openai.comи авторизуйтесь тем же логином, что и в ChatGPT. - Откройте раздел ключей. Перейдите на
platform.openai.com/api-keys(пункт «API keys» в меню профиля). - Создайте ключ. Нажмите «Create new secret key», задайте понятное имя (например,
local-test) — так проще отзывать ненужные ключи позже. - Скопируйте секрет. Строку вида
sk-...показывают один раз. Закрыли окно — придётся выпускать новый ключ. Сохраните его в менеджер паролей, а не в переписку. - Проверьте биллинг. В разделе 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 и узнай, как пользоваться функционалом остальных ИИ в одном
- УЧАСТВОВАТЬ ЗА 0 РУБ.
- Расскажем, как получить подписку
- ПОКАЖЕМ, КАК РАЗВЕРНУТЬ МОДЕЛЬ нейросеть DEEPSEEK R1 ПРЯМО НА СВОЁМ КОМПЬЮТЕРЕ