REST APIv1

Партнёрский API

API для интеграции мобильных прокси: заказ и продление портов, управление доступами и расчёты.

Значения в примерах условные. Актуальные цены, ID и данные подключения возвращаются в ответах API.

Начало работы

Авторизация

API доступен после активации партнёрского аккаунта. Создание и отзыв токена доступны только в кабинете GIGABIT. Новый токен заменяет предыдущий и отображается один раз.

Токен передаётся в заголовке HTTP-запроса Authorization по схеме Bearer.

HTTP
Authorization: Bearer gbp_PARTNER_TOKEN
Управление токеном в кабинете ↗

Формат запросов и ответов

Тело запроса передаётся в формате JSON. Примеры запросов и ответов находятся у каждого метода.

ПараметрФормат и значение
Тело запросаJSON-объект и Content-Type: application/json. Если параметров нет, тело можно не передавать.
HTTP 202Операция принята. Сервер возвращает id и status_url для проверки статуса.
GET /operations/{id}queued: в очереди; processing: выполняется; ready: завершена; failed: ошибка. Результат находится в result, причина ошибки в error.
ДатыISO 8601 с часовым поясом, например 2026-12-09T22:59:59+00:00.
СуммыПоля _cents: целые евроценты. 4500 = 45,00 EUR.
ЛимитыТело до 16 KiB; 600 запросов в час на аккаунт. При HTTP 429 задержка указана в Retry-After.

Успешный ответ

200 · JSON
{
  "success": true,
  "data": {
    "currency": "EUR",
    "balance_cents": 10000
  }
}

Ответ с ошибкой

401 · JSON
{
  "success": false,
  "error": "unauthenticated"
}

Баланс и оплата

Заказ и продление через API рассчитаны на один порт на 30 дней. Стоимость с индивидуальной скидкой списывается с нетто-баланса. Доступная сумма с учётом кредитного лимита и резервов указана в available_cents.

VAT определяется по реквизитам профиля и добавляется при пополнении через Stripe. При покупке портов VAT повторно не начисляется.

Ошибки

HTTPerrorОписание
400invalid_rotation_token_requestСброс токена не принимает дополнительных параметров.
400invalid_jsonНекорректный JSON в теле запроса.
400invalid_payment_requestНеподдерживаемые или некорректные параметры запроса.
400invalid_payment_ordersНекорректный номер или ID порта.
400invalid_partner_amountСумма не соответствует ограничениям.
400invalid_paginationНекорректные параметры пагинации.
400invalid_partner_prefixПрефикс логинов не соответствует ограничениям.
400invalid_rotation_intervalНекорректные поля rotation или rotation_seconds.
401unauthenticatedТокен отсутствует, недействителен или отозван.
403partner_requiredТребуется активный партнёрский аккаунт.
403payment_method_unavailableСпособ оплаты недоступен для аккаунта.
403origin_not_allowedИсточник запроса не разрешён.
404not_foundОбъект не найден или недоступен этому аккаунту.
409insufficient_partner_balanceНедостаточно средств с учётом кредитного лимита и резервов.
409insufficient_withdrawable_balanceНедостаточно средств, доступных для возврата.
409inventory_changedНаличие портов изменилось с момента просмотра каталога.
409partner_prefix_takenПрефикс уже занят.
409record_changed_or_in_useЗапись изменена или используется другой операцией.
409payment_busyСвязанная операция ещё выполняется.
409rotation_busyСмена IP ещё выполняется.
409billing_requiredВ профиле не заполнены платёжные реквизиты.
409rotation_interval_too_shortИнтервал меньше 20 секунд или ограничения сервера порта.
403 / 409order_expiredАренда неактивна. Смена доступов и IP доступна после продления.
429too_many_requestsЛимит запросов исчерпан. Задержка указана в Retry-After.
502proxy_server_unavailableСервер прокси временно недоступен.
502rotation_sync_pendingПрименение настройки смены IP ещё не подтверждено.
503database_unavailableХранилище данных временно недоступно.
503stripe_unavailableПлатёжный сервис временно недоступен.
Операции

Статус операции

GET

Возвращает состояние и результат операции аккаунта. Быстрая проверка, без повторного выполнения.

Параметры

