iFragment

Аутентификация

Ключ API в заголовке X-API-Key и IP allowlist.

Как получить ключ

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

  1. Войдите на сайте через Google и откройте портал разработчика: /ru/dashboard.
  2. Заполните анкету подключения: название проекта, где он будет работать (бот, сайт, приложение), регион и почта для связи. Компания и первый Project создадутся сразу. Один аккаунт (Google или Telegram) владеет одной компанией.
  3. Откройте Project и выпустите ключ (подпись по желанию, например prod или staging). Ключ показывается один раз: сразу положите его в переменные окружения сервера.

В том же портале можно завести ещё Project, отозвать ключ, настроить вебхук и посмотреть заказы, баланс и движения по нему. Баланс пополняем мы: напишите нам, портал его только показывает.

Ключ API

Каждый запрос передаёт ключ проекта в заголовке:

X-API-Key: ifk_<clientId>_<secret>
  • clientId это публичная часть, по ней мы находим ключ; secret это секрет высокой энтропии. Мы храним только его SHA-256, поэтому восстановить потерянный ключ нельзя: выпустите новый.
  • У Project может быть несколько ключей: выпустите новый, переключите сервис, отзовите старый. Так ключ ротируется без простоя. Отзыв действует мгновенно.
  • Ключ даёт доступ ко всем заказам своего Project и к балансу вашего аккаунта. Не кладите его в код клиента (браузер, мобильное приложение, бот на стороне пользователя) и в репозиторий, храните его только в переменных окружения сервера.

Если заголовка нет или ключ неверный либо отозван, ответ будет 401.

const res = await fetch('https://api.ifragment.com/v1/balance', {
  headers: { 'X-API-Key': process.env.IFRAGMENT_KEY! },
});

IP allowlist

Для Project можно включить список разрешённых IP (или подсетей CIDR). Тогда запрос с правильным ключом, но с другого адреса, получит 403. Рекомендуем включить allowlist для боевых ключей: утёкший ключ без вашего сервера бесполезен.

Текущий список виден на странице Project в портале разработчика, задаём и меняем его мы по вашей просьбе. Если вы за NAT или облачным балансировщиком, указывайте исходящий адрес сервера.

Идемпотентность

Все POST, создающие ресурсы, требуют заголовок Idempotency-Key (от 8 до 128 символов [A-Za-z0-9._:-]). Подробно описано в разделе Заказы.

GET
/v1/me

Returns the Project and Tenant the API key belongs to.

Authorization

apiKey
X-API-Key<token>

ifk_<clientId>_<secret>, for example ifk_48aa52d67c0fef6decb05b36_lVlZSWKN43sgb2vfEpFbqtzQ0ePNZya6yZr-RmJ4wxo

In: header

Response Body

application/json

application/json

application/json

application/json

curl -X GET "https://example.com/v1/me"
{  "success": true,  "data": {    "projectId": "3b0c8f5e-2d41-4c6a-9f1e-7a5b2c9d4e10",    "tenantId": "8e2f4a6c-1b3d-4e5f-a7b9-c0d1e2f3a4b5",    "projectName": "Main bot"  },  "meta": {    "requestId": "9f1c2b7e-3a4d-4e5f-8a6b-7c8d9e0f1a2b",    "timestamp": "2026-10-06T09:15:22.481Z",    "processingTimeMs": 38  }}

На этой странице