BETA · OpenAI-Compatible API

AI models for developers,
billed in Manat

Connect GPT-4o, Claude, Llama, Gemini and dozens of other models through a single OpenAI-compatible endpoint — pay in TMT, no foreign cards required.

Get started free How it works
🔌
OpenAI-compatible

Works with any OpenAI SDK — Python, Node.js, curl. Just change base_url, nothing else.

🤖
Many models, one key

GPT-4o, Claude Sonnet, Llama 4, Gemini Flash, DeepSeek and more — through a single API key.

💳
Pay in TMT

Top up via USDT TRC-20. Balance converts to Manat automatically at the current rate.

Auto-failover

If one provider goes down, requests are automatically rerouted to a backup with no changes on your side.

🧮
Embeddings support

Use /v1/embeddings for vector search and RAG pipelines with nomic-embed, mxbai and others.

📊
Usage dashboard

Track spending, token usage and transaction history in the client portal in real time.

How it works
1
Register and top up
Create an account, go to the Deposit tab and send USDT (TRC-20) to your personal address. Balance is credited within 1–2 minutes.
2
Create an API key
In the API Keys tab, create a key and copy it immediately — it is shown only once.
3
Make your first request
Point your OpenAI client at our base URL, pass the key as a Bearer token — and you're ready.
# pip install openai
from openai import OpenAI

client = OpenAI(
    api_key="gw_your_key",
    base_url="https://aig.alexvamp.ru/v1",
)

response = client.chat.completions.create(
    model="llama-4-maverick",
    messages=[{"role": "user", "content": "Hello!"}],
)
print(response.choices[0].message.content)
AI Gateway

Client Portal

Account created! Please sign in.
Available Balance

TMT (Turkmenistan Manat)

Balance is deducted per API request based on token usage. Top up via USDT (TRC-20) on the Deposit tab.

Usage by day
Loading…
API Keys
Key created! Copy it now — it won't be shown again.
Transaction History
USDT Deposit (TRC-20)

Send USDT on the TRC-20 network to this address. Your TMT balance will be credited automatically within 1-2 minutes after confirmation.

Loading...
Important: Only send USDT (TRC-20) to this address. Sending other tokens may result in permanent loss.
Other Top-Up Methods

You can also top up your balance via mobile transfer, cash, or any other convenient method. Contact the administration to arrange the details.

Available Models

All models available for use via the API. Prices are per 1 million tokens and update automatically.

Loading…
API Documentation

Everything you need to integrate AI Gateway into your application.

Base URL
Quick Start
  1. Register an account on this portal and top up your TMT balance via the Deposit tab.
  2. Create an API key on the API Keys tab. Copy it immediately — it is shown only once.
  3. Make your first request — see examples below. Use the API key as a Bearer token.
Code Examples
# Replace YOUR_API_KEY with your key from the API Keys tab

curl -X POST /v1/chat/completions \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "llama-3.1-70b",
    "messages": [
      {"role": "user", "content": "Hello!"}
    ]
  }'

# Streaming
curl -X POST /v1/chat/completions \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "llama-3.1-70b",
    "messages": [{"role": "user", "content": "Hello!"}],
    "stream": true
  }'
# pip install openai
from openai import OpenAI

client = OpenAI(
    api_key="YOUR_API_KEY",
    base_url="/v1",
)

# Regular request
response = client.chat.completions.create(
    model="llama-3.1-70b",
    messages=[{"role": "user", "content": "Hello!"}],
)
print(response.choices[0].message.content)

# Streaming
stream = client.chat.completions.create(
    model="llama-3.1-70b",
    messages=[{"role": "user", "content": "Explain quantum physics"}],
    stream=True,
)
for chunk in stream:
    if chunk.choices[0].delta.content:
        print(chunk.choices[0].delta.content, end="", flush=True)
// npm install openai
import OpenAI from "openai";

const client = new OpenAI({
  apiKey: "YOUR_API_KEY",
  baseURL: "/v1",
});

// Regular request
const response = await client.chat.completions.create({
  model: "llama-3.1-70b",
  messages: [{ role: "user", content: "Hello!" }],
});
console.log(response.choices[0].message.content);

// Streaming
const stream = await client.chat.completions.create({
  model: "llama-3.1-70b",
  messages: [{ role: "user", content: "Explain quantum physics" }],
  stream: true,
});
for await (const chunk of stream) {
  process.stdout.write(chunk.choices[0]?.delta?.content ?? "");
}
Embeddings

For embedding models (e.g. nomic-embed-text, mxbai-embed-large) use POST /v1/embeddings. Billed by input tokens only (no output tokens).

# Single string
curl -X POST /v1/embeddings \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model": "nomic-embed-text", "input": "Text to embed"}'

# Batch
curl -X POST /v1/embeddings \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model": "nomic-embed-text", "input": ["First text", "Second text"]}'
result = client.embeddings.create(
    model="nomic-embed-text",
    input=["First text", "Second text"],
)
for item in result.data:
    print(f"[{item.index}] len={len(item.embedding)}")
const batch = await client.embeddings.create({
  model: "nomic-embed-text",
  input: ["First text", "Second text"],
});
batch.data.forEach(item =>
  console.log(`[${item.index}] len=${item.embedding.length}`)
);
Available Models

See the Models tab for the full list with prices. Or fetch via API:

curl /v1/models \
  -H "Authorization: Bearer YOUR_API_KEY"
Authentication

Pass your API key in the Authorization header:

Authorization: Bearer gw_your_api_key_here

API keys start with gw_. Never share your key — it grants full access to your balance.

Billing
  • Balance is held in TMT (Turkmenistan Manat).
  • Each request is billed by input + output tokens at the model's rate.
  • Billing happens after the response completes (including streaming).
  • If balance is insufficient, the request returns 402 Payment Required.
  • Top up via USDT TRC-20 on the Deposit tab — credited within 1–2 minutes.
Error Codes
Code Meaning Fix
401Invalid or revoked API keyCheck key on API Keys tab
402Insufficient balanceTop up via Deposit tab
404Model not foundCheck model name via GET /v1/models
503All providers unavailableRetry in a few minutes