ПолеТипОписание
idВ пути · ОбязательноstringID операции из ответа HTTP 202.

Пример запроса

cURL
curl --request GET \
  --url 'https://api.gigabit.ltd/api/partner/v1/operations/op_0123456789abcdef0123456789abcdef' \
  --header "Authorization: Bearer $GIGABIT_API_TOKEN"

Пример ответа

200 · application/json
{
  "success": true,
  "data": {
    "id": "op_0123456789abcdef0123456789abcdef",
    "state": "queued",
    "error": null,
    "result": null,
    "created_at": "2026-11-10T12:00:00+00:00",
    "status_url": "/api/partner/v1/operations/op_0123456789abcdef0123456789abcdef"
  }
}
Поля ответов →
Баланс и расчёты

Баланс

GET

Текущий баланс, кредитный лимит, доступные средства, скидка и цены партнёра.

Тело не требуется.

Пример запроса

cURL
curl --request GET \
  --url 'https://api.gigabit.ltd/api/partner/v1/balance' \
  --header "Authorization: Bearer $GIGABIT_API_TOKEN"

Пример ответа

200 · application/json
{
  "success": true,
  "data": {
    "currency": "EUR",
    "balance_cents": 10000,
    "reserved_cents": 0,
    "credit_limit_cents": 10000,
    "debt_cents": 0,
    "available_cents": 20000,
    "withdrawable_cents": 10000,
    "discount_percent": 10,
    "prefix": "astra",
    "api_token_hint": "demo12",
    "monthly_net_cents": 4500,
    "payment_method": "card",
    "connection_domains": {
      "host": "",
      "api": ""
    },
    "paid_in_cents": 10000,
    "prices": [
      {
        "currency": "EUR",
        "base_net_cents": 4500,
        "net_cents": 4050,
        "vat_cents": 0,
        "total_cents": 4050,
        "tax_at_topup": true,
        "discount_percent": 10,
        "months": 1,
        "days": 30,
        "pricing_version": 1,
        "tax": {
          "mode": "vat",
          "rate_percent": 23,
          "vat_code": "23",
          "reverse_charge": false
        }
      }
    ],
    "topup_tax": {
      "mode": "vat",
      "rate_percent": 23,
      "vat_code": "23",
      "reverse_charge": false
    },
    "can_order_new_ports": true
  }
}
Поля ответов →

Пополнение баланса

POST

Создаёт ссылку на оплату через Stripe. amount_cents - сумма зачисления на баланс в евроцентах; total_cents - сумма оплаты с учётом применимого VAT.

Параметры

ПолеТипОписание
amount_centsТело JSON · Обязательноinteger100-10000000От 1 до 100 000 EUR, целые евроценты.

Пример запроса

cURL
curl --request POST \
  --url 'https://api.gigabit.ltd/api/partner/v1/topups' \
  --header "Authorization: Bearer $GIGABIT_API_TOKEN" \
  --header 'Content-Type: application/json' \
  --data '{
  "amount_cents": 10000
}'

Пример ответа

202 · application/json
{
  "success": true,
  "data": {
    "id": "op_0123456789abcdef0123456789abcdef",
    "state": "queued",
    "error": null,
    "result": null,
    "created_at": "2026-11-10T12:00:00+00:00",
    "status_url": "/api/partner/v1/operations/op_0123456789abcdef0123456789abcdef"
  }
}

Результат после выполнения

GET /operations/{id} · 200
{
  "success": true,
  "data": {
    "id": "op_0123456789abcdef0123456789abcdef",
    "state": "ready",
    "error": null,
    "result": {
      "id": "ptop_0123456789abcdef0123456789abcdef",
      "state": "pending",
      "url": "https://checkout.stripe.com/c/pay/EXAMPLE_SESSION",
      "amount_cents": 10000,
      "vat_cents": 2300,
      "total_cents": 12300,
      "currency": "EUR"
    },
    "created_at": "2026-11-10T12:00:00+00:00",
    "status_url": "/api/partner/v1/operations/op_0123456789abcdef0123456789abcdef"
  }
}
Поля ответов →

Статус пополнения

GET

Возвращает статус пополнения аккаунта. paid подтверждает зачисление средств. Возврат со страницы Stripe сам по себе не подтверждает оплату.

