Navigation
VigilbaseDocs

    Type at least two letters.

    Open Vigilbase One

    Agent API

    Run the security headers and email security checks over HTTP, with or without an API key, and handle rate limits, quotas and errors.

    The Agent API runs the two non-intrusive tools, Security headers and Email security, over HTTP. It needs no Turnstile check and no email verification, and works without an API key. All paths are on https://vigilbase.com.

    Endpoints

    Method and pathPurpose
    GET /api/v1/agent/toolsThe tool catalog, auth options and current rate limits
    POST /api/v1/agent/tools/security-headers/executeGrade a URL's HTTP security headers
    POST /api/v1/agent/tools/email-security/executeGrade a domain's email authentication records

    Other tools are not on this API. website-security, react2shell and fortibleed-check run in the browser with email verification, or through Vigilbase One with a signed-in CLI. Asking for them returns 404 with a message that says so.

    Run a check

    Send a JSON body with one field, target, for example {"target":"https://example.com"}. For security-headers it is a URL or domain (https:// is assumed when you leave out the scheme); for email-security it is a domain.

    Request

    POST /api/v1/agent/tools/security-headers/execute HTTP/1.1

    Host
    vigilbase.com
    Content-Type
    application/json

    Response200 OK

    Content-Type
    application/json
    API-Version
    1
    RateLimit-Limit
    10
    RateLimit-Remaining
    9

    A successful response looks like this:

    JSON
    {
      "success": true,
      "apiVersion": "1",
      "toolName": "security-headers",
      "target": "https://example.com",
      "grade": "B",
      "gradeScore": 72,
      "result": { "status": "warnings", "message": "...", "details": { } },
      "error": null,
      "uiUrl": "https://vigilbase.com/tools/security-headers",
      "skillUrl": "https://vigilbase.com/agent-skills/security-headers.md"
    }
    

    result holds the full scan result, in the same shape the tool page uses. The body may be at most 8 KiB and target at most 2,048 characters.

    curl -sS -X POST https://vigilbase.com/api/v1/agent/tools/email-security/execute \
      -H 'content-type: application/json' \
      -d '{"target":"example.com"}'
    

    Authentication

    You can call the API anonymously, or send a developer API key to raise the rate limit. Put the key in either header:

    HTTP
    Authorization: Bearer <api_key>
    X-Api-Key: <api_key>
    

    An invalid or expired key returns 401; it does not fall back to anonymous access. Create keys in Vigilbase One; see API keys.

    Rate limits and quotas

    Two limits apply.

    LimitAnonymousWith an API key
    Requests per minute10, per client IP30, per key
    Scans per hour20 per client IP and 20 per target, 1,000 overallSame

    The scan quota is shared with the browser tools and counts the same way with or without a key. GET /api/v1/agent/tools returns both limits in its rateLimit field.

    Every response carries rate limit headers: RateLimit, RateLimit-Policy, RateLimit-Limit, RateLimit-Remaining, RateLimit-Reset and the X-RateLimit-* equivalents.

    When a limit is used up, the API returns 429 with code rate_limit_exceeded, a Retry-After header and retryAfterSec in the body. Wait that many seconds before trying again. A spent scan quota can mean a wait of up to an hour, and no scan ran.

    Errors

    Errors use application/problem+json:

    JSON
    {
      "success": false,
      "error": { "code": "rate_limit_exceeded", "message": "...", "hint": "..." },
      "type": "https://vigilbase.com/developers/errors/rate-limit-exceeded",
      "title": "Rate Limit Exceeded",
      "status": 429,
      "detail": "...",
      "code": "rate_limit_exceeded",
      "retryAfterSec": 1800
    }
    
    StatusCodeMeaning
    400bad_requestInvalid JSON, or a missing or invalid target
    401unauthorizedInvalid or expired API key
    403forbiddenThe key lacks the scope this endpoint needs (tools:read or tools:execute)
    404not_foundThe tool is unknown or not on this API
    413payload_too_largeThe body is over 8 KiB
    422unprocessable_entityThe scan ran but could not assess the target, for example because of a bot challenge; grade is null and result explains why
    429rate_limit_exceededA rate limit or the scan quota is used up
    503service_unavailableScan storage is down and no scan ran; retry after Retry-After (30 seconds)

    Versioning

    Responses carry API-Version: 1. The older unversioned paths under /api/agent/tools still work but send Deprecation and Sunset headers; they are due to be retired on 1 September 2027. Use the /api/v1/ paths.

    Reference

    See the API reference for every field, or fetch the OpenAPI document at https://vigilbase.com/openapi.json.