Skip to content
kenari.

Free models

Models whose id ends in :free cost Rp 0. You can call them with a new account and a zero balance, within per-minute and daily limits that grow when you top up or subscribe. This page covers the :free suffix, the kenari-free route, and those limits.

Send a :free model id like any other model. This works on Chat completions, Messages and Responses.

Terminal window
curl https://kenari.id/v1/chat/completions \
-H "Authorization: Bearer $KENARI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "step-3-7-flash:free",
"messages": [{"role": "user", "content": "Hello!"}]
}'

List the free models that exist right now with a public call that needs no key:

Terminal window
curl -s https://kenari.id/v1/models | jq -r '.data[] | select(.pricing.free) | .id'

A free model can still show a catalog price in pricing. It is never charged.

kenari-free is a built-in route that picks a free model for you. Send it as the model and kenari tries the free models in a random order, moving to the next one when a model fails. It appears as a read-only route in BYOK & Routes and cannot be edited or deleted.

{
"model": "kenari-free",
"messages": [{"role": "user", "content": "Hello!"}]
}

If the request includes tools, kenari only tries free models that support tool calling. When none can, the request fails with HTTP 400. Send it to a named model that supports tools instead.

A plan can also send requests to kenari-free when its quota runs out. See Subscriptions. For routes you build yourself, see Routing and routes.

Free models have two limits per account, and both apply to every request on a free model.

LimitHow it works
Per minuteHow many requests the account can send to free models in a minute.
Per dayHow many successful requests the account can make to free models in a day. A value of 0 means no daily limit.

The limits depend on the account:

AccountWhat applies
New accountThe smallest limits. Free models work from the first request.
After a qualifying top upA higher daily limit and per-minute limit. An account qualifies once its top ups and plan payments add up to a threshold. Bonus balance from codes does not count.
With an active planThe highest per-minute limit. The daily limit comes from the plan if it sets one, and otherwise from the default for accounts with a plan.

A single model can carry its own per-minute or daily limit, which then applies instead of the account limit for that model. An account that has not yet qualified can also be held to a lower per-minute limit on every free model.

The limits and the top-up threshold can change, so they are not written here. Read them from either place:

  • The Plan page in the dashboard, and the plan table at the end of Subscriptions.
  • GET /api/public/pricing, which needs no key. Its free_tier object describes the three accounts above, with these fields:
Terminal window
curl -s https://kenari.id/api/public/pricing | jq '.free_tier'
FieldMeaning
daily, rpmDaily and per-minute limits for a new account.
threshold_idrRupiah of top ups and plan payments needed to qualify.
nextLimits after the account qualifies. It is null when no top up is needed, because new accounts already start there.
planLimits with an active plan. A plan’s own daily value is in the free_daily_quota_effective field of GET /api/plans.

Free models run on a best-effort basis, so speed and availability can differ from paid models. If free capacity is not enough for you, use a paid model.

A request over a free-model limit returns HTTP 429. See Rate limits for the error codes and how to retry.

Some models are reserved for accounts with an active plan. A request from any other account returns HTTP 403 with code subscribers_only. See Subscriptions.