Referência da APIUsuários avançadosAtualizado em
POST/v1beta/models/{model}:generateContent

Console da API

POST/v1beta/models/gemini-3.8-flash:generateContent
Ver chaves

As requisições usam a chave informada e seguem a cobrança padrão da API.

Gemini generateContent

A API nativa do Gemini oferece respostas JSON e SSE. Inclua o ID do modelo no caminho da requisição e o texto em contents[].parts[].

Antes de começar

Siga o guia rápido para obter a chave e escolher um endpoint que aceite chamadas HTTP diretas. Envie ICODEEASY_API_KEY no cabeçalho x-goog-api-key e troque YOUR_MODEL_ID pelo ID de um modelo Gemini aceito pelo endpoint.

Exemplo de requisição

generateContent retorna a resposta JSON completa.

bash
curl -sS https://api.icodeeasy.cc/v1beta/models/YOUR_MODEL_ID:generateContent \
  -H "x-goog-api-key: $ICODEEASY_API_KEY" \
  -H 'Content-Type: application/json' \
  --data '{
  "contents": [
    {
      "role": "user",
      "parts": [
        {
          "text": "Say hello."
        }
      ]
    }
  ]
}'

Leia a resposta

Leia o texto em candidates[].content.parts[]. Quando presente, usageMetadata contém promptTokenCount, candidatesTokenCount e cachedContentTokenCount.

json
{
  "candidates": [
    {
      "content": {
        "role": "model",
        "parts": [
          {
            "text": "Hello!"
          }
        ]
      },
      "finishReason": "STOP"
    }
  ]
}

Exemplo de requisição em streaming

bash
curl -NsS 'https://api.icodeeasy.cc/v1beta/models/YOUR_MODEL_ID:streamGenerateContent?alt=sse' \
  -H "x-goog-api-key: $ICODEEASY_API_KEY" \
  -H 'Content-Type: application/json' \
  --data '{
  "contents": [
    {
      "role": "user",
      "parts": [
        {
          "text": "Say hello."
        }
      ]
    }
  ]
}'

Exemplo de resposta em streaming

Cada data: do SSE do Gemini contém um fragmento JSON. Junte o texto de candidates[].content.parts[] por candidato e confira finishReason. Se a resposta indicar erro ou a conexão cair antes do fim, preserve o conteúdo recebido como incompleto.

text
data: {"candidates":[{"index":0,"content":{"role":"model","parts":[{"text":"Hello!"}]}}]}

data: {"candidates":[{"index":0,"finishReason":"STOP"}],"usageMetadata":{"promptTokenCount":10,"candidatesTokenCount":4,"totalTokenCount":14}}

Leia o uso em um quadro que contenha usageMetadata. Os campos são os mesmos da resposta JSON.