UNPKG

@juspay/neurolink

Version:

The pipe layer of an AI nervous system: one interface connecting provider neurons to your application, across three inference types — generate, stream and decide. `decide` returns typed, calibrated judgements from a non-generative model (~400ms, ~$0.00002

175 lines (174 loc) • 13.8 kB
{ "$schema": "./provider-catalog.schema.json", "id": "umans-ai", "displayName": "Umans AI", "aliases": ["umans"], "tier": 2, "wire": { "baseURL": "https://api.code.umans.ai/v1" }, "models": { "default": "umans-coder", "fallbacks": [ "umans-glm-5.3", "umans-deepseek-v4-flash-0731", "umans-kimi-k3" ], "defaultContextWindow": 262144, "defaultMaxOutputTokens": 131072, "catalog": { "umans-coder": { "contextWindow": 1048576, "maxOutputTokens": 131072, "pricingPerMTok": { "input": 0.15, "output": 0.5, "cachedInput": 0.03 }, "vision": true, "status": "production", "description": "Default - the vendor's own default model: every curl example on https://app.umans.ai/offers/code/docs names it, the docs' Models table lists it as \"Default: we choose the best for you\", and the docs' CLI launches it by default. It is a routing alias, not a fixed model: the docs say it \"routes to our current pick, which changes as we evaluate models\" (GLM-5.3-Flash since September 9, 2026), and https://app.umans.ai/pricing says \"Umans Coder is an alias for this model today: same rates, routed automatically\" under GLM 5.3 Flash. Read on 2026-09-29: unauthenticated GET https://api.code.umans.ai/v1/models - context_length 1,048,576, pricing 0.15 input / 0.5 output; unauthenticated GET https://api.code.umans.ai/v1/models/info - base_model GLM-5.3-Flash, max_completion_tokens 131,072, supports_vision true, supports_tools true. The $0.03 cache-read rate is the GLM 5.3 Flash rate on the pricing page. Context, price and vision follow whatever model it routes to and can change without a new id." }, "umans-glm-5.3": { "contextWindow": 1048576, "maxOutputTokens": 131072, "pricingPerMTok": { "input": 1.4, "output": 4.4, "cachedInput": 0.26 }, "vision": false, "status": "production", "description": "Fallback - Z.ai's GLM 5.3. https://app.umans.ai/offers/code/docs lists it as the GLM 5.2 successor on a 1M context at $1.40 / $4.40 per 1M tokens (input / output; $0.26 cached). It always thinks, at max effort by default; reasoning_effort low or high dials it and thinking cannot be turned off. Text-only: /v1/models/info says supports_vision false, and the docs' Cursor setup says \"the DeepSeek and GLM ids are text-only on this route\". Unauthenticated GET https://api.code.umans.ai/v1/models (2026-09-29): context_length 1,048,576, pricing 1.4 / 4.4; GET https://api.code.umans.ai/v1/models/info: max_completion_tokens 131,072, supports_tools true." }, "umans-deepseek-v4-flash-0731": { "contextWindow": 1048576, "maxOutputTokens": 393216, "pricingPerMTok": { "input": 0.14, "output": 0.28, "cachedInput": 0.028 }, "vision": false, "status": "production", "description": "Fallback - DeepSeek V4 Flash, the 0731 release. https://app.umans.ai/offers/code/docs calls it \"The cheapest production model in the lineup ($0.14 / $0.28 per 1M tokens)\" and the default for new chats on app.umans.ai; it thinks at low effort by default and the docs say to select high or max on hard tasks. /v1/models/info describes 284B total and 13B active parameters and four reasoning modes: none, low (default), high, max. Text-only: /v1/models/info says supports_vision false. Unauthenticated GET https://api.code.umans.ai/v1/models (2026-09-29): context_length 1,048,576, pricing 0.14 / 0.28; GET https://api.code.umans.ai/v1/models/info: max_completion_tokens 393,216, supports_tools true. The $0.028 cache-read rate is stated on the docs and pricing pages." }, "umans-kimi-k3": { "contextWindow": 1048576, "maxOutputTokens": 131072, "pricingPerMTok": { "input": 3, "output": 15, "cachedInput": 0.3 }, "vision": true, "status": "production", "description": "Fallback - Moonshot's Kimi K3. https://app.umans.ai/offers/code/docs lists it with a 1M context, native vision and max-effort reasoning by default, and says it honors reasoning_effort none, low, high or max; its sampling fields (temperature, top_p) are fixed server-side and the gateway removes them rather than failing the request. Unauthenticated GET https://api.code.umans.ai/v1/models (2026-09-29): context_length 1,048,576, pricing 3.0 / 15.0; GET https://api.code.umans.ai/v1/models/info: base_model Kimi-K3, max_completion_tokens 131,072, supports_vision true, supports_tools true. The $0.30 cache-read rate is stated on https://app.umans.ai/pricing." }, "umans-glm-5.3-flash": { "contextWindow": 1048576, "maxOutputTokens": 131072, "pricingPerMTok": { "input": 0.15, "output": 0.5, "cachedInput": 0.03 }, "vision": true, "status": "production", "description": "Vision model for tests - Z.ai's GLM-5.3-Flash. https://app.umans.ai/offers/code/docs describes \"a 320B mixture-of-experts (18B active per token) with native image and video understanding\" at $0.15 / $0.50 per 1M tokens; it always thinks at max effort by default, reasoning_effort low or high dials it and thinking cannot be turned off. The pricing page says umans-coder is an alias for it today. Unauthenticated GET https://api.code.umans.ai/v1/models (2026-09-29): context_length 1,048,576, pricing 0.15 / 0.5; GET https://api.code.umans.ai/v1/models/info: max_completion_tokens 131,072, supports_vision true, supports_tools true. The $0.03 cache-read rate is stated on https://app.umans.ai/pricing. It is models.visionModel so vision tests use a fixed id rather than the routed alias." }, "umans-deepseek-v4.1-flash": { "contextWindow": 1048576, "maxOutputTokens": 393216, "pricingPerMTok": { "input": 0.15, "output": 0.6, "cachedInput": 0.028 }, "vision": true, "status": "production", "description": "DeepSeek V4.1 Flash, listed in the Models table of https://app.umans.ai/offers/code/docs, which describes \"a 552B MoE (8B active on prefill, 16B on decode) with native image understanding ($0.15 / $0.60 per 1M tokens)\", names it the DeepSeek V4 Pro successor, and lists four reasoning modes - non-think, think low, think high (the default), think max - with a numeric 1-100 budget also accepted. Unauthenticated GET https://api.code.umans.ai/v1/models (2026-09-29): context_length 1,048,576, pricing 0.15 / 0.6; GET https://api.code.umans.ai/v1/models/info: production_start_date 2026-09-18, max_completion_tokens 393,216, supports_vision true, supports_tools true. The $0.028 cache-read rate is stated on https://app.umans.ai/pricing." }, "umans-flash": { "contextWindow": 262144, "maxOutputTokens": 262144, "pricingPerMTok": { "input": 0.15, "output": 1, "cachedInput": 0.05 }, "vision": true, "status": "production", "description": "Qwen3.6-35B-A3B-FP8, a light model rather than a coder. https://app.umans.ai/offers/code/docs lists it in its Models table as \"High-interactivity light model; complement to umans-coder\" with a 256K context, says to use it for the roles around umans-coder \"not as a standalone coder\", targets 200+ tokens per second, and its Claude Code table lists Text, Vision, WebSearch. Unauthenticated GET https://api.code.umans.ai/v1/models (2026-09-29): context_length 262,144, pricing 0.15 / 1.0; GET https://api.code.umans.ai/v1/models/info: max_completion_tokens 262,144, supports_vision true, supports_tools true. The $0.05 cache-read rate is stated on https://app.umans.ai/offers/code/docs/orgs and the pricing page. The docs' Limits section counts it as half a request against the wallet tier's request window. The roster's umans-qwen3.6-35b-a3b id is described by /v1/models/info as a technical alias for this model and is not listed separately." } }, "topModels": [ "umans-coder", "umans-glm-5.3", "umans-deepseek-v4-flash-0731", "umans-kimi-k3", "umans-glm-5.3-flash", "umans-deepseek-v4.1-flash", "umans-flash" ], "visionModel": "umans-glm-5.3-flash" }, "capabilities": { "text": true, "streaming": true, "tools": true, "toolsWithStreaming": false, "structuredOutput": false, "structuredOutputWithTools": false, "embeddings": false, "thinking": true }, "errorRules": [ { "status": 401, "class": "authentication", "message": "Umans AI rejected the request with HTTP 401. Check {apiKeyEnvVar}; the docs say a 401 means the key may be expired or revoked. Create a new key at {setupUrl}" }, { "status": 429, "class": "rate-limit", "message": "Umans AI rate limit (HTTP 429): the wallet tier's burst limit was exceeded. The docs describe 429s as retryable - wait for the rolling five-hour window to free capacity, or top up to grow the tier (https://app.umans.ai/offers/code/docs)" }, { "pattern": "unknown model", "class": "invalid-model", "message": "Umans AI model '{model}' is not a valid id (HTTP 400 Unknown model). Ids start with umans-; the error body lists the valid ids, or pick one from https://api.code.umans.ai/v1/models" } ], "setup": { "url": "https://app.umans.ai/billing", "apiKeyFormat": null, "billingPolicy": "no-free-tier", "instructions": [ "1. Visit: https://app.umans.ai/register and create an account with Google or an email and password (already have one? sign in at https://app.umans.ai/login). Organizations are provisioned by Umans: email contact@umans.ai (https://app.umans.ai/offers/code/docs/orgs)", "2. Open https://app.umans.ai/billing, go to Dashboard -> API Keys and generate a key; the docs say it is shown only once, so copy it immediately", "3. Prepaid wallet, no free tier stated: top up before calling the API - the docs say a wallet with no credit (no paid top-up and no active promo grant) \"does not serve until it has some\", and promo credit serves only while it lasts (https://app.umans.ai/offers/code/docs)", "4. Set {apiKeyEnvVar} in your .env file" ], "description": "OpenAI-compatible endpoint at https://api.code.umans.ai/v1 (https://app.umans.ai/offers/code/docs: \"Umans Code also implements the OpenAI Chat Completions API\"), pay-per-token from a prepaid wallet, serving open-weight coding models from Z.ai, DeepSeek, Moonshot and Qwen. The gateway's 401 body was observed only on GET /v1/usage ({\"error\":{\"type\":\"authentication_error\",\"message\":\"Missing API key\"}}); GET /v1/chat/completions answers 405 and was never POSTed, so errorRules match the documented status codes (401, 429) and the documented \"Unknown model\" text rather than a probed chat-completions body. models.defaultContextWindow (262144) and models.defaultMaxOutputTokens (131072) are schema-required placeholders, not vendor-stated caps: they are the smallest context and max-output values among the seven catalog models, used only for an id outside the catalog, and no Umans page states a general cap. apiKeyFormat is null because the docs conflict: the Any BYOK Tool section says the key \"starts with sk-\" and the examples write sk-your-umans-api-key, while the wallet-summary example shows a key prefix of umans_7fKq and the homepage .env example shows umans_." }, "evidence": { "rosterVerified": { "date": "2026-09-29", "status": 200, "method": "unauthenticated GET https://api.code.umans.ai/v1/models — 10 models; credential-free, no key used" }, "authProbe": { "date": "2026-09-29", "status": 401, "code": "authentication_error", "method": "unauthenticated GET https://api.code.umans.ai/v1/usage (a documented bearer-key route) — body {\"error\":{\"type\":\"authentication_error\",\"message\":\"Missing API key\"}}; the OpenAI route GET /v1/chat/completions returned 405 Method Not Allowed and no POST was sent; credential-free, no key used" }, "billingProbe": { "date": "2026-09-29", "method": "public pages https://app.umans.ai/offers/code/docs (\"A wallet with no credit at all — no paid top-up, no active promo grant — does not serve until it has some\") and https://app.umans.ai/pricing (\"Pay per token. Top up, create a key, and go.\"); no free tier stated; credential-free" }, "liveMatrix": null, "addedInPR": "https://github.com/juspay/neurolink/pull/1860" } }