Build insurance into your product
The same engine that prices every policy on BimaStack, through one contract for every product: inputs in, a decision and a premium out, and a record of exactly which approved rates priced it.
curl -X POST https://bimastack.com/api/products/travel/execute \
-H "Authorization: Bearer $TOKEN" \
-H "API-Version: 2" -H "Content-Type: application/json" \
-d '{
"organizationId": "your-insurer",
"asOfDate": "2026-10-06",
"inputs": { "tripType": "SINGLE", "destination": "WORLDWIDE",
"departureDate": "2026-11-01", "returnDate": "2026-11-09" }
}'
→ { "outcome": "ACCEPT", "currency": "KES",
"premium": { "netAmount": 6200.00, "totalAmount": 6200.00 } }What the API does
Every screen on BimaStack is built on these, so they’re in production use already.
One contract, every product
Schema, execute, explain and simulate, the same for motor, medical, travel or anything configured.
Decisions, not just prices
ACCEPT, REFER or DECLINE with reasons, from the insurer’s own eligibility and underwriting rules.
Explain and replay
Every step of a calculation on request; any recorded quote re-run to see what changed.
Versioned rates
Each quote lists exactly which versions of which tables and workflows priced it.
Machine clients
OAuth2 client credentials bound to one organisation; secrets rotated or disabled instantly.
Predictable errors
Problem details with stable codes, field paths and a request id; every error at once.
Opening it up
What we’re building so you can use it yourself.
- Coming soon
Public API reference
Every endpoint, documented with examples.
- Coming soon
Keys from your console
Create and rotate API keys yourself.
- Coming soon
Test environment
A sandbox with sample products to build against.
- Coming soon
Webhooks
Be told when a policy is bought, renewed or claimed.
Pricing you can read
Rating logic is a small workflow language your team reviews and approves, not code hidden in a release.
workflow "motor-private-pricing" {
input vehicleValue : NUMBER
block MP_baseRate {
in x : NUMBER
out rate : NUMBER
param tableCode = "motor-private-base-rate"
binding: block "protected:table-rate:band"
}
formula MP_rawBase {
in value : NUMBER
in rate : NUMBER
expression: value * rate / 100
}
connect vehicleValue -> MP_baseRate.x
connect vehicleValue -> MP_rawBase.value
connect MP_baseRate.rate -> MP_rawBase.rate
}Tell us what you’re building
We’ll let you know as soon as the API reference and keys are ready, and help you get started early. Or write to info@bimastack.com.