Documentation

Everything you need to get started with OpenTau.

τ

Getting Started

Three steps. No SDK to install, no blockchain wallet to set up, no hoops to jump through.

1

Get your key

Sign up on the dashboard and get an API key instantly. No wallet, no KYC, no waiting.

2

Set your endpoint

Point your existing code to api.opentau.ai/v1 instead of the OpenAI endpoint. That is the only change.

3

Make a request

Use any OpenAI-compatible SDK or library. Python, TypeScript, curl, anything. Same format, same response shape.

# That's it. Use any OpenAI SDK.
base_url = "https://api.opentau.ai/v1"
api_key  = "otau_your-key"

Available Endpoints

OpenTau is fully OpenAI-compatible. If you have code that talks to OpenAI, it already works here.

POST /v1/chat/completions

Chat with any model. Send messages, get responses. Supports streaming.

{ "model": "meta-llama/llama-3.3-70b-instruct",
  "messages": [{ "role": "user", "content": "Hello" }] }
GET /v1/models

Browse all 1,243+ available models across 124 providers. Returns standard OpenAI model list format.

POST /v1/search

Search the web, X/Twitter, Reddit, and ArXiv via 8 providers. See Services for full docs.

POST /v1/images/generations

Generate images from text prompts via FLUX, Stable Diffusion, and more. See Services.

POST /v1/code/execute

Run code in sandboxed environments (Python, JavaScript, Bash). See Services.

POST /v1/scrape

Fetch any webpage as clean markdown or HTML. See Services.

POST /v1/data

Query 47 structured data providers (crypto, weather, math, SEC filings). See Services.

POST /v1/audio

Speech-to-text transcription and audio generation. See Services.

GET /v1/services

List all available services and their models. No authentication required.

POST /v1/fine-tuning/jobs

Create a fine-tuning job. Train any supported open-source model on your dataset using QLoRA or full fine-tune on Bittensor's decentralized GPU network.

GET /v1/fine-tuning/jobs

List your fine-tuning jobs. Returns all jobs for the authenticated user, ordered by creation date.

GET /v1/fine-tuning/jobs/:id

Get the status of a specific fine-tuning job. Includes progress, estimated time remaining, and output model ID when complete.

GET /v1/fine-tuning/prices

Get current fine-tuning pricing. Rates vary by model and dataset size.

Fine-Tuning Example

Powered by Gradients (SN56). Fine-tune any supported model on Bittensor's decentralized training network.

curl https://api.opentau.ai/v1/fine-tuning/jobs \
  -H "Authorization: Bearer otau_..." \
  -H "Content-Type: application/json" \
  -d '{
    "model": "meta-llama/llama-3.1-8b-instruct",
    "training_data": "your-dataset-id",
    "epochs": 3
  }'

Services

Beyond chat inference, OpenTau exposes 6 service endpoints backed by 104 specialized providers across the Handshake network. All services share the same authentication and billing.

Discover available services and their models with the GET /v1/services endpoint (no auth required).

GET /v1/services

List all available services and their models. No authentication required. Returns service categories, model counts, and default models for each service type.

curl https://api.opentau.ai/v1/services
POST /v1/search

Search the web, X/Twitter, Reddit, and ArXiv via 8 providers including Desearch (SN22), Tavily, Brave, and Exa. Returns results with titles, URLs, snippets, and relevance scores.

Parameters:
query (required) — search query string
model (optional) — default: desearch/ai-search
max_results (optional) — number of results, default 10
Models: desearch/ai-search, desearch/ai-twitter-search, tavily/search, brave/search, exa/search
curl https://api.opentau.ai/v1/search \
  -H "Authorization: Bearer otau_your-key" \
  -H "Content-Type: application/json" \
  -d '{
    "query": "latest Bittensor subnet launches",
    "model": "desearch/ai-search",
    "max_results": 10
  }'
POST /v1/images/generations

Generate images from text prompts via 4 providers including Replicate, Stability AI, and fal.ai. Supports FLUX, Stable Diffusion, and other models. Returns image URLs.

Parameters:
prompt (required) — image description
model (optional) — default: replicate/black-forest-labs/flux-schnell
n (optional) — number of images, default 1
size (optional) — e.g. 1024x1024, 512x512
curl https://api.opentau.ai/v1/images/generations \
  -H "Authorization: Bearer otau_your-key" \
  -H "Content-Type: application/json" \
  -d '{
    "prompt": "A mystical rune circle glowing green in a dark forest",
    "model": "replicate/black-forest-labs/flux-schnell",
    "n": 1,
    "size": "1024x1024"
  }'
POST /v1/code/execute

