# API прокси Gexarus Базовый URL: https://proxy.gexarus.com/v1 Authorization: Bearer . Для проекта добавьте X-Gexarus-Project: . Без заголовка — область аккаунта. Ключи и пароль провайдера не предназначены для браузерного JavaScript. GET /options — доступные типы, страны и сроки. POST /quotes, Idempotency-Key: уникальный ключ: {"action":"purchase","type":"ipv4_shared","country":"ru","period_days":7,"count":1} Ответ: id, amount_rub, currency, expires_at. Котировка действительна 5 минут. Стоимость аренды определяется общим каталогом и фиксируется до покупки. POST /orders, Idempotency-Key: уникальный ключ: {"quote_id":"ID котировки"} Сначала резервируется полная сумма. Одна котировка может быть исполнена только один раз. Повтор с прежними параметрами возвращает ту же операцию. HTTP 202/status unknown означает сверку, не отказ и не разрешение покупать повторно. GET /orders/{id} — бесплатное чтение. POST /orders/{id}/reconcile с {} — безопасная сверка через прежний идентификатор закупки. GET /resources и GET /resources/{id} — бесплатное чтение собственных ресурсов. Продление: POST /quotes с {"action":"renew","resource_id":"ID","period_days":7}, затем POST /orders с новой котировкой. Продление не включается автоматически. POST /resources/{id}/leases с {"consumer":"operation-name","ttl_seconds":300} создаёт или обновляет временное назначение (60–1800 секунд). POST /leases/{id}/release с {} освобождает назначение, но не сам оплаченный ресурс. POST /leases/{id}/connection с {} возвращает endpoint, username, password и expires_at. Это временные данные внутреннего маршрутизатора Gexarus, а не пароль поставщика. Подключение предназначено для операций внутри инфраструктуры Gexarus. Endpoint доступен из сети BrowserHub и с CUDA; публичный proxy-port в интернет не открывается. Продлите lease повторным POST /resources/{id}/leases с тем же consumer; затем обновите connection. Передача проекта, отзыв ключа или release закрывают новые запросы сразу, текущий CONNECT — после очередной проверки (5 секунд + до4сек ожидания backend). Прямого fallback нет. Прежний BrowserHub selector пока сохраняет старый технический пул; новые операции подключают возвращённые endpoint/username/password явно. Оплата аренды — за срок, не за каждый сетевой запрос. Чтение и назначения бесплатны. Старые технические прокси MAX/BrowserHub не переводятся на клиентскую оплату автоматически. Проектный ресурс следует за проектом, финансовая история остаётся прежнему плательщику. Старый владелец теряет доступ к новым операциям, продление использует оплату нового владельца. Ошибки имеют {"error":{"code":"..."}}. 401/403 — доступ, 402 — оплата/лимит, 409 — конфликт/устаревшая котировка, 422 — параметры, 503 — временная недоступность. OpenAPI: GET /openapi.json. ## Общий пул — оплата трафика GET /options: types[].countries — страны Proxy6 для каждого типа; shared_pool.items — страны, в которых уже есть включённый общий ресурс. shared_pool.rates — текущий тариф. POST /accesses с Idempotency-Key: {"title":"Внешние API","country":"us","version":3,"daily_limit_rub":"10.00","traffic_limit_bytes":100000000,"max_connections":4} Создание бесплатно, само не меняет маршруты. GET /accesses и /accesses/{id} — свои доступы, лимиты, сегодняшние расходы и число соединений. POST /accesses/{id} с теми же полями, revision из чтения и новым Idempotency-Key меняет пределы; state=disabled отключает доступ. POST /accesses/{id}/connection с {"consumer":"module-stable-id","ttl_seconds":300} возвращает HTTPS proxy endpoint, username/password, expires_at. Эти временные данные можно использовать в curl/HTTP-клиенте с поддержкой HTTPS proxy. TLS проверки должны быть включены. POST /accesses/{id}/release с {"consumer":"module-stable-id"} отзывает этот consumer. При истечении соединения заново получите connection; origin request автоматически не повторяется. Тариф: общий каталог, стартовая ставка 100 ₽ / 1 ГБ (1 000 000 000 bytes) в обе стороны. Без абонплаты. Небольшой резерв перед трафиком, точное списание после измерения. Измеряются origin request/response bytes, для HTTPS — непрозрачный TLS tunnel. Промежуточные резервы входят в дневной денежный лимит; остаток освобождается при закрытии. Дневные лимиты сбрасываются в 00:00 Москвы; открытый tunnel на границе дня закрывается. Передача проекта/отзыв ключа/смена лимитов закрывают прежние соединения. Новый владелец сохраняет свои пределы; прошлый расход остаётся прежнему плательщику. Полная история и тарифы доступны в общем кабинете оплаты. ### Эксплуатация общего пула Настройки ресурсов: https://gexarus.com/adm/settings?group=proxy; назначение потребителю во вкладке «Использование». Общая история: https://gexarus.com/my-services. HTTPS data endpoint: proxy.gexarus.com:8443. Provider credentials никогда не выдаются. Ingress lease восстанавливает gexarus-shared-proxy-ingress.timer. Проверять снаружи офиса, а не только NAT hairpin. Common billing RPC изолирован в gexarus-billing-bridge.service. Runbook/границы/rollout evidence: /server/docs/contracts/0049-proxy-shared-pool-v1.md. Физический stock добавляет оператор через proxy_pool.py; provider countries не гарантируют готовый ресурс в каждой стране. Закупка нового stock не включается трафиком. Автопродление явно включённого stock выполняется по shared_renewal в registry.json: проверка каждые5мин, продление на7дней за48часов. Это расходы платформы, цена клиентского трафика прежняя. Ошибки/ожидаемые исходы видны в /health.recovery.pool_renewal; неизвестный результат не приводит к повторному списанию.