Skip to main content

Upstage Provider Guide

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


Key Facts

  • Provider id: upstage (aliases: solar)
  • Protocol: OpenAI-compatible (/chat/completions)
  • Base URL: https://api.upstage.ai/v1
  • Default model: solar-pro4
  • Models in catalog: 10
  • Streaming: supported
  • Tool calling: supported (native)
  • Structured output: supported
  • Embeddings: not supported
  • Billing: free-tier
  • Key format: ^up_[A-Za-z0-9]+$

Quick Start

1. Get an API key

  1. Visit: https://console.upstage.ai (Google OAuth works)
  2. New accounts get a $10 sign-up credit — no payment method required
  3. Create an API key under API Keys
  4. Set UPSTAGE_API_KEY in your .env file

2. Configure

export UPSTAGE_API_KEY=your-api-key
export UPSTAGE_MODEL=solar-pro4 # optional — overrides the default model
export UPSTAGE_BASE_URL=https://api.upstage.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: "upstage",
model: "solar-pro4",
});

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

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

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

Models

ModelContextVision$/M in · outNotes
solar-pro4512Kno$0.3 / $1.2Solar Pro 4; 512K context, up to 128K output tokens; agentic flagship for tool calling, terminal tasks and long-document reasoning
solar-pro4-260806512Kno$0.3 / $1.2Pinned dated snapshot of Solar Pro 4 (2026-08-06 build) — the id the solar-pro4 alias currently resolves to
solar-pro3512Kno$0.15 / $0.6Solar Pro 3; drop-in replacement for Solar Pro 2 with the same API interface, throughput and latency
solar-pro3-260323512Kno$0.15 / $0.6Pinned dated snapshot of Solar Pro 3 (2026-03-23 build)
solar-pro2512Kno$0.15 / $0.6Solar Pro 2; 31B-parameter model with an optional Reasoning Mode
solar-pro2-251215512Kno$0.15 / $0.6Pinned dated snapshot of Solar Pro 2 (2025-12-15 build)
solar-mini512Kno$0.15 / $0.15Solar Mini; small, fast model for lightweight reasoning and cost-efficient tasks
solar-mini-250422512Kno$0.15 / $0.15Pinned dated snapshot of Solar Mini (2025-04-22 build)
syn-pro512KnoSyn Pro; Upstage's Japan-focused LLM
syn-pro-251021512KnoPinned dated snapshot of Syn Pro (2025-10-21 build)

Fallback order when the default is unavailable: solar-pro3solar-mini.


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 Upstage:

ProbeResult
Rosterauthenticated GET /v1/models, HTTP 200, 2026-09-03
Auth rejectionHTTP 401 invalid_api_key, 2026-09-03
Live capability sweepnot run

⚠️ No live capability sweep is recorded for Upstage. The roster and auth behaviour were verified against the real API on the date above, but the capability flags come from the catalog declaration rather than from a measured end-to-end run. Treat them as the provider's stated behaviour.


Troubleshooting

SymptomCauseFix
Invalid Upstage API keyUPSTAGE_API_KEY unset or wrongCheck the key at https://console.upstage.ai/api-keys
Model not foundThe roster changed since 2026-09-03Pick a current id; catalog providers retire models without notice

See also