Skip to main content

Ambient Provider Guide

Ambient 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/ambient.json) rather than hand-written code. That file is the source of truth for everything on this page.

Verification status: docs- and roster-verified, not yet live-verified. This entry was built entirely from Ambient's public docs pages and an unauthenticated GET /v1/models call — no API key was used or created. capabilities.tools and capabilities.structuredOutput come from the live roster's own self-reported supported_features field; the combined capabilities (structuredOutputWithTools, toolsWithStreaming) are deliberately left false because no live POST request was possible without credentials. evidence.liveMatrix is null until someone runs the real capability sweep with a working key.


Key Facts​

  • Provider id: ambient
  • Protocol: OpenAI- and Anthropic-compatible (/chat/completions)
  • Base URL: https://api.ambient.xyz/v1
  • Default model: ambient/large (a vendor-managed alias; see Models)
  • Models in catalog: 4
  • Streaming: documented (SSE, "stream": true, standard chat.completion.chunk objects)
  • Tool calling: documented via the live roster's supported_features (tools) on all 4 models — not yet live-probed end to end
  • Structured output: documented via the live roster's supported_features (json_mode, structured_outputs) on all 4 models — not yet live-probed
  • Embeddings: not documented
  • Billing: no free tier — cheapest plan is Starter at $1/mo
  • Key format: none declared

Quick Start​

1. Get an API key​

  1. Visit: https://app.ambient.xyz and sign in
  2. Click "Get API key" to create a key
  3. Ambient has no free tier — the cheapest option is the $1/mo Starter plan (https://ambient.xyz/pricing); confirm current billing terms before use
  4. Set AMBIENT_API_KEY in your .env file

2. Configure​

export AMBIENT_API_KEY=your-api-key
export AMBIENT_MODEL=ambient/large # optional — overrides the default model
export AMBIENT_BASE_URL=https://api.ambient.xyz/v1 # optional — proxy or override

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: "ambient",
model: "ambient/large",
});

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

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

await neurolink.generate({
input: { text: "Hello" },
provider: "ambient",
credentials: { ambient: { apiKey: process.env.AMBIENT_API_KEY } },
});

Models​

ModelContextMax outVision$/M in · out (cached in)Notes
ambient/large ⭐198K198Kno$0.60 / $2.00 ($0.15)Recommended — the model id used in every example in Ambient's own docs. A vendor-managed alias that today mirrors z-ai/glm-5.2; its specs "mirror whatever concrete model it currently points to."
z-ai/glm-5.2198K198Kno$0.60 / $2.00 ($0.15)The concrete model ambient/large currently aliases. Docs call it "the supported production model." Fallback pinned to a stable id.
qwen/qwen3.6-27b32K8Kyes$0.32 / $3.20 ($0.16)Natively multimodal (text + image), 27B dense. Docs mark non-GLM-5.2 entries as possible previews with no guarantees. Used as visionModel.
qwen/qwen3.8-27b32K8Kyes$0.32 / $3.20 ($0.16)Roster description also claims "video" input, but the live roster's input_modalities lists only text/image, so no video support is declared here. Preview.

Context/output/pricing are taken from the unauthenticated GET https://api.ambient.xyz/v1/models response (2026-09-28) and cross-checked against Ambient's own docs models page, which shows the same numbers rounded (e.g. "198K" for 202,752 tokens).

Fallback order when the default is unavailable: z-ai/glm-5.2 → qwen/qwen3.6-27b → qwen/qwen3.8-27b.


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 records for Ambient — and, just as importantly, what it does not yet record:

ProbeResult
Rosterunauthenticated GET /v1/models, HTTP 200, 4 models, 2026-09-28 — no API key used
Auth rejectionnot probed — would require a POST, which is out of scope credential-free
Live capability sweepnot run (evidence.liveMatrix is null). tools and structuredOutput are set true from the live roster's own supported_features field (present on all 4 models today), not from a live request. structuredOutputWithTools and toolsWithStreaming are both false because no combined tools+schema or tools+streaming request was possible without a key.

This entry should be treated as docs- and roster-verified, not live-verified. Before relying on it in production, run the live matrix:

npx tsx test/continuous-test-suite-provider-matrix.ts --provider=ambient
node dist/cli/index.js generate "hello" --provider ambient

and record the outcome in evidence.liveMatrix.


Troubleshooting​

SymptomCauseFix
Invalid Ambient API keyAMBIENT_API_KEY unset or wrongCheck the key at https://app.ambient.xyz
Model not found (HTTP 400)Ambient returns 400 "Unknown model" for a bad id, not 404Pick a current id from the unauthenticated GET /v1/models roster
429 with "No workers available"Ambient's docs describe this as a capacity/upstream issue, not a true rate limitRetry with short jittered backoff, or switch to another model from GET /v1/models
Empty/cut-off contentambient/large and z-ai/glm-5.2 are reasoning models; the docs say max_tokens "caps reasoning + answer"Give reasoning prompts a generous maxTokens budget

See also​