API ドキュメント
Vulny REST API を使うと、セキュリティスキャンの実行とターゲットの管理をプログラムから行えます。Pro および Corporate プラン(および無料トライアル期間中)でご利用いただけます。設定 → API でキーを生成してください。すぐに使える CI/CD パイプラインについては DevSecOps パイプライン をご覧ください。
認証
API キーをベアラートークンとして、または X-API-Key ヘッダーで送信します:
curl https://vulny.app/api/v1/targets \ -H "Authorization: Bearer vlny_your_key"
レート制限
キーごとに 1 分あたり 120 リクエストです。すべてのレスポンスには X-RateLimit-Limit、X-RateLimit-Remaining、X-RateLimit-Reset ヘッダーが含まれます。制限を超えると、Retry-After ヘッダー付きで 429 が返されます。
スキャンを開始
POST /api/v1/scans — ターゲットに対してオンデマンドスキャンを開始します(新規の場合はアカウントに追加されます)。ポーリング用のスキャン id を返します。
curl -X POST https://vulny.app/api/v1/scans \
-H "Authorization: Bearer vlny_your_key" \
-H "Content-Type: application/json" \
-d '{"target":"example.com"}'
# → { "id": "...", "target": "example.com", "status": "queued" }スキャンのステータスと結果
GET /api/v1/scans/{id} — done が true になるまでポーリングします。深刻度の summary と findings のリストを返します — これらを使って CI パイプラインの合否を判定します。
curl https://vulny.app/api/v1/scans/SCAN_ID \
-H "Authorization: Bearer vlny_your_key"
# → { "status": "finished", "done": true, "progress": 100,
# "summary": { "critical": 1, "high": 2, "medium": 0, "low": 3, "total": 6 },
# "findings": [ { "severity": "critical", "title": "CVE-2024-...", "cvss_score": 9.8, "port": "443/tcp" } ] }スキャンを待機して重大な検出結果でビルドを失敗させる完全な GitLab CI および GitHub Actions の例については、DevSecOps パイプライン をご覧ください。
ターゲットを追加(一括、最大 1000 件)
POST /api/v1/targets/bulk — ドメインまたは IP を受け付け、必要に応じてタグを付けられます。プランのターゲット上限を順守します。
curl -X POST https://vulny.app/api/v1/targets/bulk \
-H "Authorization: Bearer vlny_your_key" \
-H "Content-Type: application/json" \
-d '{"targets":["example.com","203.0.113.10",{"value":"api.example.com","tags":["prod"]}]}'ターゲットを削除(一括)
DELETE /api/v1/targets/bulk — ID または値(IP/ホスト名)で削除します。
curl -X DELETE https://vulny.app/api/v1/targets/bulk \
-H "Authorization: Bearer vlny_your_key" \
-H "Content-Type: application/json" \
-d '{"values":["example.com","203.0.113.10"]}'OpenAPI 仕様
完全な機械可読仕様は /api/v1/openapi.json で入手できます — Postman、Insomnia、またはお使いのコードジェネレーターにインポートしてください。