Skip to main content

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/models call. evidence.liveMatrix is null in 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 — marked is_featured: true on 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 own features field marks function_calling on 97 of 217 models, not all of them
  • Structured output: model-dependent per the vendor's docs ("json_schema means strict schema support, json_object means JSON mode only... check via GET /v1/models/{modelId}"); the default model (glm-5-3) documents json_object support, so the provider-level flag is true
  • 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​

  1. Visit: https://platform.empiriolabs.ai and create an account
  2. Create an API key from the dashboard (keys use the sk-empiriolabs- prefix, up to 50 per account)
  3. 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
  4. Set EMPIRIOLABS_API_KEY in 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​

ModelContextMax outVisionStructured output$/M in · out (cached)Notes
glm-5-3 ⭐1M131,072nojson_object$1.40 / $4.40 ($1.40)Recommended — roster is_featured: true; reasoning, function calling, web search.
glm-5-3-flash1M131,072yesjson_object$0.075 / $0.25 ($0.075)Lighter/cheaper sibling; also vision (document_understanding, video_understanding); fallback.
glm-5-21M131,072nojson_object$1.40 / $4.40 ($1.40)Prior GLM generation; fallback.
kimi-k31M131,072yesjson_schema$3.00 / $15.00 ($3.00)Moonshot Kimi K3 — multimodal, agentic coding; strict schema output; fallback.
qwen3-7-max1M65,536nojson_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-highspeed200K32,768nojson_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:

ProbeResult
Rosterunauthenticated GET /v1/models, HTTP 200, 217 models, 2026-09-28. No API key was created or used.
Auth rejectionNot probed (would require a key). Documented shape only: docs.empiriolabs.ai/authentication states a missing/malformed/unknown token returns 401 Unauthorized.
Wire compatibilityDocumented 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 sweepNot 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/developer role message. Supplying your own system message fully replaces it (no merging). This doesn't require a named catalog quirks entry — it only changes behavior when you omit a system message — but it's worth knowing if a completion reads oddly "in character."
  • response_format is per-model: sending a structured-output format a model doesn't support returns HTTP 400 per the vendor's docs. Check GET /v1/models/{modelId} for a given model's structured_output value (json_schema, json_object, or absent) before relying on it.

Troubleshooting​

SymptomCauseFix
Invalid EmpirioLabs API keyEMPIRIOLABS_API_KEY unset or wrongCheck the key at https://platform.empiriolabs.ai
401 UnauthorizedToken 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 creditsTop up credits via the dashboard Billing page, or pick a $0 free model
429 Too Many RequestsRate 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_formatThe chosen model doesn't support the requested structured-output modeCheck GET /v1/models/{modelId} for that model's structured_output value

See also​