Esta página aún no está traducida al Español. Se muestra el original en inglés.

GET /providers

The providers we are connected to

Returns the providers that are currently active, and how many models each one serves. This is where you find the slug values used in routing rules (provider{}).

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

Authentication

None required. This is a public endpoint you can call with no headers. An Authorization header, if sent, is ignored.

Request parameters

None. There is no filtering and no pagination; all active providers come back in one response.

Request example

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

Response

{"data": [ … ]}, ordered by internal priority ascending, then by slug alphabetically. In other words, the higher a provider appears, the earlier routing tries it.

namestring

Display name. This is the same value that appears in the X-MyIP-Provider response header.

slugstring

Stable identifier. This is what goes into provider.order, provider.only and provider.ignore.

model_countnumber

How many models are attached to this provider and enabled. Disabled mappings are not counted, so this equals the number of models you can actually reach through it.

privacy_policy_urlnull

Always null.

terms_of_service_urlnull

Always null.

status_page_urlnull

Always null.

Response example

json
{
  "data": [
    {
      "name": "MyIP Local",
      "slug": "myip-local",
      "privacy_policy_url": null,
      "terms_of_service_url": null,
      "status_page_url": null,
      "model_count": 2
    },
    {
      "name": "MyIP Upstream",
      "slug": "myip-upstream",
      "privacy_policy_url": null,
      "terms_of_service_url": null,
      "status_page_url": null,
      "model_count": 41
    }
  ]
}

Why the three URL fields are always null

openrouter publishes a policy URL and a status page per provider. We do not track those: your contract is with MyIP OpenRouter alone, not with each upstream, and our policies are published once at the service level. The fields are kept — as null rather than removed — so that code parsing openrouter responses does not break on a missing key.

Our policies live at Privacy policy and Terms.

What never appears in this response

  • base_url — the upstream address is internal routing information.
  • api_key_env, api_key_enc — provider credentials are encrypted at rest and still never placed on a public surface.
  • Disabled providers — anything not enabled is absent from the list entirely.

What the slug is for

Put a slug from this list into the provider object of a /chat/completions request to steer routing.

bash
curl https://openrouter.myip.co.kr/api/v1/chat/completions \
  -H "Authorization: Bearer $MYIP_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "lgai/exaone-4.0-32b",
    "messages": [{"role": "user", "content": "Hello"}],
    "provider": { "order": ["myip-local"], "allow_fallbacks": false }
  }'

A slug in only or order that is not in this list empties the candidate chain and produces 404 no_endpoints_found. The full set of rules is in Provider routing.

To see which providers serve a particular model, with their prices and context lengths, use GET /models/{author}/{slug}/endpoints. This list is the same picture seen from the provider side.

Errors

Statuserror_typeWhen
500serverA server-side failure. Since there is no authentication, 401, 402 and 403 cannot occur

An empty list is not an error: it comes back as {"data": []} with status 200.

Última actualización: 5 sept 2026