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
}