Состояния: creating, pending, paid, expired, failed.

Параметры

ПолеТипОписание
idВ пути · ОбязательноstringID пополнения из POST /topups.

Пример запроса

cURL
curl --request GET \
  --url 'https://api.gigabit.ltd/api/partner/v1/topups/ptop_0123456789abcdef0123456789abcdef' \
  --header "Authorization: Bearer $GIGABIT_API_TOKEN"

Пример ответа

200 · application/json
{
  "success": true,
  "data": {
    "id": "ptop_0123456789abcdef0123456789abcdef",
    "state": "pending",
    "url": "https://checkout.stripe.com/c/pay/EXAMPLE_SESSION",
    "amount_cents": 10000,
    "vat_cents": 2300,
    "total_cents": 12300,
    "currency": "EUR"
  }
}
Поля ответов →

История транзакций

GET

Операции от новых к старым, источники и комментарии, суммы и остаток после каждой операции. Технические резервы покупки скрыты по умолчанию.

Параметры

ПолеТипОписание
offsetВ строке запроса · Необязательноinteger0-∞Число пропускаемых записей.
limitВ строке запроса · Необязательноinteger1-100Размер страницы: 1-100.
include_reservationsВ строке запроса · Необязательноstring11 - включить purchase_reserve и purchase_release.

Пример запроса

cURL
curl --request GET \
  --url 'https://api.gigabit.ltd/api/partner/v1/transactions?offset=0&limit=30' \
  --header "Authorization: Bearer $GIGABIT_API_TOKEN"

Пример ответа

200 · application/json
{
  "success": true,
  "data": {
    "items": [
      {
        "id": "ptop_0123456789abcdef0123456789abcdef:credit",
        "created_at": "2026-11-09T12:05:00+00:00",
        "currency": "EUR",
        "operation": "topup",
        "amount_cents": 10000,
        "reserved_delta_cents": 0,
        "source": "stripe",
        "comment": "",
        "reference": "ptop_0123456789abcdef0123456789abcdef",
        "balance_after_cents": 10000,
        "reserved_after_cents": 0,
        "sequence": 1
      }
    ],
    "total": 1,
    "offset": 0,
    "limit": 30
  }
}
Поля ответов →

Заявка на вывод средств

POST

Создаёт заявку и резервирует сумму до её рассмотрения. Доступная для вывода сумма указана в withdrawable_cents; кредитный лимит и невозвратные компенсации в неё не входят.

После обработки заявки result.state=requested означает ожидание решения. Операция остаётся processing до подтверждения выплаты или отклонения.

Параметры

ПолеТипОписание
amount_centsТело JSON · Обязательноinteger100-100000000Сумма EUR в центах, не выше доступной для вывода.
commentТело JSON · Обязательноstring1-2000Реквизиты или пояснение. Непустой текст после удаления пробелов по краям.

Пример запроса

cURL
curl --request POST \
  --url 'https://api.gigabit.ltd/api/partner/v1/withdrawals' \
  --header "Authorization: Bearer $GIGABIT_API_TOKEN" \
  --header 'Content-Type: application/json' \
  --data '{
  "amount_cents": 5000,
  "comment": "Please contact me to confirm payment details."
}'

Пример ответа

202 · application/json
{
  "success": true,
  "data": {
    "id": "op_0123456789abcdef0123456789abcdef",
    "state": "queued",
    "error": null,
    "result": null,
    "created_at": "2026-11-10T12:00:00+00:00",
    "status_url": "/api/partner/v1/operations/op_0123456789abcdef0123456789abcdef"
  }
}

Результат после выполнения

GET /operations/{id} · 200
{
  "success": true,
  "data": {
    "id": "op_0123456789abcdef0123456789abcdef",
    "state": "ready",
    "error": null,
    "result": {
      "id": "pout_0123456789abcdef0123456789abcdef",
      "state": "paid"
    },
    "created_at": "2026-11-10T12:00:00+00:00",
    "status_url": "/api/partner/v1/operations/op_0123456789abcdef0123456789abcdef"
  }
}
Поля ответов →
Каталог и заказы

Доступные порты

GET

Доступные номера портов, сгруппированные по оператору и локации.

Наличие проверяется при оформлении заказа. Просмотр каталога не резервирует порты.

