DEV Community

Cover image for Cara Menggunakan Gemini 3.5 Flash API
Walse
Walse

Posted on • Originally published at apidog.com

Cara Menggunakan Gemini 3.5 Flash API

API Gemini 3.5 Flash diluncurkan bersamaan dengan model pada 19 Mei 2026. Flash adalah satu-satunya varian keluarga 3.5 yang tersedia saat ini; versi Pro akan hadir pada bulan Juni. Artikel ini menunjukkan setup developer end-to-end untuk Flash: membuat kunci API, menjalankan request pertama, memakai input multimodal, streaming, function calling, structured output, dan menguji integrasinya dengan Apidog.

Coba Apidog hari ini

Jika Anda pernah memakai Gemini API, pola integrasinya tetap sama. Perubahan utama ada pada nama model: gemini-3.5-flash. Jika Anda baru mulai, Anda bisa menjalankan request Flash pertama dalam beberapa menit.

Apa yang tersedia di Gemini 3.5 Flash API

Yang perlu Anda ketahui sebelum implementasi:

  • Model: gemini-3.5-flash
  • Status: tersedia sekarang
  • Karakteristik: cepat, murah, multimodal
  • Endpoint: pola API tetap kompatibel dengan proyek yang sudah memakai Gemini 3 atau Gemini 3.1
  • Free tier: tersedia melalui AI Studio, sekitar 1.500 request/hari tanpa kartu kredit

Kapabilitas yang bisa Anda gunakan melalui Flash API:

  • Konteks input 1M token
  • Output hingga 64K token
  • Input teks dan gambar
  • Output teks dan terstruktur
  • Function calling dan tool usage bawaan
  • Skor MCP Atlas 83,6%
  • Streaming response
  • Kecepatan output token/detik sekitar 4x lebih cepat dibandingkan model frontier lainnya
  • Skoring pengambilan konteks panjang di bagian atas tabel MRCR v2 Google
  • Penalaran chart dan dokumen dengan skor CharXiv 84,2%

Untuk detail biaya per token dan diskon batch mode, lihat panduan harga Gemini 3.5 Flash.

Langkah 1: Dapatkan API key Gemini 3.5 Flash

Ada dua jalur umum:

  1. Google AI Studio untuk eksperimen dan free tier.
  2. Vertex AI untuk workload produksi dengan kontrol organisasi.

Jalur A: Google AI Studio

Gunakan jalur ini jika Anda ingin mulai cepat.

  1. Buka aistudio.google.com
  2. Login dengan akun Google.
  3. Klik Dapatkan kunci API di navigasi kiri.
  4. Pilih project yang sudah ada atau buat project baru.
  5. Klik Buat kunci API.
  6. Salin key tersebut dan simpan sebagai environment variable.

Contoh:

export GEMINI_API_KEY="YOUR_API_KEY"
Enter fullscreen mode Exit fullscreen mode

Alurnya sama seperti yang dibahas di panduan kunci API Gemini gratis. Key ini langsung bisa dipakai untuk gemini-3.5-flash dengan kuota harian gratis.

Jalur B: Vertex AI untuk produksi

Gunakan Vertex AI jika Anda membutuhkan billing, audit log, IAM, dan kontrol organisasi.

Langkah dasar:

  1. Buka Google Cloud Console.
  2. Aktifkan Vertex AI API.
  3. Buat service account.
  4. Berikan role aiplatform.user.
  5. Unduh kredensial JSON.
  6. Autentikasi dengan salah satu cara berikut:
gcloud auth application-default login
Enter fullscreen mode Exit fullscreen mode

Atau gunakan file JSON service account sesuai setup deployment Anda.

Vertex AI memakai pola SDK yang sedikit berbeda. Banyak tim mulai dari AI Studio, lalu pindah ke Vertex AI ketika butuh governance dan kuota produksi.

Langkah 2: Instal SDK

SDK resmi Google GenAI tersedia untuk Python, Node.js, Go, dan Java.

