Справочник API

OmniSolver Skills API

Единое API с Bearer-ключом к реестру проверенных навыков. Получай скиллы с оценками, собирай пакеты и запускай тот же офлайн-сканер безопасности, что работает в лаборатории — с любого сайта, агента или бэкенда.

Базовый URL API — сюда отправляйте запросы с вашим Bearer-ключом.

Базовый URL · локально
http://127.0.0.1:8787/v1
Базовый URL · продакшен
https://api.omnisolverskills.ru/v1

Те же форматы, та же Bearer-авторизация. Меняется только хост.

Гайд по интеграции

Самодостаточный разбор — ключи, авторизация, все эндпоинты, примеры кода и модель доверия — собирается прямо из этого API. Держи его рядом с кодом.

Документацию можно смотреть бесплатно. Скачать файл — после регистрации, не чаще раза в 3 минуты.

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

От нуля до первого ответа с проверенным скиллом — за три шага.

  1. 1

    Заведите аккаунт

    Зарегистрируйтесь в консоли на /app. Новые аккаунты стартуют на тарифе Free — 30 запросов/мин, 1 000/месяц, без карты.

  2. 2

    Создайте API-ключ

    Откройте API Keys → New key, выберите тариф и скопируйте секрет. Он показывается один раз и выглядит как skg_live_….

  3. 3

    Сделайте первый запрос

    Проверьте, что ключ принимается, и посмотрите свой тариф и остаток месячной квоты:

    curl · проверка ключа
    curl -s http://127.0.0.1:8787/v1/me \
      -H "Authorization: Bearer $SKILLGATE_KEY"

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

Каждый запрос к /v1 авторизуется Bearer-ключом в заголовке Authorization.

Заголовок
Authorization: Bearer skg_live_your_key_here
Рекомендуем · переменная окружения
# keep the key out of your source
export SKILLGATE_KEY="skg_live_your_key_here"

curl -s http://127.0.0.1:8787/v1/me \
  -H "Authorization: Bearer $SKILLGATE_KEY"

Ключ показывается только один раз. Храните его в менеджере секретов или переменной окружения — не коммитьте и не отдавайте в браузер. Потеряли ключ? Отзовите его в консоли и создайте новый.

Эндпоинты

Все эндпоинты API работают на том же домене под /v1 и возвращают JSON. Списочные эндпоинты оборачивают результат в { data, count }.

GET /v1/me

Возвращает текущий ключ, его тариф, месячную квоту и остаток.

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

curl
curl -s http://127.0.0.1:8787/v1/me \
  -H "Authorization: Bearer $SKILLGATE_KEY"

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

application/json
{
  "key_prefix": "skg_live_3Hk9Qz",
  "plan": "pro",
  "plan_label": "Pro",
  "rate_per_min": 120,
  "monthly_quota": 50000,
  "used_this_month": 1842,
  "remaining": 48158
}
GET /v1/skills

Список проверенных навыков по убыванию траста. Все фильтры — необязательные query-параметры.

Параметры запроса

ПараметрТипОписание
categorystringBackend · Security · DevOps · Resume · Telegram Bots · Product · Frontend · Data
agentstringФильтр по поддерживаемому агенту: claude, codex, cursor, chatgpt
min_trustintТолько скиллы с трастом ≥ этого значения (0–100)
qstringПоиск по тексту: имя, краткое описание и теги
sortstringtrust (по умолчанию) · downloads · name · new
limitintСколько строк отдать, 1–100 (по умолчанию 50)

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

curl
curl -s "http://127.0.0.1:8787/v1/skills?category=Security&min_trust=80" \
  -H "Authorization: Bearer $SKILLGATE_KEY"

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

application/json
{
  "data": [
    {
      "slug": "secrets-leak-sentinel",
      "name": "Secrets Leak Sentinel",
      "category": "Security",
      "summary": "Pre-commit and runtime scanner that blocks secret patterns.",
      "agents": ["claude", "codex", "cursor", "chatgpt"],
      "security": 98, "usefulness": 95,
      "originality": 81, "compatibility": 96,
      "trust": 94, "verdict": "approved",
      "downloads": 20310, "version": "2.1.3",
      "license": "Apache-2.0",
      "tags": ["security", "secrets", "regex"]
    }
  ],
  "count": 1
}
GET /v1/skills/{slug}

Возвращает один скилл целиком, включая массив risks от сканера.

Параметры пути

ПараметрТипОписание
slugstringSlug скилла, например secrets-leak-sentinel

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

curl
curl -s http://127.0.0.1:8787/v1/skills/secrets-leak-sentinel \
  -H "Authorization: Bearer $SKILLGATE_KEY"

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

application/json
{
  "slug": "shell-oneliner-wrangler",
  "name": "Shell One-liner Wrangler",
  "category": "DevOps",
  "trust": 71, "verdict": "warning",
  "security": 62, "usefulness": 80,
  "originality": 55, "compatibility": 78,
  "agents": ["claude", "codex"],
  "risks": [
    {
      "level": "medium",
      "title": "Generates rm -rf patterns",
      "detail": "Requires a human confirmation gate."
    }
  ]
}
GET /v1/packs

Список готовых пакетов навыков — наборов проверенных скиллов, сгруппированных по задаче.

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

curl
curl -s http://127.0.0.1:8787/v1/packs \
  -H "Authorization: Bearer $SKILLGATE_KEY"

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

