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
- Open
console.upstage.ai. - Press Log in at the upper right of the page and complete sign-up.
- 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
- On the console, click Create new key.
- Copy the key immediately and store it in an environment variable, for example:
export UPSTAGE_API_KEY="your-key-here"
- 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.contentholds the answer. If the model returns reasoning content, it appears on thereasoningattribute.
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.