API Reference
The Kora AI Governance API is organized around REST. It accepts JSON request bodies, returns JSON responses, and uses standard HTTP status codes.
Base URL
https://api.korastratum.com/ai-governance/api/v1
Authentication
All endpoints require two headers:
Authorization: Bearer <your-api-key>
X-Tenant-ID: <your-tenant-id>
See Authentication for details on API key formats and environments.
Endpoints
Models
| Method | Endpoint | Description |
|---|---|---|
POST | /models | Register a new model |
GET | /models | List models with filtering |
GET | /models/{id} | Retrieve a model by ID |
PUT | /models/{id} | Update model metadata |
DELETE | /models/{id} | Archive a model |
Versions
| Method | Endpoint | Description |
|---|---|---|
POST | /models/{id}/versions | Create a new model version |
GET | /models/{id}/versions | List versions for a model |
GET | /models/{id}/versions/{versionId} | Retrieve a version by ID |
PUT | /models/{id}/versions/{versionId} | Update version metadata |
POST | /models/{id}/versions/{versionId}/promote | Promote version to next stage |
POST | /models/{id}/versions/{versionId}/approve | Approve a version for production |
Monitoring
| Method | Endpoint | Description |
|---|---|---|
POST | /models/{id}/predictions | Log prediction batch |
GET | /models/{id}/metrics | Get monitoring metrics |
GET | /models/{id}/metrics/timeseries | Get metric timeseries |
POST | /models/{id}/alerts | Create a monitoring alert rule |
GET | /models/{id}/alerts | List alert rules |
GET | /models/{id}/alerts/history | Get alert history |
Drift Detection
| Method | Endpoint | Description |
|---|---|---|
GET | /models/{id}/drift | Get current drift status |
POST | /models/{id}/drift/evaluate | Run drift evaluation on demand |
GET | /models/{id}/drift/history | Get drift evaluation history |
PUT | /models/{id}/drift/config | Update drift detection thresholds |
Fairness
| Method | Endpoint | Description |
|---|---|---|
POST | /models/{id}/fairness/evaluate | Run a fairness evaluation |
GET | /models/{id}/fairness/evaluations | List fairness evaluations |
GET | /models/{id}/fairness/evaluations/{evalId} | Retrieve evaluation results |
Explainability
| Method | Endpoint | Description |
|---|---|---|
POST | /models/{id}/explain | Generate explanation for a prediction |
POST | /models/{id}/explain/batch | Generate batch explanations |
GET | /models/{id}/feature-importance | Get global feature importance |
Experiments
| Method | Endpoint | Description |
|---|---|---|
POST | /experiments | Create an A/B experiment |
GET | /experiments | List experiments |
GET | /experiments/{id} | Retrieve an experiment by ID |
PUT | /experiments/{id} | Update experiment configuration |
POST | /experiments/{id}/start | Start an experiment |
POST | /experiments/{id}/stop | Stop an experiment |
GET | /experiments/{id}/results | Get experiment results |
Health
| Method | Endpoint | Description |
|---|---|---|
GET | /health | Health check (no auth required) |
GET | /ready | Readiness check (no auth required) |
Response format
Successful responses return the resource directly or in a paginated wrapper:
{
"id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"name": "credit-risk-scorer",
"risk_tier": "HIGH",
"status": "ACTIVE",
"latest_version": "1.2.0"
}
Paginated list responses:
{
"data": [...],
"next_cursor": "eyJpZCI6Ii4uLiJ9"
}
Error responses follow a consistent structure:
{
"error": "Bad Request",
"message": "name is required",
"status": 400
}