Skip to main content
Version: 3.19.0

Proxy OpenRouter Requests

OpenRouter provides a unified, OpenAI-compatible API that aggregates models from multiple providers (OpenAI, Anthropic, Google, Mistral, and more).

This guide shows how to integrate APISIX with OpenRouter using the ai-proxy plugin. With provider set to openrouter, you do not need to set a custom endpoint.

Prerequisite(s)​

  • Install Docker.
  • Install cURL to send requests to the services for validation.
  • Follow the Getting Started Tutorial to start a new APISIX instance in Docker or on Kubernetes.
  • If you use the Admin API examples and authentication is enabled, export an admin-role key as ADMIN_API_KEY. Configure the key under deployment.admin.admin_key. The Docker quickstart disables authentication for local evaluation; keep it enabled in production.

Obtain an OpenRouter API Key​

Create an account and API key by following the OpenRouter Quickstart. Optionally save the key to an environment variable:

export OPENROUTER_API_KEY=sk-or-v1-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx # replace with your API key

Create a Route to OpenRouter​

Create a route with the ai-proxy plugin as such:

curl "http://127.0.0.1:9180/apisix/admin/routes" -X PUT \
-H "X-API-KEY: ${ADMIN_API_KEY}" \
--data-binary @- <<EOF
{
"id": "openrouter-chat",
"uri": "/anything",
"plugins": {
"ai-proxy": {
"provider": "openrouter",
"auth": {
"header": {
"Authorization": "Bearer $OPENROUTER_API_KEY"
}
},
"options": {
"model": "deepseek/deepseek-chat"
}
}
}
}
EOF

❶ Set the provider to openrouter.

❷ Attach the OpenRouter API key using the Authorization header.

❸ Set a model supported by OpenRouter, for example deepseek/deepseek-chat.

Verify​

Send a request with the following prompts to the route:

curl "http://127.0.0.1:9080/anything" -X POST \
-H "Content-Type: application/json" \
-d '{
"messages": [
{
"role": "system",
"content": "You are a computer scientist."
},
{
"role": "user",
"content": "Explain in one sentence what a Turing machine is."
}
]
}'

You should receive a response similar to the following:

{
"id": "gen-1770023173-XYUZ4kUwUAWHwDMPLN20",
"provider": "Novita",
"model": "deepseek/deepseek-chat",
...
"choices": [
{
"logprobs": null,
"finish_reason": "stop",
"native_finish_reason": "stop",
"index": 0,
"message": {
"role": "assistant",
"content": "A Turing machine is a theoretical computational model that manipulates symbols on an infinite tape according to a set of rules, simulating any algorithm's logic and serving as the foundation for modern computability theory.",
"refusal": null,
"reasoning": null
}
}
],
...
}

Next Steps​

You have learned how to integrate APISIX with OpenRouter. See the OpenRouter Quickstart and Models pages for more details.