Python

pip install -U google-genai
Enter fullscreen mode Exit fullscreen mode

Node.js

npm install @google/genai
Enter fullscreen mode Exit fullscreen mode

Go

go get google.golang.org/genai
Enter fullscreen mode Exit fullscreen mode

Anda juga bisa melewati SDK dan memanggil REST endpoint secara langsung dengan curl.

Langkah 3: Jalankan request Flash pertama

Python

import os
from google import genai

client = genai.Client(api_key=os.environ["GEMINI_API_KEY"])

response = client.models.generate_content(
    model="gemini-3.5-flash",
    contents="Jelaskan bagaimana alur OAuth 2.0 PKCE bekerja dalam 3 paragraf singkat."
)

print(response.text)
Enter fullscreen mode Exit fullscreen mode

Node.js

import { GoogleGenAI } from "@google/genai";

const ai = new GoogleGenAI({
  apiKey: process.env.GEMINI_API_KEY,
});

const response = await ai.models.generateContent({
  model: "gemini-3.5-flash",
  contents: "Jelaskan bagaimana alur OAuth 2.0 PKCE bekerja dalam 3 paragraf singkat.",
});

console.log(response.text);
Enter fullscreen mode Exit fullscreen mode

REST dengan curl

curl "https://generativelanguage.googleapis.com/v1beta/models/gemini-3.5-flash:generateContent" \
  -H "x-goog-api-key: $GEMINI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "contents": [{
      "parts": [{
        "text": "Jelaskan bagaimana alur OAuth 2.0 PKCE bekerja dalam 3 paragraf singkat."
      }]
    }]
  }'
Enter fullscreen mode Exit fullscreen mode

Jika response berhasil, Anda sudah siap menambahkan fitur seperti streaming, image input, tool calling, dan JSON output.

Streaming response

Gunakan streaming jika output panjang atau Anda ingin UI terasa lebih responsif.

Python

stream = client.models.generate_content_stream(
    model="gemini-3.5-flash",
    contents="Tulis tutorial 5 langkah tentang cara menulis klien REST API di Go."
)

for chunk in stream:
    print(chunk.text, end="", flush=True)
Enter fullscreen mode Exit fullscreen mode

Node.js

const stream = await ai.models.generateContentStream({
  model: "gemini-3.5-flash",
  contents: "Tulis tutorial 5 langkah tentang cara menulis klien REST API di Go.",
});

for await (const chunk of stream) {
  process.stdout.write(chunk.text);
}
Enter fullscreen mode Exit fullscreen mode

Untuk REST mentah, ubah suffix endpoint:

:generateContent
Enter fullscreen mode Exit fullscreen mode

Menjadi:

:streamGenerateContent
Enter fullscreen mode Exit fullscreen mode

Input multimodal dengan Flash

Gemini 3.5 Flash menerima input gambar bersama teks. Ini berguna untuk OCR ringan, chart reasoning, screenshot dashboard, dan ekstraksi data visual.

Python: baca gambar dari disk

import os
from google import genai
from google.genai import types

client = genai.Client(api_key=os.environ["GEMINI_API_KEY"])

with open("dashboard.png", "rb") as f:
    image_bytes = f.read()

response = client.models.generate_content(
    model="gemini-3.5-flash",
    contents=[
        types.Part.from_bytes(data=image_bytes, mime_type="image/png"),
        "Ekstrak setiap metrik di dashboard ini sebagai objek JSON."
    ]
)

print(response.text)
Enter fullscreen mode Exit fullscreen mode

MIME type gambar yang didukung:

  • image/png
  • image/jpeg
  • image/webp
  • image/heic
  • image/heif

PDF dan video juga dapat digunakan melalui types.Part.from_uri().

Function calling dan tool usage

Flash dapat memilih tool dan mengembalikan argumen function call. Anda tetap bertanggung jawab menjalankan function tersebut di aplikasi Anda.

Contoh deklarasi tool di Python

from google.genai import types

