Единое API с Bearer-ключом к реестру проверенных навыков. Получай скиллы с оценками, собирай пакеты
и запускай тот же офлайн-сканер безопасности, что работает в лаборатории — с любого сайта, агента или бэкенда.
Базовый URL API — сюда отправляйте запросы с вашим Bearer-ключом.
Базовый URL · локально
http://127.0.0.1:8787/v1
Базовый URL · продакшен
https://api.omnisolverskills.ru/v1
Те же форматы, та же Bearer-авторизация. Меняется только хост.
Гайд по интеграции
Самодостаточный разбор — ключи, авторизация, все эндпоинты, примеры кода и
модель доверия — собирается прямо из этого API. Держи его рядом с кодом.
Документацию можно смотреть бесплатно. Скачать файл — после регистрации, не чаще раза в 3 минуты.
Каждый запрос к /v1 авторизуется
Bearer-ключом в заголовке Authorization.
Заголовок
Authorization: Bearer skg_live_your_key_here
Рекомендуем · переменная окружения
# keep the key out of your sourceexport 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
Возвращает текущий ключ, его тариф, месячную квоту и остаток.
Получите проверенные скиллы и запустите скан — на своём стеке.
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"])
javascript · fetch
const KEY = process.env.SKILLGATE_KEY;
const BASE = "http://127.0.0.1:8787/v1";
const h = { Authorization: `Bearer ${KEY}`,
"Content-Type": "application/json" };
// list verified skillsconst skills = await (awaitfetch(
`${BASE}/skills?min_trust=80`, { headers: h })).json();
console.log(skills.data.map(s => `${s.trust} ${s.name}`));
// run a scanconst report = await (awaitfetch(`${BASE}/scan`, {
method: "POST", headers: h,
body: JSON.stringify({ source_type: "inline",
target: "# my skill\nDoes X" }),
})).json();
console.log(report.verdict, report.trust);
bash · curl
# list verified skillscurl -s "http://127.0.0.1:8787/v1/skills?min_trust=80" \
-H "Authorization: Bearer $SKILLGATE_KEY"# run a scancurl -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"}'
Ответы и ошибки
Любой ответ — JSON. Списочные эндпоинты возвращают
{ data, count }; у всех ошибок один формат.
Статус
Код
Значение
200
—
OK — запрос выполнен
400
bad_request
Не хватает данных или тело/параметры некорректны
401
unauthorized
Нет или неверный Bearer-ключ
404
not_found
Нет такого скилла, пакета или скана
429
rate_limited · quota_exceeded
Превышен лимит — смотрите Retry-After
Формат тела ошибки
application/json
{
"error": "unauthorized",
"message": "Missing or invalid API key. Send 'Authorization: Bearer <key>'."
}
Лимиты
Лимиты считаются по ключу: в минуту и за календарный месяц.
Тариф
Запросов / мин
Запросов / месяц
Цена
Free
30
1,000
$0
Pro
120
50,000
$29
Business
600
1,000,000
$99
Когда вы выходите за окно, приходит 429 с ошибкой
rate_limited (за минуту) или
quota_exceeded (за месяц) и заголовком
Retry-After в секундах. Подождите этот интервал и повторите.
Траст-скоринг
У каждого скилла четыре под-оценки. Они складываются в единый взвешенный
траст, который определяет вердикт.