# FreeTheAI: full reference

> FreeTheAI is a free, OpenAI-compatible AI API. One account and one API key
> give access to dozens of free models, including GLM 5.3, Kimi K3, MiniMax M3,
> Gemini 3.5 Flash, and gpt-oss, with 50 free requests a day and no credit
> card. It works in JanitorAI, SillyTavern, Claude Code, Codex, Cline, and any
> app that lets you set a custom base URL.

- Base URL: `https://api.freetheai.org/v1` (OpenAI SDKs and most apps)
- Full chat URL: `https://api.freetheai.org/v1/chat/completions` (apps that want the whole address, such as JanitorAI)
- Anthropic base URL: `https://api.freetheai.org` (Claude Code and the Anthropic SDK)
- Endpoints: Chat Completions, Responses, and Anthropic Messages, streaming and tool calls included; every free model answers on all three.
- Model IDs start with `fta/`, for example `fta/zai/glm-5.3` and `fta/kimi/k3`. The live list is at https://freetheai.org/models.
- Web search, for any model or app: `POST https://api.freetheai.org/v1/search` returns current results with text excerpts, and `POST https://api.freetheai.org/v1/answer` returns a short answer with its sources. Both use your API key and share a small daily allowance, apart from the free requests. The dog/ and lion/ models can also search on their own: send `web_search_options: {}` on Chat Completions and the sources come back as url_citation annotations.
- Free tier: a person creates a free account with a Gmail, Outlook, Yahoo, or iCloud address, confirms the email, creates an API key, and does a short check-in on freetheai.org once a day. Sign-up, sign-in, and the check-in include a human check.
- Limits: 50 free requests a day to start, resetting at 00:00 UTC; +50 a day for linking Discord. One request runs at a time on the free tier. Requests turned away because a model is busy do not count.
- Privacy: FreeTheAI does not store prompts or replies.
- Paid models and plans are coming soon; nobody needs to pay to use the free tier.
- FreeTheAI used to live at freetheai.xyz. It moved to freetheai.org and api.freetheai.org, and old freetheai.xyz links redirect.

