EmpirioLabs AI Provider Guide
EmpirioLabs AI 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/empiriolabs.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 onboarded credential-free — no API key was created and no chat, streaming or tool-call request was ever sent. Everything below comes from the vendor's own public docs (docs.empiriolabs.ai) and an unauthenticated
GET /v1/modelscall.evidence.liveMatrixisnullin the catalog file until someone runs the live capability sweep with a real key (see Live verification).
Key Facts
- Provider id:
empiriolabs - Protocol: OpenAI-compatible (
/v1/chat/completions) — confirmed on docs.empiriolabs.ai: "Accepts the same request body as the OpenAI Chat Completions API." - Base URL:
https://api.empiriolabs.ai/v1 - Default model:
glm-5-3(Zhipu GLM-5.3 — markedis_featured: trueon the live roster) - Models in catalog: 6 (curated text/chat subset of a 217-model roster that also spans vision, audio, video, image and 3D generation)
- Streaming: documented as a supported request parameter (
stream); not live-probed - Tool calling:
model-dependent— the roster's ownfeaturesfield marksfunction_callingon 97 of 217 models, not all of them - Structured output:
model-dependentper the vendor's docs ("json_schemameans strict schema support,json_objectmeans JSON mode only... check viaGET /v1/models/{modelId}"); the default model (glm-5-3) documentsjson_objectsupport, so the provider-level flag istrue - Structured output + tools together: not declared — no combined probe was possible without a key
- Embeddings: not supported by this integration (the vendor does list a
separate embedding-model family, but NeuroLink's generic OpenAI-compatible
catalog provider does not implement
embed()/embedMany()) - Billing: free-tier — pricing page: "$0 to start... No subscription needed", with several models marked "Free" at $0 input/output/cache cost. Getting-started docs also list prepaid credits as a prerequisite for non-free models, so budget for that before heavy use.
- Key format: keys use the
sk-empiriolabs-prefix (documented)
Quick Start
1. Get an API key
- Visit: https://platform.empiriolabs.ai and create an account
- Create an API key from the dashboard (keys use the
sk-empiriolabs-prefix, up to 50 per account) - Selected models (e.g. GLM 4.7 Flash) run at $0 cost; other models draw from prepaid credits topped up via the dashboard Billing page — confirm current pricing before heavy use
- Set
EMPIRIOLABS_API_KEYin your .env file
2. Configure
export EMPIRIOLABS_API_KEY=sk-empiriolabs-your-api-key
export EMPIRIOLABS_MODEL=glm-5-3 # optional — overrides the default model
export EMPIRIOLABS_BASE_URL=https://api.empiriolabs.ai/v1 # optional — self-hosted or proxy
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: "empiriolabs",
model: "glm-5-3",
});
console.log(result.content);
# CLI
npx @juspay/neurolink generate "Hello" --provider empiriolabs
Per-request credentials work as they do for every provider:
await neurolink.generate({
input: { text: "Hello" },
provider: "empiriolabs",
credentials: { empiriolabs: { apiKey: process.env.EMPIRIOLABS_API_KEY } },
});
Models
| Model | Context | Max out | Vision | Structured output | $/M in · out (cached) | Notes |
|---|---|---|---|---|---|---|
glm-5-3 ⭐ | 1M | 131,072 | no | json_object | $1.40 / $4.40 ($1.40) | Recommended — roster is_featured: true; reasoning, function calling, web search. |
glm-5-3-flash | 1M | 131,072 | yes | json_object | $0.075 / $0.25 ($0.075) | Lighter/cheaper sibling; also vision (document_understanding, video_understanding); fallback. |
glm-5-2 | 1M | 131,072 | no | json_object | $1.40 / $4.40 ($1.40) | Prior GLM generation; fallback. |
kimi-k3 | 1M | 131,072 | yes | json_schema | $3.00 / $15.00 ($3.00) | Moonshot Kimi K3 — multimodal, agentic coding; strict schema output; fallback. |
qwen3-7-max | 1M | 65,536 | no | json_schema | $2.50 / $7.50 ($2.50) | Alibaba flagship reasoning model with code interpreter; lower max output than the GLM family; fallback. |
minimax-m2-7-highspeed | 200K | 32,768 | no | json_object | $0.30 / $1.20 ($0.03) | Smallest context/output in this set; lightest/cheapest fallback. |
All context, output, pricing and structured-output values above are read
directly from the unauthenticated GET https://api.empiriolabs.ai/v1/models
response (2026-09-28), not invented or estimated. This 6-model set is a
curated subset — the full roster returned 217 ids spanning text, vision,
audio, video, image and 3D-generation models; only text/chat-completions
models with documented function_calling are catalogued here.
Fallback order when the default is unavailable: glm-5-3-flash →
glm-5-2 → kimi-k3 → qwen3-7-max → minimax-m2-7-highspeed.
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 EmpirioLabs AI:
| Probe | Result |
|---|---|
| Roster | unauthenticated GET /v1/models, HTTP 200, 217 models, 2026-09-28. No API key was created or used. |
| Auth rejection | Not probed (would require a key). Documented shape only: docs.empiriolabs.ai/authentication states a missing/malformed/unknown token returns 401 Unauthorized. |
| Wire compatibility | Documented only: docs.empiriolabs.ai/compatibility states the endpoint "accepts the same request body as the OpenAI Chat Completions API" and lists messages, model, stream, temperature, max_tokens, response_format as supported. |
| Live capability sweep | Not run. evidence.liveMatrix is null. No chat, streaming, tool-call or structured-output request has been sent to this vendor. |
Because no live probe was possible, capabilities.toolsWithStreaming and
capabilities.structuredOutputWithTools are conservatively false, and
capabilities.tools is "model-dependent" rather than an unqualified
true — the roster shows function_calling on 97 of 217 models, not the
whole catalog. Whoever runs the live matrix next should re-check these flags
against real responses, per
Live verification.
Documented quirks worth knowing (not catalog quirks)
- Implicit system prompt: EmpirioLabs docs say every chat model has a
built-in identity message that is prepended automatically when your
request has no
system/developerrole message. Supplying your own system message fully replaces it (no merging). This doesn't require a named catalogquirksentry — it only changes behavior when you omit a system message — but it's worth knowing if a completion reads oddly "in character." response_formatis per-model: sending a structured-output format a model doesn't support returnsHTTP 400per the vendor's docs. CheckGET /v1/models/{modelId}for a given model'sstructured_outputvalue (json_schema,json_object, or absent) before relying on it.
Troubleshooting
| Symptom | Cause | Fix |
|---|---|---|
Invalid EmpirioLabs API key | EMPIRIOLABS_API_KEY unset or wrong | Check the key at https://platform.empiriolabs.ai |
401 Unauthorized | Token missing, malformed, or not found (per vendor docs) | Confirm the header is Authorization: Bearer sk-empiriolabs-... |
402 Payment Required (documented, not live-verified) | Account has insufficient prepaid credits | Top up credits via the dashboard Billing page, or pick a $0 free model |
429 Too Many Requests | Rate limit exceeded (new accounts: 50 RPM / 2,000,000 TPM) | Retry with exponential backoff, or email [email protected] for higher limits |
HTTP 400 on response_format | The chosen model doesn't support the requested structured-output mode | Check GET /v1/models/{modelId} for that model's structured_output value |
See also
- Provider setup overview
- All providers
- Tier-2 onboarding — how this provider's JSON becomes a working integration, including the live-verification steps this entry still needs
- Provider feature compatibility