Быстрый старт с cURL
Вообще без SDK — аутентифицируйтесь по API-ключу проекта и вызывайте инфраструктурный API /platform/v1 из терминала.
Всё, что делают SDK и генерируемые клиенты, работает поверх одного обычного
HTTPS-API. Этот быстрый старт делает ваш первый аутентифицированный вызов
/platform/v1 с помощью одного лишь curl.
Что понадобится
- Проект и API-ключ проекта (
fvpn_v1_…), выпущенный в консоли — это описано в руководстве по API-ключам curl(иjq, если любите красиво отформатированный JSON)
1. Экспортируйте учётные данные
export FVPN_API_KEY="fvpn_v1_…" # shown exactly once at mint time
export FVPN_PROJECT_ID="<your-project-uuid>"2. Первый аутентифицированный вызов
Получите список API-ключей проекта — простейшее аутентифицированное чтение:
curl https://api.fvpn.net/platform/v1/api-keys \
-H "Authorization: Bearer $FVPN_API_KEY" \
-H "X-Project-Id: $FVPN_PROJECT_ID"200 возвращает ключи проекта в скрытом виде — секрет никогда не появляется
в ответе со списком:
[
{
"id": "8b9c1a2e-…",
"name": "ci-deploy",
"key_prefix": "fvpn_v1_ab12…cd34",
"created_at": "2026-07-01T10:12:03Z",
"last_used_at": "2026-07-08T09:41:57Z"
}
]Два правила, которые стоит запомнить:
- Bearer — это всё, что нужно. Ключ передаётся в
Authorization: Bearer fvpn_v1_…— без cookie и без схем подписи. - Ключи привязаны к проекту.
X-Project-Idдолжен указывать на собственный проект ключа; любой другой идентификатор проекта даёт401.
3. Дальше
Каждая операция /platform/v1 и /consumer/v1 описана в
справочнике API, сгенерированном из тех же OpenAPI-документов,
из которых собираются клиенты. Хорошие следующие вызовы:
# The projects you belong to
curl https://api.fvpn.net/platform/v1/projects \
-H "Authorization: Bearer $FVPN_API_KEY" \
-H "X-Project-Id: $FVPN_PROJECT_ID"
# Recent billing webhook events for the project
curl https://api.fvpn.net/platform/v1/billing/webhooks \
-H "Authorization: Bearer $FVPN_API_KEY" \
-H "X-Project-Id: $FVPN_PROJECT_ID"Чем проверяется
scripts/quickstart-verify/api-key-auth.sh — прогоняет тот же сценарий, что
на этой странице (выпуск ключа → аутентифицированный 200 → отзыв), против
живого стека при каждом прогоне, где он доступен, и явно пропускается, где
нет.