> ## Documentation Index
> Fetch the complete documentation index at: https://docs.llm.kiwi/llms.txt
> Use this file to discover all available pages before exploring further.

# Models

> Compare LLM.kiwi models: the automatic router that selects the best model per request and the Croatian-focused model tuned for local language tasks.

Start with `auto` unless Croatian-focused generation is the main requirement for your application.

## At a glance

| Model   | Best for                                                        | Choose it when                                  |
| ------- | --------------------------------------------------------------- | ----------------------------------------------- |
| `auto`  | General chat, Q\&A, coding, prototyping, and multilingual tasks | You want the recommended default                |
| `hrllm` | Croatian-language writing and conversations                     | Croatian output quality is the main requirement |

<Note>
  Model availability and routing can change. For the models available to your account at runtime, call `GET /v1/models`.
</Note>

## Use `auto` by default

`auto` lets the LLM.kiwi gateway choose an available model without requiring you to change your integration.

```json theme={null}
{
  "model": "auto",
  "messages": [
    { "role": "user", "content": "Explain APIs in simple language." }
  ]
}
```

Use it for:

* General-purpose assistants
* Questions and summarization
* Coding and technical tasks
* Multilingual applications
* Prototypes and first integrations

Because routing may evolve, test important application behavior rather than depending on the identity of an underlying model.

## Use `hrllm` for Croatian

`hrllm` is intended for Croatian-language generation.

```json theme={null}
{
  "model": "hrllm",
  "messages": [
    { "role": "user", "content": "Objasni što je API jednostavnim riječima." }
  ]
}
```

Good candidates include:

* Croatian customer-support assistants
* Croatian article drafts and rewriting
* Croatian-language internal tools
* Translation involving Croatian

For English-only or general tasks, begin with `auto` and compare outputs before switching.

## List models programmatically

```bash theme={null}
curl "https://api.llm.kiwi/v1/models" \
  -H "Authorization: Bearer sk_kiwi_..."
```

A typical OpenAI-compatible response contains a `data` array:

```json theme={null}
{
  "object": "list",
  "data": [
    { "id": "auto", "object": "model" },
    { "id": "hrllm", "object": "model" }
  ]
}
```

Use the model `id` exactly as returned by the API.

## Make the choice

<AccordionGroup>
  <Accordion title="I am completely new">
    Use `auto`. It is the simplest starting point and is used throughout the quickstart.
  </Accordion>

  <Accordion title="My application must answer in Croatian">
    Test `hrllm` and `auto` with real examples from your application, then keep the option that produces more reliable results.
  </Accordion>

  <Accordion title="I am building a production application">
    Avoid assuming that `auto` always maps to the same underlying model. Validate structured outputs, set timeouts, and handle temporary errors.
  </Accordion>

  <Accordion title="I want to compare them fairly">
    Send the same system instruction and user message to both choices. Compare correctness, language quality, response time, and consistency across several realistic inputs.
  </Accordion>
</AccordionGroup>

<CardGroup cols={2}>
  <Card title="Working examples" icon="code" href="/examples">
    Copy examples for Python, JavaScript, cURL, and streaming.
  </Card>

  <Card title="Limits and pricing" icon="gauge" href="/limits">
    Understand free usage and rate limits.
  </Card>
</CardGroup>