weather_tool = types.Tool(
    function_declarations=[{
        "name": "get_current_weather",
        "description": "Dapatkan cuaca saat ini untuk suatu kota.",
        "parameters": {
            "type": "object",
            "properties": {
                "city": {
                    "type": "string",
                    "description": "Nama kota"
                },
                "unit": {
                    "type": "string",
                    "enum": ["celsius", "fahrenheit"]
                }
            },
            "required": ["city"]
        }
    }]
)

response = client.models.generate_content(
    model="gemini-3.5-flash",
    contents="Bagaimana cuaca di Singapura sekarang?",
    config=types.GenerateContentConfig(tools=[weather_tool])
)

for part in response.candidates[0].content.parts:
    if part.function_call:
        print(f"Call: {part.function_call.name}")
        print(f"Args: {dict(part.function_call.args)}")
Enter fullscreen mode Exit fullscreen mode

Output model berisi objek function_call dengan nama function dan argumen. Pola implementasinya:

  1. Kirim prompt dan daftar tool ke Gemini.
  2. Cek apakah response memiliki function_call.
  3. Jalankan function lokal atau panggil API internal Anda.
  4. Kirim hasil function kembali ke model.
  5. Lanjutkan percakapan sampai model mengembalikan jawaban final.

Pola ini cocok dengan implementasi yang sudah banyak dipakai di Gemini 3 Flash API.

Structured output dengan mode JSON

Jika aplikasi Anda butuh output yang bisa langsung diparse, paksa response menjadi JSON dengan response_mime_type dan response_schema.

from google.genai import types
import json

response = client.models.generate_content(
    model="gemini-3.5-flash",
    contents="Daftar 3 alat pengujian API populer beserta harganya.",
    config=types.GenerateContentConfig(
        response_mime_type="application/json",
        response_schema={
            "type": "array",
            "items": {
                "type": "object",
                "properties": {
                    "name": {"type": "string"},
                    "price_per_month": {"type": "number"},
                    "free_tier": {"type": "boolean"}
                },
                "required": ["name", "free_tier"]
            }
        }
    )
)

data = json.loads(response.text)
print(data)
Enter fullscreen mode Exit fullscreen mode

Dengan pola ini, Anda tidak perlu parsing manual dengan regex atau membuat retry loop hanya untuk memperbaiki format JSON.

Harga per Mei 2026

Tarif pay-as-you-go untuk gemini-3.5-flash:

Tingkat Masukan Keluaran
Standar ~$1.50 / 1 Juta token ~$9.00 / 1 Juta token
Masukan yang di-cache tarif diskon t/a
Mode batch Diskon ~50% Diskon ~50%

Untuk workload batch, mode batch Gemini API memberi diskon 50% untuk pekerjaan yang tidak membutuhkan latensi real-time.

Untuk estimasi biaya yang lebih lengkap, termasuk skenario SaaS harian dan agent loop, lihat uraian harga Flash. Untuk referensi resmi, lihat harga Gemini Developer API.

Menguji integrasi Gemini 3.5 Flash dengan Apidog

Request SDK yang berhasil belum cukup untuk production readiness. Anda juga perlu menguji:

  • Streaming chunk
  • Payload multimodal
  • Validasi schema JSON
  • Function calling
  • Retry error
  • Rate limit
  • Mock response untuk downstream service

Apidog membantu menguji seluruh permukaan Gemini Flash API dalam satu workspace.

Workflow praktis:

  1. Buat request baru.
  2. Tempel endpoint Flash:
https://generativelanguage.googleapis.com/v1beta/models/gemini-3.5-flash:generateContent
Enter fullscreen mode Exit fullscreen mode
  1. Tambahkan header:
x-goog-api-key: YOUR_API_KEY
Content-Type: application/json
Enter fullscreen mode Exit fullscreen mode
  1. Masukkan body request:
{
  "contents": [
    {
      "parts": [
        {
          "text": "Jelaskan bagaimana alur OAuth 2.0 PKCE bekerja dalam 3 paragraf singkat."
        }
      ]
    }
  ]
}
Enter fullscreen mode Exit fullscreen mode
  1. Klik Send.
  2. Simpan request sebagai collection agar bisa dipakai ulang.

