Skip to content

API Reference

Base URL: http://localhost:9400

All endpoints return JSON unless noted otherwise. No authentication is required (daemon binds to localhost only).


Health & Version

Method Path Tier
GET /api/v1/health Free
GET /api/v1/version Free

GET /api/v1/health

curl http://localhost:9400/api/v1/health
{"status": "ok", "version": "0.1.0"}

GET /api/v1/version

curl http://localhost:9400/api/v1/version
{
  "current": "0.1.0",
  "latest": "0.2.0",
  "has_update": true,
  "update_url": "https://github.com/sgchoi/provadyne/releases/tag/v0.2.0",
  "commit": "abc1234",
  "build_date": "2026-04-28"
}

MISRA Analysis

Method Path Tier
POST /api/v1/analyze Free (single), Pro (batch)

POST /api/v1/analyze

Request:

{
  "file_path": "/absolute/path/to/source.c",
  "rules": ["8.7", "15.5"],
  "batch": false,
  "output_format": "",
  "llm_mode": "local",
  "api_key": "",
  "llm_model": "",
  "suggest": true
}
Field Type Default Description
file_path string required Absolute path to C/C++ source file
rules []string [] Report only these rule ids — MISRA numbers (8.7), CERT ids (EXP34-C) or CWE (CWE-476/476); empty = all rules. The full ruleset still runs; this filters the reported violations. When set, the response carries a rules_filter block ({rules, kept, dropped}).
batch bool false Analyze entire directory (Pro)
output_format string "" "" (JSON), "sarif" (SARIF 2.1.0), "html" (self-contained interactive report), or "pdf" (Pro)
lang string "en" Pro — localize finding messages, ISO 26262 titles and the HTML report UI to ko/de/ja/zh. English is preserved in message_en. Requires the localization feature (en/empty is free).
llm_mode string "" "local", "api", or "" (disabled)
suggest bool false Request AI fix suggestions

Response:

{
  "file_path": "/absolute/path/to/source.c",
  "violations": [
    {
      "rule": "8.7",
      "severity": "required",
      "line": 42,
      "column": 5,
      "message": "...",
      "suggestion": null
    }
  ],
  "analyzed_at": "2026-04-28T17:00:00Z",
  "engine_version": "0.1.0"
}

License

Method Path Tier
GET /api/v1/license Free
POST /api/v1/license/activate Free

GET /api/v1/license

{"tier": "free", "email": "", "plan": "free", "expires_at": ""}

POST /api/v1/license/activate

curl -X POST http://localhost:9400/api/v1/license/activate \
  -H "Content-Type: application/json" \
  -d '{"license_data": "<base64-encoded .lic file>"}'

LLM

Method Path Tier
GET /api/v1/llm/status Free
GET /api/v1/llm/config Free
PUT /api/v1/llm/config Free

GET /api/v1/llm/status

{
  "available": true,
  "mode": "local",
  "active_provider": "ollama",
  "model": "codellama:13b"
}

PUT /api/v1/llm/config

{
  "mode": "local",
  "ollama_url": "http://localhost:11434",
  "ollama_model": "codellama:13b",
  "api_provider": "",
  "api_key": "",
  "api_model": ""
}

Traceability

Method Path Tier
POST /api/v1/trace/analyze Free
POST /api/v1/trace/matrix Pro
GET /api/v1/trace/orphans Free

POST /api/v1/trace/analyze

{
  "repo_path": "/path/to/repo",
  "since": "2026-01-01",
  "branch": "main"
}

POST /api/v1/trace/matrix

{
  "repo_path": "/path/to/repo",
  "since": "2026-01-01",
  "alm_provider": "jira",
  "depth": 3
}

Stub Generator

Method Path Tier
POST /api/v1/stubgen/analyze Free
POST /api/v1/stubgen/generate Free (single), Pro (recursive)

POST /api/v1/stubgen/analyze

{"file_path": "/path/to/module.h"}

POST /api/v1/stubgen/generate

{
  "file_path": "/path/to/module.h",
  "output_dir": "/path/to/output",
  "recursive": false
}