AI models
Unlimited and Enterprise include Nodely-hosted AI models: text embeddings, image and text embeddings, and a 125B-parameter chat model with built-in web search and page reading. The API is OpenAI-compatible, so the official OpenAI SDKs and most AI frameworks work by changing the base URL and the key. There is no token quota: each endpoint has an hourly budget, a per-minute burst limit and an in-flight limit per model instead.
| Plan | AI models |
|---|---|
| Free | Not included |
| Boost | Add-on: AI 125B-A6B, no quota $16 / month, the Unlimited limits with 32k chat context |
| Unlimited | Included: embeddings and a 125B-parameter chat model with web search, 256k context. Hourly budgets, no token quota |
| Enterprise | The same as Unlimited |
| Add-on | Plans | Price, excl. VAT | What it adds |
|---|---|---|---|
| AI 125B-A6B, no quota | Boost | $16 / month | Every model at the Unlimited plan's hourly limits: text embeddings, image and text embeddings and the 125B-parameter chat model with built-in web search and page reading (fair use), with a 32k chat context (Unlimited: 256k). |
| AI Throughput ×2 | Unlimited, Enterprise | $16 / month | Twice the hourly budgets and per-minute burst of the embedding models. Chat, in-flight and per-request limits stay the same. Limited availability. |
An organization admin can upgrade or add an AI add-on on the Billing page.
Base URL and key
Section titled “Base URL and key”- Base URL:
https://ai.api.nodely.io/v1 - Key: any active token of one of your endpoints, the same token you use for the Algorand APIs, as
Authorization: Bearer <token>(what the OpenAI SDKs send) orX-API-Key: <token>. Whitelisted sites and IPs do not grant AI access: a token is always required. - Limits and usage are per endpoint and shared by its tokens. Keep tokens server-side.
Models
Section titled “Models”model | Model | Per request |
|---|---|---|
qwen3-embedding-4b | Qwen3-Embedding-4B: Text embeddings, 2560 dimensions (request fewer with the dimensions parameter), 32k context. | up to 64 inputs per request; up to 8,192 estimated tokens (about 24 KB of text) per input; up to 32,768 estimated tokens (about 96 KB) per request |
qwen3-vl-embedding-2b | Qwen3-VL-Embedding-2B: Images and text in one 2048-dimension space: search images with text, or images with images. | 1 image per request, sent as a data: URL; request body up to 8 MiB |
nodely-chat | Nodely fast chat: A 125B-parameter chat model with built-in web search and page reading (OpenAI chat completions, streaming). | context (prompt + max_tokens) up to 262,144 tokens on Unlimited and Enterprise, 32,768 on Boost with the AI add-on: a prompt that does not fit is refused with context_length_exceeded; output capped at 8,192 tokens: a larger or missing max_tokens / max_completion_tokens is set to 8,192 (not refused); reasoning tokens count, and a cut-off answer ends with finish_reason "length"; one completion per request (n = 1) |
Limits
Section titled “Limits”Limits are per endpoint and per model: every token of an endpoint shares them, and each model has its own.
model | Plan | Requests / hour | Burst / minute | In flight | Tokens / hour | Context |
|---|---|---|---|---|---|---|
qwen3-embedding-4b | Unlimited, Enterprise, Boost + AI 125B-A6B, no quota | 10,000 | 600 | 4 | 3,000,000 input | – |
qwen3-embedding-4b | … with AI Throughput ×2 | 20,000 | 1,200 | 4 | 6,000,000 input | – |
qwen3-vl-embedding-2b | Unlimited, Enterprise, Boost + AI 125B-A6B, no quota | 2,000 | 120 | 2 | – | – |
qwen3-vl-embedding-2b | … with AI Throughput ×2 | 4,000 | 240 | 2 | – | – |
nodely-chat | Unlimited, Enterprise | 300 | 30 | 2 | 1,500,000 input, 300,000 output | 256k |
nodely-chat | Boost + AI 125B-A6B, no quota | 300 | 30 | 2 | 1,500,000 input, 300,000 output | 32k |
- Hourly budgets refill continuously: a budget you used up comes back a little every second (a full hour refills all of it), not all at once at the top of the hour. Burst / minute caps how fast the budget can be spent; in flight counts requests until their response ends, streams and web search rounds included.
- Tokens / hour: estimated input tokens for embeddings (checked before the request); input and output tokens for chat (counted from each response’s
usage, web search and page reading included; a request is accepted while some budget is left). - Context: prompt plus reply of one chat request. A reply is capped at 8,192 tokens, reasoning included.
- Token limits use the gateway's estimate, not a tokenizer's count: about UTF-8 bytes / 3 for ordinary text, so 8,192 estimated tokens are about 24 KB of text. The usage in each response is the model's exact count.
- Over a limit (hourly budget, burst, in flight) the API answers HTTP 429 with an OpenAI-style error and
Retry-Afterin seconds, so the OpenAI SDKs retry on their own. - A request over a per-request cap is refused and not retried by the SDKs: HTTP 400 (
too_many_inputs,input_too_long,request_too_long,too_many_images,context_length_exceeded) or HTTP 413 (request_too_large, body size). Split or shorten it. - The output cap is applied, not checked: a larger or missing
max_tokensis set to the cap, and an answer that reaches it ends withfinish_reason: "length". - HTTP 503
server_busymeans the model is at capacity for all customers right now: retry in a few seconds. - Web search and page reading are built into the chat model and covered by fair use. An endpoint that searches or reads far more than usual may find them unavailable for a while; the request still gets an answer.
- Error codes and usage analytics per endpoint and model: the portal’s AI models docs (after sign-in).
Examples
Section titled “Examples”curl https://ai.api.nodely.io/v1/embeddings \ -H "Authorization: Bearer $NODELY_TOKEN" \ -H "Content-Type: application/json" \ -d '{"model": "qwen3-embedding-4b", "input": ["Algorand state proofs"], "dimensions": 1024}'Image and text embeddings share one vector space, so a text query finds matching images. The request uses the chat form, not input: messages with add_generation_prompt: true, images only as data: URLs (the gateway does not fetch image URLs).
curl https://ai.api.nodely.io/v1/embeddings \ -H "Authorization: Bearer $NODELY_TOKEN" \ -H "Content-Type: application/json" \ -d '{"model": "qwen3-vl-embedding-2b", "add_generation_prompt": true, "messages": [{"role": "user", "content": [ {"type": "image_url", "image_url": {"url": "data:image/png;base64,iVBORw0..."}}, {"type": "text", "text": "a red bicycle"}]}]}'The chat model can search the web and read pages to ground its answer, without a search key of your own: add "nodely_tools": ["web_search", "web_fetch"] (either or both) to a /chat/completions request. Web search and page reading are included with the chat model and covered by fair use. Pages are condensed to their main text before the model reads them, so this is for grounding answers, not for downloading pages: for bulk search or scraping use the x402 search and scrape APIs.
import OpenAI from "openai";
const ai = new OpenAI({ baseURL: "https://ai.api.nodely.io/v1", apiKey: process.env.NODELY_TOKEN });
const res = await ai.chat.completions.create({ model: "nodely-chat", messages: [{ role: "user", content: "What changed in the latest Algorand release?" }], // Nodely extension: the gateway searches the web and reads pages for the model nodely_tools: ["web_search", "web_fetch"],});Fair use
Section titled “Fair use”- There is no token quota: each endpoint has per-model hourly budgets, a burst limit and an in-flight limit instead.
- Use the models for your own products and workloads. Reselling raw model access, bulk dataset generation (for example to train other models) and abuse are not allowed.
- Built-in web search and page reading are fair use and are for answering requests, not for crawling sites or collecting data in bulk: pages are condensed to their main text and robots.txt is respected. For bulk search or scraping use the x402 search and scrape APIs.
- The models run on shared GPUs. Nodely may throttle endpoints whose traffic is far above other customers'; we contact you first when we can.
- The gateway logs each request's endpoint, model, status, timing and token counts, not its prompts or outputs.
- Models, their versions and the limits may change; the model names stay stable.