application/json
{
  "data": [
    {
      "slug": "security-hardening",
      "name": "Security Hardening",
      "category": "Security",
      "summary": "Secret scanning, STRIDE modeling and manifest hardening.",
      "skills": ["secrets-leak-sentinel", "threat-model-cartographer"],
      "price_usd": 29, "tier": "pro"
    }
  ],
  "count": 5
}
GET /v1/packs/{slug}

Возвращает пакет с полностью раскрытыми скиллами в поле resolved_skills.

Параметры пути

ПараметрТипОписание
slugstringSlug пакета, например security-hardening

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

curl
curl -s http://127.0.0.1:8787/v1/packs/security-hardening \
  -H "Authorization: Bearer $SKILLGATE_KEY"

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

application/json
{
  "slug": "security-hardening",
  "name": "Security Hardening",
  "price_usd": 29, "tier": "pro",
  "skills": ["secrets-leak-sentinel", "threat-model-cartographer"],
  "resolved_skills": [
    { "slug": "secrets-leak-sentinel", "trust": 94, "verdict": "approved" }
  ]
}
POST /v1/scan

Запускает офлайн-сканер по скиллу и возвращает полный отчёт о доверии. Источник — публичный GitHub-URL или вставленный текст.

Тело запроса

ПолеТипОписание
source_typestringgithub (берёт SKILL.md / README) или inline (сырой текст)
targetstringGitHub-ссылка на репозиторий/blob/raw — либо сам текст скилла

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

curl
curl -s -X POST http://127.0.0.1:8787/v1/scan \
  -H "Authorization: Bearer $SKILLGATE_KEY" \
  -H "Content-Type: application/json" \
  -d '{"source_type":"github","target":"https://github.com/owner/repo"}'

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

application/json
{
  "id": 42,
  "security": 88, "usefulness": 76,
  "originality": 70, "compatibility": 84,
  "trust": 82, "verdict": "approved",
  "agents": ["claude", "codex"],
  "risks": [
    { "level": "low", "title": "Outbound network call",
      "detail": "Pattern matched in the skill source; review before serving." }
  ],
  "recommendations": ["Looks production-ready. Publish to the registry."],
  "summary": "repo: scanned 4210 chars, 1 finding(s). Trust 82/100 -> approved.",
  "chars": 4210,
  "target": "https://github.com/owner/repo",
  "source_type": "github"
}
GET /v1/scan/{id}

Возвращает ранее сохранённый отчёт о скане по его числовому id.

Параметры пути

ПараметрТипОписание
idintid скана, который вернул POST /v1/scan

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

curl
curl -s http://127.0.0.1:8787/v1/scan/42 \
  -H "Authorization: Bearer $SKILLGATE_KEY"

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

application/json
{
  "id": 42,
  "target": "https://github.com/owner/repo",
  "source_type": "github",
  "trust": 82, "verdict": "approved",
  "created_at": 1717000000
}

Примеры кода

Получите проверенные скиллы и запустите скан — на своём стеке.

python · requests
import requests, os

KEY  = os.environ["SKILLGATE_KEY"]
BASE = "http://127.0.0.1:8787/v1"
h = {"Authorization": f"Bearer {KEY}"}

# list verified skills
skills = requests.get(f"{BASE}/skills", headers=h,
                      params={"min_trust": 80}).json()
for s in skills["data"]:
    print(s["trust"], s["name"])

# run a scan
report = requests.post(f"{BASE}/scan", headers=h, json={
    "source_type": "github",
    "target": "https://github.com/owner/repo",
}).json()
print(report["verdict"], report["trust"])

Ответы и ошибки

Любой ответ — JSON. Списочные эндпоинты возвращают { data, count }; у всех ошибок один формат.

СтатусКодЗначение
200OK — запрос выполнен
400bad_requestНе хватает данных или тело/параметры некорректны
401unauthorizedНет или неверный Bearer-ключ
404not_foundНет такого скилла, пакета или скана
429rate_limited · quota_exceededПревышен лимит — смотрите Retry-After

Формат тела ошибки

application/json
{
  "error": "unauthorized",
  "message": "Missing or invalid API key. Send 'Authorization: Bearer <key>'."
}

Лимиты

Лимиты считаются по ключу: в минуту и за календарный месяц.

ТарифЗапросов / минЗапросов / месяцЦена
Free301,000$0
Pro12050,000$29
Business6001,000,000$99

Когда вы выходите за окно, приходит 429 с ошибкой rate_limited (за минуту) или quota_exceeded (за месяц) и заголовком Retry-After в секундах. Подождите этот интервал и повторите.

Траст-скоринг

У каждого скилла четыре под-оценки. Они складываются в единый взвешенный траст, который определяет вердикт.

Под-оценки и веса

  • Безопасность40%

    Опасные паттерны, утечки секретов, обфускация, сетевой трафик наружу.

  • Полезность25%

    Структура, документация, примеры, frontmatter.

  • Оригинальность15%

    Пересечение с уже существующими скиллами в реестре.

  • Совместимость20%

    Маркеры Claude / Codex / Cursor / ChatGPT / MCP.

Пороги вердиктов

90
Одобрено

Траст ≥ 80 — можно публиковать и отдавать через API.

71
Внимание

Траст 60–79 — годится с проверкой; закройте отмеченные риски.

48
Отклонено

Траст < 60 — не пускается в реестр, пока не исправлено.

trust = security·0.40 + usefulness·0.25 + originality·0.15 + compatibility·0.20, округлённый до целого.