mj_custom_zoom — price, context and performance
Overview
| API formats | openai, openai-response, openai-response-compact, anthropic, gemini, openai-alpha-search |
|---|
Pricing
| Per request | - |
|---|
Performance
| API endpoint | https://api.airai.cc/v1 |
|---|---|
| OpenAI-compatible | OpenAI-compatible |
FAQ
How much does mj_custom_zoom cost?
mj_custom_zoom is billed per request at - each.
What is the context window of mj_custom_zoom?
mj_custom_zoom has a not specified context window: the combined token limit for input and output in a single request.
How do I call mj_custom_zoom from code?
Point base_url to https://api.airai.cc/v1 and set model to mj_custom_zoom. The API is fully OpenAI compatible.
Why does mj_custom_zoom return error 429?
429 is a rate limit response. Lower your concurrency, retry with backoff, or switch to a plan with a larger quota.
Troubleshooting
429 is a rate limit response. Lower your concurrency, retry with backoff, or switch to a plan with a larger quota.
Common causes
- Too many concurrent requests
- Quota of the current plan exhausted
- Retrying immediately without backoff
How to fix
- Limit concurrency and retry with exponential backoff
- Switch to a plan with a larger quota
- Cache repeated requests
How to connect
curl https://api.airai.cc/v1/chat/completions \
-H "Authorization: Bearer <YOUR_API_KEY>" \
-H "Content-Type: application/json" \
-d '{
"model": "mj_custom_zoom",
"messages": [{"role": "user", "content": "Hello"}]
}'from openai import OpenAI
client = OpenAI(
api_key="<YOUR_API_KEY>",
base_url="https://api.airai.cc/v1"
)
response = client.chat.completions.create(
model="mj_custom_zoom",
messages=[{"role": "user", "content": "Hello"}]
)
print(response.choices[0].message.content)import OpenAI from "openai";
const client = new OpenAI({
apiKey: "<YOUR_API_KEY>",
baseURL: "https://api.airai.cc/v1"
});
const response = await client.chat.completions.create({
model: "mj_custom_zoom",
messages: [{ role: "user", content: "Hello" }]
});
console.log(response.choices[0].message.content);const OpenAI = require("openai");
const client = new OpenAI({
apiKey: "<YOUR_API_KEY>",
baseURL: "https://api.airai.cc/v1"
});
client.chat.completions.create({
model: "mj_custom_zoom",
messages: [{ role: "user", content: "Hello" }]
}).then((r) => console.log(r.choices[0].message.content));Replace <YOUR_API_KEY> with the API Key from your token settings.
Compatible endpoints
openaiopenai-responseopenai-response-compactanthropicgeminiopenai-alpha-search
Gemini SDK · TypeScript
import { GoogleGenerativeAI } from "@google/generative-ai";
const genAI = new GoogleGenerativeAI("<YOUR_API_KEY>");
const model = genAI.getGenerativeModel({ model: "mj_custom_zoom" });
const result = await model.generateContent(
"Explain quantum entanglement in one paragraph."
);
console.log(result.response.text());Authentication
All requests must include the Authorization: Bearer <TOKEN> header. Anthropic-format endpoints also accept the x-api-key header. Generate your API Key on the Tokens page, where you can scope access by model, group, IP, and rate limits.
Supported parameters
| Parameter | Type | Default | Range | Description |
|---|---|---|---|---|
temperature | float | 1 | 0–2 | Sampling temperature; lower is more stable |
top_p | float | 1 | 0–1 | Nucleus sampling cumulative probability |
max_tokens | integer | — | — | Maximum tokens in the response |
frequency_penalty | float | 0 | −2–2 | Penalizes repeated high-frequency tokens |
presence_penalty | float | 0 | −2–2 | Encourages introducing new topics |
stop | string[] | null | ≤ 4 | Up to 4 strings that stop generation |
seed | integer | null | — | Seed for more reproducible sampling |
n | integer | 1 | — | Number of candidate completions |
stream | boolean | false | — | Stream tokens via SSE |
response_format | object | — | — | Force JSON output or schema-conformant results |
tools | array | — | — | Function/tool declarations the model can call |
tool_choice | string | object | auto | — | Tool selection strategy or specific tool name |
logprobs | boolean | false | — | Return log probabilities for each token |
top_logprobs | integer | null | 0–20 | Number of top probabilities returned per token |
logit_bias | map | — | — | Logit bias mapping per token |
user | string | — | — | End-user identifier for risk auditing |
Rate limits
| Tier | RPM | TPM | RPD |
|---|---|---|---|
| Eco | 990 | 398K | 20K |
| Test | 980 | 393K | 20K |
Data updated: 2026-10-10 08:15