Эта страница ещё не переведена на Русский. Показан английский оригинал.

FAQ

Short answers about accounts, pricing, models and errors

Getting started

What is MyIP OpenRouter?

A gateway that lets you call many language models through one OpenAI-compatible API. Some models run on GPUs we operate ourselves; others are forwarded to external providers. Either way you get the same interface, and every request is billed against a prepaid KRW credit balance.

How do I sign up?

Sign in with a Naver or Google account and your account is created on the spot — there is no separate password to set. Signing up grants a one-time ₩1,000 credit, so you can send real requests before ever entering payment details.

Where do I get an API key?

Create one at /settings/keys once you are signed in. A key is shown once, at the moment you create it, and never again — we only keep a sha256 hash of it, so a lost key has to be replaced with a new one.

There are two kinds of key.

PrefixKindUsed for
sk-mo-v1-Inference keyChat and completion calls
sk-mo-mgmt-v1-Management keyThe /keys endpoints only, for creating and revoking keys

Calling an inference endpoint with a management key returns 401 invalid_api_key.

What is the base URL?

https://openrouter.myip.co.kr/api/v1

If you already use the OpenAI SDK, changing base_url to this value is the whole migration. See OpenAI SDK.

How do I send my first request?

bash
curl https://openrouter.myip.co.kr/api/v1/chat/completions \
  -H "Authorization: Bearer $MYIP_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "google/gemma-4-26b-a4b",
    "messages": [{"role": "user", "content": "Hello"}]
  }'

Pricing

How is pricing calculated?

In two steps. First we derive a sell price per model, in won per token; then we multiply by the tokens actually used.

sell price    = admin override ?? USD cost × exchange rate × (1 + margin)
request cost  = (prompt tokens - cached tokens) × prompt price
              + cached tokens × cache-read price
              + completion tokens × completion price

The current exchange rate is 1 USD = ₩1,350, and the default margin is 30%. A full walkthrough with real numbers is in How costs are calculated.

How much is one credit?

1 credit = ₩1. There is no conversion. Top up ₩10,000 and your balance is exactly 10000.

Is there a minimum or maximum top-up?

Minimum ₩10,000, maximum ₩1,000,000 per transaction. That amount already includes 10% VAT, and the full amount becomes credit. See Credits and payment.

Is pricing in dollars or won?

Everything is in KRW. The pricing values returned by GET /api/v1/models are won per token and the object carries "currency": "KRW". Every /api/v1 response also carries an X-MyIP-Currency: KRW header.

If you are reusing code written for openrouter.ai, watch out: it will treat these numbers as dollars unless you change that assumption.

Is there a monthly fee or subscription?

No. There is only prepaid credit, and nothing is charged while you are not using it.

Do credits expire?

No.

How do I check the cost of a request I just made?

For a non-streaming call, it is in the response headers immediately.

X-MyIP-Cost-KRW: 3.001050
X-MyIP-Credit-Balance: 10996.998950

For a streaming call, read cost off the final usage chunk, or look it up afterward with GET /api/v1/generation?id=gen-…. That value is exactly what was posted to the ledger.

Are failed requests billed?

No. A request that fails upstream, or that never exchanges a single token, costs ₩0 and never touches the ledger.

The one exception is a stream you cancel partway through — you are billed for the tokens generated up to that point, because the upstream has already produced and charged for them on its side.

Refunds

How do I get a refund?

Use the refund request link on /settings/credits. An admin reviews it and processes it manually — there is no one-click self-service refund.

What are the refund conditions?

A full refund applies only to unused credit, requested within 7 days of the purchase. Credit you have already spent is not eligible. Issuing a refund also deducts that amount from your balance, so a refund is rejected if your current balance is lower than the amount being refunded.

Full conditions are in the Terms of Service.

Can I get a tax invoice?

We do not issue one. What we do provide is a card sales slip (receipt_url) and a self-service receipt page at /settings/credits/receipt/{order_id}. If you need proof for a business filing, reach out and we can help directly.

Errors

I'm getting 402 insufficient_credits

Your balance is too low. A few things to check.

  1. Check your balanceGET /api/v1/credits or /settings/credits.
  2. Check whether you have used up the overdraft buffer — once your balance is at or below -₩5,000, new requests are blocked. That small negative allowance exists because settling concurrent streams can briefly push the balance past zero.
  3. Check whether the key was auto-suspended — a balance at or below zero auto-suspends every key on that account with status suspended_no_credit. Topping up reactivates them automatically.
  4. Check whether it's a per-key limitkey_limit_exceeded means the cap is on that specific key, not the account balance. Check limit_remaining from GET /api/v1/key.

