Contracts API
Manage data contracts and SLAs between producers and consumers.
Endpoints Overview
| Method | Endpoint | Description |
|---|---|---|
| GET | /contracts | List contracts |
| POST | /contracts | Create contract |
| GET | /contracts/{id} | Get details |
| PATCH | /contracts/{id} | Update contract |
| DELETE | /contracts/{id} | Delete contract |
List Contracts
GET /contracts
Query Parameters
| Parameter | Type | Description |
|---|---|---|
space_id | uuid | Filter by space |
producer_id | uuid | Filter by producer product |
consumer_id | uuid | Filter by consumer product |
status | string | active, draft, expired |
page | integer | Page number |
size | integer | Items per page |
Response
{
"items": [
{
"id": "...",
"name": "Customer Events SLA",
"description": "Freshness and quality guarantees",
"status": "active",
"producer": {
"id": "...",
"name": "Customer Events (Raw)"
},
"consumer": {
"id": "...",
"name": "Customer Analytics"
},
"sla": {
"freshness_hours": 1,
"availability_percent": 99.5
},
"created_at": "2025-06-01T00:00:00Z",
"expires_at": "2026-06-01T00:00:00Z"
}
],
"total": 5,
"page": 1,
"size": 20
}
Create Contract
POST /contracts
Request Body
{
"name": "Orders Data SLA",
"description": "## Overview\n\nThis contract defines...",
"space_id": "space-uuid",
"producer_id": "product-uuid",
"consumer_id": "product-uuid",
"sla": {
"freshness_hours": 24,
"availability_percent": 99.0,
"quality_score_min": 0.9
},
"expires_at": "2026-12-31T23:59:59Z"
}
SLA Fields
| Field | Type | Description |
|---|---|---|
freshness_hours | integer | Max data age in hours |
availability_percent | float | Uptime requirement (0-100) |
quality_score_min | float | Minimum quality score (0-1) |
response_time_hours | integer | Issue response SLA |
Update Contract
PATCH /contracts/{id}
Modify SLA Terms
{
"sla": {
"freshness_hours": 12,
"availability_percent": 99.9
}
}
Change Status
{
"status": "expired"
}
Contract Violations
When SLA terms are breached, violations are automatically tracked.
List Violations
GET /contracts/{id}/violations
Response
{
"items": [
{
"id": "...",
"type": "freshness",
"occurred_at": "2026-01-15T08:00:00Z",
"details": {
"expected": 24,
"actual": 36,
"unit": "hours"
},
"resolved": false
}
]
}
Acknowledge Violation
PATCH /contracts/{id}/violations/{violation_id}
{
"acknowledged": true,
"notes": "Known outage, backfill in progress"
}