Skip to main content

Avian Provider Guide

Avian is a Tier-2 catalog provider: OpenAI-wire-compatible with no behavioural quirks, so its entire integration is one JSON file (src/lib/providers/catalog/avian-io.json) rather than hand-written code. That file is the source of truth for everything on this page.

Verification status: this entry is docs- and roster-verified, not yet live-verified. Every field below comes from Avian's own public pages and an unauthenticated GET /v1/models call — no account was created and no API key was used to build it. evidence.liveMatrix is null until someone runs the live capability matrix with a real key (see Verification status below).


Key Facts​

  • Provider id: avian-io (alias avian)
  • Protocol: OpenAI-compatible (/chat/completions)
  • Base URL: https://api.avian.io/v1
  • Default model: deepseek/deepseek-v4-pro-0813
  • Models in catalog: 12 (curated from a 13-model live roster; z-ai/glm-4.7 is the one left out, only to stay inside the 12-model cap)
  • Streaming: supported — the docs' Streaming section documents stream: true with server-sent events (docs)
  • Tool calling: model-dependent — the docs describe function calling with a tools array and a returned tool_calls array, but show it only on deepseek/deepseek-v3.2. The homepage and About page say native tool calling comes "across all models", which is a marketing claim with no per-model detail behind it
  • Tools while streaming: not declared (false) — the docs document tools and streaming separately, never together
  • Structured output: not declared (false) — the docs' request-parameter table lists model, messages, temperature, max_tokens, stream and tools, and no response_format
  • Structured output + tools together: not declared (false) — no combined probe was run without credentials
  • Embeddings: not declared — the docs describe only chat completions
  • Thinking: not declared — the roster flags six models reasoning: true, but the docs describe no reasoning controls or reasoning output field
  • Billing: no-free-tier — prepaid credits only, see Billing below
  • Key format: none declared. The docs' examples show keys that start with avian-, but nothing states that as a rule, so NeuroLink does not validate it

Quick Start​

