Skip to main content

above.dev Provider Guide

above.dev 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/above-dev.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. Everything below comes from above.dev's own public docs (https://above.dev/docs) and an unauthenticated GET /v1/models call — no API key was used or obtained. No generate()/stream() request has been made against this provider yet, so chat, streaming, tool calling and structured output are not confirmed to work end-to-end. See Verification status below before relying on this provider in production.


Key Facts​

  • Provider id: above-dev
  • Protocol: OpenAI-compatible (POST /v1/chat/completions, documented as an alias that delegates to the vendor's native POST /v1/messages with "identical behaviour")
  • Base URL: https://api.above.dev/v1
  • Default model: deepseek-v4.1-flash (above.dev's own default when no model is named — "the cheapest model in the catalog")
  • Models in catalog: 9
  • Streaming: documented (stream: true, SSE, dedicated docs section)
  • Tool calling: documented as an accepted request field, but only as a routing signal — see Tools & structured output
  • Structured output: same caveat as tool calling; not declared supported here
  • Embeddings: not documented
  • Billing: no free tier — API keys are issued only after purchase
  • Key format: prefix sk-gw- documented; the full character set after the prefix is not specified
  • Rate limits: 300 requests/minute per account (account-wide, all keys)

Quick Start​

1. Get an API key​

  1. Visit: https://above.dev/pricing and purchase credit — API keys are issued only after purchase, there is no free signup
  2. Copy the issued key — it starts with sk-gw- (the docs give only the prefix, not a full character-set spec)
  3. Manage or rotate the key from https://above.dev/dashboard if it is ever compromised — a key grants full access to your credit balance
  4. Set ABOVE_DEV_API_KEY in your .env file

2. Configure​

export ABOVE_DEV_API_KEY=your-api-key
export ABOVE_DEV_MODEL=deepseek-v4.1-flash # optional — overrides the default model
export ABOVE_DEV_BASE_URL=https://api.above.dev/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: "above-dev",
model: "deepseek-v4.1-flash",
});

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

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

await neurolink.generate({
input: { text: "Hello" },
provider: "above-dev",
credentials: { "above-dev": { apiKey: process.env.ABOVE_DEV_API_KEY } },
});

Models​

