Cara Menggunakan Gemini 3.7 Flash API

Panduan cepat praktik langsung API Gemini 3.7 Flash: dapatkan kunci, panggil endpoint di cURL, Python, dan Node.js, streaming respons, dan uji semuanya di Apidog.

Ashley Innocent

Ashley Innocent

14 August 2026

Cara Menggunakan Gemini 3.7 Flash API

Apidog untuk Perusahaan

Penerapan On-Premises

SSO & RBAC

Sesuai SOC 2

Jelajahi Apidog Enterprise

Google meluncurkan Gemini 3.7 Flash pada 13 Agustus 2026, tiga minggu setelah 3.6 Flash, dan menyebutnya sebagai “model pekerja keras kami yang paling cerdas.” Berita utama untuk para developer: skor *agentic coding* meningkat tajam (DeepSWE v1.1 naik dari 49.0% menjadi 65.3%), harga pengenalan setengah dari harga peluncuran 3.6 Flash, dan *API surface* tidak berubah. Jika Anda sudah menggunakan Gemini, Anda cukup mengganti satu ID model. Jika belum, ini adalah titik masuk termurah yang pernah ditawarkan Google untuk model sekemampuan ini.

Panduan ini adalah *quickstart* praktis. Anda akan mendapatkan kunci API, melakukan panggilan pertama Anda di cURL, memindahkannya ke Python dan Node.js, melakukan *streaming* respons, menyetel generationConfig, dan menghubungkan semuanya ke Apidog sehingga Anda dapat mengulang *prompt* tanpa menghabiskan token dalam *loop* kode. Spesifikasi dari pengumuman resmi: konteks 1 juta token, output 64 ribu, input multimodal, *function calling*, pencarian sebagai *tool*, dan penggunaan komputer.

Jika Anda membangun berdasarkan generasi sebelumnya, bentuk permintaan tetap sama dari panduan API Pratinjau Gemini 3 Flash kami; artikel ini mencakup semua hal baru dalam alur kerja 3.7.

button

Intinya

Untuk apa Gemini 3.7 Flash cocok

Model Flash menukarkan sedikit kecerdasan puncak dengan kecepatan dan harga, dan 3.7 mempersempit pertukaran itu lebih dari rilis sebelumnya. Selisih *benchmark* dibandingkan 3.6 Flash luar biasa besar untuk selisih tiga minggu: DeepSWE v1.1 melonjak dari 49.0% menjadi 65.3%, FrontierCode 1.1 Main dari 34.4% menjadi 43.6%, dan AutomationBench dari 17.0% menjadi 30.4%. WebDev Arena Elo naik 50 poin, dari 1538 menjadi 1588.

Baca angka-angka tersebut sebagai sinyal tentang kesesuaian beban kerja. Gunakan 3.7 Flash ketika:

Untuk penjelasan fitur lengkap, termasuk skor Harvey LAB-AA domain hukum sebesar 90.7% dan pembaruan perlindungan CBRN serta siber, lihat apa yang baru di Gemini 3.7 Flash. Konteks yang perlu diketahui: Gemini 3.5 Pro masih tertunda, dan Axios melaporkan bahwa Google sengaja merilis pembaruan Flash sebelum produk unggulan berikutnya.

Dapatkan kunci API

Dua jalur, dan keduanya tidak setara.

AI Studio (jalur cepat). Buka aistudio.google.com/apikey, klik Get API key, pilih proyek Google Cloud, dan salin *string* tersebut. Kunci tersebut langsung berfungsi terhadap generativelanguage.googleapis.com, dan *free tier* memberi Anda kuota yang cukup untuk prototipe. Gemini 3.7 Flash tersedia di lebih dari 160 negara.

Vertex AI (jalur produksi). Jika infrastruktur Anda berada di GCP, gunakan Vertex. Autentikasi beralih dari kunci API ke OAuth (akun layanan atau token berumur pendek), panggilan diarahkan melalui aiplatform.googleapis.com, dan Anda mendapatkan IAM, *audit log*, serta *endpoint* regional. ID model dan badan permintaan tetap identik; hanya URL dan mekanisme otentikasi yang berubah.

Prototipakan di AI Studio, pindah ke Vertex sebelum lalu lintas produksi. Bagaimanapun, ekspor kunci sekali:

export GEMINI_API_KEY="AIza..."

Jangan pernah *hardcode* kunci atau meneruskannya sebagai parameter kueri ?key= dalam produksi; *query string* akan berakhir di *log* server.

Endpoint dan autentikasi

