API7 Docs
How-To GuidesAI Gateway

Proxy Gemini Requests

Learn how to configure Apache APISIX to proxy requests to Google Gemini with the ai-proxy plugin, enabling access to Gemini models via an OpenAI-compatible API without specifying a custom endpoint.

Google Gemini provides an OpenAI-compatible API that allows you to access Gemini models using the familiar OpenAI API format.

This guide shows how to integrate APISIX with Google Gemini using the ai-proxy plugin. With provider set to gemini, 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.

Obtain a Google API Key

Create an account and API key by following the Google AI Studio. Optionally save the key to an environment variable:

export GEMINI_API_KEY=xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx  # replace with your API key

Create a Route to Gemini

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

curl "http://127.0.0.1:9180/apisix/admin/routes" -X PUT --data-binary @- <<EOF
{
  "id": "gemini-chat",
  "uri": "/anything",
  "plugins": {
    "ai-proxy": {
      "provider": "gemini",
      "auth": {
        "header": {
          "Authorization": "Bearer $GEMINI_API_KEY"
        }
      },
      "options": {
        "model": "gemini-2.5-flash"
      }
    }
  }
}
EOF

❶ Set the provider to gemini.

❷ Attach the Google API key using the Authorization header.

❸ Set a model supported by Gemini, for example gemini-2.5-flash.

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 helpful AI assistant" },
      { "role": "user", "content": "What is the capital of France?" }
    ]
  }'

You should receive a response similar to the following:

{
  "choices": [
    {
      "finish_reason": "stop",
      "index": 0,
      "message": {
        "content": "The capital of France is **Paris**.",
        "role": "assistant"
      }
    }
  ],
  "model": "gemini-2.5-flash",
  "object": "chat.completion",
  "usage": {
    "completion_tokens": 8,
    "prompt_tokens": 15,
    "total_tokens": 41
  },
  ...
}

Next Steps

You have learned how to integrate APISIX with Google Gemini. See the Google AI for Developers and Models pages for more details.