Тело не требуется.

Пример запроса

cURL
curl --request GET \
  --url 'https://api.gigabit.ltd/api/partner/v1/catalog' \
  --header "Authorization: Bearer $GIGABIT_API_TOKEN"

Пример ответа

200 · application/json
{
  "success": true,
  "data": {
    "items": [
      {
        "operator": {
          "id": "operator-orange",
          "name": "Orange"
        },
        "location": {
          "id": "location-warsaw",
          "name": "Warsaw"
        },
        "ports": [
          {
            "id": "b1c2d3e4f5a60123456789abcdef0123",
            "number": 10001
          },
          {
            "id": "b2c3d4e5f6a70123456789abcdef0123",
            "number": 10002
          }
        ],
        "available": 2
      }
    ],
    "prices": [
      {
        "currency": "EUR",
        "base_net_cents": 4500,
        "net_cents": 4050,
        "vat_cents": 0,
        "total_cents": 4050,
        "tax_at_topup": true,
        "discount_percent": 10,
        "months": 1,
        "days": 30,
        "pricing_version": 1,
        "tax": {
          "mode": "vat",
          "rate_percent": 23,
          "vat_code": "23",
          "reverse_charge": false
        }
      }
    ]
  }
}
Поля ответов →

Заказ порта

POST

Заказ одного доступного порта на 30 дней по номеру или ID из каталога. Стоимость списывается с баланса.

Длительная операция возвращает HTTP 202 и созданный сервером id. Статус и результат доступны через GET /operations/{id}. Проверка статуса не создаёт новую операцию.

Параметры

ПолеТипОписание
port_numberТело JSON · Необязательноinteger1-65535Номер порта из каталога. Передаётся одно из полей: port_number или port_id.
port_idТело JSON · Необязательноstring1-120ID порта из каталога, вместо port_number.

Пример запроса

cURL
curl --request POST \
  --url 'https://api.gigabit.ltd/api/partner/v1/orders' \
  --header "Authorization: Bearer $GIGABIT_API_TOKEN" \
  --header 'Content-Type: application/json' \
  --data '{
  "port_number": 10001
}'

Пример ответа

202 · application/json
{
  "success": true,
  "data": {
    "id": "op_0123456789abcdef0123456789abcdef",
    "state": "queued",
    "error": null,
    "result": null,
    "created_at": "2026-11-10T12:00:00+00:00",
    "status_url": "/api/partner/v1/operations/op_0123456789abcdef0123456789abcdef"
  }
}

Результат после выполнения

GET /operations/{id} · 200
{
  "success": true,
  "data": {
    "id": "op_0123456789abcdef0123456789abcdef",
    "state": "ready",
    "error": null,
    "result": {
      "id": "partner_0123456789abcdef0123456789abcdef",
      "state": "ready",
      "error": null,
      "order_ids": [
        "a1b2c3d4e5f60123456789abcdef0123"
      ],
      "amount_cents": 4050,
      "currency": "EUR",
      "price": {
        "currency": "EUR",
        "base_net_cents": 4500,
        "net_cents": 4050,
        "vat_cents": 0,
        "total_cents": 4050,
        "tax_at_topup": true,
        "discount_percent": 10,
        "months": 1,
        "days": 30,
        "pricing_version": 1,
        "tax": {
          "mode": "vat",
          "rate_percent": 23,
          "vat_code": "23",
          "reverse_charge": false
        }
      }
    },
    "created_at": "2026-11-10T12:00:00+00:00",
    "status_url": "/api/partner/v1/operations/op_0123456789abcdef0123456789abcdef"
  }
}
Поля ответов →

Список портов

GET

Текущие порты аккаунта: срок аренды, данные подключения, IP и таймер смены IP.

Для смены IP выполняется GET-запрос по полной ссылке rotation_url из данных порта. Заголовок Authorization не требуется. Ссылка уже содержит токен порта.

Тело не требуется.

Пример запроса

cURL
curl --request GET \
  --url 'https://api.gigabit.ltd/api/partner/v1/orders' \
  --header "Authorization: Bearer $GIGABIT_API_TOKEN"

Пример ответа