1. Get an API key​

  1. Visit: https://avian.io/accounts/signup/ and sign up with Google or a work email and password
  2. Create an API key from your signed-in account — the public pages only say "Get your API key in under a minute" (https://avian.io/pricing/) and do not name the key page; the docs examples show keys that start with avian-
  3. Prepaid credits only: add credits before calling the API (https://avian.io/pricing/ lists $50, $100, $150 and $250 packages); the sign-up buttons say "Get Started Free" but no free credits are stated anywhere, and the docs list HTTP 402 for an insufficient credit balance (https://avian.io/docs/)
  4. Set AVIAN_IO_API_KEY in your .env file (the vendor's homepage example reads AVIAN_API_KEY, which NeuroLink does not)

2. Configure​

export AVIAN_IO_API_KEY=your-api-key
export AVIAN_IO_MODEL=deepseek/deepseek-v4-pro-0813 # optional — overrides the default model
export AVIAN_IO_BASE_URL=https://api.avian.io/v1 # optional — proxy or self-hosted gateway

3. Use it​

import { NeuroLink } from "@juspay/neurolink";

const neurolink = new NeuroLink();

const result = await neurolink.generate({
input: { text: "Explain context windows in one paragraph." },
provider: "avian-io",
model: "deepseek/deepseek-v4-pro-0813",
});

console.log(result.content);
# CLI
npx @juspay/neurolink generate "Hello" --provider avian-io

Per-request credentials work as they do for every provider:

await neurolink.generate({
input: { text: "Hello" },
provider: "avian-io",
credentials: { avianIo: { apiKey: process.env.AVIAN_IO_API_KEY } },
});

Billing​

Avian's pricing page (https://avian.io/pricing/) describes "per-token pricing with prepaid credits", "no subscriptions, no commitments", credits that "never expire", and credit packages of $50, $100, $150 and $250. Its docs list HTTP 402 Payment Required as "Insufficient credit balance" (https://avian.io/docs/). No page states free credits or a free tier, so the entry records no-free-tier. The "Get Started Free" button on the public pages is the sign-up call to action; it is not a stated free allowance.


Models​

ModelContextMax outputVision$/M in · out (cache read)Notes
deepseek/deepseek-v4-pro-0813 ⭐1,000,000393,216no$0.594 / $1.782 ($0.0198)Default — the model Avian promotes with a "now live" banner on its home, docs, models, pricing and About pages. Reasoning-flagged.
deepseek/deepseek-v4-flash1,000,000393,216no$0.0805 / $0.161 ($0.0165)Fallback; lowest input and output price on the roster. Reasoning-flagged.
deepseek/deepseek-v3.2163,84065,536no$0.23 / $0.33 ($0.012)Fallback; the model in every docs code example, labelled "(Legacy)" by the vendor. Reasoning-flagged.
z-ai/glm-5.21,048,576131,072no$0.495 / $1.733 ($0.124)Fallback; highest-numbered GLM on the roster.
deepseek/deepseek-v4-pro1,000,000393,216no$1.305 / $2.61 ($0.10875)Undated V4 Pro build; roster-listed only. Reasoning-flagged.
minimax/minimax-m2.5196,608131,072no$0.27 / $1.08 ($0.15)Roster-listed only.
z-ai/glm-5204,800131,072no$0.516 / $2.322 ($0.129)Roster-listed only.
z-ai/glm-5.1202,752202,752no$0.743 / $2.971 ($0.186)Roster-listed only.
moonshotai/kimi-k2.5262,144262,144no$0.45 / $2.2 ($0.225)Roster-listed only.
moonshotai/kimi-k2.6262,144262,144no$0.95 / $4 ($0.16)Roster-listed only.
xiaomi/mimo-v2.6-flash1,048,576131,072no$0.2 / $0.4 ($0.05)Roster-listed only. Reasoning-flagged.
xiaomi/mimo-v2.6-pro1,048,576131,072no$0.435 / $0.87 ($0.0036)Roster-listed only. Reasoning-flagged.

Context, max output and prices come from an unauthenticated GET https://api.avian.io/v1/models call made 2026-09-29 (13 models, all chat models; 12 curated into this catalog). The same prices appear on the docs page, the models page and the pricing page, which also state context and max output in rounded form (for example "1M" and "384K"). "Reasoning-flagged" means the roster's reasoning field is true; it is not a documented capability.

models.defaultContextWindow (163,840) and models.defaultMaxOutputTokens (65,536) are the smallest context and max-output values on today's roster, so a model id that is not in the catalog gets a figure no roster model falls below. They are not a vendor-stated general cap.

Vision: every model is vision: false. The homepage and About page list "vision analysis" among built-in capabilities "across all models", but no page says which models accept image input in a chat message, so none is declared.

Fallback order when the default is unavailable: deepseek/deepseek-v4-flash → deepseek/deepseek-v3.2 → z-ai/glm-5.2. The runtime fallback model name the loader derives (fallbacks[1]) is deepseek/deepseek-v3.2, the one model the docs' function-calling and streaming examples use.


Verification status​

Tier-2 onboarding requires evidence before a provider is accepted, and pnpm run verify:provider-onboarding gates it in CI. This is what the catalog currently records for Avian — docs- and roster-verified, not live-verified:

ProbeResult
Rosterunauthenticated GET /v1/models, HTTP 200, 13 models, 2026-09-29 — no key used
Billingpublic pricing page describes prepaid credits with no subscription and states no free tier or free credits, 2026-09-29
Auth-failure shapethe docs list HTTP 401 "Missing or invalid API key" and 402 "Insufficient credit balance" but describe the error body only as "a JSON body with a descriptive message"; the body was not probed, so errorRules match the status codes alone (401, 402)
Tools / structured outputfunction calling is documented at https://avian.io/docs/; response_format is not documented anywhere opened. Neither was exercised live, and no combined tools+schema request was sent — structuredOutputWithTools stays false
Live capability sweepnot run. evidence.liveMatrix is null. Before treating this provider as production-ready, run npx tsx test/continuous-test-suite-provider-matrix.ts --provider=avian-io with a real key and record the result.

Do not treat this entry as equivalent to a live-verified Tier-2 provider (e.g. FriendliAI, Novita AI) until that live matrix has been run and evidence.liveMatrix is filled in.


Troubleshooting​

SymptomCauseFix
HTTP 402 on every requestNo prepaid credit balance — Avian has no free tierAdd credits at https://avian.io/pricing/ (the package amounts are listed there)
HTTP 401Missing or invalid key, or the key was set under the wrong variable nameSet AVIAN_IO_API_KEY; the vendor's homepage example uses AVIAN_API_KEY, which NeuroLink does not read
Model not foundThe roster changed since 2026-09-29, or a display name was used instead of an idUse an id exactly as listed by the unauthenticated GET /v1/models; the homepage snippet's DeepSeek-V3.2 is not a roster id, the docs' deepseek/deepseek-v3.2 is
Structured output ignored with tools attachedstructuredOutputWithTools is false on this entry — untested combinationNeuroLink omits response_format automatically whenever tools are present, before sending
Tool calls not returnedTool calling on Avian is model-dependent here — only deepseek/deepseek-v3.2 has a documented exampleTry deepseek/deepseek-v3.2, then report which models work so the entry can be tightened
Unexpected HTTP 429The pages say "No Rate Limits", yet the docs list 429 "Rate limit exceeded. Retry after a brief delay"Back off briefly and retry; the vendor's own docs describe 429 as retryable

See also​