Execute code in secure sandboxed E2B environments. Supports Python, JavaScript, TypeScript, Bash, and R. Returns stdout, stderr, and execution metadata.

Parameters:
language (required) — python, javascript, bash, typescript, r
code (required) — source code to execute
model (optional) — default: e2b/python
Models: e2b/python, e2b/javascript, e2b/typescript, e2b/bash, e2b/r
curl https://api.opentau.ai/v1/code/execute \
  -H "Authorization: Bearer otau_your-key" \
  -H "Content-Type: application/json" \
  -d '{
    "language": "python",
    "code": "import math\nfor i in range(5):\n    print(f\"{i}: {math.factorial(i)}\")",
    "model": "e2b/python"
  }'
POST /v1/scrape

Fetch any webpage as clean markdown or structured HTML. Powered by 9 providers including Webtools, Firecrawl, and Apify. Handles JavaScript-rendered pages.

Parameters:
url (required) — URL to scrape
format (optional) — markdown or html, default markdown
model (optional) — default: webtools/fetch-markdown
Models: webtools/fetch-markdown, webtools/fetch-html, firecrawl/scrape, apify/web-scraper
curl https://api.opentau.ai/v1/scrape \
  -H "Authorization: Bearer otau_your-key" \
  -H "Content-Type: application/json" \
  -d '{
    "url": "https://docs.bittensor.com/getting-started",
    "format": "markdown",
    "model": "webtools/fetch-markdown"
  }'
POST /v1/data

Query 47 structured data providers through a single endpoint. Crypto prices (CoinGecko), math computation (Wolfram), weather, SEC filings, geocoding, exchange rates, and Bittensor network stats (TaoStats).

Parameters:
model (required) — data provider and endpoint
query (required) — query string or parameters
Models: livedata/exchange-rate, taostats/query, numinous/forecaster, coingecko/price, wolfram/compute, weather/forecast, sec/filings, maps/geocode, and 39 more
curl https://api.opentau.ai/v1/data \
  -H "Authorization: Bearer otau_your-key" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "livedata/exchange-rate",
    "query": "TAO/USD"
  }'
POST /v1/audio

Speech-to-text transcription via Whisper and audio generation via Suno. Process audio input for transcription or generate spoken content programmatically.

Parameters:
model (optional) — default: whisper/large-v3
input (required) — base64-encoded audio data or text prompt
curl https://api.opentau.ai/v1/audio \
  -H "Authorization: Bearer otau_your-key" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "whisper/large-v3",
    "input": "base64-encoded-audio..."
  }'

Models

OpenTau gives you access to 1,243+ models from 124 providers across every major open-source family. Chat models, image generators, code executors, search engines, data APIs, and more — all served by decentralized miners.

Switching models is trivial. Change the model string. Everything else stays exactly the same.

Llama
Mistral
DeepSeek
Qwen
Phi
Gemma
</>CodeLlama
8xMixtral
# Just change the model string
model = "meta-llama/llama-3.3-70b-instruct"
model = "deepseek/deepseek-r1"
model = "mistralai/mixtral-8x22b-instruct"

Use the full lowercase model name (e.g., meta-llama/llama-3.3-70b-instruct). Hit /v1/models to browse the full list.

Authentication

Every request needs an Authorization header with your API key. That is the only authentication.

Authorization: Bearer otau_your-api-key

Your key is shown in the dashboard right after signup. Keep it secret. If it leaks, rotate it from the dashboard.

Rate limits
Free tier: 500 requests/day, models up to 70B only, max_tokens=1000, no streaming.
Paid tier: unlimited requests, all 1,243 models, streaming enabled, no token cap.

Billing & Credits

OpenTau uses a simple pay-as-you-go credit system. No subscriptions, no monthly commitments, no surprises.

Free tier ($0)

500 requests per day. Small models only (up to 70B: Llama 3.3 70B, Mistral 7B, Qwen 7B, Gemma 9B, Phi-4). max_tokens capped at 1,000. No streaming. No deposit, no credit card, no wallet.

Paid tier (deposit USDC on Base)

Unlimited requests. All 1,243 models including DeepSeek R1 671B, GPT-4o, Claude, 405B+, plus all services (search, images, code, scraping, data, audio). Streaming enabled, no token cap. 50% markup on upstream cost. Credits appear within ~30 seconds of deposit.

When credits run out

The API returns a 402 Payment Required response. Top up anytime from the dashboard and you are back instantly.

See the full breakdown on the Pricing page.

Cross-Subnet Pipelines

OpenTau is the only API that lets you chain multiple decentralized AI services in a single call. This is possible because we route across Bittensor's specialized subnets, not just one inference provider.

A few things you can do that no centralized API offers:

