There are two ways to get a Claude API key. The official route is to create one directly in the Anthropic Console; the other is to get one from a gateway that provides an Anthropic-compatible endpoint. Both call the same Claude models; in your code, only the base URL and key string differ.
Below, we cover both routes and also address payment issues that commonly arise in South Korea.
Route 1 — Create a key directly in the Anthropic Console
Create an Anthropic account, add a payment method, then generate an API key in the console. Keys created this way are billed at Anthropic's list rates, with the benefit of access to official documentation and support.
In South Korea, payment is where most people run into trouble. Cards that block international payments cannot be registered, so enabling international payments in your card issuer's app and trying again resolves the issue in most cases.
Route 2 — Gateway key
This lets you call Claude models without an Anthropic account. Kunavo provides both the Anthropic Messages API and an OpenAI-compatible API, so you only need to change the base URL and key in your existing code.
This route also encounters fewer obstacles at the payment stage. For prepaid Kunavo top-ups, when checkout is displayed in Korean won, KakaoPay, Naver Pay, PAYCO, Samsung Pay, and domestic cards with international payments disabled are offered as payment methods (Toss Pay is not offered). The topped-up balance is used for Claude API calls; it is not a way to pay Anthropic subscription fees.
# OpenAI SDK를 그대로 쓰면서 base_url만 바꾸는 방식.
# 코드에서 바뀌는 줄은 base_url 한 줄뿐입니다.
from openai import OpenAI
client = OpenAI(
base_url="https://api.kunavo.com/v1",
api_key="sk-kn-...",
)
resp = client.chat.completions.create(
model="claude-sonnet-5",
messages=[{"role": "user", "content": "안녕하세요"}],
)
print(resp.choices[0].message.content)If your code uses the native Anthropic format, set the base URL to https://api.kunavo.com — in this case, do not add /v1. The differences between the two formats are explained in the ANTHROPIC_BASE_URL documentation.
Rates
| Model | Kunavo (input / output per 1M tokens) | Anthropic list price |
|---|---|---|
| Claude Haiku 4.5 | $0.70 / $3.50 | $1.00 / $5.00 |
| Claude Sonnet 5 | $1.40 / $7.00 | $2.00 / $10.00 |
| Claude Opus 5 | $3.50 / $17.50 | $5.00 / $25.00 |
Rates are read from the catalog when the page renders, so this documentation cannot diverge from actual charges. For more details about payment methods and locally issued cards, see Claude API pricing and payment.
30-second check after creating a key
Once you have a key, make a call right away. Checking this first makes it easy to tell whether later errors are caused by the key.
# 발급받은 키가 실제로 동작하는지 확인하는 최소 요청.
# 200이 오면 키는 정상입니다.
curl -sS https://api.kunavo.com/v1/messages \
-H "Authorization: Bearer sk-kn-..." \
-H "anthropic-version: 2023-06-01" \
-H "content-type: application/json" \
-d '{"model":"claude-sonnet-5","max_tokens":32,
"messages":[{"role":"user","content":"안녕하세요"}]}'A 200 means the key is working. 401 usually means the authentication header type is incorrect; 429 indicates rate limiting, and 529 indicates upstream overload, unrelated to the key. See Claude Code error guide for how to handle each error.
Using separate keys
It is safer to use separate keys for different purposes. Revoking one does not affect the others, and you can set a monthly usage limit for each key. Limits are checked before a request runs and reset at the start of each month, making this especially useful when giving a key to an agent that runs without supervision.
Frequently asked questions
Where can I get a Claude API key?
The official route is to create an account in the Anthropic Console, add a payment method, and then generate an API key. With this route, the key is billed at Anthropic's list rates. Another route is to get a key from a gateway that provides an Anthropic-compatible endpoint. This lets you call Claude models without an Anthropic account, at a lower per-token rate. Both routes call the same models; in your code, only the base URL and key differ.
What should I do if I can't pay for the Claude API from South Korea?
The most common cause is a card with international payments blocked, and enabling international payments in the card issuer's app resolves the issue in most cases. KakaoPay and Toss cannot be used when paying Anthropic directly — knowing this fact saves time. For prepaid Kunavo top-ups, when checkout is displayed in Korean won, KakaoPay, Naver Pay, PAYCO, Samsung Pay, and domestic cards with international payments disabled are offered as payment methods (Toss Pay is not offered). Domestic cards and Apple Pay can usually be registered, and because this is a prepaid top-up, unused balances do not expire.
Does it cost anything to create an API key?
Creating a key is free; costs are incurred when you make calls. There is no recurring subscription or monthly minimum charge, and calls are deducted from your prepaid balance, so months with no usage cost ₩0. Failed requests are not charged.
How can I check whether my API key works?
Send a minimal request to the endpoint. If you receive a response body with a 200, the key is working. A 401 usually means the authentication header type is incorrect; a 429 indicates rate limiting, and a 529 indicates upstream overload, unrelated to the key. Checking this first makes it easy to tell whether later errors are caused by the key.
What are the Claude API rates?
Kunavo rates per 1M tokens (input / output) are Claude Haiku 4.5 $0.70 / $3.50, Claude Sonnet 5 $1.40 / $7.00, and Claude Opus 5 $3.50 / $17.50. Each model is shown alongside Anthropic's list price so you can compare directly, and rates are read automatically from the catalog, so this documentation cannot diverge from the actual charges.
Can I use models other than Claude with one key?
Yes. You can call Claude, GPT, and image and video models using the same key and base URL; only the model parameter string changes. The practical difference with the gateway route is that you don't need separate accounts and billing for each model family.
Can I create and manage multiple keys?
That is the recommended approach. Separating keys by use case means revoking one does not affect the others, and you can set a monthly usage limit for each key. Limits are checked before a request runs and reset on the first of each month, making this especially useful when giving a key to an automated agent.