Site: https://freetheai.org
API base URL: https://api.freetheai.org/v1
OpenAPI 3.1: https://api.freetheai.org/openapi.json
Founder: [Vibhek Soni](https://vibheksoni.com/) ([GitHub](https://github.com/vibheksoni), [X](https://x.com/ImVibhek), [LinkedIn](https://www.linkedin.com/in/vibheksoni/))

## Quickstart

Accounts are for people: each step below is done by the person on freetheai.org, not by an agent.

1. Create a free account on freetheai.org and confirm the email.
2. Create an API key in Dashboard > API keys. It starts with `ftai_` and is shown once.
3. Do today's check-in on freetheai.org.
4. Call the API:

```bash
curl https://api.freetheai.org/v1/chat/completions \
  -H "Authorization: Bearer $FREETHEAI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model": "fta/zai/glm-5.3", "messages": [{"role": "user", "content": "Hello!"}]}'
```

```python
from openai import OpenAI

client = OpenAI(base_url="https://api.freetheai.org/v1", api_key="ftai_your_key_here")
reply = client.chat.completions.create(
    model="fta/zai/glm-5.3",
    messages=[{"role": "user", "content": "Hello!"}],
)
print(reply.choices[0].message.content)
```

## FAQ

### Platform

**What is FreeTheAI?**

A controlled AI marketplace. One account, one wallet, one OpenAI-compatible endpoint that routes to every enabled provider and model. FreeTheAI owns routing, billing, listing review, and payouts.

**Do I need a separate key per provider?**

No. You create FreeTheAI API keys and spend from a single wallet. The platform dispatches your request to the route you picked and bills the listed price.

**Where do the prices come from?**

Every listing shows the price you actually pay, set at review time. Sellers propose pricing; FreeTheAI reviews and controls what is published.

### Free tier

**How does the free tier work?**

Free routes require a daily check-in with a verification challenge. Limits are server-owned and shown only when they are actively enforced.

**How do I raise my daily cap?**

Eligible account benefits are applied only after the related trust or contribution signal is verified and enforced by the server.

**What happens to a donated API key?**

It is validated against the upstream provider, encrypted at rest, and added to the shared free pool. Donated keys are never displayed, never attributed publicly, and can be revoked by you at any time from the donate page.

### Billing

**How do deposits work?**

You deposit into your FreeTheAI wallet and usage debits it per request at the listed pricing. Balances, limits, and transactions are visible in the dashboard wallet.

**What happens when a request fails?**

A failed request releases its wallet hold automatically. Buyers do not submit refund requests. Owner-verified usage corrections can reverse an incorrectly settled request.

### Sellers

**Can I sell access to my models?**

Yes. Apply from the dashboard: you provide your endpoint base URL and API key, pick endpoint types, and propose pricing. After review, the platform routes buyer traffic through your endpoint and you earn per call, minus the platform fee.

**Is my endpoint or identity exposed?**

No. Buyers see a platform-assigned seller label. Your upstream host, API key, and contact details stay private; the platform proxies all traffic.

**When do I get paid?**

Earnings become payable after the seven-day hold window. You request a payout from the seller console, then FreeTheAI sends it manually and records the transaction hash.

### Using the API

**Which URL and key do I put in my app?**

Use the base URL https://api.freetheai.org/v1 and an API key from Dashboard > API keys. Apps that ask for the full URL, like JanitorAI, need https://api.freetheai.org/v1/chat/completions. Copy model IDs exactly as they appear on the Models page. Step-by-step guides for 24 apps are at freetheai.org/setup.

**Why are my replies cut off, or why does my app say "No response"?**

Raise your app's max tokens (response length), or set it to 0 to use the model's full output length, and turn on streaming. Some models think before they answer, so long chats can take a while; if your app gives up waiting, retry or pick a faster model.

**SillyTavern shows "Bad Request". How do I fix it?**

On the API connection screen, set Prompt Post-Processing to "Semi-strict" and try again. Some models need at least one message from you in every request, and that setting makes sure there is one.

**What are the dog/ models good for?**

The fta/dog/ models are for everyday work that is not roleplay or coding: questions, writing and editing, summaries, research, translation, and reading images you attach. They reply in plain text only. They do not play characters, so roleplay apps such as JanitorAI usually get a content filter error, and they cannot make tool or function calls, so coding agents and tool-based apps do not work with them. For roleplay or coding, pick a GLM, Kimi, or MiniMax model instead.

**How do I turn the model's thinking off?**

On Dashboard > API keys, open scope & settings under your key, turn on "Turn thinking off", and save. Models that think first then answer straight away, with nothing to change in your app. If you see a second "thinking" part inside the reply text, your app's preset is asking the model to write its thoughts; turn that option off in the preset.

**Which model should I use for roleplay?**

On the Models page, pick Roleplay under Good for. It lists the models that suit roleplay, ranked by what roleplay apps use most. The dog/ and lion/ models are for general questions and writing, not roleplay.

### Errors and limits

**Why do I get "daily check-in required"?**

Free models unlock after a quick daily check-in at freetheai.org. Your dashboard shows when the next check-in opens. Daily free requests reset at 00:00 UTC.

**It says the model is busy or I am rate limited. What should I do?**

Free models can get busy at peak times. Wait a minute and retry, or switch to another model. Requests turned away because a model was busy do not count toward your daily free requests.

**My message was blocked or "rejected". Is my setup wrong?**

Usually not. Some models have a content filter that can block a message or its reply. Retry, rephrase a little, or switch to another model.

**Do failed requests count against my daily limit?**

No. A request only counts when it gets a real answer. Errors, busy models, and requests turned away are given back right away. A reply that breaks off partway counts only if a real amount of text already reached you.

### Account and support

**Which email can I sign up with?**

Use an address from a major provider such as Gmail, Yahoo, or Outlook. Some privacy-focused and temporary email services are not accepted. Verify your email from the link we send before using the API.

**My API access is on hold. What now?**

Open an appeal from Dashboard > Support and choose the appeal category. Staff review every appeal in order and you get a notification with the result. The decision on an appeal is final, and creating another account to get around a hold gets that account closed too. Appeals are handled on the site only, not in Discord.

**What should I include when I ask for help?**

Your signup email, a screenshot of the error, a screenshot of your app's connection settings with the API key hidden, the error ID if there is one, and roughly when it happened. That lets us find the problem without back and forth.

**I forgot my password or got logged out. What do I do?**

Use "Forgot password?" on the login page to get a reset link by email. Don't make a new account to get back in: FreeTheAI allows one account per person, and extra accounts are put on hold.

**The security check or check-in game doesn't work for me.**

Open freetheai.org in Chrome, Edge, or Safari with ad blockers and other extensions turned off for the site (or in a private window), turn off any VPN, and stay on one connection until you finish. If it still fails, try another browser or device.

**Can people in my household have their own accounts?**

Yes. Each person signs up with their own email and uses only their own account and API key. Don't share accounts or keys. If an account is put on hold, its owner appeals from that account.

## API errors

Every message the API answers with, word for word (https://freetheai.org/docs/errors).

### Your key and account

The request reached FreeTheAI, but the key or account cannot use it yet.

#### 401 Unauthorized

Message: `unauthorized`

The request has no API key, or the key is wrong, revoked, or expired.

1. Send the key as `Authorization: Bearer ftai_...` (in most apps: paste it into the API key field).
2. Check the key is active at https://freetheai.org/dashboard/api-keys. If it was revoked or you lost it, create a new one.

#### 401 Not a complete key

Message: `This is not a complete FreeTheAI API key. A key starts with ftai_ and is 53 characters long`

Only part of a key was pasted, usually the short start the API keys page shows.

1. The full key is shown only once, when you create it. If you no longer have it, create a new key and paste the whole key into your app.

#### 403 Daily check-in required

Message: `Daily check-in required for free models. Visit https://freetheai.org to solve the captcha.`

Free models need a quick check-in once a day. It resets at 00:00 UTC.

1. Sign in on freetheai.org and do the check-in, then send the request again. Your key does not change.
2. Paid models never need a check-in.

#### 403 Email not confirmed

Message: `Confirm your email address to use the API.`

The account has not confirmed its email address yet.

1. Sign in on freetheai.org, send the confirmation link, and open it from your inbox (check spam).

#### 403 Account on hold

Message: `This account's API access is on hold pending an abuse review.`

API access for this account is paused while it is reviewed.

1. Open Support in your dashboard and send an appeal. Holds are reviewed by people; one account per person.

#### 403 Address not on the key’s allowlist

Message: `This API key only accepts requests from the IP addresses on its allowlist`

The key has an IP allowlist and the request came from another address (home addresses change often).

1. Add your current address to the key, or clear its IP allowlist, at https://freetheai.org/dashboard/api-keys.

#### 403 Model not allowed on this key

Message: `This API key's model list does not include this model.`

The key is limited to certain models, and this is not one of them.

1. Add the model to the key, or clear the key’s model list, at https://freetheai.org/dashboard/api-keys.

#### 403 Relayed request

Message: `Requests relayed through a Cloudflare Worker are not accepted.`

The request came through another service instead of from your app or device.

1. Call the API directly. In RisuAI on the web, turn on Settings > Advanced Settings > Force Plain Fetch.

#### 403 App not supported

Message: `LoreBary is not supported on FreeTheAI. Use your API key directly in another app.`

Requests from this app are not accepted.

1. Use your key in another app; the setup guides at https://freetheai.org/setup cover 24 of them.

### The request itself

The request was refused before any reply, because of what it asks for.

#### 404 Model not found

Message: `was not found. Use a model ID from https://api.freetheai.org/v1/models`

No model has that ID. Model IDs look like `fta/zai/glm-5.3`; old IDs from freetheai.xyz no longer work.

1. Copy an ID from https://freetheai.org/models or from `GET https://api.freetheai.org/v1/models`, including the `fta/.../` part.

#### 400 Model accepts text only

Message: `This model accepts text only. Remove the images, or pick a model that accepts images`

The request has images, and this model cannot read them.

1. Remove the images, or pick a model marked for images on https://freetheai.org/models.

#### 400 Key set to tool-capable models only

Message: `This API key is set to tool-capable models only, and this model cannot take tool calls.`

The key has the "Tool-capable models only" switch on, and this model cannot use tools.

1. Pick a model from `/v1/models` (the key only lists tool-capable ones), or turn the switch off on the API keys page.

#### 400 Media model on a chat endpoint

Message: `This model generates media. Create a task with POST /v1/videos or POST /v1/images/generations`

Image and video models run as tasks, not chat.

1. Create a task with the endpoint named in the message and poll it until it completes (see https://freetheai.org/docs).

#### 400 Content filtered

Message: `Content filtered: the model's content filter blocked this request or its reply.`

The model’s own safety filter refused the message or its reply. It is not a fault with your key.

1. Rephrase the message, or use another model.

#### 400 Content filtered on dog/ or lion/ models

Message: `Content filtered: dog/ models are for general questions, writing, and images.`

The fta/dog/ and fta/lion/ models are for general questions, writing, images, and research. Their filter often refuses coding, roleplay, and character chats.

1. For coding or roleplay, use an fta/zai or fta/kimi model.

#### 400 Settings the model does not accept

Message: `the model rejected one of the request's settings`

A generation setting (temperature, top_p, penalties, max tokens) has a value this model refuses.

1. Reset your app’s generation settings to their defaults and try again.

#### 400 No message from you

Message: `the model needs at least one message from you in the request`

The request only had system or character messages. Some apps send that by default.

1. In SillyTavern: API Connections > Prompt Post-Processing > Semi-strict. In other apps, set role handling to semi-strict or strict.

#### 400 Conversation too long

Message: `the conversation is too long for this model`

The chat is longer than this model can read at once.

1. Lower your app’s context size, or start a new chat.

#### 400 Request rejected as invalid

Message: `the provider rejected this request as invalid; check the messages and parameters.`

The model refused the request’s shape: an empty message, an unusual role order, or a parameter it does not take.

1. Reset your app’s generation settings, and turn on semi-strict prompt processing if your app has it.
2. If it keeps happening, open a ticket with the error id from the message.

#### 400 Invalid JSON

Message: `invalid json payload`

The request body is not valid JSON for this endpoint.

1. Check the body, and that the URL matches the format you send (for example `/v1/chat/completions` for OpenAI chat).

#### 400 Missing model

Message: `missing model`

The request does not name a model.

1. Set the model field to an ID from https://freetheai.org/models.

#### 413 Request too large

Message: `request body is too large`

The request is over the size limit, usually a long chat with many images.

1. Shorten the chat history or lower your app’s context size, and send fewer or smaller images.

### Your limits

Free accounts have daily limits. These reset on their own; the Free usage page in your dashboard shows how much you have used.

#### 429 Too many requests at once

Message: `concurrency limit reached: your account already has as many requests running as its plan allows.`

A reply is still running, and free accounts run one request at a time. Coding tools often send several at once.

1. Wait for the current reply to finish (or stop it), then send again. Most coding tools retry these on their own.

#### 429 Daily free requests used

Message: `Daily free request limit reached. It resets at 00:00 UTC`

The account has used today’s free requests. Failed requests do not count.

1. Wait for 00:00 UTC, or raise the limit: the Free usage page lists the ways, such as linking Discord.

#### 429 Free usage window used

Message: `You've used your free usage for this 5-hour window.`

The account used its free usage for this 5-hour window (there are also daily and weekly windows).

1. Wait until the time in the message, or link Discord on the Free usage page for higher limits.

#### 429 Request too large for the free tier

Message: `This request is too large for the free tier.`

One request is bigger than the free tier allows.

1. Lower your app’s context size or start a new chat, then retry.

#### 429 Daily budget for these models used

Message: `Daily token budget for this provider is used up.`

Some model families have a daily token budget per account, and yours is used for today.

1. Use another model until 00:00 UTC; every other model still works. The Free usage page shows each budget.

#### 429 Rate limit

Message: `rate limit reached`

Too many requests in a short time.

1. Slow down and retry after a short wait.

### Busy or paused models

The request was fine, but the model cannot take it right now. These are not your limits, and other models keep working.

#### 503 Model busy

Message: `this model is busy right now; try again in a minute or pick another model.`

The model has no free capacity this minute. These refusals do not count against your limits.

1. Retry in a minute, or pick another model.

#### 503 Shared daily limit reached

Message: `has hit its shared daily limit (for everyone, not your own usage).`

Some models share one daily limit across everyone so they last all week. When it is used up, the model is paused for everyone until the time in the message, even if your own allowance still has room. The status page shows which models are paused.

1. Use another model until then; for coding, fta/zai/glm-5.3 is a good switch.
2. Check https://freetheai.org/status for when it is back.

#### 503 Paused while capacity refills

Message: `this model is paused for everyone while its shared capacity refills`

The model is paused for everyone for a few hours while its capacity refills.

1. Use another model meanwhile, and check https://freetheai.org/status.

#### 503 Free capacity used up

Message: `this model's free capacity is used up right now`

The model’s free capacity is used for now.

1. Try again later, or pick another model.

#### 503 Model temporarily unavailable

Message: `this model is temporarily unavailable`

The model is offline for now.

1. Try again later, or pick another model.

#### 502 Upstream temporarily unavailable

Message: `upstream provider temporarily unavailable.`

The model did not answer this time. These do not count against your limits.

1. Retry. For long replies, turn on streaming in your app: very long replies without streaming can time out.
2. If it keeps happening, open a ticket with the error id from the message.

#### 502 Upstream rate limited

Message: `upstream provider is rate limited.`

The model is getting too many requests this minute.

1. Retry in a minute, or pick another model.

#### 502 Model server error

Message: `the model's server hit an error; try again in a moment.`

The model’s server failed this time.

1. Try again in a moment.

#### 502 Stream interrupted

Message: `stream interrupted. Error id:`

The reply stopped partway. A cut-off that delivered almost nothing is not counted.

1. Regenerate the reply. If it keeps happening, open a ticket with the error id.

#### 503 Free request check unavailable

Message: `the free request check is temporarily unavailable; try again in a moment.`

A short hiccup on our side while counting the request.

1. Try again in a moment.

#### 400 Request failed

Message: `request failed`

Something went wrong that has no more specific message.

1. Check the model ID and the request body. If it keeps happening, open a ticket with the time, the model, and your app’s name.

### Paid usage

Paid models spend wallet balance.

#### 402 Insufficient wallet balance

Message: `insufficient wallet balance`

The wallet does not have enough balance for this paid request.

1. Add credits on the Credits page, or use a free model.

#### 402 Key budget used

Message: `api key budget exhausted`

The key reached the spending budget set on it.

1. Raise or clear the key’s budget at https://freetheai.org/dashboard/api-keys.

### Messages from your app

Common messages your app shows that do not come from the API itself.

#### App Claude Code: two keys set

Message: `Both ANTHROPIC_AUTH_TOKEN and ANTHROPIC_API_KEY set`

Claude Code found two keys in your environment and may use the wrong one.

1. Keep only `ANTHROPIC_AUTH_TOKEN` set to your FreeTheAI key, and unset `ANTHROPIC_API_KEY`. The Claude Code guide is at https://freetheai.org/setup/claude-code.

#### App Failed to fetch / NetworkError

Message: `Failed to fetch`

The browser did not send the request at all. The usual cause is a key pasted only partly, or with a stray character.

1. Create a new key, paste the whole key, and reload the app. Check the base URL is `https://api.freetheai.org/v1`.

#### App No response from bot

Message: `No response from bot`

The app gave up waiting while the model was still thinking. Long chats on thinking models take longer to start.

1. Retry, turn the model’s thinking off on your key (API keys page), or use a faster model.

## Blog posts

### JanitorAI Free API in 2026: A Free Proxy That Actually Works

URL: https://freetheai.org/blog/janitor-ai-free-api
Updated: 2026-10-17

**Quick answer:** Create a free account at freetheai.org, make an API key, then in JanitorAI open API Settings, choose Proxy, and paste `https://api.freetheai.org/v1/chat/completions` as the Proxy URL, your key, and a model such as `fta/zai/glm-5.3`. Save, refresh the page, and do the daily check-in.

#### What you need before you start

JanitorAI can talk to any OpenAI-compatible API through its Proxy option. FreeTheAI is one: a free OpenAI-compatible API with dozens of free models, no credit card, and no billing for the free tier. You need three things:

1. A FreeTheAI account. Sign up at freetheai.org with a Gmail, Outlook, Yahoo, or iCloud address, then confirm your email from the link we send.
2. An API key. Open Dashboard > API keys and create one. It starts with `ftai_` and is 53 characters long. It is shown once, so copy the whole thing.
3. Today's check-in. Free models unlock after a short check-in at freetheai.org. It lasts until 00:00 UTC.

#### The exact JanitorAI proxy settings

These are the values to paste. Every field matters, and the Proxy URL is the one most people get wrong.

| Field | Value |
| --- | --- |
| Configuration Name | FreeTheAI (any name works) |
| Model Name | `fta/zai/glm-5.3` |
| Proxy URL | `https://api.freetheai.org/v1/chat/completions` |
| API Key | Your full `ftai_...` key (53 characters) |
| Custom Prompt | Leave empty at first |

> The Proxy URL must end in `/chat/completions`. The base URL alone (`.../v1`) is what other apps want, but JanitorAI needs the full address.

#### Step by step

1. Open any character and start a chat. The character has to allow proxies.
2. Tap the menu (three lines) at the top right of the chat, then **API Settings**.
3. Choose **Proxy**, then **+ Add Configuration**, and fill in the table above.
4. Press **Save Settings**, then refresh the page (Ctrl+Shift+R on a computer, pull to refresh on a phone).
5. Do today's check-in at freetheai.org if you have not yet, then send a message.

If the first reply arrives, you are done. If not, the [error guide](https://freetheai.org/blog/janitor-ai-no-response-from-bot) matches every JanitorAI message to its fix.

#### Which free model to pick for roleplay

Copy model IDs exactly as they appear on the [Models page](https://freetheai.org/models); they always start with `fta/`. These are good places to start:

| Model ID | Context | Why pick it |
| --- | --- | --- |
| `fta/zai/glm-5.3` | 1M tokens | The best all-round start: strong writing and a huge context for long chats. |
| `fta/kimi/k3` | 1M tokens | Thinks before it answers, so replies are careful but can take 10 to 60 seconds. |
| `fta/zai/glm-5.3-flash` | 1M tokens | A lighter GLM for quicker back-and-forth. |
| `fta/mmx/minimax-m3` | 1M tokens | Another long-context option with a different writing style. |

For a deeper comparison, see [the best free models for roleplay](https://freetheai.org/blog/best-free-ai-models-for-roleplay).

#### How many free messages you get

Every account gets **50 free requests a day**. The count resets at 00:00 UTC, and the Free usage page in your dashboard shows how many you have left and when they reset. You can raise the limit:

- **Link Discord** in Settings for +50 requests a day.
- Members with the **Valid** role in our Discord server get more on top.
- **Donate an API key** you do not use from Dashboard > Donate keys for a further boost.

A request that fails on our side, or that is turned away because a model is busy, does not count. One request runs at a time on the free tier, so wait for a reply before you press regenerate.

#### Tips for better replies

- Set **Max new tokens** to 0 to use the model's full output length, or raise it if replies end mid-sentence.
- Keep **streaming** on for long replies. It shows text as it is written and avoids timeouts.
- If a thinking model is slow, give it a moment instead of retrying. Retrying while it works starts a second request.
- Long chats with huge prompts take longer. Starting a new chat or lowering the context size speeds things up.

#### FAQ

**Is there really a free API for JanitorAI?**

Yes. FreeTheAI gives every verified account 50 free requests a day on models like GLM 5.3 and Kimi K3, with no credit card. You need a daily check-in and an API key.

**What is the JanitorAI proxy URL for FreeTheAI?**

https://api.freetheai.org/v1/chat/completions. It must end in /chat/completions.

**Why does JanitorAI say "Failed to fetch" or "network error"?**

The Proxy URL is wrong, the key was pasted incompletely, or the page was not refreshed after saving. Check the URL, paste the full 53-character key, save, and reload.

**Does it work on my phone?**

Yes. JanitorAI runs in the browser on your phone, and the settings are the same. After saving, pull down to refresh the page so JanitorAI loads the new proxy.

**Is my chat stored?**

FreeTheAI does not store your prompts or replies. The model provider handles your request as described in our privacy policy.

### Free GLM 5.3 API: Use GLM 5.3 and GLM 5.3 Flash Without Paying

URL: https://freetheai.org/blog/free-glm-5-3-api
Updated: 2026-10-02

**Quick answer:** Sign up at freetheai.org, create an API key, do the daily check-in, then call `https://api.freetheai.org/v1/chat/completions` with the model `fta/zai/glm-5.3`. Use `fta/zai/glm-5.3-flash` when you need images or faster replies.

#### What you get for free

FreeTheAI serves two GLM models on its free tier. Both work through one key and one base URL, and both are listed with their current limits on the [models page](https://freetheai.org/models?q=glm).

| Model ID | Best for | Images |
| --- | --- | --- |
| `fta/zai/glm-5.3` | Coding, agents, long documents, roleplay | No (text only) |
| `fta/zai/glm-5.3-flash` | Quick answers, background tasks, pictures | Yes |

Both models list a very large context window and up to about 131K output tokens on their model pages. Use the full model ID, including the `fta/zai/` prefix, in every request.

#### Get a key and make your first call

1. Create a free account at freetheai.org with a Gmail, Outlook, Yahoo, or iCloud address and confirm your email.
2. Open Dashboard > API keys and create a key. It is shown once, so copy all of it.
3. Do today's check-in. Free models unlock until 00:00 UTC.
4. Send a request to the base URL below.

```bash
curl https://api.freetheai.org/v1/chat/completions \
  -H "Authorization: Bearer ftai_your_key_here" \
  -H "Content-Type: application/json" \
  -d '{"model": "fta/zai/glm-5.3", "messages": [{"role": "user", "content": "Say hello in five words."}]}'
```

In an app, the base URL is `https://api.freetheai.org/v1`. Apps that ask for the full address (JanitorAI, for example) need `https://api.freetheai.org/v1/chat/completions`.

#### Turn thinking on or off

GLM 5.3 reasons before it answers unless you ask it not to. Thinking helps with code and hard questions, but it makes replies slower and uses more tokens. To turn it off for a request, send either of these fields:

```json
{
  "model": "fta/zai/glm-5.3",
  "thinking": { "type": "disabled" },
  "messages": [{ "role": "user", "content": "Summarize this in one line." }]
}
```

Or use the OpenAI-style switch `"reasoning_effort": "none"`. Leave both out to keep the model's default. The reasoning, when there is some, arrives in `reasoning_content`, separate from the reply text.

#### Images: use GLM 5.3 Flash

GLM 5.3 reads text only. A request that includes a picture gets a clear 400 error that says the model accepts text only. Send pictures to `fta/zai/glm-5.3-flash` instead, as standard OpenAI `image_url` content parts (a data URL or an https link).

#### Use it in your apps

- **Roleplay apps**: [JanitorAI](https://freetheai.org/setup/janitor-ai), [SillyTavern](https://freetheai.org/setup/sillytavern), [Chub AI](https://freetheai.org/setup/chub-ai), and [RisuAI](https://freetheai.org/setup/risuai) all work with `fta/zai/glm-5.3`.
- **Coding agents**: [Claude Code](https://freetheai.org/setup/claude-code), [Cline](https://freetheai.org/setup/cline), [OpenCode](https://freetheai.org/setup/opencode), and [Kilo Code](https://freetheai.org/setup/kilo-code). Tool calls work.
- **Chat apps**: [Open WebUI](https://freetheai.org/setup/open-webui), [LibreChat](https://freetheai.org/setup/librechat), [Chatbox](https://freetheai.org/setup/chatbox), and more in the [setup guides](https://freetheai.org/setup).

#### Common errors and fixes

| What you see | What to do |
| --- | --- |
| "Daily check-in required" | Check in at freetheai.org. It lasts until 00:00 UTC. |
| "Content filtered" | The model's filter blocked the prompt or its reply. Rephrase, or try `fta/kimi/k3`. |
| "This model is busy right now" | Wait a minute and retry, or switch to GLM 5.3 Flash. Busy refusals do not use a free request. |
| "This model accepts text only" | Remove the image, or use `fta/zai/glm-5.3-flash`. |
| Replies stop early | Raise max tokens in your app (or send 0 for the model's maximum) and turn on streaming. |

#### FAQ

**Is the GLM 5.3 API really free?**

Yes. FreeTheAI serves fta/zai/glm-5.3 and fta/zai/glm-5.3-flash on its free tier. You need a free account, an API key, and a quick daily check-in. No card is needed.

**What is the GLM 5.3 model ID?**

fta/zai/glm-5.3 for the full model and fta/zai/glm-5.3-flash for the lighter one, sent to https://api.freetheai.org/v1.

**Can GLM 5.3 read images?**

GLM 5.3 is text only. Use fta/zai/glm-5.3-flash for requests with pictures.

**How do I stop GLM 5.3 from thinking?**

Send "thinking": {"type": "disabled"} or "reasoning_effort": "none" in the request.

**How many free requests do I get?**

You start with 50 a day. Linking Discord adds 50 more, and donating an API key can add more. The count resets at 00:00 UTC.

### Free Kimi K3 API: A Free Reasoning Model for Chat, Code, and Roleplay

URL: https://freetheai.org/blog/free-kimi-k3-api
Updated: 2026-10-02

**Quick answer:** Create a free account at freetheai.org, make an API key, check in once a day, and call `https://api.freetheai.org/v1/chat/completions` with the model `fta/kimi/k3`. For faster replies, turn thinking off with `"reasoning_effort": "none"`.

#### What Kimi K3 is good at

Kimi K3 reasons through a problem before it writes its answer. That makes it strong at code, math, planning, and long, consistent roleplay, and slower to start than a non-reasoning model. Its model page lists its current context and output limits: [models](https://freetheai.org/models?q=k3).

#### Setup in two minutes

1. Sign up at freetheai.org and confirm your email.
2. Create a key under Dashboard > API keys and copy all of it.
3. Check in at freetheai.org. Free models stay unlocked until 00:00 UTC.
4. Point your app at `https://api.freetheai.org/v1` (or `https://api.freetheai.org/v1/chat/completions` for apps that want the full address) and pick `fta/kimi/k3`.

```python
from openai import OpenAI

client = OpenAI(base_url="https://api.freetheai.org/v1", api_key="ftai_your_key_here")
reply = client.chat.completions.create(
    model="fta/kimi/k3",
    messages=[{"role": "user", "content": "Plan a three-step study schedule for Go."}],
)
print(reply.choices[0].message.content)
```

#### Make it answer faster

Thinking is on by default. For quick chat, turn it off per request:

```json
{
  "model": "fta/kimi/k3",
  "reasoning_effort": "none",
  "messages": [{ "role": "user", "content": "Hi!" }]
}
```

With thinking on, keep streaming turned on in your app. Chat apps such as JanitorAI give up on a reply that sends nothing for a while and show "No response from bot"; streaming sends the words as they come. See [fixing "No response from bot"](https://freetheai.org/blog/janitor-ai-no-response-from-bot).

#### Settings that matter (and ones that do not)

- **Temperature and Top P**: K3 accepts only fixed values, so FreeTheAI sets them for you. Moving those sliders in your app changes nothing, and does not cause errors.
- **Max tokens**: raise it for long replies, or send 0 to get the model's maximum.
- **System prompts**: supported. Character cards and long system prompts work as usual.
- **Tool calls**: supported, for coding agents and function calling.

#### Errors and fixes

| What you see | What to do |
| --- | --- |
| "No response from bot" or a timeout | Turn on streaming, or send `"reasoning_effort": "none"`. |
| "This model is busy right now" | Retry in a minute or switch to `fta/zai/glm-5.3`. Busy refusals do not use a free request. |
| "Too many requests at once" | A reply is still running for your account. Wait for it before sending the next one. |
| "Daily check-in required" | Check in at freetheai.org. |

#### FAQ

**Is there a free Kimi K3 API?**

Yes. FreeTheAI serves fta/kimi/k3 on its free tier through an OpenAI-compatible API at https://api.freetheai.org/v1. You need a free account, a key, and a daily check-in.

**Why is Kimi K3 slow to start replying?**

It reasons before answering. Turn on streaming, or send "reasoning_effort": "none" to skip the thinking.

**Can I change Kimi K3's temperature?**

No. K3 accepts only fixed sampling values, which FreeTheAI sets for you.

**Does Kimi K3 work in Claude Code?**

Yes. Set ANTHROPIC_BASE_URL to https://api.freetheai.org and use fta/kimi/k3 as the model.

### Free LLM APIs Compared (2026): FreeTheAI, OpenRouter, Groq, Gemini, and NVIDIA

URL: https://freetheai.org/blog/free-llm-api-comparison
Updated: 2026-10-02

**Quick answer:** For chat apps and roleplay, FreeTheAI and OpenRouter's free models are the easiest: one key, many models, OpenAI-compatible. Groq is the fastest for small open models, Google's Gemini API has a generous free tier for Gemini only, and NVIDIA's API catalog is best for trying many open models at up to 40 requests a minute.

#### Free tiers at a glance

| Service | Free allowance | API style | Good for |
| --- | --- | --- | --- |
| FreeTheAI | 50 requests a day to start (more for linking Discord or donating a key), after a daily check-in | OpenAI, Anthropic Messages, and Responses | Roleplay apps, coding agents, trying many models with one key |
| OpenRouter (free models) | 50 requests a day and 20 a minute; 1,000 a day once you have bought 10 credits | OpenAI | Trying many free models |
| Groq | 30 requests a minute; daily caps per model, for example 1,000 requests and 200K tokens a day on gpt-oss-120b | OpenAI | Very fast replies from small open models |
| Google Gemini API | A free tier with per-model limits shown in AI Studio; daily limits reset at midnight Pacific | Gemini (and an OpenAI-compatible endpoint) | Gemini models only |
| NVIDIA API catalog | Free for prototyping, up to 40 requests a minute on most models | OpenAI | Testing open models before you host them |

> Sources: [OpenRouter limits](https://openrouter.ai/docs/api_reference/limits), [Groq rate limits](https://console.groq.com/docs/rate-limits), [Gemini API rate limits](https://ai.google.dev/gemini-api/docs/rate-limits), [NVIDIA build](https://build.nvidia.com), and our own [plans page](https://freetheai.org/plans).

#### Best free API for roleplay apps

JanitorAI, SillyTavern, Chub AI, and RisuAI need an OpenAI-compatible endpoint, models that write well in long chats, and enough daily requests for a real conversation. FreeTheAI and OpenRouter both fit. FreeTheAI's free models include GLM 5.3, Kimi K3, and MiniMax M3, and each app has a tested setup guide: [JanitorAI](https://freetheai.org/setup/janitor-ai), [SillyTavern](https://freetheai.org/setup/sillytavern), [Chub AI](https://freetheai.org/setup/chub-ai), [RisuAI](https://freetheai.org/setup/risuai).

Groq's small models are fast but have short daily token budgets, which long roleplay chats use up quickly.

#### Best free API for coding agents

Coding agents send many requests per task, with tool calls. Per-minute limits (NVIDIA's 40, OpenRouter's 20) slow agents down; daily caps decide how much you get done. Claude Code needs the Anthropic Messages format, which FreeTheAI serves for every free model, and Codex needs the Responses API, which FreeTheAI also serves. See [Claude Code with free models](https://freetheai.org/blog/claude-code-free-models).

#### Best free API for a side project

- **One model, high volume**: Groq for small open models, or the Gemini API if Gemini fits your task.
- **Many models, one key**: FreeTheAI or OpenRouter. Switching models is a one-line change.
- **Planning to self-host later**: the NVIDIA API catalog uses the same API as a model you host yourself.

> Free tiers are for building and personal use. Read each provider's terms before you put real customers on one.

#### Getting started with FreeTheAI

1. Sign up at freetheai.org and confirm your email.
2. Create a key under Dashboard > API keys.
3. Check in once a day at freetheai.org.
4. Use `https://api.freetheai.org/v1` as the base URL with a model such as `fta/zai/glm-5.3`.

#### FAQ

**What is the best free LLM API in 2026?**

It depends on the job. For chat and roleplay apps, FreeTheAI or OpenRouter's free models. For speed on small models, Groq. For Gemini, Google's own free tier. For testing open models, NVIDIA's API catalog.

**Which free LLM API has the most requests per day?**

Groq's smaller models allow the most requests a day, but they also cap tokens per day. OpenRouter allows 1,000 free-model requests a day once you have bought 10 credits. FreeTheAI starts at 50 a day and grows when you link Discord or donate a key.

**Do I need a credit card for these free APIs?**

Not for FreeTheAI or for OpenRouter's free models. Check each provider's signup page for its own requirements.

**Are these limits up to date?**

They were checked on each provider's documentation on October 2, 2026. Providers change limits often, so follow the source links before relying on them.

### JanitorAI "No Response From Bot" and Other Proxy Errors: Every Fix

URL: https://freetheai.org/blog/janitor-ai-no-response-from-bot
Updated: 2026-09-30

**Quick answer:** "No response from bot" means JanitorAI stopped waiting before the model finished, which happens with slow thinking models and very long chats. Wait for the reply instead of retrying, keep streaming on, start a new chat or lower the context, or switch to a lighter model like `fta/zai/glm-5.3-flash`.

#### Every error at a glance

We see these errors in real support tickets every day. Find the message JanitorAI shows you, then use the fix.

| What JanitorAI shows | What it means | Fix |
| --- | --- | --- |
| No response from bot | JanitorAI gave up waiting while the model was still working. | Wait, keep streaming on, shorten the chat, or use a faster model. |
| Failed to fetch / network error | The request never reached the API. | Use the exact Proxy URL, paste the full key, save, and refresh the page. |
| 401 / unauthorized | The key is wrong or incomplete. | Paste the whole 53-character `ftai_` key, not the short prefix from your key list. |
| 429 / too many requests | A request is already running, or you hit a rate limit. | Wait for the current reply to finish before retrying. |
| Daily check-in required | Free models are locked until today's check-in. | Check in at freetheai.org. It resets at 00:00 UTC. |
| Model is busy | The model is at capacity right now. | Wait a minute or pick another model. Busy refusals do not count. |
| Blocked / rejected | The model's own content filter stopped the message or reply. | Rephrase slightly, retry, or switch models. |
| Reply stops mid-sentence | The reply hit your max tokens setting. | Raise Max new tokens, or set it to 0 for the model's full limit. |

#### Fixing "No response from bot"

This is the most common message, and it is almost never a broken setup. JanitorAI waits a limited time for the reply. Thinking models such as `fta/kimi/k3` reason before they write, and on a chat with tens of thousands of tokens of history that can take longer than JanitorAI is willing to wait.

- **Do not press retry right away.** The first request is often still running. Retrying starts a second one, and free accounts run one request at a time, so the second one is refused.
- **Keep streaming on** so text arrives as it is written.
- **Shorten the chat.** Start a new chat or lower the context size in the generation settings. A 35,000-token history is much slower than a 5,000-token one.
- **Switch to a faster model** for long chats, such as `fta/zai/glm-5.3-flash` or `fta/bbl/gemini-3.5-flash`.

#### Fixing "Failed to fetch" and network errors

When JanitorAI shows "Failed to fetch", the request usually never reached us at all. Check these in order:

1. The Proxy URL is exactly `https://api.freetheai.org/v1/chat/completions`, with no space at the end.
2. The key is the full key. The list on the API keys page shows only a short prefix like `ftai_1234567...`, and pasting that breaks the request. If you no longer have the full key, create a new one.
3. You pressed Save Settings and then refreshed the whole page.

#### Rate limits, busy models, and the daily check-in

Free models need a check-in once a day at freetheai.org. Until then, requests are refused with a message that says so. After the check-in you have your daily requests until 00:00 UTC.

At peak times a model can be busy. The API then answers that the model is busy and to try again in a minute. These refusals do not use up your daily requests. Switching to another model usually works right away.

#### Replies that stop mid-sentence

A reply that ends in the middle of a sentence hit the output limit you set. In JanitorAI, raise **Max new tokens**, or set it to **0**. FreeTheAI treats 0 as "use the model's full output length".

#### Still stuck? Get help fast

Open a ticket in our Discord or from Dashboard > Support, and include:

- Your signup email.
- A screenshot of the error, and of your JanitorAI API settings with the key hidden.
- The error ID if the message has one, and roughly when it happened.

That is everything we need to find the exact request in our logs.

#### FAQ

**What does "No response from bot" mean on JanitorAI?**

JanitorAI stopped waiting before the model finished. It is common with thinking models and long chats. Wait, keep streaming on, shorten the chat, or switch to a faster model.

**Do failed requests count against my free limit?**

Requests that fail on our side, or are turned away because a model is busy, do not count. A request that JanitorAI cancels after the reply started does count.

**Why do I get 429 right after "No response from bot"?**

Your first request was still running when you retried. Free accounts run one request at a time. Wait a moment and try again.

**Why is my key unauthorized when I just made it?**

You probably pasted the short prefix from the key list instead of the full key. The full key is shown only once, when you create it. Make a new key and paste it whole.

### Free OpenAI-Compatible API in 2026: Dozens of Models, No Credit Card

URL: https://freetheai.org/blog/free-openai-compatible-api
Updated: 2026-09-30

**Quick answer:** FreeTheAI is a free OpenAI-compatible API: set the base URL to `https://api.freetheai.org/v1`, use a free API key from your dashboard, and call any `fta/` model with the regular OpenAI SDK. Every account gets 50 free requests a day with no credit card.

#### What FreeTheAI is

FreeTheAI started as a free API for people who want to try modern AI models without a credit card. Today it is one account and one API that works with almost every AI app and SDK. The free tier needs a verified email and a quick daily check-in; there is no billing and no card on file.

Because it speaks the same protocol as OpenAI, anything that lets you change the "base URL" can use it: roleplay apps like JanitorAI and SillyTavern, chat apps like Open WebUI and LibreChat, and coding agents like Claude Code, Codex, Cline, and Aider. There are [step-by-step guides for 24 apps](https://freetheai.org/setup).

#### Quickstart: your first request

1. Sign up at freetheai.org and confirm your email.
2. Create a key in Dashboard > API keys.
3. Do today's check-in at freetheai.org.

Then call the API. With curl:

```bash
curl https://api.freetheai.org/v1/chat/completions \
  -H "Authorization: Bearer $FREETHEAI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model": "fta/zai/glm-5.3", "messages": [{"role": "user", "content": "Hello!"}]}'
```

With the official OpenAI Python SDK, only the base URL and key change:

```python
from openai import OpenAI

client = OpenAI(base_url="https://api.freetheai.org/v1", api_key="ftai_your_key_here")
reply = client.chat.completions.create(
    model="fta/zai/glm-5.3",
    messages=[{"role": "user", "content": "Explain recursion in one paragraph."}],
)
print(reply.choices[0].message.content)
```

And in JavaScript or TypeScript:

```javascript
import OpenAI from 'openai'

const client = new OpenAI({ baseURL: 'https://api.freetheai.org/v1', apiKey: process.env.FREETHEAI_API_KEY })
const reply = await client.chat.completions.create({
  model: 'fta/kimi/k3',
  messages: [{ role: 'user', content: 'Write a haiku about the sea.' }],
})
console.log(reply.choices[0].message.content)
```

#### Supported endpoints

| Endpoint | Path | Used by |
| --- | --- | --- |
| Chat Completions | `/v1/chat/completions` | Most apps and the OpenAI SDK |
| Responses | `/v1/responses` | Codex CLI and newer OpenAI SDK code |
| Anthropic Messages | `/v1/messages` | Claude Code and Anthropic SDK code |
| Model list | `/v1/models` | Apps that show a model picker |

Every free model answers on all three chat formats, streamed or not, so you can keep whichever SDK you already use. Full request and response details are in the [API docs](https://freetheai.org/docs).

#### Popular free models

| Model ID | Context | Good for |
| --- | --- | --- |
| `fta/zai/glm-5.3` | 1M | All-round chat, roleplay, and coding |
| `fta/kimi/k3` | 1M | Careful reasoning; slower first token |
| `fta/bbl/gemini-3.5-flash` | 1M | Quick, concise answers |
| `fta/mmx/minimax-m3` | 1M | Long documents and long chats |
| `fta/olf/gpt-oss:120b` | 131K | Open-weight reasoning model |

The [Models page](https://freetheai.org/models) lists every model with its context size and supported endpoints, and filters by company and endpoint type.

#### Limits and how to raise them

- **50 free requests a day** for every verified account, resetting at 00:00 UTC.
- **+50 a day** for linking Discord in Settings.
- More for members with the Valid role in our Discord, and for donating an unused API key.
- One request at a time on the free tier.

Failed requests on our side and "model is busy" refusals do not count toward the daily limit. Your dashboard updates your usage live.

#### Privacy

FreeTheAI does not store prompts or replies. We keep what we need to run the service and stop abuse, such as request counts, timing, and IP addresses, as described in the [privacy policy](https://freetheai.org/privacy).

#### FAQ

**Is FreeTheAI really free?**

Yes. Every verified account gets 50 free requests a day with no credit card. Paid models and plans are separate and optional.

**Does it work with the OpenAI Python and JavaScript SDKs?**

Yes. Set base_url (baseURL in JavaScript) to https://api.freetheai.org/v1 and use your FreeTheAI key.

**Does it support streaming and tool calling?**

Yes, on the Chat Completions, Responses, and Anthropic Messages endpoints.

**Why do I need a daily check-in?**

The check-in keeps free capacity for real people instead of bots. It takes a few seconds and lasts until 00:00 UTC.

**What happened to freetheai.xyz?**

FreeTheAI moved to freetheai.org and api.freetheai.org. Old freetheai.xyz pages redirect to the new site.

### Use Claude Code With Free Models: GLM 5.3, Kimi K3, and MiniMax M3

URL: https://freetheai.org/blog/claude-code-free-models
Updated: 2026-09-30

**Quick answer:** Put `ANTHROPIC_BASE_URL=https://api.freetheai.org`, your FreeTheAI key as `ANTHROPIC_AUTH_TOKEN`, and a model such as `fta/zai/glm-5.3` in `~/.claude/settings.json`, then start `claude`. Claude Code then runs on free models, tools included.

#### How it works

Claude Code sends its requests in Anthropic's Messages format to whatever address `ANTHROPIC_BASE_URL` names. FreeTheAI answers that format for every free model and translates it to the model behind it, streaming and tool calls included. So Claude Code keeps working the same way while the thinking is done by GLM, Kimi, or MiniMax.

> This is not an official Anthropic setup. Features that only exist in Claude models (for example some extended thinking modes) may not work.

#### Setup

Get a key from Dashboard > API keys and do today's check-in. Then put this in `~/.claude/settings.json` (on Windows `%USERPROFILE%\.claude\settings.json`):

```json
{
  "env": {
    "ANTHROPIC_BASE_URL": "https://api.freetheai.org",
    "ANTHROPIC_AUTH_TOKEN": "ftai_your_key_here",
    "ANTHROPIC_MODEL": "fta/zai/glm-5.3",
    "ANTHROPIC_DEFAULT_OPUS_MODEL": "fta/zai/glm-5.3",
    "ANTHROPIC_DEFAULT_SONNET_MODEL": "fta/zai/glm-5.3",
    "ANTHROPIC_DEFAULT_HAIKU_MODEL": "fta/zai/glm-5.3-flash",
    "CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC": "1"
  }
}
```

Start `claude` and run `/status`. The Anthropic base URL line should show `https://api.freetheai.org`. Never put your key in a project's shared `.claude/settings.json`, which is often committed to git.

#### Which model goes in which slot

| Slot | Suggested model | Why |
| --- | --- | --- |
| Main (ANTHROPIC_MODEL) | `fta/zai/glm-5.3` | Strong at code and tool use, 1M context |
| Opus / Sonnet | `fta/zai/glm-5.3` or `fta/kimi/k3` | Kimi K3 reasons longer on hard problems |
| Haiku (background tasks) | `fta/zai/glm-5.3-flash` | A lighter model for titles and small helper calls |

#### Warnings you can ignore, and ones you can fix

- **"Model not in catalog"**: expected, because `fta/` models are not Anthropic models. It still works and assumes a 200K context.
- **400 about unknown fields**: add `"CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS": "1"` to the env block.
- **"Daily check-in required"**: check in at freetheai.org.

#### Other coding agents

The same key works in every other coding agent. Codex CLI uses the Responses API, and Cline, Kilo Code, OpenCode, Continue, Aider, and Zed use the OpenAI format. Each has a tested guide: [Codex](https://freetheai.org/setup/codex), [Cline](https://freetheai.org/setup/cline), [Kilo Code](https://freetheai.org/setup/kilo-code), [OpenCode](https://freetheai.org/setup/opencode), [Aider](https://freetheai.org/setup/aider), and [Zed](https://freetheai.org/setup/zed).

#### FAQ

**Can Claude Code use free models?**

Yes. Point ANTHROPIC_BASE_URL at https://api.freetheai.org and use your FreeTheAI key as ANTHROPIC_AUTH_TOKEN. Free models like GLM 5.3 and Kimi K3 then run Claude Code.

**Do Claude Code tools work on these models?**

Yes. Tool calls (reading files with the Read tool) were tested with fta/zai/glm-5.3 and fta/kimi/k3.

**Does this use my Claude subscription?**

No. While ANTHROPIC_AUTH_TOKEN is set, requests go to FreeTheAI with your FreeTheAI key.

**Which free model is best for coding?**

Start with fta/zai/glm-5.3. Use fta/kimi/k3 for harder reasoning and fta/zai/glm-5.3-flash for small, quick tasks.

### The Best Free AI Models for Roleplay in 2026 (JanitorAI and SillyTavern)

URL: https://freetheai.org/blog/best-free-ai-models-for-roleplay
Updated: 2026-09-30

**Quick answer:** For most roleplay, start with `fta/zai/glm-5.3`: strong writing and a 1M-token context. Use `fta/kimi/k3` when you want careful, thought-through replies and can wait, and `fta/bbl/gemini-3.5-flash` when you want short, quick replies.

#### Side-by-side comparison

| Model ID | Context | Speed | Style |
| --- | --- | --- | --- |
| `fta/zai/glm-5.3` | 1M tokens | Medium | Rich, descriptive prose; follows character cards well |
| `fta/kimi/k3` | 1M tokens | Slow first token | Deliberate and consistent; thinks before writing |
| `fta/mmx/minimax-m3` | 1M tokens | Medium | Different voice; handy when a chat feels repetitive |
| `fta/bbl/gemini-3.5-flash` | 1M tokens | Fast | Clean, concise replies |

Every model here is free on FreeTheAI. The [Models page](https://freetheai.org/models) has the full list with context sizes.

#### GLM 5.3: the best default

GLM 5.3 writes vivid, detailed replies and keeps track of long stories thanks to its 1M-token context. It is the model we suggest first in every roleplay guide. Some messages can be stopped by the model's own content filter; if a reply is blocked, rephrase slightly or switch models for that scene.

#### Kimi K3: careful and consistent

Kimi K3 is a thinking model. It reasons before it writes, so the first words can take 10 seconds or more, and on very long chats even longer. In exchange its replies stay consistent with the story. JanitorAI sometimes gives up waiting and shows "No response from bot"; the [error guide](https://freetheai.org/blog/janitor-ai-no-response-from-bot) explains what to do.

#### Gemini 3.5 Flash: short and quick

When you want quick back-and-forth rather than long paragraphs, Gemini 3.5 Flash keeps replies clean and concise. It is also a good fallback when another model is busy.

#### Settings that make any model better

- **Max tokens 0** uses the model's full output length, so replies do not stop mid-sentence.
- **Streaming on** shows text as it is written and avoids timeouts.
- In SillyTavern, set **Prompt Post-Processing** to **Semi-strict**; some models refuse chats that reach them without a message from you.
- **Trim long histories.** Huge contexts are supported, but a shorter chat answers faster.

#### FAQ

**What is the best free AI model for JanitorAI?**

Start with fta/zai/glm-5.3. Try fta/kimi/k3 for more deliberate replies and fta/bbl/gemini-3.5-flash for short, quick scenes.

**Why is Kimi K3 slow?**

It is a thinking model: it reasons before writing. The wait is longer on long chats. Keep streaming on and do not retry while it works.

**Which model remembers the most?**

GLM 5.3, Kimi K3, MiniMax M3, and Gemini 3.5 Flash all have context windows of about a million tokens.

### SillyTavern Free API Setup in 2026 (and the "Bad Request" Fix)

URL: https://freetheai.org/blog/sillytavern-free-api
Updated: 2026-09-30

**Quick answer:** In SillyTavern open API Connections, choose Chat Completion with the Custom (OpenAI-compatible) source, enter `https://api.freetheai.org/v1` as the endpoint, your FreeTheAI key, and a model like `fta/zai/glm-5.3`, then set Prompt Post-Processing to Semi-strict.

#### The settings

| Field | Value |
| --- | --- |
| API | Chat Completion |
| Chat Completion Source | Custom (OpenAI-compatible) |
| Custom Endpoint (Base URL) | `https://api.freetheai.org/v1` |
| Custom API Key | Your full `ftai_...` key |
| Model ID | `fta/zai/glm-5.3` |
| Prompt Post-Processing | Semi-strict (alternating roles) |

#### Step by step

1. Click the plug icon in the top bar to open **API Connections**.
2. Set **API** to Chat Completion and **Chat Completion Source** to Custom (OpenAI-compatible).
3. Paste the base URL into **Custom Endpoint**. Do not add /chat/completions; SillyTavern does that.
4. Paste your key into **Custom API Key**, type or pick a model ID, and press **Connect**.
5. Set **Prompt Post-Processing** to **Semi-strict**.
6. Do today's check-in and start chatting.

#### Fixing "API returned an error: Bad Request"

With Prompt Post-Processing set to None, SillyTavern can send a chat that has only the system prompt and the character's greeting, with no message from you. Some models refuse that and answer "Bad Request". Setting Prompt Post-Processing to **Semi-strict** makes sure every request carries a message from you, and the error goes away.

#### Other common problems

- **No models appear after connecting**: type the model ID by hand, and check that you did today's check-in.
- **Replies cut off**: raise Max Response Length in the sampler panel.
- **Unauthorized**: paste the full 53-character key; the short prefix in your key list does not work.

#### FAQ

**What base URL does SillyTavern need?**

https://api.freetheai.org/v1. SillyTavern appends /chat/completions itself.

**How do I fix "Bad Request" in SillyTavern?**

Set Prompt Post-Processing to Semi-strict in API Connections, then try again.

**Which model should I use in SillyTavern?**

fta/zai/glm-5.3 is the best default. See our comparison of the best free roleplay models for alternatives.

## Setup guides

### JanitorAI Free API: FreeTheAI Proxy Setup

URL: https://freetheai.org/setup/janitor-ai

JanitorAI connects to FreeTheAI through its Proxy settings. You paste the full chat completions URL, your key, and a model ID, then refresh the page.

#### Settings

- Configuration Name: `FreeTheAI`
- Model Name: `fta/zai/glm-5.3`
- Proxy URL: `https://api.freetheai.org/v1/chat/completions`
- API Key: `your FreeTheAI key (ftai_..., 53 characters)`

#### Steps

1. **Open a chat.** Open any character and start a chat. The character must allow proxies.
2. **Open API Settings.** Tap the menu (three lines) at the top right of the chat, then API Settings.
3. **Add a proxy configuration.** Choose Proxy, then + Add Configuration, and fill in the values from the table above. The Proxy URL must end in /chat/completions. Leave Custom Prompt empty for now.
4. **Save and refresh.** Press Save Settings, then refresh the page (Ctrl+Shift+R on a computer). JanitorAI only loads a new proxy after a full reload.
5. **Check in and chat.** Free models need one check-in a day at freetheai.org. Then send a message.

#### Tips

- Setting Max new tokens to 0 asks for the model's full output limit.
- Keep streaming on for long replies.
- Copy model IDs from freetheai.org/models. They always start with fta/.

#### Troubleshooting

**Why does JanitorAI say "network error" or "Failed to fetch"?**

The Proxy URL is wrong or the page was not refreshed after saving. Use https://api.freetheai.org/v1/chat/completions exactly, save, and reload the page.

**Why do I get a 401 error?**

The key is wrong or incomplete. Paste the whole ftai_ key (53 characters). The short ftai_1234567... shown in your key list is only a prefix.

**Which model is best for JanitorAI roleplay?**

Start with fta/zai/glm-5.3. fta/kimi/k3 and fta/mmx/minimax-m3 are good alternatives. fta/dog/ and fta/lion/ models are for general chat and refuse roleplay. The full list is at freetheai.org/models.

**It still says "Failed to fetch" with the right URL. What else can I try?**

That error often comes from JanitorAI itself, mostly in the app. Use janitorai.com in a browser instead, and try turning off prefill and text streaming.

**Why do I get a 403 error?**

Free models need one check-in a day. Check in at freetheai.org, then try again.

**Why do I get a 429 error?**

Your previous reply is still being written. Wait for it to finish, then send again. Free models answer one request at a time per account.

**The model is busy or the reply is empty. What should I do?**

Reroll the message, or switch to another model. freetheai.org/status shows which models are up.

**Why are replies cut off?**

Raise Max new tokens in Generation Settings, or set it to 0 to ask for the model's full output.

**Can I turn thinking off on JanitorAI?**

JanitorAI has no thinking setting, but you can turn thinking off for your key: on freetheai.org/dashboard/api-keys, edit the key and switch on Turn thinking off.

**How do I get longer or shorter replies?**

Ask for it in your prompt, for example "Response length: about 300 words", and set Max new tokens high enough.

**Does FreeTheAI work through Lorebary?**

No. Connect JanitorAI to FreeTheAI directly with the Proxy URL above.

Checked: Checked against JanitorAI's help center proxy guide and current setup guides on 2026-09-29.

### SillyTavern Free API: Connect FreeTheAI (Custom OpenAI)

URL: https://freetheai.org/setup/sillytavern

SillyTavern talks to FreeTheAI through its Chat Completion API with the Custom (OpenAI-compatible) source. It lists every model your key can use.

#### Settings

- API: `Chat Completion`
- Chat Completion Source: `Custom (OpenAI-compatible)`
- Custom Endpoint (Base URL): `https://api.freetheai.org/v1`
- Custom API Key: `your FreeTheAI key (ftai_..., 53 characters)`
- Model ID: `fta/zai/glm-5.3`
- Prompt Post-Processing: `Semi-strict (alternating roles)`

#### Steps

1. **Open API Connections.** Click the plug icon in the top bar.
2. **Choose the source.** Set API to Chat Completion and Chat Completion Source to Custom (OpenAI-compatible).
3. **Enter the endpoint and key.** Paste the base URL into Custom Endpoint (Base URL). SillyTavern adds /chat/completions itself, so do not add it. Paste your key into Custom API Key.
4. **Pick a model and connect.** Type a model ID into Enter a Model ID, or pick one from Available Models after connecting. Press Connect.
5. **Set Prompt Post-Processing.** On the same screen, set Prompt Post-Processing to Semi-strict. With None, some models answer "Bad Request" because the chat can reach them without a message from you.

#### Tips

- Your key is hidden after you press Connect. Keep a copy somewhere safe.
- If replies stop early, raise Max Response Length in the sampler panel.
- Save the connection as a Connection Profile to switch models quickly.

#### Troubleshooting

**SillyTavern connects but no models appear. What now?**

Type the model ID by hand in Enter a Model ID, for example fta/zai/glm-5.3. Also check that you checked in today at freetheai.org.

**Should the base URL end in /v1?**

Yes. Use https://api.freetheai.org/v1. SillyTavern appends /chat/completions.

**SillyTavern says "API returned an error: Bad Request". How do I fix it?**

Set Prompt Post-Processing to Semi-strict in API Connections and try again. Some models need at least one message from you in every request, and that setting makes sure there is one.

Checked: Checked against SillyTavern's source (release branch, API connection panel) on 2026-09-29.

### Chub AI Free API: FreeTheAI Reverse Proxy Setup

URL: https://freetheai.org/setup/chub-ai

Chub AI uses FreeTheAI as an OpenAI reverse proxy. You enter the base URL and key in Secrets, check the proxy, then choose the model in Configuration.

#### Settings

- Secrets > OpenAI: `Reverse Proxy`
- OpenAI Reverse Proxy: `https://api.freetheai.org/v1`
- Reverse Proxy Key: `your FreeTheAI key (ftai_..., 53 characters)`
- Configuration > Prompt Structure > API: `OpenAI`
- Model: `fta/zai/glm-5.3`

#### Steps

1. **Open Secrets.** In any chat, open the menu (three lines, top right) and choose Secrets, then OpenAI.
2. **Turn on the reverse proxy.** Choose Reverse Proxy instead of your own OpenAI key. Enter the base URL ending in /v1 (not /chat/completions) and your FreeTheAI key.
3. **Check the proxy.** Press Check Proxy and wait for the green confirmation. Chub loads the model list from FreeTheAI at this step.
4. **Pick the model.** Open the menu again, choose Configuration, then Prompt Structure. Set API to OpenAI and pick a model that starts with fta/. Save.

#### Tips

- Refresh the page if the model list stays empty after a successful check.
- Chub's list may show models FreeTheAI does not serve. Only fta/ models work.

#### Troubleshooting

**Check Proxy fails on Chub. Why?**

The URL must be the base URL https://api.freetheai.org/v1. A full /chat/completions URL fails, because Chub adds the path itself.

**Can I use FreeTheAI on the Chub mobile site?**

Yes. The same Secrets and Configuration menus are in the mobile chat view.

**Check Proxy works but no FreeTheAI models appear. What now?**

Refresh the page, then look again under Configuration, Prompt Structure. Only models that start with fta/ work.

**Why do I get a 401 error?**

The key is wrong or incomplete. Paste the whole ftai_ key (53 characters), with no spaces.

**Why do I get a 403 error?**

Free models need one check-in a day. Check in at freetheai.org, then try again.

**It loads for a long time, then shows an error or an empty reply. Why?**

The model is busy. Try another model, and check freetheai.org/status.

**A model rejects my settings. How do I fix it?**

Reset temperature and the other sampling settings to their defaults, then try again.

**Which models are good for roleplay on Chub?**

fta/zai/ and fta/kimi/ models, for example fta/zai/glm-5.3. fta/dog/ and fta/lion/ models are for general chat and refuse roleplay.

Checked: Checked against Chub's API connection docs and current reverse proxy guides on 2026-09-29.

### RisuAI Free API: FreeTheAI Custom API Setup

URL: https://freetheai.org/setup/risuai

RisuAI connects through its Custom API model (OpenAI Compatible format). On the web version, turn on Force Plain Fetch so requests go straight to FreeTheAI.

#### Settings

- Model: `Custom API`
- URL: `https://api.freetheai.org/v1/chat/completions`
- Key/Password: `your FreeTheAI key (ftai_..., 53 characters)`
- Request Model: `fta/zai/glm-5.3`
- Format: `OpenAI Compatible`

#### Steps

1. **Open the bot settings.** Open Settings (gear), then Chat Bot.
2. **Choose Custom API.** Set the model to Custom API and the format to OpenAI Compatible.
3. **Fill in the connection.** Enter the URL, your key in Key/Password, and a model ID in Request Model, using the values above.
4. **Web version only: Force Plain Fetch.** Go to Settings, Advanced Settings, turn on Show Unrecommended Settings, then turn on Force Plain Fetch. Without it RisuAI sends requests through its own relay, which FreeTheAI does not accept.

#### Tips

- A base URL ending in /v1 also works; RisuAI adds /chat/completions.
- The desktop and mobile apps do not need Force Plain Fetch.

#### Troubleshooting

**RisuAI says relay_not_supported. How do I fix it?**

Turn on Force Plain Fetch under Settings, Advanced Settings (after enabling Show Unrecommended Settings). RisuAI then calls FreeTheAI directly from your browser.

**Which model should I use?**

fta/zai/glm-5.3 is a strong default for roleplay. See freetheai.org/models for all free models.

Checked: Checked against RisuAI's source (Custom API model, request URL handling, Force Plain Fetch) on 2026-09-29.

### Tavo App Free API: Connect FreeTheAI

URL: https://freetheai.org/setup/tavo

Tavo adds FreeTheAI as a Custom (OpenAI Protocol) API connection. Use the base URL ending in /v1 and a model ID from the models page.

#### Settings

- Model Platform: `Custom (OpenAI Protocol)`
- API Base URL: `https://api.freetheai.org/v1`
- API Key: `your FreeTheAI key (ftai_..., 53 characters)`
- Model Name: `fta/zai/glm-5.3`

#### Steps

1. **Open API Connection.** Open the menu and tap API Connection, then Add New.
2. **Choose the platform.** Set Model Platform to Custom (OpenAI Protocol).
3. **Enter your details.** Paste your key, the API Base URL ending in /v1 (not /chat/completions), and a model name. Tap Save.
4. **Make it the default.** Open the menu next to the new connection and set it as the default, then start a chat.

#### Tips

- Adjust temperature and reply length under Parameter Settings on the connection page.
- To turn off a model's thinking, turn on "Turn thinking off" for your key on the API keys page (scope & settings). It works for every model and needs nothing in Tavo. Adding {"thinking": {"type": "disabled"}} under request body parameters also works on some models.

#### Troubleshooting

**Tavo cannot connect. What should I check?**

The base URL must be https://api.freetheai.org/v1, the key must be complete, and you must have checked in today at freetheai.org.

Checked: Checked against Tavo's help center (Custom OpenAI Protocol guide) on 2026-09-29.

### Open WebUI Free API: Add FreeTheAI as an OpenAI Connection

URL: https://freetheai.org/setup/open-webui

Open WebUI connects to FreeTheAI as an OpenAI API connection and lists every model your key can use.

#### Settings

- Connection type: `OpenAI API`
- URL: `https://api.freetheai.org/v1`
- Key: `your FreeTheAI key (ftai_..., 53 characters)`

#### Steps

1. **Open the connections page.** As an admin, open Admin Panel, then Settings, then Connections.
2. **Add the connection.** Under OpenAI API, press + to add a connection. Enter the URL and your key, then save.
3. **Choose a model.** Open a new chat and pick a FreeTheAI model (they start with fta/) from the model menu.

#### Tips

- Use Model IDs in the connection settings to show only the models you want.
- FreeTheAI serves chat models only, so keep your embedding and image settings pointed elsewhere.

#### Troubleshooting

**No FreeTheAI models show up in Open WebUI. Why?**

Open WebUI reads /v1/models with your key. Check the URL ends in /v1 and the key is complete, then reload the model list.

Checked: Checked against Open WebUI's OpenAI-compatible server docs on 2026-09-29.

### LibreChat Free API: FreeTheAI Custom Endpoint (librechat.yaml)

URL: https://freetheai.org/setup/librechat

LibreChat adds FreeTheAI as a custom endpoint in librechat.yaml. With fetch on, it lists every model your key can use.

#### Settings

- baseURL: `https://api.freetheai.org/v1`
- apiKey: `${FREETHEAI_API_KEY}`
- Model: `fta/zai/glm-5.3`

#### Steps

1. **Add your key to .env.** Put your key in LibreChat's .env file.

```bash
FREETHEAI_API_KEY=ftai_your_key_here
```
2. **Add the endpoint to librechat.yaml.** Add FreeTheAI under endpoints.custom.

```yaml
endpoints:
  custom:
    - name: 'FreeTheAI'
      apiKey: '${FREETHEAI_API_KEY}'
      baseURL: 'https://api.freetheai.org/v1'
      models:
        default: ['fta/zai/glm-5.3']
        fetch: true
      titleConvo: true
      titleModel: 'current_model'
      modelDisplayLabel: 'FreeTheAI'
```
3. **Restart LibreChat.** Restart the server (or the Docker containers) so it reads the new config, then pick FreeTheAI in the endpoint menu.

#### Tips

- With Docker, make sure librechat.yaml is mounted into the container.

#### Troubleshooting

**LibreChat does not show the FreeTheAI endpoint. Why?**

LibreChat only reads librechat.yaml at startup. Restart it and check the logs for YAML errors.

Checked: Checked against LibreChat's librechat.example.yaml (custom endpoints) on 2026-09-29.

### LobeChat Free API: Add FreeTheAI as a Custom Provider

URL: https://freetheai.org/setup/lobechat

LobeHub (formerly LobeChat) adds FreeTheAI as a custom provider with the OpenAI request format.

#### Settings

- Provider ID: `freetheai`
- Provider Name: `FreeTheAI`
- Request Format: `OpenAI`
- Proxy URL: `https://api.freetheai.org/v1`
- API Key: `your FreeTheAI key (ftai_..., 53 characters)`

#### Steps

1. **Open the provider settings.** Open Settings, then the Provider tab.
2. **Add a custom provider.** Press Add Custom Provider and fill in the values above. Press Create.
3. **Add models.** Fetch the model list, or press Add Model and enter an ID such as fta/zai/glm-5.3. Turn on the models you want.

#### Tips

- Run the connectivity check on the provider page to confirm the key works.

#### Troubleshooting

**Which Request Format should I pick in LobeHub?**

OpenAI. FreeTheAI speaks the OpenAI chat completions format at https://api.freetheai.org/v1.

Checked: Checked against LobeHub's provider settings strings (Add Custom Provider form) on 2026-09-29.

### Chatbox Free API: Add FreeTheAI as a Custom Provider

URL: https://freetheai.org/setup/chatbox

Chatbox adds FreeTheAI as a custom provider in OpenAI API Compatible mode. It works on desktop, mobile, and the web app.

#### Settings

- Name: `FreeTheAI`
- API Mode: `OpenAI API Compatible`
- API Host: `https://api.freetheai.org/v1`
- API Path: `/chat/completions`
- API Key: `your FreeTheAI key (ftai_..., 53 characters)`

#### Steps

1. **Add a provider.** Open Settings, then Model Provider, and press Add. Enter the name and choose OpenAI API Compatible.
2. **Enter the connection.** Paste your key, the API Host, and keep the API Path as /chat/completions. The preview should show https://api.freetheai.org/v1/chat/completions.
3. **Add models and check.** Fetch the model list or add a model ID by hand, then press Check.

#### Tips

- Chatbox needs at least one model added before Check works.

#### Troubleshooting

**What should the Chatbox preview URL look like?**

https://api.freetheai.org/v1/chat/completions. If it shows /v1 twice, remove it from the API Path.

Checked: Checked against Chatbox's source (provider settings and URL handling) on 2026-09-29.

### Cherry Studio Free API: Add FreeTheAI as a Provider

URL: https://freetheai.org/setup/cherry-studio

Cherry Studio adds FreeTheAI as an OpenAI-type model service. Enter the root address; Cherry adds /v1 itself.

#### Settings

- Provider type: `OpenAI`
- API Address: `https://api.freetheai.org`
- API Key: `your FreeTheAI key (ftai_..., 53 characters)`

#### Steps

1. **Add the provider.** Open Settings, then Model Services, and press + Add. Name it FreeTheAI and choose the OpenAI type.
2. **Enter the address and key.** Enter the root address https://api.freetheai.org and your key. Cherry Studio adds /v1 automatically; do not end the address with #.
3. **Add models and enable.** Use Manage to fetch models (or add an ID by hand), run the check, then turn on the switch at the top right.

#### Troubleshooting

**Should I enter /v1 in Cherry Studio?**

No. Enter https://api.freetheai.org and Cherry Studio adds /v1. Entering /v1 as well can produce /v1/v1.

Checked: Checked against Cherry Studio's docs and API address handling on 2026-09-29.

### NextChat Free API: Use FreeTheAI as a Custom Endpoint

URL: https://freetheai.org/setup/nextchat

NextChat uses FreeTheAI through its custom OpenAI endpoint. Add the model IDs to Custom Models so they appear in the picker.

#### Settings

- Custom Endpoint: `On`
- Model Provider: `OpenAI`
- OpenAI Endpoint: `https://api.freetheai.org`
- OpenAI API Key: `your FreeTheAI key (ftai_..., 53 characters)`
- Custom Models: `+fta/zai/glm-5.3,+fta/kimi/k3`

#### Steps

1. **Turn on the custom endpoint.** Open Settings and turn on Custom Endpoint. Set Model Provider to OpenAI.
2. **Enter the endpoint and key.** Set OpenAI Endpoint to https://api.freetheai.org (NextChat adds /v1/chat/completions) and paste your key.
3. **Add your models.** In Custom Models, list the models you want, separated by commas, then pick one in a chat.

#### Troubleshooting

**Why does NextChat call the wrong URL?**

Enter the root address https://api.freetheai.org without /v1. NextChat appends v1/chat/completions itself.

Checked: Checked against NextChat's source (custom endpoint settings and request paths) on 2026-09-29.

### TypingMind Free API: Add FreeTheAI as a Custom Model

URL: https://freetheai.org/setup/typingmind

TypingMind adds each FreeTheAI model as a custom model with the full chat completions endpoint and your key in an Authorization header.

#### Settings

- API Type: `OpenAI Chat Completions API`
- Endpoint URL: `https://api.freetheai.org/v1/chat/completions`
- Model ID: `fta/zai/glm-5.3`
- Header Key: `Authorization`
- Header Value: `Bearer ftai_your_key_here`

#### Steps

1. **Add a custom model.** Open Models in the sidebar and choose Add Custom Model, then Create Manually.
2. **Fill in the model.** Enter a name, choose OpenAI Chat Completions API, and enter the endpoint URL and model ID. Set the context length (for example 128000).
3. **Add your key.** Choose API Key via HTTP header. Use Authorization as the key and Bearer followed by a space and your key as the value.
4. **Test and save.** Press Test, then Add Model. Repeat for each model you want.

#### Troubleshooting

**TypingMind says authentication failed. Why?**

The header value must be "Bearer " (with a space) followed by your full key.

Checked: Checked against TypingMind's custom model docs on 2026-09-29.

### AnythingLLM Free API: FreeTheAI with Generic OpenAI

URL: https://freetheai.org/setup/anythingllm

AnythingLLM uses FreeTheAI through its Generic OpenAI provider.

#### Settings

- LLM Provider: `Generic OpenAI`
- Base URL: `https://api.freetheai.org/v1`
- API Key: `your FreeTheAI key (ftai_..., 53 characters)`
- Selected Model: `fta/zai/glm-5.3`
- Model context window: `128000`
- Max Tokens: `8192`

#### Steps

1. **Open the LLM settings.** Open Settings, then AI Providers, then LLM.
2. **Choose Generic OpenAI.** Set the provider to Generic OpenAI and fill in the values above.
3. **Save.** Press Save changes. Workspaces now answer with the FreeTheAI model.

#### Tips

- Keep embeddings on AnythingLLM's built-in embedder. FreeTheAI serves chat models only.

#### Troubleshooting

**Which provider do I pick in AnythingLLM?**

Generic OpenAI. The plain OpenAI provider always calls api.openai.com.

Checked: Checked against AnythingLLM's source (Generic OpenAI options) on 2026-09-29.

### Page Assist Free API: Add FreeTheAI to the Browser Extension

URL: https://freetheai.org/setup/page-assist

Page Assist adds FreeTheAI as an OpenAI compatible provider, so you can chat with web pages using free models.

#### Settings

- Provider Name: `FreeTheAI`
- Base URL: `https://api.freetheai.org/v1`
- API Key: `your FreeTheAI key (ftai_..., 53 characters)`

#### Steps

1. **Open the provider settings.** Open the Page Assist settings and choose OpenAI Compatible API.
2. **Add the provider.** Press Add Provider and fill in the values above. Press Save.
3. **Pick models.** In the Model List that opens, select the chat models you want, then choose one in the chat.

#### Troubleshooting

**Does Page Assist work with FreeTheAI in Chrome and Firefox?**

Yes. FreeTheAI allows browser requests, so the extension can call it directly.

Checked: Checked against Page Assist's source (OpenAI compatible provider form) on 2026-09-29.

### Claude Code Free API: Run It on FreeTheAI Models

URL: https://freetheai.org/setup/claude-code

Claude Code can run on FreeTheAI's Anthropic-compatible Messages endpoint. Point ANTHROPIC_BASE_URL at FreeTheAI and choose which model fills each Claude slot.

#### Settings

- ANTHROPIC_BASE_URL: `https://api.freetheai.org`
- ANTHROPIC_AUTH_TOKEN: `your FreeTheAI key (ftai_..., 53 characters)`
- ANTHROPIC_MODEL: `fta/zai/glm-5.3`

#### Steps

1. **Add the settings.** Put this in ~/.claude/settings.json (on Windows, %USERPROFILE%\.claude\settings.json). Never put your key in a project's shared .claude/settings.json.

```json
{
  "env": {
    "ANTHROPIC_BASE_URL": "https://api.freetheai.org",
    "ANTHROPIC_AUTH_TOKEN": "ftai_your_key_here",
    "ANTHROPIC_MODEL": "fta/zai/glm-5.3",
    "ANTHROPIC_DEFAULT_OPUS_MODEL": "fta/zai/glm-5.3",
    "ANTHROPIC_DEFAULT_SONNET_MODEL": "fta/zai/glm-5.3",
    "ANTHROPIC_DEFAULT_HAIKU_MODEL": "fta/zai/glm-5.3-flash",
    "CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC": "1"
  }
}
```
2. **Start Claude Code.** Run claude, then /status. The Anthropic base URL line should show https://api.freetheai.org.
3. **Check in daily.** Free models need one check-in a day at freetheai.org, or requests are refused.

#### Tips

- Claude Code warns that fta/ models are not in its model catalog. That is expected; it still works and assumes a 200K context.
- The HAIKU model runs background tasks such as titles, so a fast model fits there.
- If a model answers 400 about unknown fields, add "CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS": "1".

#### Troubleshooting

**Is using Claude Code with FreeTheAI official?**

No. Claude Code supports custom gateways through ANTHROPIC_BASE_URL, but Anthropic does not support non-Claude models behind one, so some Claude-only features may not work.

**Does Claude Code tool use work on FreeTheAI?**

Yes. File reading and other tools were tested on 2026-09-29 with fta/zai/glm-5.3 and fta/kimi/k3.

**Does it use my Claude subscription?**

No. While ANTHROPIC_AUTH_TOKEN is set, requests go to FreeTheAI with your FreeTheAI key and do not count against a claude.ai plan.

Checked: Tested end to end with Claude Code 2.1.284 on 2026-09-29 (reads a file with its Read tool on three FreeTheAI models).

### Codex CLI Free API: Use FreeTheAI Models in Codex

URL: https://freetheai.org/setup/codex

Codex CLI talks to FreeTheAI through the OpenAI Responses API. Add FreeTheAI as a model provider in config.toml and keep the key in an environment variable.

#### Settings

- base_url: `https://api.freetheai.org/v1`
- wire_api: `responses`
- env_key: `FREETHEAI_API_KEY`

#### Steps

1. **Save your key in an environment variable.** On Windows run the first line and open a new terminal; on macOS and Linux add the second line to your shell profile.

```text
setx FREETHEAI_API_KEY "ftai_your_key_here"
export FREETHEAI_API_KEY="ftai_your_key_here"
```
2. **Edit config.toml.** Open ~/.codex/config.toml (on Windows, %USERPROFILE%\.codex\config.toml) and add:

```toml
model = "fta/zai/glm-5.3"
model_provider = "freetheai"

[model_providers.freetheai]
name = "FreeTheAI"
base_url = "https://api.freetheai.org/v1"
env_key = "FREETHEAI_API_KEY"
wire_api = "responses"
```
3. **Run Codex.** Start codex. To switch models, change model = "..." to any fta/ ID and restart.

#### Tips

- Codex only speaks the Responses API now; wire_api = "chat" is refused by current versions.
- fta/zai/glm-5.3 and fta/kimi/k3 handle tool calls well.

#### Troubleshooting

**Does FreeTheAI support the Responses API Codex needs?**

Yes. /v1/responses is translated for every free model, streamed or not. It was tested with Codex on 2026-09-29.

Checked: Tested with the current Codex CLI on 2026-09-29 (Responses streaming and tool calls through FreeTheAI).

### OpenCode Free API: Add FreeTheAI as a Custom Provider

URL: https://freetheai.org/setup/opencode

OpenCode adds FreeTheAI as a custom provider: the key goes in with /connect, the provider and models go in opencode.json.

#### Settings

- npm: `@ai-sdk/openai-compatible`
- baseURL: `https://api.freetheai.org/v1`
- Provider ID: `freetheai`

#### Steps

1. **Store your key.** In OpenCode run /connect, scroll to Other, enter freetheai as the provider ID, then paste your key.
2. **Add the provider.** Add this to ~/.config/opencode/opencode.json (or opencode.json in your project).

```json
{
  "$schema": "https://opencode.ai/config.json",
  "provider": {
    "freetheai": {
      "npm": "@ai-sdk/openai-compatible",
      "name": "FreeTheAI",
      "options": { "baseURL": "https://api.freetheai.org/v1" },
      "models": {
        "fta/zai/glm-5.3": { "name": "GLM 5.3", "limit": { "context": 200000, "output": 32000 } },
        "fta/kimi/k3": { "name": "Kimi K3", "limit": { "context": 200000, "output": 32000 } }
      }
    }
  }
}
```
3. **Pick the model.** Run /models and choose a FreeTheAI model.

#### Tips

- The limit values let OpenCode track how much context is left. Keep them at or below the model's real limits on freetheai.org/models.

#### Troubleshooting

**Where does OpenCode keep the FreeTheAI key?**

/connect stores it in OpenCode's credential store. You can also set options.apiKey to "{env:FREETHEAI_API_KEY}".

Checked: Checked against OpenCode's provider docs (custom provider) on 2026-09-29.

### Kilo Code Free API: Add FreeTheAI as a Custom Provider

URL: https://freetheai.org/setup/kilo-code

Kilo Code adds FreeTheAI as a custom provider with the OpenAI Compatible API and fetches the model list automatically.

#### Settings

- Provider ID: `freetheai`
- Display name: `FreeTheAI`
- Provider API: `OpenAI Compatible`
- Base URL: `https://api.freetheai.org/v1`
- API key: `your FreeTheAI key (ftai_..., 53 characters)`

#### Steps

1. **Open the providers.** In VS Code, open Kilo Code's Settings (gear) and go to the Providers tab.
2. **Add a custom provider.** Scroll to the bottom, press Custom provider, and fill in the values above.
3. **Pick models and submit.** Select models from the fetched list (or add IDs by hand) and press Submit. They appear in the model picker.

#### Tips

- For the Kilo CLI, add the same provider to ~/.config/kilo/kilo.json with npm @ai-sdk/openai-compatible, as in the OpenCode guide.

#### Troubleshooting

**Kilo Code shows "unknown API route" (404). What is wrong?**

The Base URL must be exactly https://api.freetheai.org/v1, without /chat/completions, and the provider API must be OpenAI Compatible.

**The API key box looks shorter after I paste my key. Is that a problem?**

No. Kilo Code hides the key once it is saved. If requests fail with 401, paste the full ftai_ key (53 characters) again.

**Do I need a Kilo account?**

No. A custom provider works without signing in to Kilo.

**Why do I get a 403 error?**

Free models need one check-in a day. Check in at freetheai.org, then try again.

**Kilo Code is stuck on "considering next steps". What should I do?**

The model is busy. Switch to another model, and check freetheai.org/status.

Checked: Checked against Kilo Code's docs (OpenAI compatible providers) on 2026-09-29.

### Cline Free API: Use FreeTheAI as an OpenAI Compatible Provider

URL: https://freetheai.org/setup/cline

Cline connects to FreeTheAI with its OpenAI Compatible API provider.

#### Settings

- API Provider: `OpenAI Compatible`
- Base URL: `https://api.freetheai.org/v1`
- API Key: `your FreeTheAI key (ftai_..., 53 characters)`
- Model ID: `fta/zai/glm-5.3`

#### Steps

1. **Open Cline settings.** Click the gear icon in the Cline panel.
2. **Choose the provider.** Set API Provider to OpenAI Compatible and fill in the values above.
3. **Set the model limits.** Under Model Configuration, set the context window (for example 128000) and max output tokens so Cline manages context well.

#### Troubleshooting

**Which FreeTheAI models work best in Cline?**

Models with strong tool calling: fta/zai/glm-5.3 and fta/kimi/k3.

Checked: Checked against Cline's docs (OpenAI compatible provider) on 2026-09-29.

### Continue.dev Free API: FreeTheAI in config.yaml

URL: https://freetheai.org/setup/continue-dev

Continue adds FreeTheAI models in config.yaml with the openai provider and FreeTheAI as apiBase.

#### Settings

- provider: `openai`
- apiBase: `https://api.freetheai.org/v1`
- model: `fta/zai/glm-5.3`

#### Steps

1. **Edit config.yaml.** Open ~/.continue/config.yaml (or use the gear in the Continue panel) and add:

```yaml
name: My Config
version: 0.0.1
schema: v1

models:
  - name: FreeTheAI GLM 5.3
    provider: openai
    model: fta/zai/glm-5.3
    apiBase: https://api.freetheai.org/v1
    apiKey: ftai_your_key_here
    roles:
      - chat
      - edit
      - apply
```
2. **Pick the model.** Save the file and choose FreeTheAI GLM 5.3 in the Continue model menu.

#### Tips

- Tab autocomplete needs a completions (FIM) model, which FreeTheAI does not serve. Use FreeTheAI for chat, edit, and apply.

#### Troubleshooting

**Why does autocomplete not work with FreeTheAI in Continue?**

Autocomplete uses the legacy completions endpoint. FreeTheAI serves chat completions, so give the autocomplete role to another model.

Checked: Checked against Continue's docs (OpenAI compatible providers) on 2026-09-29.

### Aider Free API: Use FreeTheAI Models

URL: https://freetheai.org/setup/aider

Aider uses FreeTheAI through its OpenAI compatible setting: two environment variables and the openai/ model prefix.

#### Settings

- OPENAI_API_BASE: `https://api.freetheai.org/v1`
- OPENAI_API_KEY: `your FreeTheAI key (ftai_..., 53 characters)`
- --model: `openai/fta/zai/glm-5.3`

#### Steps

1. **Set the environment variables.** On macOS and Linux:

```bash
export OPENAI_API_BASE=https://api.freetheai.org/v1
export OPENAI_API_KEY=ftai_your_key_here
```
2. **On Windows.** Run these, then open a new terminal:

```powershell
setx OPENAI_API_BASE https://api.freetheai.org/v1
setx OPENAI_API_KEY ftai_your_key_here
```
3. **Start Aider.** In your project folder, add openai/ in front of the FreeTheAI model ID:

```bash
aider --model openai/fta/zai/glm-5.3
```

#### Tips

- Aider warns about unknown model settings for fta/ models. It still works; the warning is about context size defaults.

#### Troubleshooting

**Why does Aider need openai/ before the model?**

The prefix tells Aider to use the OpenAI compatible client with your OPENAI_API_BASE.

Checked: Checked against Aider's docs (OpenAI compatible APIs) on 2026-09-29.

### Zed Editor Free API: Add FreeTheAI as an OpenAI Compatible Provider

URL: https://freetheai.org/setup/zed

Zed adds FreeTheAI as an OpenAI compatible LLM provider for the agent panel.

#### Settings

- Provider: `OpenAI (compatible)`
- API URL: `https://api.freetheai.org/v1`
- Model ID: `fta/zai/glm-5.3`
- API key: `your FreeTheAI key (ftai_..., 53 characters)`

#### Steps

1. **Open Agent Settings.** Press Ctrl+Shift+P (Cmd+Shift+P on Mac) and run agent: open settings.
2. **Add the provider.** Under LLM Providers press Add Provider, choose OpenAI, and enter the provider name, API URL, model ID, context window (for example 128000), and your key. Save.
3. **Or use settings.json.** The same provider in Zed's settings.json. Zed then reads the key from the FREETHEAI_API_KEY environment variable, or from the key you saved in Agent Settings.

```json
{
  "language_models": {
    "openai_compatible": {
      "FreeTheAI": {
        "api_url": "https://api.freetheai.org/v1",
        "available_models": [
          { "name": "fta/zai/glm-5.3", "display_name": "GLM 5.3", "max_tokens": 128000 }
        ]
      }
    }
  }
}
```

#### Troubleshooting

**Where is Add Provider in Zed?**

Press Ctrl+Shift+P (Cmd+Shift+P on Mac) and run agent: open settings. Under LLM Providers press Add Provider, choose OpenAI under compatible APIs, fill it in, and press Save Provider.

**I do not see an Add Provider button. Why?**

Your Zed is out of date. Update it, or add the provider to settings.json as shown above.

**Why do I get a 401 error?**

The key is wrong or incomplete. Paste the whole ftai_ key (53 characters).

**Why do I get a 403 error?**

Free models need one check-in a day. Check in at freetheai.org, then try again.

**The model is busy or the reply is empty. What should I do?**

Try again, or switch to another model. freetheai.org/status shows which models are up.

Checked: Checked against Zed's docs (OpenAI-compatible endpoints) on 2026-09-29.

### VS Code Copilot Free API: Add FreeTheAI Models (BYOK)

URL: https://freetheai.org/setup/github-copilot

VS Code chat adds FreeTheAI through its Custom Endpoint provider (bring your own key). It works even without a Copilot plan.

#### Settings

- Provider: `Custom Endpoint`
- API type: `Chat Completions`
- url: `https://api.freetheai.org/v1/chat/completions`
- API key: `your FreeTheAI key (ftai_..., 53 characters)`

#### Steps

1. **Open the language models.** In the chat model picker, press the gear (Manage Language Models), or run Chat: Manage Language Models.
2. **Add a Custom Endpoint.** Press Add Models, choose Custom Endpoint, enter a group name (FreeTheAI) and your key, and choose Chat Completions.
3. **Describe the models.** VS Code opens chatLanguageModels.json. Fill in the models and save:

```json
[
  {
    "name": "FreeTheAI",
    "vendor": "customendpoint",
    "apiKey": "ftai_your_key_here",
    "apiType": "chat-completions",
    "models": [
      {
        "id": "fta/zai/glm-5.3",
        "name": "GLM 5.3",
        "url": "https://api.freetheai.org/v1/chat/completions",
        "toolCalling": true,
        "vision": false,
        "maxInputTokens": 200000,
        "maxOutputTokens": 32000
      }
    ]
  }
]
```
4. **Pick the model.** Choose GLM 5.3 in the chat model picker. Restart VS Code if it does not show up.

#### Tips

- If VS Code already wrote an apiKey value (a reference to its secret storage), keep that line instead of pasting your key.
- Without a GitHub sign-in, set chat.utilityModel and chat.utilitySmallModel to a FreeTheAI model so titles and commit messages work.
- Bring your own key covers chat and agent mode, not inline code completions.

#### Troubleshooting

**I used the old "OpenAI Compatible" provider. Does it still work?**

It is deprecated. Add FreeTheAI again with the Custom Endpoint provider and the chat-completions API type.

**Why do I get a 401 "invalid API key" error?**

The key is wrong or incomplete. Remove the FreeTheAI group, add it again, and paste the whole ftai_ key (53 characters).

**The model does not show in the picker. What now?**

Save chatLanguageModels.json and restart VS Code.

**Agent mode does nothing with FreeTheAI. Why?**

Keep "toolCalling": true and use a model that supports tools, such as fta/zai/glm-5.3 or fta/kimi/k3.

**Why do I get a 403 error?**

Free models need one check-in a day. Check in at freetheai.org, then try again.

Checked: Checked against the VS Code language models docs (Custom Endpoint provider) on 2026-09-29.

### Hermes Agent Free API: Use FreeTheAI as a Custom Endpoint

URL: https://freetheai.org/setup/hermes-agent

Hermes Agent uses FreeTheAI as a custom endpoint, set up with hermes model or in config.yaml.

#### Settings

- Provider: `Custom endpoint`
- API base URL: `https://api.freetheai.org/v1`
- Model name: `fta/zai/glm-5.3`
- API key: `your FreeTheAI key (ftai_..., 53 characters)`

#### Steps

1. **Run the setup wizard.** In a terminal (outside a chat session) run hermes model, choose Custom endpoint, and enter the API base URL, your key, and the model name.
2. **Or edit config.yaml.** The same setup in ~/.hermes/config.yaml:

```yaml
model:
  default: fta/zai/glm-5.3
  provider: custom
  base_url: https://api.freetheai.org/v1
  key_env: FREETHEAI_API_KEY
```
3. **Switch models later.** Inside a session, run /model custom:fta/kimi/k3 to switch to another FreeTheAI model.

#### Tips

- Hermes needs a model with at least 64K context. All the recommended FreeTheAI models qualify.
- In the Hermes desktop app: open Settings (the gear), go to the Model tab, set Endpoint to Custom Endpoint, press Setup custom endpoint, keep it on Local, enter the API base URL and your key, and press Save. The model list loads by itself.

#### Troubleshooting

**Can I keep the key out of config.yaml?**

Yes. Set key_env to an environment variable name, such as FREETHEAI_API_KEY, and export your key there.

Checked: Checked against Hermes Agent's provider docs (custom endpoint) on 2026-09-29.