*Endpoint* dasar untuk panggilan sinkron:

POST https://generativelanguage.googleapis.com/v1beta/models/gemini-3.7-flash:generateContent

*Streaming* menukar akhiran metode dan menambahkan *flag* SSE:

POST https://generativelanguage.googleapis.com/v1beta/models/gemini-3.7-flash:streamGenerateContent?alt=sse

Autentikasi adalah satu *header*: x-goog-api-key: $GEMINI_API_KEY. Itu adalah seluruh jabat tangan. Tidak ada *bearer token*, tidak ada skema tanda tangan, tidak ada pengaturan sesi.

Permintaan pertama Anda di cURL

Berikut adalah panggilan kerja lengkap:

curl "https://generativelanguage.googleapis.com/v1beta/models/gemini-3.7-flash:generateContent" \
  -H "x-goog-api-key: $GEMINI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "contents": [{
      "role": "user",
      "parts": [{ "text": "Review this SQL for injection risk: SELECT * FROM orders WHERE id = ${orderId}" }]
    }],
    "generationConfig": {
      "temperature": 0.3,
      "maxOutputTokens": 1024
    }
  }'

Respons mengembalikan larik candidates. Setiap kandidat membawa objek content dengan parts (teks, atau panggilan fungsi jika Anda mendeklarasikan *tool*) dan finishReason. Jumlah token berada di usageMetadata di tingkat atas; perhatikan blok itu, karena token output berharga lima kali lipat dari token input pada harga pengenalan.

Perhatikan skema: Google menggunakan contents dengan role dan parts, bukan bentuk messages dari OpenAI. Pastikan pemetaan itu benar terlebih dahulu jika Anda memindahkan dari penyedia lain.

Quickstart Python

Instal atau *upgrade* SDK resmi:

pip install --upgrade google-generativeai

Panggilan dasar dengan instruksi sistem:

import os
import google.generativeai as genai

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

model = genai.GenerativeModel(
    model_name="gemini-3.7-flash",
    system_instruction="You are a code reviewer. Flag issues as blocking or non-blocking.",
    generation_config={
        "temperature": 0.3,
        "max_output_tokens": 2048,
    },
)

response = model.generate_content(
    "Review this Flask route for security issues:\n\n"
    "@app.route('/user/<id>')\n"
    "def get_user(id):\n"
    "    return db.execute(f'SELECT * FROM users WHERE id = {id}')"
)

print(response.text)
print("input tokens:", response.usage_metadata.prompt_token_count)
print("output tokens:", response.usage_metadata.candidates_token_count)

Input multimodal berada dalam larik contents yang sama. Untuk mengirim PDF, unggah melalui API File dan referensikan sebagai bagian:

invoice = genai.upload_file("q3-invoice.pdf")

response = model.generate_content([
    invoice,
    "Extract the invoice number, total, and due date as JSON.",
])
print(response.text)

Peningkatan *benchmark* GDP.pdf (22.0% menjadi 34.0%) muncul tepat dalam beban kerja ini: ekstraksi terstruktur dari dokumen dunia nyata yang berantakan.

Quickstart Node.js

SDK Node adalah @google/generative-ai dan mencerminkan bentuk Python:

import { GoogleGenerativeAI } from "@google/generative-ai";

const genAI = new GoogleGenerativeAI(process.env.GEMINI_API_KEY);

const model = genAI.getGenerativeModel({
  model: "gemini-3.7-flash",
  generationConfig: {
    temperature: 0.3,
    maxOutputTokens: 2048,
    responseMimeType: "application/json",
    responseSchema: {
      type: "object",
      properties: {
        severity: { type: "string", enum: ["blocking", "non-blocking"] },
        issues: { type: "array", items: { type: "string" } },
      },
      required: ["severity", "issues"],
    },
  },
});

const result = await model.generateContent(
  "Review this Express handler: app.get('/search', (req, res) => res.send(eval(req.query.q)))"
);

console.log(JSON.parse(result.response.text()));

Baris responseSchema lebih penting dari yang terlihat. Ini memaksa kandidat menjadi objek yang dapat diuraikan, sehingga kode hilir tidak pernah menyentuh teks bentuk bebas. Pasangkan dengan responseMimeType: "application/json" atau akan diabaikan.

Streaming

Untuk UI obrolan dan apa pun yang berhadapan dengan pengguna, gunakan *stream*. Di Python, tambahkan stream=True:

stream = model.generate_content(
    "Explain the N+1 query problem with a concrete ORM example.",
    stream=True,
)