Collect data from decentralized search, then train a model on it, then serve it via inference
Generate content with an LLM, then verify its authenticity on another subnet
Store training data on decentralized storage, fine-tune a model, and deploy it on inference miners

Full examples and pipeline syntax on the Pipelines page.

SDKs & Integration

You do not need a new library. OpenTau works with any OpenAI-compatible SDK because the API format is identical. Just change the base URL.

Python
from openai import OpenAI
client = OpenAI(
  base_url="https://api.opentau.ai/v1",
  api_key="otau_your-key"
)
curl
curl https://api.opentau.ai/v1/chat/completions \
  -H "Authorization: Bearer otau_your-key" \
  -d '{"model":"meta-llama/llama-3.3-70b-instruct",
      "messages":[{"role":"user","content":"Hi"}]}'

Compatible with frameworks you already use:

LangChain CrewAI AutoGPT ElizaOS Virtuals GAME SDK OpenAI Python SDK @openai/sdk (TS)

Frequently Asked

Is this really free? +

Yes. The free tier gives you 500 requests per day with small models (up to 70B), no deposit, no credit card, and no wallet. If you need more models or higher limits, deposit USDC on Base — you pay per request with a 50% markup on upstream cost. There are no hidden fees and you can never overspend.

How is this different from OpenRouter? +

OpenRouter routes to centralized providers (OpenAI, Anthropic, Google). OpenTau routes to 124 decentralized providers via Bittensor. No single company controls the inference. Plus, we offer services OpenRouter cannot: search (8 providers), image generation, code execution, web scraping, 47 data APIs, audio, fine-tuning, and cross-subnet pipelines.

Are my prompts private? +

Your prompts are forwarded to miners who process them and return results. OpenTau does not log or store your prompts. Miners on Bittensor are incentivized to respond correctly, not to harvest data. For maximum privacy, use the confidential compute subnet which processes data in secure enclaves.

What happens if a miner goes down? +

Nothing, from your perspective. The gateway automatically routes to the next available miner. There are hundreds of miners competing on each subnet, so there is always redundancy. You will never get a "service unavailable" because one machine went offline.

Can I use this for my agent or bot? +

Absolutely. OpenTau is designed for autonomous agents. It works with ElizaOS, Virtuals GAME SDK, CrewAI, AutoGPT, and any framework that speaks the OpenAI format. Many agents on Bittensor already use us as their backbone.

What models are uncensored? +

Many open-source models available through OpenTau have minimal or no content filtering. Decentralized miners run the models as-is, without adding extra safety layers. Check the model list for specific uncensored variants. This is one of the key advantages of decentralized inference.

Do I need a crypto wallet? +

Not for the free tier. Just sign up with an email and start making requests (500/day, small models up to 70B). You only need a wallet if you want to deposit USDC on Base for paid usage (all 1,243 models + all services, streaming, no limits). Even then, the flow is simple: send USDC to the deposit address shown in your dashboard.

What if I need help? +

Reach out on X or join the community. We are responsive and actively building. If something is broken or confusing, we want to know about it.

TauClaw

TauClaw is OpenClaw powered by OpenTau — a self-hosted Telegram AI agent running on Bittensor's decentralized inference network.

What You Get

  • Personal AI agent on Telegram
  • 1,243+ models (Llama 70B, DeepSeek R1 671B, Hermes 405B)
  • Self-hosted on your own server — your data stays with you
  • No logs, no censorship, no corporate kill switch
  • Decentralized inference via Bittensor DRAIN micropayments

Quick Setup (30 seconds)

1. Get an API key from opentau.ai/dashboard

2. Create a Telegram bot via @BotFather

3. Run the installer:

# Replace with your actual keys
curl -fsSL https://opentau.ai/tauclaw-install.sh | \
  OPENTAU_KEY="otau_your_key" \
  BOT_TOKEN="your_telegram_bot_token" \
  bash

4. Approve yourself when the bot sends a pairing code:

docker exec tauclaw openclaw pairing approve telegram YOUR_CODE

What the Installer Does

  • 1. Installs Docker if not present
  • 2. Creates ~/tauclaw/ with docker-compose.yml + openclaw.json
  • 3. Pulls the OpenClaw Docker image
  • 4. Starts the container with your API key + bot token
  • 5. Bot goes live on Telegram in ~30 seconds

Available Models

Default: Llama 3.3 70B
DeepSeek R1 671B
Hermes 4 405B

Management Commands

# View logs
docker logs tauclaw --tail 50

# Restart
cd ~/tauclaw && docker compose restart

# Stop
cd ~/tauclaw && docker compose down

# Update
cd ~/tauclaw && docker compose pull && docker compose up -d

Interactive setup with config generator: opentau.ai/tauclaw