200 · application/json
{
  "success": true,
  "data": {
    "items": [
      {
        "id": "a1b2c3d4e5f60123456789abcdef0123",
        "port_id": "b1c2d3e4f5a60123456789abcdef0123",
        "number": 10001,
        "host": "l1.gigabit.ltd",
        "username": "astra_a1b2c3d4e5f",
        "proxy_password": "EXAMPLE_ONLY_22_CHARS_x",
        "status": "active",
        "expires": "2026-12-09T22:59:59+00:00",
        "operator": "Orange",
        "cityName": "Warsaw",
        "ip": "198.51.100.42",
        "rotation_url": "https://api.gigabit.ltd/change_ip?token=EXAMPLE_ROTATION_TOKEN_REPLACE_ME",
        "rotation": true,
        "rotation_seconds": 120,
        "connection_options": {
          "custom": {
            "host": "proxy.example.com",
            "rotation_url": "https://api.example.com/change_ip?token=EXAMPLE_ROTATION_TOKEN_REPLACE_ME"
          }
        }
      }
    ]
  }
}
Поля ответов →

Данные порта

GET

Данные заказа, принадлежащего аккаунту. Недоступный или несуществующий заказ возвращает 404.

Для смены IP выполняется GET-запрос по полной ссылке rotation_url из данных порта. Заголовок Authorization не требуется. Ссылка уже содержит токен порта.

Параметры

ПолеТипОписание
idВ пути · ОбязательноstringID заказа (id) или порта (port_id) из списка портов.

Пример запроса

cURL
curl --request GET \
  --url 'https://api.gigabit.ltd/api/partner/v1/orders/a1b2c3d4e5f60123456789abcdef0123' \
  --header "Authorization: Bearer $GIGABIT_API_TOKEN"

Пример ответа

200 · application/json
{
  "success": true,
  "data": {
    "id": "a1b2c3d4e5f60123456789abcdef0123",
    "port_id": "b1c2d3e4f5a60123456789abcdef0123",
    "number": 10001,
    "host": "l1.gigabit.ltd",
    "username": "astra_a1b2c3d4e5f",
    "proxy_password": "EXAMPLE_ONLY_22_CHARS_x",
    "status": "active",
    "expires": "2026-12-09T22:59:59+00:00",
    "operator": "Orange",
    "cityName": "Warsaw",
    "ip": "198.51.100.42",
    "rotation_url": "https://api.gigabit.ltd/change_ip?token=EXAMPLE_ROTATION_TOKEN_REPLACE_ME",
    "rotation": true,
    "rotation_seconds": 120,
    "connection_options": {
      "custom": {
        "host": "proxy.example.com",
        "rotation_url": "https://api.example.com/change_ip?token=EXAMPLE_ROTATION_TOKEN_REPLACE_ME"
      }
    }
  }
}
Поля ответов →

Продление порта

POST

Добавляет 30 дней к аренде одного порта с оплатой с баланса. В запросе нужен только номер порта или его ID в адресе.

Длительная операция возвращает HTTP 202 и созданный сервером id. Статус и результат доступны через GET /operations/{id}. Проверка статуса не создаёт новую операцию.

Параметры

ПолеТипОписание
idВ пути · ОбязательноstringНомер порта или ID порта. Также принимается id заказа из GET /orders.

Пример запроса

cURL
curl --request POST \
  --url 'https://api.gigabit.ltd/api/partner/v1/orders/10001/renew' \
  --header "Authorization: Bearer $GIGABIT_API_TOKEN" \
  --header 'Content-Type: application/json' \
  --data '{}'

Пример ответа

202 · application/json
{
  "success": true,
  "data": {
    "id": "op_0123456789abcdef0123456789abcdef",
    "state": "queued",
    "error": null,
    "result": null,
    "created_at": "2026-11-10T12:00:00+00:00",
    "status_url": "/api/partner/v1/operations/op_0123456789abcdef0123456789abcdef"
  }
}

Результат после выполнения

