API для автоматизации

Интегрируйте проверки в свои системы.

API-доступ — 30 дней
25 запросов в день · все модули · JSON
3 250 ₽
POST /api/v1/domain
Один запрос — один готовый отчёт. Возвращает скор, статусы по 149-ФЗ / 152-ФЗ / безопасности, рекомендации и разделы.
1 запрос — 1 отчёт
POST /api/v1/domain возвращает JSON со скором, статусами и рекомендациями
Bearer-авторизация
Заголовок Authorization: Bearer <api_key> — стандарт для интеграций
Управление модулями
Передавайте modules: ["recon", "sast", "dast", "sca", "perimeter", "quality", "osint"] — и получайте всё сразу
JSON-ответ
Готовая структура: score, summary, recommendations, sections
const res = await fetch(
  'https://hercules-audit.ru/api/v1/domain',
  {
    method: 'POST',
    headers: {
      'Authorization': 'Bearer hkl_<your_key>',
      'Content-Type': 'application/json'
    },
    body: JSON.stringify({
      url: 'example.com',
      modules: ['recon','sast','dast','sca','perimeter','quality','osint']
    })
  }
);

const data = await res.json();
console.log(data.result.score.value);                // 50
console.log(data.result.recommendations.total);      // 13
import requests

res = requests.post(
    "https://hercules-audit.ru/api/v1/domain",
    headers={
        "Authorization": "Bearer hkl_<your_key>",
        "Content-Type": "application/json",
    },
    json={
        "url": "example.com",
        "modules": ["recon","sast","dast","sca","perimeter","quality","osint"]
    },
)

data = res.json()
print(data["result"]["score"]["value"])              # 50
print(data["result"]["recommendations"]["total"])    # 13
package main

import (
    "bytes"
    "encoding/json"
    "fmt"
    "io"
    "net/http"
)

type ScanRequest struct {
    URL     string   `json:"url"`
    Modules []string `json:"modules"`
}

func main() {
    payload := ScanRequest{
        URL:     "example.com",
        Modules: []string{"recon", "dast", "sast"},
    }
    body, _ := json.Marshal(payload)

    req, _ := http.NewRequest(
        "POST",
        "https://hercules-audit.ru/api/v1/domain",
        bytes.NewReader(body),
    )
    req.Header.Set("Authorization", "Bearer hkl_<your_key>")
    req.Header.Set("Content-Type", "application/json")

    res, _ := http.DefaultClient.Do(req)
    defer res.Body.Close()

    data, _ := io.ReadAll(res.Body)
    fmt.Println(string(data))
}
<?php

$ch = curl_init('https://hercules-audit.ru/api/v1/domain');
curl_setopt_array($ch, [
    CURLOPT_POST => true,
    CURLOPT_POSTFIELDS => json_encode([
        'url' => 'example.com',
        'modules' => ['recon','sast','dast','sca','perimeter','quality','osint'],
    ]),
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_HTTPHEADER => [
        'Authorization: Bearer hkl_<your_key>',
        'Content-Type: application/json',
    ],
]);

$data = json_decode(curl_exec($ch), true);
echo $data['result']['score']['value'];              // 50
echo $data['result']['recommendations']['total'];    // 13
using System.Net.Http;
using System.Text;
using System.Text.Json;

var client = new HttpClient();
client.DefaultRequestHeaders.Add(
    "Authorization",
    "Bearer hkl_<your_key>"
);

var payload = new {
    url     = "example.com",
    modules = new[] { "recon", "dast", "sast" }
};

var json    = JsonSerializer.Serialize(payload);
var content = new StringContent(json, Encoding.UTF8, "application/json");

var res = await client.PostAsync(
    "https://hercules-audit.ru/api/v1/domain", content
);
res.EnsureSuccessStatusCode();

var body = await res.Content.ReadAsStringAsync();
using var doc = JsonDocument.Parse(body);

var score = doc.RootElement
    .GetProperty("result")
    .GetProperty("score")
    .GetProperty("value")
    .GetInt32();

Console.WriteLine($"Скор: {score}/100");
import java.net.URI;
import java.net.http.*;

var client = HttpClient.newHttpClient();

var json = """
{
  "url": "example.com",
  "modules": ["recon", "sast", "dast", "sca", "perimeter", "quality", "osint"]
}
""";

var request = HttpRequest.newBuilder()
    .uri(URI.create("https://hercules-audit.ru/api/v1/domain"))
    .header("Authorization", "Bearer hkl_<your_key>")
    .header("Content-Type", "application/json")
    .POST(HttpRequest.BodyPublishers.ofString(json))
    .build();

var response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
import okhttp3.*

val client = OkHttpClient()

val json = """
{
  "url": "example.com",
  "modules": ["recon", "sast", "dast", "sca", "perimeter", "quality", "osint"]
}
"""

val body = json.toRequestBody(
    "application/json".toMediaType()
)

val request = Request.Builder()
    .url("https://hercules-audit.ru/api/v1/domain")
    .addHeader("Authorization", "Bearer hkl_<your_key>")
    .post(body)
    .build()

client.newCall(request).execute().use { response ->
    println(response.body?.string())
}
curl -X POST 'https://hercules-audit.ru/api/v1/domain' \
  -H 'Authorization: Bearer hkl_<your_key>' \
  -H 'Content-Type: application/json' \
  -d '{
    "url": "example.com",
    "modules": ["recon", "sast", "dast", "sca", "perimeter", "quality", "osint"]
  }'
score
value, level, color + 5 направлений: 149-ФЗ, 152-ФЗ, безопасность, инфраструктура, утечки
recommendations
Готовые формулировки с приоритетом: critical, high, medium, low
sections
6 блоков с детализацией: юр. комплаенс, безопасность, инфраструктура, утечки, качество