If your code already talks to the OpenAI SDK, it works here. Change two lines: the base URL and the key.
Endpoint: https://api.mlandi.com/v1 · Auth: Authorization: Bearer sk-...
curl https://api.mlandi.com/v1/chat/completions \
-H "Authorization: Bearer $MLANDI_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "deepseek-chat",
"messages": [{"role": "user", "content": "Explain TCP handshake in one paragraph."}]
}'
from openai import OpenAI
client = OpenAI(
base_url="https://api.mlandi.com/v1",
api_key="sk-...",
)
resp = client.chat.completions.create(
model="deepseek-chat",
messages=[{"role": "user", "content": "Hello from Manila"}],
)
print(resp.choices[0].message.content)
import OpenAI from "openai";
const client = new OpenAI({
baseURL: "https://api.mlandi.com/v1",
apiKey: process.env.MLANDI_API_KEY,
});
const resp = await client.chat.completions.create({
model: "deepseek-chat",
messages: [{ role: "user", content: "Hello from Dubai" }],
});
console.log(resp.choices[0].message.content);
stream = client.chat.completions.create(
model="deepseek-chat",
messages=[{"role": "user", "content": "Write a haiku about latency"}],
stream=True,
)
for chunk in stream:
if chunk.choices[0].delta.content:
print(chunk.choices[0].delta.content, end="", flush=True)
All models are served through each provider's official API. We do not run reverse-engineered endpoints, shared consumer accounts, or unofficial proxies.
| Model ID | Provider | Context | Best for |
|---|---|---|---|
deepseek-chat | DeepSeek | 128K | General chat and coding, lowest cost per token |
deepseek-reasoner | DeepSeek | 128K | Multi-step reasoning, math, agent planning |
qwen-max | Alibaba Qwen | 128K | Strong multilingual, enterprise workloads |
qwen-plus | Alibaba Qwen | 128K | Balanced quality and cost |
glm-4.6 | Zhipu GLM | 200K | Long context, agentic tool use |
kimi-k2 | Moonshot AI | 128K | Long documents, agent workflows |
doubao-pro | ByteDance | 256K | High throughput, Chinese-heavy workloads |
hunyuan-turbo | Tencent | 128K | Fast responses, cost-sensitive apps |
Model availability follows each provider's roadmap. Query GET /v1/models for the live list bound to your key.
curl https://api.mlandi.com/v1/models -H "Authorization: Bearer $MLANDI_API_KEY"
| Method | Path | Description |
|---|---|---|
| POST | /v1/chat/completions | Chat and instruction following, streaming supported |
| GET | /v1/models | Models available to your key |
| POST | /v1/embeddings | Embeddings where the upstream provider supports them |
Function calling and JSON mode follow the OpenAI schema and pass through to the provider. Support varies per model.
| Status | Meaning | What to do |
|---|---|---|
| 400 | Malformed request or unsupported parameter | Check the body against the OpenAI schema |
| 401 | Missing or invalid key | Verify the Authorization header |
| 402 | Insufficient balance | Top up; requests resume automatically |
| 404 | Unknown model or route | Call GET /v1/models |
| 429 | Rate limit or upstream throttle | Back off exponentially; honour Retry-After |
| 502 / 504 | Upstream error or timeout | Retry; check the status page |
Retry tip: for 429 and 5xx, back off exponentially with jitter. Set a client timeout of at least 120 seconds — reasoning models legitimately take that long.
api.mlandi.com/v1Served from Bangkok. Lowest latency for South East Asia, South Asia, East Asia and the Middle East.
us-west.mlandi.com/v1US West forwarding edge for North and South America, removing one long round trip per call.
Latency is measured continuously and published on the status page as p50 and p95, not marketing averages.
Point ANTHROPIC_BASE_URL at us to route coding sessions through your own balance.
Set the custom OpenAI base URL and paste your key.
Add an OpenAI-compatible connection, then pick models from the dropdown.
Pass base_url to the OpenAI-compatible wrapper. No adapter needed.
Use the OpenAI credential type with a custom endpoint.
Drop-in SDK swap. Ship to production in minutes.