RESTful API to integrate your tools with Kolva. Manage clients, deals, visits and contacts programmatically. Real-time webhooks for every event.
OpenAPI 3.1 SpecAuthentication
Generate API keys from Settings → Developer in your Kolva admin panel. Each key has scoped permissions and can be revoked at any time.
Recommended method
Granular permissions
read:clientswrite:clientsread:dealswrite:dealsread:visitswrite:visitsread:finance* (all)Endpoints
All endpoints follow REST conventions. Responses use JSON. Pagination with ?page= and ?limit= (max 100).
/api/v1/clientsManage your client database — list, create, update, deactivate.
/api/v1/contactsCRUD contacts within client records (JSONB contacts array).
/api/v1/dealsOrders and deals — create, update status, track revenue.
/api/v1/visitsField visits — plan, track check-in/out, manage schedules.
Rate Limits
100
requests / minute
429
status when exceeded
Retry-After
header included
Webhooks
Subscribe to events from Settings → Developer → Webhooks. Kolva sends POST requests to your URL with HMAC-SHA256 signature verification.
deal_createdFired when a new deal/order is created
deal_updatedFired when a deal status or amount changes
client_createdFired when a new client is added
client_updatedFired when client details are modified
visit_completedFired when a field rep checks out
invoice_createdFired when an invoice is generated
order_createdFired when an order is placed
contact_updatedFired when a client contact is modified
Every webhook POST includes a X-Kolva-Signature header. Verify it with HMAC-SHA256 using your webhook secret.
Retry policy: 3 attempts with exponential backoff (1min, 5min, 30min). After 10 consecutive failures, the webhook is auto-disabled.
Examples
curl -X GET "https://kolva.ai/api/v1/clients?page=1&limit=10" \ -H "X-Kolva-Key: kolva_sk_your_key_here"
curl -X POST "https://kolva.ai/api/v1/deals" \
-H "X-Kolva-Key: kolva_sk_your_key_here" \
-H "Content-Type: application/json" \
-d '{"client_id": "uuid", "total_ht": 1500, "currency": "EUR"}'const response = await fetch("https://kolva.ai/api/v1/visits?status=completed", {
headers: { "X-Kolva-Key": process.env.KOLVA_API_KEY },
});
const { data, total } = await response.json();
console.log(`Found ${total} completed visits`);const visit = await fetch("https://kolva.ai/api/v1/visits", {
method: "POST",
headers: {
"X-Kolva-Key": process.env.KOLVA_API_KEY,
"Content-Type": "application/json",
},
body: JSON.stringify({
client_id: "client-uuid",
commercial_id: "rep-uuid",
planned_date: "2026-03-15",
type: "visit",
}),
});
const { data } = await visit.json();Create your API key in Kolva settings, or check the OpenAPI spec for the full reference.