# Что такое API и почему ключ API — это ключ от кошелька

> Что такое API простыми словами: как программы просят друг у друга данные и действия, зачем нужен ключ API и чем публичный ключ отличается от секретного.

Published: 2025-08-13 · Source: https://subxcat.com/ru/articles/what-is-an-api · Author: SUBXCAT

API (application programming interface) — это способ, которым одна программа просит другую что-то сделать или что-то отдать. Если интерфейс для людей — это кнопки и экраны, то API — это интерфейс для программ: список запросов, которые можно отправить, и ответов, которые на них придут.

Вопрос «что такое API» возникает у каждого, кто подключает к своему приложению оплату, карты, почту или ИИ-модель. Термин простой, но за ним стоит одна вещь, которую важно понять сразу: ключ API — это деньги.

## Что такое API на примере ресторана

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

На практике это выглядит так. Твоё приложение хочет отправить письмо через почтовый сервис. Оно отправляет запрос на адрес вроде `https://api.mailservice.com/send` с получателем, темой и текстом. Сервис отвечает: «принято, вот номер письма» или «ошибка, адрес некорректный». Каждый такой адрес с определённым действием называется эндпоинтом.

Почти всё, что твоё приложение умеет «из коробки», на самом деле делается через чужие API: оплата, вход через Google, карты, отправка SMS, генерация текста. И твой собственный бэкенд — тоже API, только для твоего фронтенда.

## Зачем нужен ключ API

Сервис должен знать, кто к нему обращается: чтобы выставить счёт, применить лимиты и отличить тебя от остальных. Для этого при регистрации ты получаешь ключ — длинную строку, которую прикладываешь к каждому запросу.

И здесь главное. Для сервиса ключ и есть ты. Он не проверяет, откуда пришёл запрос и кто его на самом деле отправил. Если кто-то получит твой ключ к ИИ-модели, он будет генерировать текст за твой счёт. Если ключ к почтовому сервису — рассылать спам от твоего имени, и заблокируют твой аккаунт. Если ключ к платёжной системе с правом возвратов — последствия понятны.

Поэтому ключ API стоит воспринимать как ключ от кошелька, а не как пароль от чего-то неважного. Найденные ключи используют быстро: автоматические сканеры ищут их в публичных репозиториях и в коде сайтов постоянно.

## Публичный и секретный ключ

Многие сервисы выдают два вида ключей, и путать их опасно.

- **Публичный ключ** (publishable, anon, client key) специально предназначен для браузера и мобильного приложения. Он позволяет только то, что безопасно отдать всем: начать оплату, показать карту, обратиться к базе с правами анонимного пользователя. Его видно в коде сайта, и это нормально.
- **Секретный ключ** (secret, service role, server key) даёт полный доступ: списывать деньги, читать все данные, обходить правила доступа. Он должен жить только на сервере, в переменных окружения, и никогда не попадать в браузер, в репозиторий или в скриншот.

Простой признак: если в названии или документации есть слова `secret`, `service_role`, `private` или ключ начинается с `sk_`, место ему — только на сервере. Если сервис выдаёт один ключ на всё, считай его секретным.

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

## Что делать, если ключ утёк

1. Сразу отзови его в панели сервиса и выпусти новый. Удалить ключ из кода недостаточно: копия уже могла уйти.
2. Посмотри журнал использования и счёт: были ли запросы, которые делал не ты.
3. Поставь лимиты расходов и уведомления о них — там, где сервис это позволяет. Это не защита от утечки, но защита от катастрофы.
4. Найди, как ключ оказался снаружи, и закрой эту дорогу, иначе новый ключ утечёт так же.

## Коротко

- API — способ, которым программы просят друг у друга данные и действия.
- Ключ API говорит сервису, кто платит, поэтому тот, у кого твой ключ, тратит твои деньги.
- Публичный ключ можно показывать в браузере, секретный — только на сервере.
- Утёкший ключ нужно отозвать и заменить, а не просто удалить из кода.
- Лимиты расходов у внешних сервисов — дешёвая страховка от дорогой ошибки.

SUBXCAT может проверить, где в твоём приложении лежат ключи и что они на самом деле позволяют.
