Kalsenti API
One API key for every Kalsenti model, in the request formats your code already speaks. Prepaid credit, priced per model.
On this page
Three request formats
The Kalsenti API answers requests in three formats, so you can keep the client code and SDKs you already use. Every model in the catalog can be called in all three, so pick the format that suits your code. A few features, such as structured output, depend on the model.
- Format
- Chat completions
- Endpoint
POST /v1/chat/completions- Works with
- The OpenAI SDK, and other clients for this format
| Format | Endpoint | Works with |
|---|---|---|
| Chat completions | POST /v1/chat/completions | The OpenAI SDK, and other clients for this format |
| Responses | POST /v1/responses | The OpenAI SDK’s Responses interface |
| Messages | POST /v1/messages | The Anthropic SDK |
Two more endpoints help along the way: GET /v1/models lists the model ids your key can use, and POST /v1/messages/count_tokens estimates the size of a request before you send it.
Base URL
Every endpoint lives under one address:
- Use
- API
- Address
https://gateway.kalsenti.ai- Use
- OpenAI SDK base URL
- Address
https://gateway.kalsenti.ai/v1- Use
- Anthropic SDK base URL
- Address
https://gateway.kalsenti.ai
| Use | Address |
|---|---|
| API | https://gateway.kalsenti.ai |
| OpenAI SDK base URL | https://gateway.kalsenti.ai/v1 |
| Anthropic SDK base URL | https://gateway.kalsenti.ai |
The Developer page in your dashboard shows the address for your account, ready to copy. If it ever differs from this page, use the one in the dashboard.
Requests are JSON over HTTPS, authenticated with an API key from the same page. See Authentication. A whole request looks like this:
curl https://gateway.kalsenti.ai/v1/chat/completions \
-H "Authorization: Bearer $KALSENTI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "deepseek-v4.1-flash-1017-raw",
"messages": [{ "role": "user", "content": "Write a haiku about the sea." }]
}'How credit works
Kalsenti is pay as you go, with prepaid credit:
- Every account starts at $0. Models only run once you’ve added credit on the Billing page.
- Each model has its own price per million input and output tokens, shown on the Models page.
- Each request is charged for the tokens it used, and the cost comes off your balance when the reply ends.
- Every request shows on the Usage page, with its tokens and what it cost.
If your balance can’t cover a request, it isn’t run and you get an insufficient_quota error. Nothing renews or charges your card by itself: you top up when you choose to. Usage and billing explains how a request’s cost is worked out.