Авторизация и соглашения
Авторизация
API-ключ (скрипты, рекомендуется)
Ваш постоянный API-ключ находится в Профиль → API-ключ.
Формат: {user_id}-{user_api}, например 42-d3adb33f….
Передавайте его как query-параметр — это работает на всех эндпоинтах, включая POST:
curl "https://my.altercpa.top/api/profile/info.json?id=42-d3adb33f…"Или в заголовке Authorization как Bearer-токен:
curl -H "Authorization: Bearer 42-d3adb33f…" \
"https://my.altercpa.top/api/profile/info.json"API-ключ не имеет срока действия. Его можно обновить в Профиле или
через profile/apikey; старый ключ перестаёт
работать немедленно.
Сессионный токен (дашборд)
Дашборд (SPA) использует короткоживущий сессионный токен, выдаваемый после входа через
Telegram. Передаётся так же (Authorization: Bearer {token}). Для скриптов этот метод
не нужен.
Соглашения
-
GET для чтения, POST для записи. Без исключений.
-
Каждый ответ — HTTP 200 с
Content-Type: application/json, независимо от результата. Проверяйте полеstatus, а не HTTP-код. -
Каждый ответ — JSON-объект:
{ "status": "ok", "data": { … } } { "status": "error", "error": "code" } -
Эндпоинты оканчиваются на
.json(напримерprofile/info.json). -
Тело POST-запросов может быть JSON (
Content-Type: application/json) или form-encoded (application/x-www-form-urlencoded). -
Параметр
?id=для авторизации всегда передаётся в строке запроса (query string), даже для POST-эндпоинтов.
Системные ошибки
Любой эндпоинт может вернуть эти ошибки.
error | Значение |
|---|---|
key | Отсутствует или недействительный API-ключ |
ban | Аккаунт заблокирован |
func | Неизвестный путь эндпоинта |
db | Ошибка базы данных — повторите попытку; если проблема сохраняется, обратитесь в поддержку |
unpaid | Подписка истекла и льготный период завершился |
Льготный период: когда подписка истекает, дашборд перестаёт работать немедленно,
но публичный API остаётся доступным ещё 7 дней. После этого все аутентифицированные
эндпоинты возвращают unpaid. Полные правила перехода — в разделе
Оплата и тарифы.
Ошибки, специфичные для конкретных эндпоинтов (exists, limit, token, webhook,
unreachable, …), описаны на соответствующих страницах.