Skip to main content
The public API uses API key authentication (not JWT). Create keys in Settings > API Keys.

Health check

This endpoint requires no authentication.
curl https://orca-klavest.app/api/v1/public/health
{
  "data": {
    "status": "ok",
    "version": "1.0.0"
  }
}

Upload a file

Upload a file for classification via multipart form data. Requires scan scope.
curl -X POST -H "Authorization: Bearer orca_live_abc123..." \
  -F "file=@data.csv" \
  https://orca-klavest.app/api/v1/public/upload
{
  "data": {
    "job_id": "e5f6g7h8",
    "file_name": "data.csv",
    "status": "queued"
  }
}

Get job status

Poll job status and retrieve results when complete. Requires read scope.
curl -H "Authorization: Bearer orca_live_abc123..." \
  https://orca-klavest.app/api/v1/public/jobs/{job_id}
{
  "data": {
    "job_id": "e5f6g7h8",
    "status": "completed",
    "progress": 100,
    "file_id": 88,
    "columns": [
      {
        "name": "email",
        "classification": "PII / Email",
        "confidence": 0.97
      }
    ]
  }
}

Trigger a scan

Trigger a classification scan on a connected data source. Requires scan scope.
curl -X POST -H "Authorization: Bearer orca_live_abc123..." \
  -H "Content-Type: application/json" \
  -d '{"source_id": 5, "table_name": "users"}' \
  https://orca-klavest.app/api/v1/public/scan/trigger
{
  "data": {
    "scan_id": "a1b2c3d4",
    "status": "queued",
    "estimated_tokens": 15
  }
}

Get scan status

Poll scan status. Requires scan scope.
curl -H "Authorization: Bearer orca_live_abc123..." \
  https://orca-klavest.app/api/v1/public/scan/{scan_id}/status

List alerts

List alerts filtered by severity and date. Requires read scope.
curl -H "Authorization: Bearer orca_live_abc123..." \
  "https://orca-klavest.app/api/v1/public/alerts?severity=critical&since=2024-01-01"
{
  "data": [
    {
      "id": 12,
      "severity": "critical",
      "message": "PII detected in production table",
      "created_at": "2024-11-14T12:00:00Z"
    }
  ],
  "meta": { "total": 1, "page": 1 }
}

Get lineage graph

Retrieve the data lineage graph for your organisation. Requires read scope.
curl -H "Authorization: Bearer orca_live_abc123..." \
  https://orca-klavest.app/api/v1/public/lineage

Create lineage edge

Add a lineage relationship between nodes. Requires write scope.
curl -X POST -H "Authorization: Bearer orca_live_abc123..." \
  -H "Content-Type: application/json" \
  -d '{"source_node_id": "...", "target_node_id": "..."}' \
  https://orca-klavest.app/api/v1/public/lineage/edges

Evaluate contract

Evaluate a data contract against the latest results. Requires read scope.
curl -H "Authorization: Bearer orca_live_abc123..." \
  "https://orca-klavest.app/api/v1/public/contracts/evaluate?contract_id=3"