GET /operations/{id} · 200
{
  "success": true,
  "data": {
    "id": "op_0123456789abcdef0123456789abcdef",
    "state": "ready",
    "error": null,
    "result": {
      "id": "partner_0123456789abcdef0123456789abcdef",
      "state": "ready",
      "error": null,
      "order_ids": [
        "a1b2c3d4e5f60123456789abcdef0123"
      ],
      "amount_cents": 4050,
      "currency": "EUR",
      "price": {
        "currency": "EUR",
        "base_net_cents": 4500,
        "net_cents": 4050,
        "vat_cents": 0,
        "total_cents": 4050,
        "tax_at_topup": true,
        "discount_percent": 10,
        "months": 1,
        "days": 30,
        "pricing_version": 1,
        "tax": {
          "mode": "vat",
          "rate_percent": 23,
          "vat_code": "23",
          "reverse_charge": false
        }
      }
    },
    "created_at": "2026-11-10T12:00:00+00:00",
    "status_url": "/api/partner/v1/operations/op_0123456789abcdef0123456789abcdef"
  }
}
Поля ответов →
Доступы и смена IP

Сброс токена смены IP

POST

Создаёт новый токен смены IP и возвращает готовую ссылку. Старый токен и все ссылки с ним сразу перестают работать. Пароль прокси и таймер не меняются.

Ответ возвращается сразу, без фоновой операции. Новая ссылка также доступна в поле rotation_url данных порта.

Параметры

ПолеТипОписание
idВ пути · ОбязательноstringID заказа из поля id в списке портов.

Пример запроса

cURL
curl --request POST \
  --url 'https://api.gigabit.ltd/api/partner/v1/orders/a1b2c3d4e5f60123456789abcdef0123/rotation-token' \
  --header "Authorization: Bearer $GIGABIT_API_TOKEN" \
  --header 'Content-Type: application/json' \
  --data '{}'

Пример ответа

200 · application/json
{
  "success": true,
  "data": {
    "rotation_token": "0123456789abcdef0123456789abcdef",
    "rotation_url": "https://api.gigabit.ltd/change_ip?token=0123456789abcdef0123456789abcdef"
  }
}

Смена доступов по ID

POST

Сервер генерирует новый пароль. При change_login=true одновременно генерируется новый логин с актуальным префиксом партнёра. Работает только для активной аренды.

Новые данные доступны в result после применения. При ошибке operation_superseded более новая команда уже изменила доступы.

Параметры

ПолеТипОписание
idВ пути · ОбязательноstringID заказа (id) или порта (port_id) из списка портов.
change_loginТело JSON · Необязательноbooleantrue - новый логин с текущим префиксом и новый пароль. false - только пароль. На старом общем доступе создаётся отдельная пара и без флага.

Пример запроса

cURL
curl --request POST \
  --url 'https://api.gigabit.ltd/api/partner/v1/orders/a1b2c3d4e5f60123456789abcdef0123/password' \
  --header "Authorization: Bearer $GIGABIT_API_TOKEN" \
  --header 'Content-Type: application/json' \
  --data '{
  "change_login": true
}'

Пример ответа

202 · application/json
{
  "success": true,
  "data": {
    "id": "op_0123456789abcdef0123456789abcdef",
    "state": "queued",
    "error": null,
    "result": null,
    "created_at": "2026-11-10T12:00:00+00:00",
    "status_url": "/api/partner/v1/operations/op_0123456789abcdef0123456789abcdef"
  }
}

Результат после выполнения

GET /operations/{id} · 200
{
  "success": true,
  "data": {
    "id": "op_0123456789abcdef0123456789abcdef",
    "state": "ready",
    "error": null,
    "result": {
      "state": "synced",
      "username": "astra_b2c3d4e5f6a",
      "password": "EXAMPLE_NEW_PASSWORD_xx"
    },
    "created_at": "2026-11-10T12:00:00+00:00",
    "status_url": "/api/partner/v1/operations/op_0123456789abcdef0123456789abcdef"
  }
}
Поля ответов →

Таймер смены IP

GET

Текущее состояние таймера. При rotation=true возвращается rotation_seconds. При выключенном таймере возвращается только rotation=false.

Параметры

ПолеТипОписание
idВ пути · ОбязательноstringID заказа (id) или порта (port_id) из списка портов.

Пример запроса

cURL
curl --request GET \
  --url 'https://api.gigabit.ltd/api/partner/v1/orders/a1b2c3d4e5f60123456789abcdef0123/rotation' \
  --header "Authorization: Bearer $GIGABIT_API_TOKEN"

Пример ответа

