OpenClaw in Russia: install the AI agent and connect Claude, DeepSeek and GPT without a VPN
OpenClaw is a free, open-source (MIT) AI assistant that runs on your own computer or server and answers you in Telegram, WhatsApp, Discord and other messengers. It ships no models of its own: you connect them through a provider. RuAPI plugs into OpenClaw as a custom provider — Claude in the native Anthropic format, DeepSeek, GPT, GLM and Kimi in the OpenAI format, one key for everything. Requests go to www.ruapi.ai without a VPN, and you top up in USDT.
from openai import OpenAI
client = OpenAI(
api_key="sk-...",
base_url="https://www.ruapi.ai/v1",
)
resp = client.chat.completions.create(
model="deepseek-flash",
messages=[{"role": "user", "content": "Hello"}],
)
print(resp.choices[0].message.content)Use this request (cURL tab) to test your key before setting up OpenClaw: deepseek-flash also works on the trial balance. In OpenClaw the same key goes into the provider apiKey field or the API Key step of the onboard wizard.
Why OpenClaw needs RuAPI as a provider
OpenClaw is free; the models are not.
OpenClaw has no paid tier or hosted service: the project is run by the independent OpenClaw Foundation (github.com/openclaw/openclaw, 2 Nov 2026). But every message to the agent is a request to a language model, and the tokens are paid to whoever serves that model. RuAPI charges only for the tokens used, with no subscription or monthly minimum.
Anthropic and OpenAI keys are officially out of reach from Russia.
The built-in Anthropic and OpenAI providers in OpenClaw need a key from those companies, and Russia is not on their supported-country lists (anthropic.com/supported-countries, developers.openai.com, 2 Nov 2026). Russian bank cards do not work abroad either. For RuAPI, an email, Google or Yandex account is enough, and you can top up in USDT from 5 USDT.
An agent needs more than one model.
Hard tasks are best handed to Claude or GPT, while routine work such as sorting mail and reminders can go to a cheaper model. Through RuAPI one OpenClaw gets Claude, GPT, Gemini, DeepSeek, GLM, Kimi and Qwen. For example, Z.ai describes GLM-5-Turbo as “deeply optimized” for OpenClaw scenarios (docs.z.ai, 2 Nov 2026).
How to connect OpenClaw to RuAPI
OpenClaw installs with one command on macOS, Linux and Windows. RuAPI is added as a provider either in the setup wizard (step 4) or by hand in ~/.openclaw/openclaw.json (step 5).
Create a RuAPI account and top up
Sign up at www.ruapi.ai with email, Google or Yandex — no phone number needed. Top up in USDT from 5 USDT (TRC20, BEP20, TON, Polygon) or in USDC; USDT can be bought with rubles via SBP — guide: docs.ruapi.ai/en/buy-usdt. Foreign-issued cards are accepted too.
New accounts usually get $0.05 right away. On that balance claude-haiku-5-5, deepseek-flash and gpt-6-luna work — enough to see the agent reply. Other models become available after the first top-up.
Create a separate key for OpenClaw
Console → API Keys → "Create API key". OpenClaw replies in messengers and runs scheduled jobs on its own, so give the key a spending limit: the agent cannot spend more than that.


Install OpenClaw
- macOS, Linux and WSL2: curl -fsSL https://openclaw.ai/install.sh | bash
- Windows (PowerShell): iwr -useb https://openclaw.ai/install.ps1 | iex
- The installer sets up a suitable Node.js and launches the setup wizard (docs.openclaw.ai/install, 2 Nov 2026).
Add RuAPI in the wizard as a Custom Provider
- Where: Quick start → More… → Custom Provider.
- API Base URL: https://www.ruapi.ai/v1 for DeepSeek, GPT and GLM; https://www.ruapi.ai without /v1 for Claude.
- API Key: your sk-… key.
- Endpoint compatibility: OpenAI-compatible, or Anthropic-compatible for Claude.
- Model ID: e.g. deepseek-flash or claude-sonnet-5-5. Endpoint ID is the provider name in OpenClaw: ruapi for Claude, ruapi-openai for the OpenAI format, as in step 5.
- Before saving, the wizard sends the model a real request and checks the reply.
Or write the provider by hand
File ~/.openclaw/openclaw.json, section models.providers. The Gateway picks up file changes on its own.
- Claude — provider ruapi: baseUrl "https://www.ruapi.ai", api "anthropic-messages", apiKey "sk-…".
- Its models: models: [{ id: "claude-sonnet-5-5", name: "Claude Sonnet 5.5" }].
- DeepSeek, GPT and GLM — a second provider, ruapi-openai: baseUrl "https://www.ruapi.ai/v1", api "openai-completions", the same apiKey.
- Main model: agents.defaults.model.primary, e.g. "ruapi/claude-sonnet-5-5"; fallbacks go in agents.defaults.model.fallbacks.
- Check: openclaw models status shows the active model.
Step-by-step guide with troubleshooting: docs.ruapi.ai/en/integrations/openclaw
What to set in OpenClaw
Claude (Anthropic format)
api: "anthropic-messages"
baseUrl: "https://www.ruapi.ai" — no /v1
DeepSeek, GPT, GLM (OpenAI format)
api: "openai-completions"
baseUrl: "https://www.ruapi.ai/v1"
Payment
USDT / USDC from 5 USDT
foreign-issued cards
Model prices for OpenClaw
Models that work well as the main or fallback model in OpenClaw, in USD per 1M tokens, from the pricing page. No subscription: only the tokens the agent uses are charged.
| model | input $/M | output $/M |
|---|---|---|
| deepseek-flash | $0.17 cache read $0.0120 | $1.44 |
| claude-haiku-5-5 | $0.12 cache read $0.0120 >100K: $0.60 | $0.60 >100K: $3.00 |
| gpt-5.4-mini | $0.90 cache read $0.0900 | $5.40 |
| GLM-5-Turbo | $1.44 cache read $0.29 | $4.80 |
| gpt-5.4 | $3.00 cache read $0.30 >272K: $6.00 | $18.00 >272K: $27.00 |
| claude-sonnet-5-5 | $2.40 cache read $0.12 | $12.00 |
| claude-opus-5-5 | $4.80 cache read $0.24 | $24.00 |
How to read the table: input is new input tokens, “cache read” is input tokens taken from the cache, output is what the model writes. The agent puts its system instructions, tool descriptions and chat history into every request, so input tokens usually far outnumber output tokens. For DeepSeek and GPT the repeated start of a request is read from the cache automatically. For Claude in the Anthropic format, OpenClaw adds cache_control marks itself (a 5-minute cache), so on repeat requests system instructions and history are also billed at the cache-read rate (docs.ruapi.ai/en/prompt-caching).
The grey “>100K” line is the vendor’s rate for long prompts: if a prompt goes over the threshold, the whole request is billed at that rate.