The full flow is in Limits and 402.

I topped up but I'm still blocked

If the error is 403 key_suspended, an admin suspended that key directly. It has nothing to do with balance, so topping up will not fix it — contact us.

If it's 401 invalid_api_key and you previously revoked a key, revocation is permanent; you need to issue a new one.

I'm getting 400 model_not_found

The model id is not in our catalog. Two common causes.

  • A tool defaulted to something like gpt-4o on its own. Set the model explicitly.
  • The model id has a prefix like openrouter/ attached. Our ids are exactly creator/model-name, with nothing added.

Check GET /api/v1/models for what is actually available.

I'm getting 404 not_supported

That endpoint isn't implemented. We do not offer embeddings, image/video/audio generation, the Responses API, Batch, Presets, Workspaces, or BYOK. The full list is in Unsupported endpoints.

I'm getting 429

That's a request-rate limit, applied per IP address — splitting traffic across multiple keys will not get around it. If a Retry-After header is present, honor it and back off exponentially.

What shape do error responses have?

Always the same shape, and the HTTP status matches error.code.

json
{
  "error": {
    "code": 402,
    "message": "Insufficient credits.",
    "metadata": { "error_type": "insufficient_credits" }
  }
}

Branch your code on error.metadata.error_type. message is meant for humans and its wording can change.

Models

Which models can I use?

Fetch the full list from GET /api/v1/models, or browse the model catalog on the site. google/gemma-4-26b-a4b and lgai/exaone-4.0-32b run directly on our own GPUs.

Why is my first request unusually slow?

That's a cold start on a local GPU model. If the GPU slot isn't already loaded, the model has to be loaded into memory the moment your request arrives, and that takes time.

  • The default budget for waiting on a boot is 25 seconds.
  • If it comes up within that budget, you get a normal response.
  • If it doesn't, we move on to a fallback candidate (another provider), if one exists.
  • If there is no fallback candidate, you get 503 model_loading along with metadata.retry_after_sec. Waiting that long and retrying usually succeeds.

Once a model is loaded it stays resident, so your second request onward is fast. If your service is latency-sensitive, sending one warm-up request right after a deploy is a reasonable pattern.

Which models support tool calling?

Any model that lists tools in supported_parameters in the model catalog.

bash
curl -s "https://openrouter.myip.co.kr/api/v1/models" \
  | jq -r '.data[] | select(.supported_parameters | index("tools")) | .id'

Our local GPU models are configured to support tool calling too. See Tool calling for usage.

What happens if I don't specify a model?

The request goes to the default model, google/gemma-4-26b-a4b. Since it's a local slot, this works even without any external provider key.

Can I try multiple models in order?

Send a models array and we try them front to back. Any id inside the array that we don't recognize is silently skipped in favor of the next one; you only get a 400 if every id in the array is unknown. See Model fallbacks.

Can I choose whether a model runs locally or gets sent externally?

Use only or ignore inside the provider object to restrict candidates. Local candidates are placed at the front of the chain by default. See Local-first routing and Provider routing.

Privacy

Do you store my prompts?

Prompt and response bodies sent through the API are never stored. The only thing we retain is the metadata needed for billing — token counts, cost, model, and timestamp.

The exception is the web Chat interface, where conversations are kept; you can turn that off at /settings/privacy. See Data collection for details.

Do you train models on my data?

No. We also don't sell or share it with third parties.

What about requests that get sent to an external provider?

That provider's own policies apply to the request as well. If you want to avoid your prompts ever leaving our infrastructure, stick to our local GPU models. See Provider logging.

Other

Is this the same service as openrouter.ai?

No, it's a separate service. The API shape is compatible on purpose, so most client code just works, but the accounts, keys, credits, model catalog and pricing are entirely ours. The currency is Korean won, too.

Do you support streaming?

Yes. Send stream: true and you get an SSE response. We always set stream_options.include_usage ourselves, so there's no need to set it yourself.

An error that happens mid-stream doesn't come back as an HTTP status — it arrives as an error object inside a chunk, with finish_reason: "error". See Streaming.

Can I put my API key in frontend code?

No. Anything shipped to a browser is visible to anyone who opens it. Always call the API from a server you control.

Where do I see my usage history?

/settings/activity shows request counts, tokens and cost by period, broken down by model. For the detail of a single request, use GET /api/v1/generation?id=gen-….

Последнее обновление: 5 сент. 2026 г.