# Unlimited AI > Every model. One chat. GPT, Claude, Gemini, DeepSeek, Grok, Qwen, Kimi and Llama in one interface. No keys, no signup. ## Overview Free web-based AI chat providing 31 models from 8 providers. Also exposes OpenAI-compatible and Anthropic-compatible API endpoints for SDK/tool integration. The original custom endpoints (`/api/chat`, `/api/search`, `/api/merge`) continue to work. Rate limited to 120 requests/minute per IP (removed after email sign-in). Optional email sign-in with verification code for feedback replies + unlimited rate. ## Trust & Privacy - **What this is:** A personal hobby project run by an individual — not a company, not a professional platform. No legal entity. You have no contractual protection. Treat it accordingly. - **Why was this made:** AI subscriptions are expensive — ChatGPT Plus, Claude Pro, Gemini Advanced each cost $20+/month, and direct API usage for casual chatting adds up fast. The creator built this so people who can't afford multiple subscriptions or don't want another monthly bill can still access the best models. It's a utility, not a business. - **How models are accessed:** The operator pays for official API access to OpenAI, Anthropic, Google, xAI, DeepSeek, Alibaba, DeepInfra, and Meta. All responses come from official provider APIs — nothing is reverse-engineered or unauthorized. - **Data & upstream gateway:** Cloudflare (the host) logs requests at the edge per their standard practices. The Cloudflare Worker — which receives your request first — has no persistent storage and cannot log prompts; this is an architectural constraint of the Workers runtime, not a configuration choice. The Worker then forwards your request to the upstream gateway, the operator's private server running on a rented VPS with persistent disk storage. The gateway maps your chosen model ID to the correct AI provider API, attaches the operator's paid API key, and forwards the request. The operator states the gateway is configured not to log, store, or persist prompt content, but this configuration choice — unlike the Worker's architectural constraint — cannot be independently verified. A malicious operator could log prompts, modify content, or alter responses without external detection. There is no independent audit, no SOC 2 report, and no third-party monitoring. The gateway does not receive your IP address (the Worker does not forward it) and cannot identify you beyond what you include in your message content. For a full technical analysis including the exact 8-step data flow, attack surface scenarios, and comparison to commercial API proxies, see the privacy statement Section 6.1. - **No user API keys needed:** The infrastructure key is free and scoped to your IP. - **Rate limited:** 120 requests/minute per browser to prevent abuse. Removed after optional email sign-in with verification code. - **Risk by use case:** Casual chat and coding help — low to moderate risk. Business, legal, medical, proprietary code, or production integrations — very high risk. Use accordingly. - **Full privacy statement:** https://unlimited-ai-free.pages.dev/privacy.html - **Terms of service:** https://unlimited-ai-free.pages.dev/terms.html ## Features - Chat with any of 31 models across OpenAI, Anthropic, Google, DeepSeek, xAI, Alibaba, Meta, DeepInfra - Merge AI: combine 2-3 models for collaborative responses - Web Search: real-time search with cited sources - Streaming SSE responses with auto-recovery - Custom instructions per chat - Developer API (rate-limited to 120 req/min) — key generated per IP, no signup - OpenAI-compatible `/v1/chat/completions` endpoint - Anthropic-compatible `/v1/messages` endpoint - Mobile-optimized version served automatically on phones and tablets (mobile.html) - File upload with server-side content resolution (max 2 MB, 10 min TTL) - Active user count via `GET /api/active` endpoint - Auto-scroll control — scroll up to stop following output, click down-arrow to resume - Conversation export as JSON (both desktop and mobile) - Real usage tracking via `GET /api/usage` (returns requests/minute per IP) - Optional email sign-in with verification code — identifies you so the developer can reply to your feedback, and removes the 120 req/min rate limit - Feedback submission with optional email for replies — accessible via sidebar button - Developer feedback inbox with reply functionality — visible to signed-in developer ## API Endpoints | Endpoint | Compatible With | Description | |---|---|---| | `GET /api/key` | Custom | Generate API key (no auth needed) | | `POST /api/chat` | Custom | Simple chat (legacy, still works) | | `POST /api/merge` | Custom | Merge AI — send prompt to 2-3 models | | `POST /api/search` | Custom | Web search with cited sources | | `POST /api/upload` | Custom | Upload file (max 2 MB, 10 min TTL) | | `GET /api/files/:id` | Custom | Retrieve uploaded file | | `GET /api/active` | Custom | Active user count (last 60s) | | `POST /v1/chat/completions` | **OpenAI** | Chat completions (stream + non-stream) | | `POST /v1/messages` | **Anthropic** | Messages API (stream + non-stream) | | `GET /v1/models` | OpenAI / Anthropic | List models | | `GET /api/usage` | Custom | Check usage for your key | | `GET /status` | Custom | Health check (no auth needed) | | `POST /api/auth/send-code` | Custom | Send email verification code | | `POST /api/auth/verify-code` | Custom | Verify email code and sign in | | `POST /api/feedback` | Custom | Submit feedback (message + optional email) | | `GET /api/feedback` | Custom | Retrieve feedback submissions (developer only) | | `POST /api/feedback/:id/reply` | Custom | Reply to a feedback submission | | `POST /api/verified-keys` | Custom | Create a persistent API key (verified users, prefix `xav-`) | | `GET /api/verified-keys` | Custom | List your API keys with usage stats | | `DELETE /api/verified-keys/:id` | Custom | Delete an API key | | `POST /api/verified-keys/:id/toggle` | Custom | Enable or disable an API key | All endpoints use the same model IDs, the same rate limit (120 req/min per browser), and the same API key (Authorization: Bearer header for OpenAI-compatible, x-api-key header for Anthropic-compatible). The legacy endpoints use a simpler JSON schema — see the full API documentation on the homepage for request/response field tables. ### File Upload Files are uploaded via `POST /api/upload` (multipart/form-data with field name `file`). The response includes an `id` and `url` (e.g., `/api/files/abc123`). Reference the URL in chat messages, and the server resolves the file content automatically before forwarding to the AI provider. Binary files (PDF, DOCX, XLSX) are included as links; text files have their content inlined server-side (up to 50,000 chars per file). ## Usage Examples ### OpenAI SDK (Python) ```python from openai import OpenAI client = OpenAI(base_url='https://unlimited-ai-free.pages.dev', api_key='YOUR_KEY') stream = client.chat.completions.create( model='gpt-5', messages=[{'role': 'user', 'content': 'Hello!'}], stream=True, ) for chunk in stream: print(chunk.choices[0].delta.content or '', end='') ``` ### OpenAI SDK (JavaScript/Node) ```javascript import OpenAI from 'openai'; const client = new OpenAI({ baseURL: 'https://unlimited-ai-free.pages.dev', apiKey: 'YOUR_KEY' }); const stream = await client.chat.completions.create({ model: 'gpt-5', messages: [{ role: 'user', content: 'Hello' }], stream: true }); for await (const chunk of stream) process.stdout.write(chunk.choices[0]?.delta?.content || ''); ``` ### Anthropic SDK (JavaScript/Node) ```javascript import Anthropic from '@anthropic-ai/sdk'; const client = new Anthropic({ baseURL: 'https://unlimited-ai-free.pages.dev', apiKey: 'YOUR_KEY' }); const msg = await client.messages.create({ model: 'claude-opus-4-7-20260101', max_tokens: 1024, messages: [{ role: 'user', content: 'Hello' }] }); ``` ### Anthropic SDK (Python) ```python import anthropic client = anthropic.Anthropic(base_url='https://unlimited-ai-free.pages.dev', api_key='YOUR_KEY') msg = client.messages.create(model='claude-opus-4-7-20260101', max_tokens=1024, messages=[{'role': 'user', 'content': 'Hello!'}]) ``` ### Python (requests — no SDK) ```python import requests r = requests.post('https://unlimited-ai-free.pages.dev/v1/chat/completions', headers={'Authorization': 'Bearer YOUR_KEY', 'Content-Type': 'application/json'}, json={'model': 'gpt-5', 'messages': [{'role': 'user', 'content': 'Hello!'}], 'stream': True}, stream=True) for line in r.iter_lines(): if line: print(line.decode()) ``` ### cURL ```bash curl https://unlimited-ai-free.pages.dev/v1/chat/completions \ -H "Content-Type: application/json" \ -H "Authorization: Bearer YOUR_KEY" \ -d '{"model":"gpt-5","messages":[{"role":"user","content":"Hello"}],"stream":true}' ``` ### Go ```go package main import ("bytes"; "encoding/json"; "fmt"; "net/http") func main() { body, _ := json.Marshal(map[string]any{"model": "gpt-5", "messages": []any{map[string]string{"role":"user","content":"Hello!"}}}) req, _ := http.NewRequest("POST", "https://unlimited-ai-free.pages.dev/v1/chat/completions", bytes.NewReader(body)) req.Header.Set("Authorization", "Bearer YOUR_KEY") req.Header.Set("Content-Type", "application/json") resp, _ := http.DefaultClient.Do(req) // read resp.Body... } ``` ### Ruby ```ruby require 'net/http' uri = URI('https://unlimited-ai-free.pages.dev/v1/chat/completions') req = Net::HTTP::Post.new(uri) req['Authorization'] = 'Bearer YOUR_KEY' req['Content-Type'] = 'application/json' req.body = '{"model":"gpt-5","messages":[{"role":"user","content":"Hello!"}]}' res = Net::HTTP.start(uri.host, uri.port, use_ssl: true) { |http| http.request(req) } puts res.body ``` ### PHP ```php true, CURLOPT_HTTPHEADER => ['Authorization: Bearer YOUR_KEY', 'Content-Type: application/json'], CURLOPT_POSTFIELDS => json_encode(['model'=>'gpt-5','messages'=>[['role'=>'user','content'=>'Hello!']]]), CURLOPT_RETURNTRANSFER => true, ]); echo curl_exec($ch); ``` ### OpenCode (opencode.json) ```json { "provider": { "unlimited-ai": { "npm": "@ai-sdk/openai-compatible", "name": "Unlimited AI", "options": { "baseURL": "https://unlimited-ai-free.pages.dev" }, "models": { "gpt-5": { "name": "GPT-5" }, "claude-opus-4-8": { "name": "Claude Opus 4.8" }, "gemini-3-pro": { "name": "Gemini 3 Pro" }, "deepseek-v4-pro": { "name": "DeepSeek V4 Pro" }, "grok-4": { "name": "Grok 4" } } } } } ``` ### Discord.js Bot ```javascript const { Client, GatewayIntentBits } = require('discord.js'); const client = new Client({ intents: [GatewayIntentBits.Guilds] }); const AI_KEY = 'YOUR_KEY'; // get from Developer access panel (ua_ or xav-) client.on('interactionCreate', async i => { if (!i.isChatInputCommand()) return; await i.deferReply(); const r = await fetch('https://unlimited-ai-free.pages.dev/v1/chat/completions', { method: 'POST', headers: { 'Content-Type': 'application/json', 'Authorization': 'Bearer ' + AI_KEY }, body: JSON.stringify({ model: 'gpt-5-mini', messages: [{ role: 'user', content: i.options.getString('prompt') }], stream: false }), }); const d = await r.json(); await i.editReply((d.choices?.[0]?.message?.content || 'No response').slice(0, 2000)); }); client.login('DISCORD_BOT_TOKEN'); ``` ### Environment Variables (for CLI tools) ``` export ANTHROPIC_BASE_URL=https://unlimited-ai-free.pages.dev export ANTHROPIC_API_KEY=YOUR_KEY ``` ## Models (31 total) Model IDs are internal routing aliases — they map to a specific version or configuration of each provider's model and may not correspond to official public model names. ### OpenAI (11) `gpt-5`, `gpt-5-1`, `gpt-5-3`, `gpt-5-4`, `gpt-5-5`, `gpt-5-mini`, `gpt-5-nano`, `gpt-5-online`, `gpt-4o`, `gpt-4-1-mini`, `gpt-4-1-nano` ### Anthropic (7) `claude-opus-4-8`, `claude-opus-4-7`, `claude-opus-4-6`, `claude-opus-4-5`, `claude-opus-4-1`, `claude-sonnet-4-6`, `claude-sonnet-4` Anthropic SDK: use date-suffixed IDs like `claude-opus-4-8-20260101` or `claude-opus-4-7-20260101` ### Google (4) `google-2.5-pro`, `gemini-3-pro`, `gemini-3-1-pro`, `gemini-2.5-flash` ### DeepSeek (4) `deepseek-v4-pro`, `deepseek-v4-flash`, `deepseek-v3`, `deepseek-r1` ### xAI (1) `grok-4` ### Alibaba (2) `qwen-3-max`, `qwen-qwq-32b` ### DeepInfra (1) `deepinfra-kimi-k2` ### Meta (1) `llama-3-3-70b-versatile` ## Links - Homepage: https://unlimited-ai-free.pages.dev/ - Privacy: https://unlimited-ai-free.pages.dev/privacy.html - Terms of Service: https://unlimited-ai-free.pages.dev/terms.html - API: https://unlimited-ai-free.pages.dev/v1/chat/completions - OG Image: https://unlimited-ai-free.pages.dev/og.png - Security: https://unlimited-ai-free.pages.dev/.well-known/security.txt