ModelContextVision$/M in · outNotes
deepseek-v4.1-flash ⭐1Myes*time-of-day (see note)Default — the id above.dev itself routes to when no model is named. Tier T1.
deepseek-v4-pro1Mnotime-of-day (see note)Tier T2 ("agentic — multi-step, tool-capable" per the vendor's own tier table).
glm-5.21.05Mno$1.54 / $4.84Zhipu GLM 5.2. Tier T2.
glm-5.3-flash1.05Myes*$0.165 / $0.55Zhipu GLM 5.3 Flash. Tier T1.
glm-5.2-fast1.05Mno$2.31 / $7.26Zhipu GLM 5.2 Fast. Tier T3 ("highest capability in the catalog").
qwen3.8-max1Myes*$2.20 / $6.60Alibaba Qwen 3.8 Max. Tier T3.
mimo-v2.6-pro1Mno$0.5077 / $1.0154MiMo V2.6 Pro. Tier T2.
mimo-v2.6-flash1Mno$0.1692 / $0.3385MiMo V2.6 Flash. Tier T1.
mimo-v2.6-pro-ultraspeed1Mno$5.0769 / $10.1538MiMo V2.6 Pro UltraSpeed. Tier T3.

* Vision is supports_vision: true as self-reported by above.dev's own GET /v1/models response (unauthenticated, retrieved 2026-09-28). No image was actually sent to any model — this is vendor-stated metadata, not a live-probed result, so models.visionModel is deliberately left unset in the catalog entry.

Every model in the current catalog accepts up to 131,072 output tokens (documented account-wide limit, also reported per-model as max_completion_tokens in GET /v1/models).

Time-of-day pricing: deepseek-v4.1-flash and deepseek-v4-pro bill at different peak/off-peak rates (peak = 01:00–04:00 and 06:00–10:00 UTC on weekdays; everything else, including all of the weekend in Beijing time, is off-peak). Because the catalog schema's pricingPerMTok is a single number, not a range, these two models' pricing is omitted from the catalog entry rather than collapsed into one number — see above.dev's pricing table (https://above.dev/docs) for the current peak/off-peak figures. Every other model in this roster bills a single flat rate, shown above.

Fallback order when the default is unavailable: glm-5.3-flash → mimo-v2.6-flash → deepseek-v4-pro → glm-5.2 → mimo-v2.6-pro → glm-5.2-fast → qwen3.8-max → mimo-v2.6-pro-ultraspeed.

Two additional model ids, glm-5.3-flash-modal and deepseek-v4.1-flash-modal, are named in above.dev's docs as "free-tier routes" capped at 16,384 output tokens (they share a fixed concurrency pool). Neither id appears in the current GET /v1/models roster, so neither is represented in this catalog — and in any case a purchased key is still required to reach them, so the provider's overall billingPolicy remains no-free-tier.


Tools & structured output — a documented caveat​

above.dev's own API reference table describes the /v1/messages request parameters differently depending on the field:

  • temperature — "Passed through to the model."
  • tool_choice — "Tool choice control. Passed through to the model."
  • tools — "Tool definitions. Presence influences routing toward tool-capable models."
  • response_format — "Structured output format. Presence scores toward structured-output models."

The docs never state that tools or response_format are forwarded to, or honoured by, whichever model ends up serving the request — only that sending them nudges above.dev's routing. No example response containing tool_calls, a finish_reason value, or a reasoning/reasoning_content field appears anywhere in the docs. GET /v1/models does self-report supports_tool_calls: true and supports_structured_output: true for every model in the roster, but that is unauthenticated, vendor-supplied metadata, not a probed result.

Given that ambiguity and that no live request (which would require a paid key) was made:

  • capabilities.tools is set to "model-dependent" rather than true.
  • capabilities.structuredOutput and capabilities.structuredOutputWithTools are both false.
  • capabilities.thinking is false — GET /v1/models reports supports_reasoning: true for every model, but the human-readable docs never document a reasoning/thinking request or response field, so this is not treated as a confirmed NeuroLink-facing capability.

A future pass with a real key should re-probe all of this the way friendli.json/novita.json were probed (see docs/provider-integration/tiers/tier-2-catalog-entry.md#live-verification) and tighten these flags with evidence.liveMatrix filled in.


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 above.dev — docs- and roster-verified only, not yet live-verified:

ProbeResult
Rosterunauthenticated GET https://api.above.dev/v1/models — HTTP 200, 9 models, 2026-09-28. No key used.
Docs cross-checkhttps://above.dev/docs fetched and re-read 2026-09-28 for auth header shape, endpoints, pricing, limits and error codes.
Auth rejection probeNot performed — would require sending a request with a credential header, which is out of scope for a credential-free onboarding.
Live capability sweepNot performed — evidence.liveMatrix is null. No generate()/stream() call has been made against above-dev yet.

Until a live matrix run fills in evidence.liveMatrix, treat tools, structuredOutput, structuredOutputWithTools and thinking as unproven — the catalog entry already reflects that by declining to assert them.


Troubleshooting​

SymptomCauseFix
Invalid or missing above.dev API keyABOVE_DEV_API_KEY unset, wrong, or inactive (401)Check the key and get/rotate one at https://above.dev/pricing / https://above.dev/dashboard
Account balance insufficient (402)No purchased credit remainingTop up at https://above.dev/pricing
Model not enabled for key (403)The model is plan-restricted or in private beta for this keyPick another catalog model, or contact above.dev to enable it
Rate limited (429)More than 300 requests/minute on the accountRetry after the documented Retry-After header
Upstream timeout (504)provider_timeout — the routed model did not respond in timeRetry the request

See also​