Hal yang bisa Anda lakukan di Apidog:

  • Simpan endpoint Flash sebagai request: gunakan URL lengkap dan header x-goog-api-key.
  • Bandingkan versi model: ganti gemini-3.5-flash dengan gemini-3-flash di request yang sama.
  • Debug streaming: gunakan endpoint :streamGenerateContent dan lihat chunk saat datang.
  • Validasi JSON schema: gunakan assertion untuk menangkap perubahan format output.
  • Mock endpoint Flash: uji kode downstream tanpa menghabiskan kuota API.
  • Bangun skenario agent loop: chain beberapa request dan validasi function call di setiap langkah.

Untuk mulai cepat, unduh Apidog, buat request baru ke endpoint Flash, lalu impor snippet curl dari bagian awal artikel ini.

Error handling dan rate limit

Kode error yang umum:

  • 400: request salah, biasanya contents tidak valid atau MIME type tidak didukung.
  • 401: API key salah.
  • 403: kuota habis atau model belum aktif.
  • 429: rate limit, tunggu lalu retry.
  • 500/503: error server, retry dengan exponential backoff.

Contoh wrapper retry sederhana:

import time
from google import genai

def call_with_retry(client, model, prompt, max_retries=3):
    for attempt in range(max_retries):
        try:
            return client.models.generate_content(
                model=model,
                contents=prompt
            )
        except Exception:
            if attempt == max_retries - 1:
                raise

            wait_seconds = 2 ** attempt
            time.sleep(wait_seconds)
Enter fullscreen mode Exit fullscreen mode

Kuota free tier direset harian. Untuk Flash, batasnya sekitar 15 request per menit dan sekitar 1.500 request per hari. Kuota produksi direset per menit dan per hari.

Untuk throughput tinggi:

  • Gunakan batch mode jika tidak membutuhkan real-time response.
  • Tambahkan retry dengan backoff.
  • Tambahkan fallback bertingkat ke Gemini 3 Flash saat mencapai limit.

Migrasi dari Gemini 3.1 ke 3.5 Flash

Untuk sebagian besar proyek, migrasi hanya mengubah nama model.

# Sebelum
model = "gemini-3.1-pro"  # atau gemini-3.1-flash

# Setelah
model = "gemini-3.5-flash"
Enter fullscreen mode Exit fullscreen mode

Setelah mengganti model, verifikasi empat hal berikut:

  1. Schema tool

    Pastikan deklarasi function dan argumen masih cocok dengan aplikasi Anda.

  2. Kecepatan streaming

    Flash dapat mengirim output lebih cepat. UI Anda mungkin perlu throttling atau buffering.

  3. Anggaran token

    Batas konteks tetap besar, yaitu 1M input dan 64K output. Namun output aktual bisa berubah tergantung prompt.

  4. Pola penolakan

    Safety behavior dapat berbeda, terutama pada edge case. Jalankan ulang test suite Anda.

Untuk pola SDK yang lebih lengkap, lihat panduan Gemini 3.1 Pro API.

Pola implementasi umum

1. Analisis dokumen konteks panjang

Gunakan ini untuk PDF laporan, dokumen teknis, kontrak, atau dokumen internal.

from google.genai import types

with open("large_report.pdf", "rb") as f:
    pdf_bytes = f.read()

response = client.models.generate_content(
    model="gemini-3.5-flash",
    contents=[
        types.Part.from_bytes(
            data=pdf_bytes,
            mime_type="application/pdf"
        ),
        "Ringkas prospek keuangan dari laporan ini dalam 5 poin."
    ]
)

print(response.text)
Enter fullscreen mode Exit fullscreen mode

