# 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.
- Free tier: sign up with a Gmail, Outlook, Yahoo, or iCloud address, confirm the email, create an API key, and do a short check-in once a day at https://freetheai.org/checkin.
- 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

1. Sign up at https://freetheai.org/signup and confirm your email.
2. Create an API key in Dashboard > API keys. It starts with `ftai_` and is shown once.
3. Do today's check-in at https://freetheai.org/checkin.
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.

### Errors and limits

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

Free models unlock after a quick daily check-in at freetheai.org/checkin. 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.

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

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

## Blog posts

### 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](https://freetheai.org/signup), create an API key, do the daily [check-in](https://freetheai.org/checkin), 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/signup](https://freetheai.org/signup) 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](https://freetheai.org/checkin). 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/checkin](https://freetheai.org/checkin). 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](https://freetheai.org/signup), 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/signup](https://freetheai.org/signup) and confirm your email.
2. Create a key under Dashboard > API keys and copy all of it.
3. Check in at [freetheai.org/checkin](https://freetheai.org/checkin). 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/checkin](https://freetheai.org/checkin). |

#### 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/signup](https://freetheai.org/signup) and confirm your email.
2. Create a key under Dashboard > API keys.
3. Check in once a day at [freetheai.org/checkin](https://freetheai.org/checkin).
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 Free API in 2026: A Free Proxy That Actually Works

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

**Quick answer:** Create a free account at [freetheai.org](https://freetheai.org/signup), 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/signup](https://freetheai.org/signup) 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/checkin](https://freetheai.org/checkin). 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/checkin](https://freetheai.org/checkin) 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 Plan 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.

### 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/checkin. 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/checkin](https://freetheai.org/checkin). 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/signup](https://freetheai.org/signup) and confirm your email.
2. Create a key in Dashboard > API keys.
3. Do today's check-in at [freetheai.org/checkin](https://freetheai.org/checkin).

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](https://freetheai.org/checkin). 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/checkin](https://freetheai.org/checkin).

#### 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](https://freetheai.org/checkin) 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/checkin. 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. The full list is at freetheai.org/models.

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/checkin.

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

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, some users add {"thinking": {"type": "disabled"}} under request body parameters. Only some models honor it.

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

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/checkin, 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 https://api.freetheai.org/v1 and the provider API must be OpenAI Compatible.

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?**

In the agent panel settings (agent: open settings), in the LLM Providers section.

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.

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.

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