200 · application/json
{
  "success": true,
  "data": {
    "rotation": true,
    "rotation_seconds": 120
  }
}
Поля ответов →

Настройка таймера

PUT

Для включения передаются rotation=true и rotation_seconds, целое число от 20 до 86400 секунд. Значение меньше 20 возвращает ошибку rotation_interval_too_short. Для отключения передаётся только rotation=false.

Операция остаётся processing до подтверждения применения таймера.

Параметры

ПолеТипОписание
idВ пути · ОбязательноstringID заказа (id) или порта (port_id) из списка портов.
rotationТело JSON · Обязательноbooleantrue - включить таймер; false - выключить.
rotation_secondsТело JSON · Необязательноinteger20-86400Обязательно при rotation=true. При rotation=false поле не передаётся.

Пример запроса

cURL
curl --request PUT \
  --url 'https://api.gigabit.ltd/api/partner/v1/orders/a1b2c3d4e5f60123456789abcdef0123/rotation' \
  --header "Authorization: Bearer $GIGABIT_API_TOKEN" \
  --header 'Content-Type: application/json' \
  --data '{
  "rotation": true,
  "rotation_seconds": 120
}'

Пример ответа

202 · application/json
{
  "success": true,
  "data": {
    "id": "op_0123456789abcdef0123456789abcdef",
    "state": "queued",
    "error": null,
    "result": null,
    "created_at": "2026-11-10T12:00:00+00:00",
    "status_url": "/api/partner/v1/operations/op_0123456789abcdef0123456789abcdef"
  }
}

Результат после выполнения

GET /operations/{id} · 200
{
  "success": true,
  "data": {
    "id": "op_0123456789abcdef0123456789abcdef",
    "state": "ready",
    "error": null,
    "result": {
      "rotation": true,
      "rotation_seconds": 120
    },
    "created_at": "2026-11-10T12:00:00+00:00",
    "status_url": "/api/partner/v1/operations/op_0123456789abcdef0123456789abcdef"
  }
}
Поля ответов →
Профиль партнёра

Префикс логинов

PUT

Префикс - начало логинов портов, например название бренда. Логины генерируются в формате prefix_random: при prefix=astra новый порт получит логин вида astra_a1b2c3d4e5f. Случайная часть создаётся отдельно для каждого порта.

Изменение префикса не меняет уже выданные логины. Новые порты и смена логина через change_login=true используют текущий префикс. Префикс должен быть уникальным; занятый возвращает 409 partner_prefix_taken.

Параметры

ПолеТипОписание
prefixТело JSON · Обязательноstring2-242-24 символа: латиница, цифры и дефис; первый символ - буква. Приводится к нижнему регистру. proxy и gigabit зарезервированы.

Пример запроса

cURL
curl --request PUT \
  --url 'https://api.gigabit.ltd/api/partner/v1/profile' \
  --header "Authorization: Bearer $GIGABIT_API_TOKEN" \
  --header 'Content-Type: application/json' \
  --data '{
  "prefix": "astra"
}'

Пример ответа

200 · application/json
{
  "success": true,
  "data": {
    "prefix": "astra"
  }
}
Поля ответов

Деньги и состояния

Поля объекта data. Состав ответа может дополняться без изменения версии API.

ПолеТипОписание
balance_centsintegerТекущий нетто-баланс; может быть отрицательным.
credit_limit_centsintegerСогласованная величина разрешённого минуса.
reserved_centsintegerСредства под незавершённые операции, ещё входящие в баланс.
available_centsintegerДоступно для заказа: баланс + кредит − резервы, минимум 0.
withdrawable_centsintegerСредства аккаунта, доступные для возврата после резервирования.
debt_cents / paid_in_centsintegerЗадолженность и сумма всех подтверждённых пополнений соответственно.
currency / monthly_net_cents / discount_percentstring / integerEUR; базовая цена 30 дней до скидки; скидка партнёра в процентах.
prices[] / topup_taxarray / objectЦена на 30 дней и налоговый режим пополнения. При незаполненных реквизитах prices пуст, pricing_error=billing_required.
can_order_new_portsbooleanХватает ли доступной суммы на один порт на 30 дней. Не гарантирует наличие.
payment_methodstringСпособ пополнения: card (Stripe).
prefix / api_token_hint / connection_domainsstring / objectПрефикс новых логинов, последние символы токена (не сам токен) и настроенные домены host/api. Пустая строка означает, что домен не настроен.

