How to Set Up Upstage Console and Make Your First API Request

Updated

Sign up at console.upstage.ai with the Log in button in the upper right, create an API key on the API keys page, then send a chat completion request to https://api.upstage.ai/v1 using the OpenAI-compatible client and a current model name such as solar-pro4. New accounts receive $10 in free credit, which is enough to complete a first request and explore the example snippets before you decide on a paid billing path.

Before You Start

You need:

  • A web browser to reach the console and sign up.
  • Python (or Node.js, or just cURL) if you want to run the example snippets locally.
  • A place to store the API key securely — treat it like a password. The console shows keys on the API keys page, so copy it once and keep it out of source control.

No infrastructure setup is required; the APIs are hosted.

Step 1: Create Your Account and Confirm Free Credit

  1. Open console.upstage.ai.
  2. Press Log in at the upper right of the page and complete sign-up.
  3. After signing in, confirm the $10 free credit is attached to your account. This credit lets you make requests before adding a payment method.

If you plan to go beyond the free credit later, the console offers two paths under "Continue with paid usage" — see the billing section below.

Step 2: Create an API Key

  1. On the console, click Create new key.
  2. Copy the key immediately and store it in an environment variable, for example:
export UPSTAGE_API_KEY="your-key-here"
  1. You can review and manage existing keys on the API keys page.

Expected result: you have a key string that starts working immediately for API calls.

Step 3: Make Your First Chat Request

Upstage exposes an OpenAI-compatible endpoint, so you can reuse the OpenAI SDK by pointing base_url at Upstage and passing your key.

from openai import OpenAI

client = OpenAI(
    api_key="UPSTAGE_API_KEY",   # replace with your key or read from env
    base_url="https://api.upstage.ai/v1"
)

response = client.chat.completions.create(
    model="solar-pro4",
    messages=[
        {"role": "user", "content": "An $80 item gets a 20% discount, then 10% tax is added. What is the final price? Answer with only the dollar amount."}
    ],
    reasoning_effort="medium"
)

message = response.choices[0].message
reasoning = getattr(message, "reasoning", None)
if reasoning:
    print(reasoning)
print(message.content)

What happens at each point:

  • Input: your API key, the base URL, a model name, and a messages array.
  • Action: the SDK sends a POST to the chat completions route under /v1.
  • Expected result: a response object whose choices[0].message.content holds the answer. If the model returns reasoning content, it appears on the reasoning attribute.

The same snippet is available in cURL, JavaScript, LangChain, and LlamaIndex variants on the console's example code panel, so pick whichever fits your stack.

Step 4: Pick the Capability You Actually Need

Upstage groups its APIs by task. Choose based on your use case rather than defaulting to chat:

Capability Use it when Where to start
Chat with Reasoning Conversational answers, multi-step reasoning Playground / Documentation
Document parsing Turning complex documents into LLM-readable formats Playground / Documentation
Information extraction Pulling key-values from target documents at high precision Studio / Documentation
Document classification Routing or tagging documents Studio / Documentation
Embeddings Semantic search, retrieval, clustering Documentation
Agent Autonomous multi-step task completion Studio / Documentation

Each capability page includes a ready-to-use code snippet, so the setup pattern from Step 3 carries over — swap the endpoint and payload, keep the same key and base URL.

If you're building an AI agent or automated tooling, the machine-readable docs index at /llms.txt is the faster entry point than browsing pages.

Step 5: Decide How to Pay Before Free Credit Runs Out

The console offers two billing models:

  • Pay-as-you-go: no credits to buy; your registered payment method is charged monthly for usage. Add a payment method from the billing page.
  • Prepaid credits: buy credits in advance. Buying credits can also raise your rate limit, which matters if you hit throttling during testing.

For details, the console points to its billing FAQ. Check current pricing on the Upstage pricing page before committing, since rates and credit terms can change.

Common Setup Problems and Fixes

Symptom Likely cause Fix
401 / authentication error Key missing, mistyped, or not loaded from env Re-copy the key from the API keys page; verify the env var is set in the same shell or process
404 or "model not found" Wrong base_url or an outdated model name Confirm base_url="https://api.upstage.ai/v1" and use a current model such as solar-pro4
Rate limit errors Free-tier or credit-tier limits Slow down requests, or buy prepaid credits, which can raise your rate limit
Request works in cURL but not in code SDK defaulting to OpenAI's endpoint Explicitly set base_url in the client constructor
Key leaked in a repo Key hardcoded in source Rotate the key in the console and load it from an environment variable

Privacy Note

Upstage states that it does not store or reuse any data sent to its APIs. If your documents are sensitive, review the linked terms before sending production data — this is the relevant condition to check rather than an assumption you should make.