FixVibe

// docs / rest api

REST API

Bearer-authenticated JSON API for scan automation, scan status, and findings. Passive scans are available through REST; active scans are available for paid plans only after the domain is verified and explicitly authorized in the dashboard.

Autentifikācija

Katram pieprasījumam jānes bearer tokens Authorization galvenē. Tokeni tiek izsniegti sadaļā Konts → API tokeni; atklātais teksts jums tiek parādīts tieši vienu reizi izveides brīdī. Tokena atsaukšana nākamajā izsaukumā atgriež 401.

bash
curl -H "Authorization: Bearer fxv_..." \
  https://fixvibe.app/api/v1/scans

Tokena formāts: fxv_, kam seko 43 base64url rakstzīmes. Glabāšanā tas ir SHA-256 jaucējums; atklātais teksts servera pusē nekad netiek saglabāts.

Ātruma limiti

Katrā autentificētā pieprasījumā ir divi logi: 10 req/sec burst un 60 req/min steady, abi piesaistīti bearer jaucējumam. Kvotu piemērošana (mēneša skenēšanas griesti) slāņojas virsū; skatiet Kvotas un limiti.

Lapošana

Sarakstu endpoint'i (/api/v1/scans, /api/v1/findings) izmanto kursora lapošanu, kas balstīta uz (created_at, id) dilstošā secībā. Padodiet ?cursor=<next_cursor>, lai iegūtu nākamo lapu. Kursors paliek pareizs arī paralēlu ierakstu laikā (nav OFFSET nobīdes).

Kļūdu formas

Katra kļūda ir JSON objekts vismaz ar error atslēgu.

jsonc
{ "error": "invalid_token" }                              // 401
{ "error": "forbidden" }                                  // 403
{ "error": "not_found" }                                  // 404
{ "error": "quota_exceeded", "quota": {...} }             // 429
{ "error": "rate_limited", "retry_after_seconds": 47 }    // 429
{ "error": "invalid_input", "issues": [...] }             // 400

Endpoint'i

Sākt skenēšanu

POST/api/v1/scans

Enqueues a passive scan by default. For verified domains with active authorization, paid plans can request active mode. Returns immediately with a queued scan id; poll GET /api/v1/scans/[scanId] until status === "completed".

curl -X POST https://fixvibe.app/api/v1/scans \
  -H "Authorization: Bearer fxv_..." \
  -H "content-type: application/json" \
  -d '{"target":"https://staging.example.com"}'

// 200 atbilde

{
  "id": "8f1c4e2a-8c3a-4b6f-9c0d-9b1e8f3c2a4d",
  "status": "queued",
  "target": "https://staging.example.com",
  "mode": "passive"
}

Uzskaitīt savas skenēšanas

GET/api/v1/scans

Atgriež skenēšanas organizācijai, kas piesaistīta izsaucošajam tokenam, jaunākās pirmās. Lapošana ar ?cursor=. Noklusējuma limits 50, maks. 100.

curl -H "Authorization: Bearer fxv_..." \
  "https://fixvibe.app/api/v1/scans?limit=25"

// 200 atbilde

{
  "scans": [
    {
      "id": "8f1c4e2a-...",
      "target_url": "https://staging.example.com",
      "target_hostname": "staging.example.com",
      "mode": "passive",
      "status": "completed",
      "started_at": "2026-05-07T14:00:00Z",
      "completed_at": "2026-05-07T14:00:23Z",
      "findings_count": { "critical": 1, "high": 3, "medium": 7, "low": 2, "info": 4 },
      "triggered_by": "api",
      "created_at": "2026-05-07T14:00:00Z"
    }
  ],
  "next_cursor": "2026-05-07T14:00:00Z:8f1c4e2a-..."
}

Iegūt skenējumu

GET/api/v1/scans/{scanId}

Pēc noklusējuma atgriež skenējuma aploksni + smaguma kopsavilkumu pa kategorijām. Padodiet ?include_findings=true, lai iegūtu pilnu pārskatu (liels trokšņainām skenēšanām; labāk izmantojiet atradumu endpoint'u ar filtriem).

curl -H "Authorization: Bearer fxv_..." \
  https://fixvibe.app/api/v1/scans/8f1c4e2a-8c3a-4b6f-9c0d-9b1e8f3c2a4d

Uzskaitīt atradumus

GET/api/v1/findings

Filtrējams atradumu saraksts visās izsaucēja organizācijas skenēšanās. Filtri: severity=critical,high, check_id=secrets.patterns, since=2026-04-01T00:00:00Z. Kursora lapošana.

curl -H "Authorization: Bearer fxv_..." \
  "https://fixvibe.app/api/v1/findings?severity=critical,high&limit=50"

// 200 atbilde

{
  "findings": [
    {
      "id": "...",
      "scan_id": "...",
      "check_id": "secrets.js-bundle-sweep",
      "severity": "critical",
      "title": "Supabase service role key exposed in JS bundle",
      "description": "...",
      "evidence": { ... },
      "remediation": "...",
      "cwe_id": "CWE-798",
      "created_at": "2026-05-07T14:00:23Z"
    }
  ],
  "next_cursor": null
}

OpenAPI specifikācija

Mašīnlasāma specifikācija adresē /docs/api/openapi (text/yaml). Ievietojiet savā iecienītajā codegen (openapi-typescript, openapi-python-client vai jebkurā OpenAPI 3.1 toolchain), lai iegūtu tipizētus klientus.

REST API — Docs · FixVibe