Gemini native

Buat Konten

Menghasilkan konten menggunakan format Google Gemini API

POST
/v1beta/models/{model}:generateContent

Gunakan format permintaan dan respons Gemini dengan model yang dikembalikan oleh Gemini Models API. ProtoJSON lowerCamelCase dan nama bidang snake_case proto yang sesuai dapat diterima. Bidang dan nilai opsional yang didukung bergantung pada model yang dipilih.

Parameter Jalur (Path Parameters)

modelstringpathwajib

Nama model (contoh: gemini-2.5-pro, gemini-3.5-flash).

Parameter Kueri (Query Parameters)

keystringquery

API key (alternatif untuk autentikasi header).

Autentikasi

Endpoint Gemini mendukung beberapa metode autentikasi:

  • Parameter kueri ?key=YOUR_API_KEY
  • Header x-goog-api-key: YOUR_API_KEY
  • Header Authorization: Bearer YOUR_API_KEY

Isi Permintaan (Request Body)

contentsarraywajib

Isi percakapan dengan parts dan role opsional. Bagian media menggunakan inlineData / inline_data atau fileData / file_data. File dan Cache ID yang dibuat oleh TokenLab hanya dapat digunakan di Workspace pemiliknya.

systemInstructionobject

Instruksi sistem untuk model.

generationConfigobject

Pengaturan pembuatan konten seperti temperature, topP, topK, maxOutputTokens, stopSequences, candidateCount, responseModalities, responseMimeType, responseSchema, dan thinkingConfig. Nama snake_case yang sesuai juga dapat diterima. Nilai dan kombinasi yang didukung bergantung pada model.

safetySettingsarray

Pengaturan filter keamanan.

Setiap bidang lowerCamelCase yang ditampilkan di atas juga dapat menggunakan ejaan snake_case proto resminya, misalnya system_instruction, generation_config, safety_settings, tool_config, cached_content, file_data.file_uri, dan inline_data.mime_type.

Metode yang Didukung

API yang kompatibel dengan Gemini mencakup daftar/mendapatkan model, generateContent, streamGenerateContent, countTokens, embedContent, dan batchEmbedContents. Gemini Interactions dan Live tidak tersedia.

Respons

candidatesarray

Kandidat konten yang dihasilkan.

usageMetadataobject

Informasi penggunaan token.

Permintaan

curl -X POST "https://api.tokenlab.sh/v1beta/models/gemini-2.5-pro:generateContent?key=sk-your-api-key" \
  -H "Content-Type: application/json" \
  -d '{
    "contents": [
      {
        "parts": [{"text": "Hello, Gemini!"}]
      }
    ],
    "generationConfig": {
      "temperature": 0.7,
      "maxOutputTokens": 1024
    }
  }'

Contoh Input Visi (Vision Input)

Untuk permintaan multimodal Gemini, tempatkan media di dalam contents[].parts[] menggunakan byte inline atau referensi file berbasis URL.

Kategori media yang didukung dalam kontrak publik Gemini:

  • image
  • audio
  • video

Untuk media inline, gunakan inlineData atau inline_data dan masukkan byte file yang dienkode Base64.

Untuk media berbasis URL, gunakan fileData atau file_data dan masukkan URL https publik.

Contoh Input Video

{
  "contents": [
    {
      "role": "user",
      "parts": [
        { "text": "Please describe this video." },
        {
          "fileData": {
            "mimeType": "video/mp4",
            "fileUri": "https://example.com/demo.mp4"
          }
        }
      ]
    }
  ]
}

Contoh Input Audio

{
  "contents": [
    {
      "role": "user",
      "parts": [
        { "text": "Please describe this audio." },
        {
          "fileData": {
            "mimeType": "audio/mpeg",
            "fileUri": "https://example.com/demo.mp3"
          }
        }
      ]
    }
  ]
}

Contoh Input Gambar

Gunakan byte gambar inline:

{
  "contents": [
    {
      "role": "user",
      "parts": [
        { "text": "Please describe this image." },
        {
          "inlineData": {
            "mimeType": "image/jpeg",
            "data": "/9j/4AAQSkZJRgABAQ..."
          }
        }
      ]
    }
  ]
}

Gunakan URL gambar:

{
  "contents": [
    {
      "role": "user",
      "parts": [
        { "text": "Please describe this image." },
        {
          "fileData": {
            "mimeType": "image/jpeg",
            "fileUri": "https://example.com/demo.jpg"
          }
        }
      ]
    }
  ]
}

Contoh Input Audio

Gunakan URL audio:

{
  "contents": [
    {
      "role": "user",
      "parts": [
        { "text": "Transcribe and summarize this audio." },
        {
          "file_data": {
            "mime_type": "audio/mpeg",
            "file_uri": "https://example.com/sample.mp3"
          }
        }
      ]
    }
  ]
}

Contoh Input Video

Gunakan URL video:

{
  "contents": [
    {
      "role": "user",
      "parts": [
        { "text": "Describe this video briefly." },
        {
          "fileData": {
            "mimeType": "video/mp4",
            "fileUri": "https://example.com/sample.mp4"
          }
        }
      ]
    }
  ]
}

Respons

Response
{
  "candidates": [
    {
      "content": {
        "role": "model",
        "parts": [
          {"text": "Hello! How can I assist you today?"}
        ]
      },
      "finishReason": "STOP",
      "safetyRatings": [
        {"category": "HARM_CATEGORY_HARASSMENT", "probability": "NEGLIGIBLE"}
      ]
    }
  ],
  "usageMetadata": {
    "promptTokenCount": 5,
    "candidatesTokenCount": 10,
    "totalTokenCount": 15
  }
}

Antarmuka Terkait

Baca detail model yang dipilih saat ini sebelum menggunakan antarmuka lain. Ketersediaan dan bidang permintaan bergantung pada model.

HTTPAPI
POST/v1beta/models/{model}:countTokens
POST/v1beta/models/{model}:embedContent
POST/v1beta/models/{model}:batchEmbedContents

Penghitungan token memerlukan API key dan tidak dikenakan biaya. Jumlah input yang dikembalikan adalah estimasi untuk perencanaan; gunakan penggunaan respons akhir dan catatan penagihan untuk biaya sebenarnya.

countTokens: contents / generateContentRequest

embedContent: content, taskType, title, outputDimensionality

batchEmbedContents: requests

Otorisasi

BearerAuth
AuthorizationBearer <token>

Autentikasi API Key. Buat atau kelola API key di Dashboard > API > API Keys.

Lokasi: header

Parameter path

model*string

Nama model (contoh: gemini-2.5-pro)

Parameter query

key?string

Kunci API (alternatif untuk autentikasi header)

Header

X-TokenLab-Delivery-Policy?string

Kebijakan Pengiriman per-permintaan. Menggantikan default API key dan Workspace. Secara otomatis mencoba TokenLab Verified terlebih dahulu dan dapat beralih satu kali ke Official saja sebelum output, penerimaan permintaan, atau pembuatan sumber daya persisten.

Nilai yang tersedia

  • "auto"
  • "verified"
  • "official"

Body permintaan

application/json

Permintaan GenerateContent Gemini asli. Nama ProtoJSON lowerCamelCase dan proto snake_case asli keduanya diterima dan dipertahankan, termasuk permintaan campuran. Jika kedua ejaan dari satu bidang ada, TokenLab tidak menggabungkannya atau memilih prioritas lokal. Bidang yang tidak diketahui diteruskan berdasarkan upaya terbaik.

Respons

application/json

application/json

application/json

application/json

application/json

application/json