for chunk in stream:
    if chunk.text:
        print(chunk.text, end="", flush=True)

Melalui HTTP mentah, akses :streamGenerateContent?alt=sse dan uraikan peristiwa yang dikirim server. Setiap baris data: membawa *payload* candidates parsial; *chunk* terakhir menyertakan usageMetadata, sehingga penghitungan token hanya akurat setelah *stream* ditutup.

Menyetel generationConfig

Parameter yang paling sering Anda sentuh, kira-kira berdasarkan urutan dampak:

Parameter Tipe Apa fungsinya
maxOutputTokens integer Batas keras pada output, hingga batas 64 ribu model. Pengungkit biaya utama Anda.
temperature number 0 hingga 2. Gunakan 0.2 hingga 0.4 untuk kode dan ekstraksi, 0.7+ untuk teks kreatif.
responseMimeType string Atur application/json untuk memaksa output JSON.
responseSchema object Menegakkan bentuk yang ketat ketika dipasangkan dengan tipe mime JSON.
topP number Batas *nucleus sampling*. Biarkan pada *default* kecuali Anda sengaja menyetelnya.
stopSequences array *String* yang menghentikan generasi lebih awal. Berguna untuk *parsing* berbasis *delimiter*.

Token output berharga $3.75 per juta pada harga pengenalan dan $7.50 mulai Januari 2027, jadi batasi output sesuai kebutuhan kasus penggunaan Anda, bukan batas 64 ribu. Matematika token lengkap, dengan contoh-contoh per beban kerja, ada di rincian harga Gemini 3.7 Flash kami.

Di luar generationConfig, badan permintaan juga menerima tools (deklarasi fungsi, pencarian sebagai *tool*, penggunaan komputer) dan toolConfig untuk memaksa panggilan *tool*. Penggunaan *tool* adalah area di mana 3.7 Flash paling banyak ditingkatkan, dan pantas mendapatkan panduan tersendiri: lihat tutorial *function calling* Gemini 3.7 Flash untuk deklarasi, panggilan paralel, dan pola *response-loop*.

Uji endpoint di Apidog sebelum Anda menulis kode aplikasi

Iterasi *prompt* di dalam skrip Python lambat dan mahal: edit, jalankan ulang, *scroll*, ulangi, dan setiap siklus menghabiskan token. Lingkaran yang lebih cepat adalah dengan mengunci bentuk permintaan dalam klien API terlebih dahulu, lalu memindahkannya ke kode setelah respons terlihat benar.

Apidog menangani skema permintaan Gemini secara *native*. Penyiapannya:

  1. Buat proyek dan impor spesifikasi OpenAPI Generative Language API dari dokumentasi API Google. Koleksi tersebut akan muncul dengan nama yang sudah ada, sehingga generateContent hanya perlu dicari.
  2. Tambahkan variabel lingkungan bernama GEMINI_API_KEY dan ikat ke *header* x-goog-api-key di tingkat lingkungan. Setiap permintaan akan mewarisinya, dan kunci tidak akan pernah muncul dalam badan permintaan yang disimpan.
  3. Simpan ID model sebagai variabel yang diatur ke gemini-3.7-flash. Ketika Anda ingin melakukan A/B *testing* terhadap gemini-3.6-flash, Anda cukup mengubah satu variabel alih-alih mengedit URL di belasan permintaan yang disimpan.
  4. Bangun larik contents di editor JSON visual. Bagian-bagian yang bersarang dirender dengan bersih, dan validasi skema menangkap badan yang salah format sebelum Anda menghabiskan satu token pun untuk respons 400.
  5. Akses *endpoint streaming*. Apidog merender *chunk* SSE secara langsung, sehingga Anda dapat melihat jawaban tersusun persis seperti yang akan dilihat oleh SDK Anda, termasuk latensi.
  6. Simpan respons yang baik sebagai contoh. Pengujian selanjutnya akan menggunakan *fixture* alih-alih API langsung. Ini adalah penghemat token terbesar dalam seluruh alur kerja.

Setelah permintaan disimpan, rangkai menjadi skenario pengujian dengan *assertion* pada finishReason, skema respons, dan jumlah token usageMetadata. Ini mengubah *smoke test* manual menjadi *regression suite* yang dapat Anda jalankan pada setiap perubahan *prompt*; pola yang sama yang digunakan tim QA dibahas dalam panduan pengujian API kami untuk insinyur QA.

Penanganan kesalahan dan batas kecepatan

Kesalahan Gemini mengembalikan objek error tingkat atas dengan code, status, dan message. Yang akan Anda temui:

Kode Status Arti Perbaikan
400 INVALID_ARGUMENT Badan permintaan salah format, peran tidak sesuai, contents kosong. Validasi badan permintaan di Apidog sebelum mengirim.
401 UNAUTHENTICATED Kunci hilang atau dicabut. Ekspor ulang GEMINI_API_KEY; konfirmasi kunci aktif di AI Studio.
403 PERMISSION_DENIED Proyek tidak memiliki akses atau penagihan. Periksa pengaturan proyek dan status penagihan.
429 RESOURCE_EXHAUSTED Batas kecepatan atau kuota harian tercapai. Mundur dengan *jitter*, permintaan *batch*, atau tingkatkan *tier*.
500 INTERNAL Kesalahan server sementara. Coba lagi dengan *exponential backoff*.
503 UNAVAILABLE Layanan kelebihan beban. Coba lagi setelah beberapa detik; di Vertex, coba wilayah lain.

Tiga kebiasaan menjaga produksi tetap stabil:

FAQ

Apakah Gemini 3.7 Flash gratis untuk digunakan?

AI Studio menawarkan *free tier* dengan kuota harian yang cukup untuk prototipe, dan harga pengenalan berbayar adalah $0.75 per 1 juta token input hingga 31 Desember 2026. Jika Anda ingin memperpanjang jalur tanpa biaya lebih jauh, panduan kami untuk akses API Gemini gratis mencakup *tier* dan batasannya.

Apa perbedaan antara memanggilnya melalui AI Studio dan Vertex AI?

Model yang sama, badan permintaan yang sama, *plumbing* yang berbeda. AI Studio menggunakan kunci API terhadap generativelanguage.googleapis.com; Vertex menggunakan OAuth terhadap aiplatform.googleapis.com dan menambahkan IAM, *audit logging*, serta *endpoint* regional. Mulai di AI Studio, tingkatkan ke Vertex ketika lalu lintas menjadi nyata.

Bisakah saya mengirim gambar, audio, dan PDF ke Gemini 3.7 Flash?

Ya. Input bersifat multimodal: teks, gambar, video, audio, dan PDF semuanya dikirim sebagai bagian dalam larik contents, baik secara *inline* sebagai base64 atau melalui referensi melalui Files API. Output hanya berupa teks.

Seberapa besar jendela konteks dan batas output?

1 juta token masuk, 64 ribu token keluar. Skor pengambilan 128k-needle sebesar 97.0% menunjukkan bahwa *recall* konteks panjang dapat diandalkan jauh melampaui apa yang dibutuhkan sebagian besar aplikasi, tetapi memecah input yang panjang tetap menghemat uang karena setiap token input dikenakan biaya.

Haruskah saya upgrade dari Gemini 3.6 Flash?

Untuk beban kerja agen dan *coding*, perbedaan *benchmark* cukup besar sehingga jawabannya biasanya ya, dan penggantian ID model hanya satu baris. Perbedaan perilaku yang perlu diuji regresi sebelum Anda mengalihkan lalu lintas produksi dibahas dalam panduan migrasi 3.6 ke 3.7 Flash.

Di mana 3.7 Flash cocok dalam stack Anda

Gemini 3.7 Flash adalah rilis langka di mana harga turun sementara kemampuannya meningkat. Hingga akhir tahun 2026, Anda membayar setengah dari harga peluncuran 3.6 Flash untuk model yang mencetak 16 poin lebih tinggi pada DeepSWE dan hampir dua kali lipat pada AutomationBench. Rekomendasi yang masuk akal: arahkan *agent loops*, tugas kode, dan ekstraksi dokumen ke 3.7 Flash sekarang, ingat periode harga pengenalan untuk perencanaan anggaran, dan siapkan jalur *rollback* ke 3.6 di balik variabel lingkungan.

Mulai dengan panggilan cURL di atas, konfirmasi bentuk respons, lalu pindahkan permintaan ke klien API sebelum Anda menulis kode aplikasi. Unduh Apidog untuk mengimpor spesifikasi Gemini, kaitkan kunci Anda sekali, dan uji permintaan sinkron, *streaming*, serta panggilan *tool* dari satu ruang kerja. Ketika *prompt* sudah tepat, pemindahan ke Python atau Node hanya membutuhkan waktu beberapa menit karena Anda sudah tahu seperti apa lalu lintas data.

Mengembangkan API dengan Apidog

Apidog adalah alat pengembangan API yang membantu Anda mengembangkan API dengan lebih mudah dan efisien.