Цена порта

Поля объекта data. Состав ответа может дополняться без изменения версии API.

ПолеТипОписание
currency / base_net_centsstring / integerEUR и базовая нетто-цена выбранного периода до скидки.
net_cents / total_centsintegerНетто-стоимость одного порта за период после скидки; списание с баланса.
vat_cents / tax_at_topupinteger / booleanДля покупки vat_cents=0, tax_at_topup=true: VAT учитывается при пополнении.
months / days / discount_percent / pricing_versionintegerПериод 1 месяц (30 дней), индивидуальная скидка и версия цены.
taxobjectmode, rate_percent, vat_code, reverse_charge. Налоговый профиль пополнения, а не дополнительное списание за порт.

Операция покупки / продления

Поля объекта data. Состав ответа может дополняться без изменения версии API.

ПолеТипОписание
id / state / errorstring / nullID операции, состояние и код ошибки (null при отсутствии).
order_ids[]string[]ID созданных или продлённых заказов для GET /orders/{id}.
amount_cents / currency / priceinteger / string / objectСумма списания нетто, валюта EUR и цена порта, сохранённая для операции.

Порт и доступы

Поля объекта data. Состав ответа может дополняться без изменения версии API.

ПолеТипОписание
id / port_id / numberstring / integerID заказа, ID порта из каталога и номер порта.
host / username / proxy_passwordstringХост, логин и пароль для подключения к прокси.
status / expiresstringactive или due; дата окончания аренды в ISO 8601.
operator / cityName / ipstringОператор, город и текущий выходной IP. ip может быть пустым, если проверка недоступна.
rotation_urlstringДля смены IP выполняется GET-запрос по полной ссылке rotation_url из данных порта. Заголовок Authorization не требуется. Ссылка уже содержит токен порта.
rotation / rotation_secondsboolean / integerВключён ли таймер; интервал в секундах возвращается только при rotation=true.
connection_optionsobjectДополнительные адреса подключения, если настроены: ip и custom, каждый с host и rotation_url.

Таймер смены IP

Поля объекта data. Состав ответа может дополняться без изменения версии API.

ПолеТипОписание
rotationbooleantrue - таймер включён; false - выключен.
rotation_secondsintegerИнтервал в секундах, от 20 до 86400. Возвращается только при rotation=true.

Пополнение баланса

Поля объекта data. Состав ответа может дополняться без изменения версии API.

ПолеТипОписание
id / state / urlstring / nullStripe: ID, состояние, ссылка Checkout. url может быть null, пока платёж создаётся.
amount_cents / vat_cents / total_cents / currencyinteger / stringStripe: сумма на баланс, VAT, итог к оплате и EUR.

Транзакция

Поля объекта data. Состав ответа может дополняться без изменения версии API.

ПолеТипОписание
items[] / total / offset / limitarray / integerЗаписи, общее число с учётом фильтра резервов, смещение и размер страницы.
id / created_at / sequence / currencystring / integerID записи, дата, порядковый номер и EUR.
operation / sourcestringОперация: topup, purchase, renewal, correction, compensation, credit_limit, withdrawal_reserve, withdrawal_paid, withdrawal_rejected; технические purchase_reserve/purchase_release по запросу. Источники: stripe, admin, api, customer, system.
amount_cents / reserved_delta_centsintegerИзменение баланса и резерва. Списание отрицательное. Резерв может иметь amount_cents=0, это не пополнение.
balance_after_cents / reserved_after_centsintegerБаланс и резерв после этой записи.
comment / referencestring / nullТекстовый комментарий и связанный платёж или операция. Комментарий может быть пустым.

Фоновая операция

Поля объекта data. Состав ответа может дополняться без изменения версии API.

ПолеТипОписание
id / status_urlstringСозданный сервером ID операции и адрес проверки статуса.
statestringqueued, processing, ready или failed.
resultobject / nullРезультат операции: доступы, данные заказа или ссылка на оплату в зависимости от метода.
error / created_atstring / nullКод ошибки при неудаче и время создания операции.