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/providersAuthentication
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/providersResponse
{"data": [ … ]}, ordered by internal priority ascending, then by slug alphabetically. In other words, the higher a provider appears, the earlier routing tries it.
namestringDisplay name. This is the same value that appears in the X-MyIP-Provider response header.
slugstringStable identifier. This is what goes into provider.order, provider.only and provider.ignore.
model_countnumberHow 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_urlnullAlways null.
terms_of_service_urlnullAlways null.
status_page_urlnullAlways null.
Response example
{
"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
enabledis 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.
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
| Status | error_type | When |
|---|---|---|
| 500 | server | A 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.
Related
- Provider routing — the whole
provider{}object - Local-first routing — the rule that prefers our own GPUs
- GET /models — the model catalogue
- GET /models/{author}/{slug}/endpoints — per-model providers and prices
Última actualización: 5 sept 2026