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.

Authentication

ప్రతి request లో Authorization header లో bearer token ఉండాలి. Tokens Account → API tokens నుండి issue అవుతాయి; plaintext సృష్టించినప్పుడు ఒక్కసారి మాత్రమే మీకు చూపబడుతుంది. Token revoke చేస్తే తదుపరి call లో 401 తిరిగి వస్తుంది.

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

Token format: fxv_ తరువాత 43 base64url characters. Rest లో SHA-256 hash గా stored; plaintext server-side లో ఎప్పుడూ persist కాదు.

Rate పరిమితులు

ప్రతి authenticated request పై రెండు windows: 10 req/sec burst మరియు 60 req/min steady; రెండూ bearer hash పై keyed. Quota enforcement (per-month scan caps) దీని మీద layer అవుతుంది — Quotas & limits చూడండి.

Pagination

List endpoints (/api/v1/scans, /api/v1/findings) descending order లో (created_at, id) ఆధారంగా cursor-based pagination ఉపయోగిస్తాయి. తదుపరి page fetch చేయడానికి ?cursor=<next_cursor> pass చేయండి. Concurrent writes ఉన్నా cursor సరైనదే (OFFSET skew లేదు).

Error రూపాలు

ప్రతి error కనీసం error key ఉన్న JSON object.

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

Endpoints జాబితా

Scan ప్రారంభించండి

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 response

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

మీ scans జాబితా

GET/api/v1/scans

Calling token కు చెందిన org కోసం scans ను newest first గా return చేస్తుంది. ?cursor= తో paginate చేయండి. Default limit 50, max 100.

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

// 200 response

{
  "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-..."
}

Scan పొందండి

GET/api/v1/scans/{scanId}

Default గా scan envelope + per-category severity summary return అవుతుంది. Full report పొందడానికి ?include_findings=true pass చేయండి (noisy scans కు పెద్దదిగా ఉంటుంది — filters తో findings endpoint మంచిది).

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

Findings జాబితా

GET/api/v1/findings

Caller org లోని ప్రతి scan అంతటా filter చేయగల findings list. Filters: severity=critical,high, check_id=secrets.patterns, since=2026-04-01T00:00:00Z. Cursor-paginated.

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

// 200 response

{
  "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 specification

Machine-readable spec /docs/api/openapi (text/yaml) లో ఉంది. Typed clients కోసం మీ favourite codegen (openapi-typescript, openapi-python-client, లేదా ఏదైనా OpenAPI 3.1 toolchain) లో drop చేయండి.

REST API — Docs · FixVibe