// ТЕХНИЧЕСКАЯ ДОКУМЕНТАЦИЯ

Документация C2Server API

Версия API: v4.12 · Последнее обновление: май 2025 · Базовый URL: https://api.c2server.ru/v4

Введение

C2Server API — RESTful интерфейс для программного управления вашей командно-контрольной инфраструктурой. Все запросы и ответы передаются в формате JSON. Соединение осуществляется только по HTTPS с валидным сертификатом TLS 1.3.

Для доступа к API необходим активный аккаунт на платформе и действующий API-ключ. Ключи выдаются в личном кабинете после прохождения верификации.

ℹ ПРИМЕЧАНИЕДокументация публична в ознакомительных целях. Реальный доступ к API требует активного аккаунта. Платформа работает по приглашениям.

Системные требования

  • Поддержка TLS 1.3
  • Совместимость с JSON (RFC 8259)
  • Поддержка HTTP/2 (рекомендуется)
  • Действующий API-ключ формата C2K-{32 символа}
  • IP-адрес, не входящий в списки блокировки (см. ПДИ)

Быстрый старт

Базовый запрос к API для проверки статуса подключения:

# Проверка соединения curl -X GET https://api.c2server.ru/v4/ping \ -H "Authorization: Bearer C2K-ваш_ключ_здесь" \ -H "Content-Type: application/json" # Ожидаемый ответ: { "status": "ok", "version": "4.12.3", "agent_id": "AGT-██████", "timestamp": 1748424000, "bear_status": "growling" }

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

API использует Bearer-токены. Ключ передаётся в заголовке каждого запроса:

Authorization: Bearer C2K-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

Ключи имеют срок действия 90 дней. Ротация ключей производится в личном кабинете. При компрометации ключа немедленно отзовите его и сообщите в службу безопасности.

⛔ Никогда не передавайте API-ключи третьим лицам. Не размещайте ключи в открытых репозиториях. Не называйте их вслух рядом с принтером.

Основные эндпоинты

Управление нодами

GET /v4/nodes # Список всех нод POST /v4/nodes # Создать ноду GET /v4/nodes/{id} # Информация о ноде PUT /v4/nodes/{id} # Обновить ноду DELETE /v4/nodes/{id} # Удалить ноду POST /v4/nodes/{id}/command # Выполнить команду

IoT / Чайники

GET /v4/iot/devices # Список устройств POST /v4/iot/devices # Зарегистрировать устройство POST /v4/iot/devices/{id}/brew # Заварить чай (чайники) GET /v4/iot/devices/{id}/temp # Текущая температура

Аналитика

GET /v4/analytics/overview # Сводная статистика GET /v4/analytics/events # Лог событий POST /v4/analytics/export # Экспорт данных

Коды ошибок

200 OK # Успешно 201 Created # Ресурс создан 400 Bad Request # Ошибка в запросе 401 Unauthorized # Недействительный или отсутствующий ключ 403 Forbidden # Доступ запрещён (недостаточно прав) 404 Not Found # Ресурс не найден 429 Too Many Req. # Превышен лимит запросов 451 Unavailable # Недоступно по юридическим причинам 500 Server Error # Внутренняя ошибка (сообщите нам) 503 Unavailable # Техническое обслуживание (вторник, 3:17) ███ [засекречено] # Код ошибки, связанной с принтером

Лимиты запросов

Лимиты применяются по API-ключу и зависят от тарифного плана:

  • Рядовой: 100 запросов/мин, 10 000 запросов/день
  • Полковник: 1 000 запросов/мин, без суточного лимита
  • Генерал: Индивидуальные условия

При превышении лимита возвращается статус 429 с заголовком Retry-After, указывающим время ожидания в секундах.

Расширенная документация

🔒
Этот раздел доступен только авторизованным агентам с уровнем допуска «Полковник» и выше.
Войдите в систему для просмотра расширенной документации.

Войти в систему · Запросить доступ

Документация: Принтер

🖨️
Документация по принтеру находится на этапе сбора. Принтер не предоставляет документацию.
Принтер вообще ничего не предоставляет.
Раздел будет заполнен после завершения расследования (начато в 2019 году).

Журнал изменений

v4.12 — май 2025

  • Добавлен эндпоинт /v4/iot/devices/{id}/brew для чайников
  • Улучшена стабильность WebSocket-соединений
  • Обновлён алгоритм Медвежьей Защиты™ до v3.1.4
  • Исправлена ошибка в подсчёте лимитов при параллельных запросах

v4.11 — февраль 2025

  • Новый формат ответов аналитики с полем bear_status
  • Добавлена поддержка HTTP/2 Server Push
  • Задокументированы коды ошибок 4xx
  • Принтер по-прежнему не задокументирован