Konteks 1M token memungkinkan Anda memproses PDF besar tanpa memotong dokumen secara agresif.

2. Agent loop dengan function calling

Pola ini berguna untuk workflow yang perlu mengambil data, memanggil API, lalu membuat keputusan berikutnya.

conversation = [
    {
        "role": "user",
        "parts": [
            {"text": "Pesan saya penerbangan ke Tokyo"}
        ]
    }
]

while True:
    response = client.models.generate_content(
        model="gemini-3.5-flash",
        contents=conversation,
        config=types.GenerateContentConfig(
            tools=[flight_search_tool, booking_tool]
        )
    )

    part = response.candidates[0].content.parts[0]

    if not part.function_call:
        print(part.text)
        break

    result = execute_tool(part.function_call)

    conversation.append({
        "role": "model",
        "parts": [part]
    })

    conversation.append({
        "role": "user",
        "parts": [
            {"function_response": result}
        ]
    })
Enter fullscreen mode Exit fullscreen mode

Ini adalah pola loop yang diukur oleh skor Terminal-Bench 2.1 Flash sebesar 76,2%.

FAQ

Apakah ada free tier untuk Gemini 3.5 Flash API?

Ya. Free tier tersedia melalui Google AI Studio dengan kuota harian sekitar 1.500 request/hari. Tidak membutuhkan kartu kredit.

Apakah Flash mendukung endpoint kompatibel OpenAI?

Ya. Google menyediakan shim kompatibel OpenAI di:

/v1beta/openai/
Enter fullscreen mode Exit fullscreen mode

Anda dapat mengarahkan SDK OpenAI ke endpoint tersebut dengan mengatur base_url dan memakai Gemini API key. Nama model tetap:

gemini-3.5-flash
Enter fullscreen mode Exit fullscreen mode

Bisakah Flash digunakan dengan LangChain atau LlamaIndex?

Ya. Keduanya memiliki integrasi Gemini native. Gunakan model berikut di wrapper masing-masing:

model="gemini-3.5-flash"
Enter fullscreen mode Exit fullscreen mode

Kapan Gemini 3.5 Pro dirilis?

Juni 2026 sesuai pengumuman peluncuran Google. Sampai saat itu, Flash adalah satu-satunya varian 3.5 yang tersedia.

Berapa ukuran gambar maksimum untuk Flash?

Ukuran yang direkomendasikan adalah 3072×3072. Gambar yang lebih besar akan di-resample. Untuk workload OCR intensif, lihat alur kerja OCR Gemini 2.0 Flash. Polanya tetap relevan.

Bagaimana cara menguji endpoint streaming di Apidog?

Buat request dengan suffix endpoint berikut:

:streamGenerateContent
Enter fullscreen mode Exit fullscreen mode

Apidog akan merender chunk SSE saat tiba. Ini berguna untuk men-debug response yang terpotong atau tidak lengkap.

Di mana saya bisa melihat log API?

  • Di AI Studio: buka Activity.
  • Di Vertex AI: buka Logs Explorer untuk deployment produksi.

Apa yang bisa Anda bangun terlebih dahulu

Berikut beberapa proyek awal yang cocok untuk Gemini 3.5 Flash:

  • Bot tanya jawab PDF

    Masukkan PDF ke konteks 1M, ajukan pertanyaan, dan kembalikan jawaban dengan kutipan.

  • Pipeline chart-to-JSON

    Kirim screenshot dashboard, lalu ekstrak metrik menjadi data terstruktur.

  • Agent dukungan pelanggan

    Gunakan function calling ke CRM atau helpdesk API.

  • Asisten review kode

    Kirim diff multi-file, lalu minta output terstruktur dengan severity.

  • Agent pencarian internal

    Gabungkan konteks panjang dengan tool call ke API internal.

Untuk semua pola tersebut, workflow pengujiannya sama: buat prompt, bungkus dalam SDK atau REST call, validasi bentuk response dengan Apidog, lalu integrasikan ke aplikasi Anda.

Top comments (0)