> ## 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.

# Frequently asked questions

> Answers to common LLM.kiwi questions on free access, API keys, available models, rate limits, data privacy, OpenAI compatibility, and integration options.

<AccordionGroup>
  <Accordion title="Is LLM.kiwi really free?">
    LLM.kiwi is currently free and does not require a credit card. Free access is still subject to capacity, rate limits, and fair use. See [Limits and pricing](/limits).
  </Accordion>

  <Accordion title="Do I need to download or host a model?">
    No. Your application sends HTTPS requests to the hosted LLM.kiwi API. You do not need a GPU, Docker, or a model server.
  </Accordion>

  <Accordion title="How do I get an API key?">
    Sign in at [llm.kiwi/login](https://llm.kiwi/login), open the [dashboard](https://llm.kiwi/dashboard), and create a key. Copy it when shown and store it safely.
  </Accordion>

  <Accordion title="What is the base URL?">
    Use `https://api.llm.kiwi/v1`. In an SDK, set this as the base URL. In direct HTTP, append an endpoint such as `/chat/completions`.
  </Accordion>

  <Accordion title="Which model should I choose?">
    Start with `auto` for general use. Test `hrllm` when Croatian-language quality is your main requirement. Query `GET /v1/models` for current availability.
  </Accordion>

  <Accordion title="Is the API OpenAI-compatible?">
    LLM.kiwi supports the OpenAI-compatible chat completions patterns documented here. Set the custom base URL in a compatible client. Features not listed in the LLM.kiwi [API reference](/api-reference) should not be assumed to work.
  </Accordion>

  <Accordion title="Can I use it from React or browser JavaScript?">
    Your frontend can use an AI feature, but it should call your backend. The backend holds the API key and calls LLM.kiwi. Never embed a private key in code sent to the browser.
  </Accordion>

  <Accordion title="Can I use it from a mobile app?">
    Use your own backend for the same reason as a browser app: secrets packaged with a mobile application can be extracted.
  </Accordion>

  <Accordion title="Does the API remember conversations?">
    No. Include the relevant system, user, and assistant messages with each request. Your application decides what history to store and resend.
  </Accordion>

  <Accordion title="Why does the same prompt produce different answers?">
    Language-model output can vary because of sampling and model routing. If consistency matters, make instructions precise, test model parameters supported by the endpoint, and validate the output.
  </Accordion>

  <Accordion title="Can I require JSON output?">
    You can request JSON, but your code must still parse and validate it. Define a schema, reject invalid fields, and provide a fallback when parsing fails.
  </Accordion>

  <Accordion title="What should I do if a key leaks?">
    Revoke it immediately in the dashboard, create a replacement, update the application's secret, and remove the exposed value from code and logs. Deleting only the latest Git commit may not remove it from history.
  </Accordion>

  <Accordion title="Why am I receiving a 401 error?">
    The key is missing, malformed, invalid, or revoked. Verify `Authorization: Bearer sk_kiwi_...` and confirm that the environment variable is available to the running process.
  </Accordion>

  <Accordion title="Why am I receiving a 429 error?">
    A request or capacity limit was reached. Wait, reduce request frequency or concurrency, and retry a limited number of times with exponential backoff.
  </Accordion>

  <Accordion title="Can I use LLM.kiwi in production?">
    Evaluate it against your reliability, privacy, capacity, and support requirements. At minimum, keep keys server-side, set timeouts, handle failures, validate model output, and provide a fallback. See [Best practices](/best-practices).
  </Accordion>

  <Accordion title="Where can I get help?">
    Follow [Troubleshooting](/troubleshooting) first. If the problem remains, email [support@llm.kiwi](mailto:support@llm.kiwi) with the status code, approximate time, SDK version, and a minimal redacted request. Never send a full API key.
  </Accordion>
</AccordionGroup>
