Titan AI

API docs

Use the same free AI from your own scripts, Cursor, or any app that supports a custom OpenAI base URL. Ask the owner for a personal key (it starts with pa-).

Endpoint

Base URL: https://titan-ai.me/v1 — OpenAI-compatible chat completions.

POST /v1/chat/completions
Authorization: Bearer pa-YOUR-KEY
Content-Type: application/json

{
  "model": "auto",
  "messages": [{"role": "user", "content": "Say hi in five words."}]
}

model can be auto (the service picks the best working provider) or an exact model id from /v1/models. Streaming works with "stream": true; reasoning models also return reasoning_content.

Check your quota

Examples

curl:

curl https://titan-ai.me/v1/chat/completions \
  -H "Authorization: Bearer pa-YOUR-KEY" \
  -H "Content-Type: application/json" \
  -d '{"model":"auto","messages":[{"role":"user","content":"hi"}]}'

Python:

from openai import OpenAI

client = OpenAI(base_url="https://titan-ai.me/v1", api_key="pa-YOUR-KEY")
reply = client.chat.completions.create(
    model="auto",
    messages=[{"role": "user", "content": "Explain photosynthesis in one sentence."}],
)
print(reply.choices[0].message.content)

Cursor: Settings → Models → paste the key under OpenAI API Key, enable "Override OpenAI Base URL" with https://titan-ai.me/v1, then add a custom model named auto.

Tools and coding agents

Tool calling works (OpenAI tools / tool_calls), including together with streaming, so you can point Cline, Roo Code, Continue, aider, or Cursor agent mode at this API. Those agents run on your own computer and execute tools locally; this service only relays model traffic. Ask the owner for an agent key (300/day, 30/minute by default) — setup notes are on the Local agents page.

{
  "model": "auto",
  "stream": true,
  "messages": [{"role": "user", "content": "What is 17*23? Use the tool."}],
  "tools": [{
    "type": "function",
    "function": {
      "name": "run_python",
      "description": "Run Python and return what it prints.",
      "parameters": {"type": "object", "properties": {"code": {"type": "string"}}, "required": ["code"]}
    }
  }]
}

The reply carries tool_calls (streamed as delta.tool_calls fragments, ending with finish_reason: "tool_calls"). Send each result back as a {"role": "tool", "tool_call_id": ...} message to continue the loop.

Limits and errors

Default: 30 requests/day and 5/minute per key (agent keys: 300/day and 30/minute), plus a shared daily pool for the whole site. Errors use the OpenAI shape: 401 invalid key, 429 rate/quota limit, 503 generation paused or no provider.

Back to the AI page · Request a key