Пропустить до содержимого

Тестовый сервер

ГосПлан предоставляет возможность попробовать полноценные методы API без регистрации: просто откройте терминал или Swagger, сделайте несколько запросов — и получите реальные данные ЕИС. Тестовый сервер предназначен именно для таких первых шагов.

Зачем нужен тестовый сервер

  • Попробовать API до получения ключа. Нет необходимости проходить регистрацию, всё работает сразу.
  • Оценить структуру ответов. Вы изучаете поля документов, фильтры и пагинацию в реальном времени, прежде чем настраивать интеграцию.
  • Отладить сценарии. Мониторинг закупок, контракты, жалобы и справочники можно проиграть без риска потратить лимиты продуктового тарифа.
  • Показать демо. Визуальные отчёты, PoC или внутренние внутрие командные презентации собираются на тестовом сервере без согласований.

Тестовый сервер опирается на те же наборы данных (44-ФЗ, 223-ФЗ, ПП РФ 615, НСИ), что и продуктовый, поэтому переход к рабочему окружению происходит без сюрпризов.

Как устроен тестовый сервер

ХарактеристикаЗначение
Базовый URLhttps://v2test.gosplan.info
API-ключНе требуется
РегистрацияНе требуется — достаточно IP-адреса
Поддерживаемые подсистемы44-ФЗ, 223-ФЗ, ПП РФ 615, НСИ
ДанныеПолный набор документов ЕИС
Лимит10 запросов в минуту на один IP
СтабильностьОкружение минимально; рекомендуем использовать для разработки и тестов

Для сравнения окружений смотрите раздел «Тарифы и лимиты». Когда придёт время на стабильный продуктовый трафик, переходите к разделу «API-ключ».

Первый запрос — проверка доступности

curl -s "https://v2test.gosplan.info" | jq

Ожидаемый ответ (без заголовков и ключей):

{"app version":"1.6.2","API version":"v2.4.0","API description":"https://swagger.gosplan.info"}

Этот ответ подтверждает доступность API и подсказывает ссылку на Swagger.

Запросы через curl

Подготовка

  • Установите curl и jq, чтобы красиво выводить JSON.
  • Переменная jq помогает читать длинные ответы, но можно использовать любой JSON-валидатор.

Получение списка закупок

curl -s "https://v2test.gosplan.info/fz44/purchases?limit=1&skip=0" | jq

В ответе вы увидите поля purchase_number, object_info, max_price, published_at и updated_at. Это базовый запрос, с которым стоит начать.

Поиск самой дорогой закупки

curl -s "https://v2test.gosplan.info/fz44/purchases?sort=max_price_desc&limit=1" | jq '.[0] | {purchase_number, object_info, max_price}'

Другие подсистемы

  • 223-ФЗ: curl -s "https://v2test.gosplan.info/fz223/purchases?limit=5" | jq
  • ПП РФ 615: curl -s "https://v2test.gosplan.info/pprf615/purchases?limit=5" | jq

Что делать, если превышен лимит?

Сервер вернёт 429 Too Many Requests. Подождите минуту, затем повторите запрос.

Запросы через Python

Подготовка

Убедитесь, что установлен Python 3 (python3 --version). Дополнительные зависимости не нужны — используем встроенные модули urllib и json.

Пример без API-ключа

import urllib.request
import json

url = "https://v2test.gosplan.info/fz44/purchases"
params = {
    "limit": 5,
    "skip": 0,
}

query_string = "&".join(f"{key}={value}" for key, value in params.items())
full_url = f"{url}?{query_string}"

try:
    with urllib.request.urlopen(full_url) as response:
        data = response.read().decode("utf-8")
        result = json.loads(data)
        print(json.dumps(result, indent=4, ensure_ascii=False))
except Exception as e:
    print(f"Произошла ошибка: {e}")

Как это работает

  1. Формируется URL с параметрами limit/skip.
  2. Запрос отправляется на https://v2test.gosplan.info без заголовков авторизации.
  3. Ответ декодируется и выводится красиво.

Обработка ошибок

При превышении лимита появится исключение с сообщением HTTP Error 429. Повторите запрос через минуту.

Запросы через Swagger UI

  1. Перейдите на https://swagger.gosplan.info.
  2. Выберите нужную спецификацию (44-ФЗ, 223-ФЗ, ППРФ-615 или НСИ).
  3. Обратите внимание: первый сервер в списке — https://v2test.gosplan.info (тестовый). Swagger UI по умолчанию уже работает с этим сервером, поэтому нажимать Authorize не нужно — ключ не требуется.
  4. Выберите метод (например, GET /fz44/purchases), нажмите Try it out, укажите limit/skip и нажмите Execute.
  5. Изучите ответ, а также автоматически сгенерированный curl-команду и URL — они используют v2test.gosplan.info.

Если вы захотите переключиться на продуктовый сервер, выберите его в списке Servers и нажмите Authorize со схемой apikey.

Ограничения и коды ответов

КодОписание
200 OKЗапрос обработан, ответ содержит данные закупок/документов.
404 Not FoundДокумент не найден — проверьте идентификаторы и параметры.
422 Unprocessable EntityОдин из параметров некорректен (если в Swagger выбирается пример, ищите нужное поле в описании).
429 Too Many RequestsПревышен лимит 10 запросов в минуту с одного IP. Подождите минуту.
5xxВнутренняя ошибка сервера — повторите запрос позднее или обратитесь в поддержку.

Подробные сценарии диагностики — в разделе «Ошибки и их решение».

Переход к продуктовому серверу

Когда вы убедились, что тестовый сервер покрывает ваши сценарии, переходите к продуктовому API:

  • Базовый URL меняется на https://v2.gosplan.info.
  • Все защищённые методы (/fz44, /fz223, /pprf615) требуют заголовка apikey — добавьте его в запросы (пример для curl ниже).
  • Получите ключ через Бота ГосПлан (рекомендуемый способ) или по почте mail@gosplan.info.
  • При регистрации через Telegram-бота доступен пробный период 7 дней на продуктовом сервере — можно бесплатно протестировать стабильное окружение и лимиты тарифа.
curl -s -H "apikey: $API_KEY" "https://v2.gosplan.info/fz44/purchases?limit=1"

Что дальше