> ## Documentation Index
> Fetch the complete documentation index at: https://docs.ruapi.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Quick Start

> From sign-up to your first LLM request in 5 minutes

This guide takes you from a blank screen to your first successful request to OpenAI / Claude / Gemini through RuAPI.

<Tip>
  **Base URL** — in your client this is the only thing you swap (click the icon at the top-right of each box to copy):

  **OpenAI-compatible** · Cursor / Cline / Codex / OpenAI SDK — with `/v1`

  ```bash theme={null}
  https://www.ruapi.ai/v1
  ```

  **Anthropic** · Claude Code / Anthropic SDK — without `/v1`

  ```bash theme={null}
  https://www.ruapi.ai
  ```

  ⚠️ The Anthropic endpoint takes **no** `/v1` — the SDK appends `/v1/messages` itself, so an extra `/v1` returns 404.
</Tip>

## Step 1. Sign up

Open [www.ruapi.ai](https://www.ruapi.ai) and click **Sign up**.
Enter email, password and the verification code that arrives in your inbox.

<Tip>
  Didn't get the email? Check your Spam folder. Still nothing — write to
  [support@ruapi.ai](mailto:support@ruapi.ai).
</Tip>

## Step 2. Top up (USDT / USDC or card)

Once logged in, go to **Wallet** and pick an amount to top up.
Minimum is **\$5**, in USDT / USDC or by card.

<Warning>
  Send USDT or USDC **only via the network you selected** on the payment page
  (TRC20 / BEP20 / Polygon). Sending via a different network will result in
  **permanent loss of funds**.
</Warning>

After the on-chain transaction is confirmed (typically 1–5 minutes), your balance updates automatically.

## Step 3. Create an API key

In the Console, go to **Tokens** → **Create token**.

* **Name**: anything for your own reference, e.g. `local-dev`.
* **Expiry**: leave it as "Never" unless you have a reason not to.
* **Spend limit**: you can cap the token at a USD amount.

Copy the resulting key — it starts with `sk-...`. Save it somewhere safe; if you need it again later, you can view the full key again from the **Tokens** page in the Console.

## Step 4. Base URL (base\_url)

RuAPI supports **two protocols**, and the address differs between them — this is the #1 thing people get wrong:

| Protocol              | What to put in `base_url`                   | Used by                          |
| --------------------- | ------------------------------------------- | -------------------------------- |
| **OpenAI-compatible** | `https://www.ruapi.ai/v1`  ← **with `/v1`** | Cursor, Cline, Codex, OpenAI SDK |
| **Anthropic**         | `https://www.ruapi.ai`  ← **without `/v1`** | Claude Code, Anthropic SDK       |

<Warning>
  For Anthropic, **do not** append `/v1` to the URL. The SDK adds `/v1/messages`
  itself, and an extra `/v1` results in a **404**. See the
  [Claude Code](/en/integrations/claude-code) and [Codex](/en/integrations/codex) guides.
</Warning>

## Step 5. First request

Example for the OpenAI-compatible protocol — use any OpenAI SDK you like and just swap the `base_url`:

<CodeGroup>
  ```python Python (OpenAI SDK) theme={null}
  from openai import OpenAI

  client = OpenAI(
      api_key="sk-YOUR_KEY",
      base_url="https://www.ruapi.ai/v1",
  )

  response = client.chat.completions.create(
      model="claude-opus-4-8",  # exact model names are at www.ruapi.ai
      messages=[{"role": "user", "content": "Hello!"}],
  )

  print(response.choices[0].message.content)
  ```

  ```javascript Node.js (OpenAI SDK) theme={null}
  import OpenAI from "openai";

  const client = new OpenAI({
    apiKey: "sk-YOUR_KEY",
    baseURL: "https://www.ruapi.ai/v1",
  });

  const response = await client.chat.completions.create({
    model: "claude-opus-4-8", // exact model names are at www.ruapi.ai
    messages: [{ role: "user", content: "Hello!" }],
  });

  console.log(response.choices[0].message.content);
  ```

  ```bash curl theme={null}
  curl https://www.ruapi.ai/v1/chat/completions \
    -H "Authorization: Bearer sk-YOUR_KEY" \
    -H "Content-Type: application/json" \
    -d '{
      "model": "claude-opus-4-8",
      "messages": [{"role": "user", "content": "Hello!"}]
    }'
  ```
</CodeGroup>

## Step 6. Switch models

To switch to another model, change only the `model` parameter:

```python theme={null}
model="claude-opus-4-8"  # exact model names are at www.ruapi.ai
```

The full list of available models is on the **Pricing** page at [www.ruapi.ai](https://www.ruapi.ai).

## What's next

* [Pricing & balance usage](/en/pricing) — how each request is priced
* Got questions? [support@ruapi.ai](mailto:support@ruapi.ai)
