DEV Community

Cover image for Cara Menggunakan Claude Opus 5 API
Walse
Walse

Posted on • Originally published at apidog.com

Cara Menggunakan Claude Opus 5 API

Claude Opus 5 dirilis pada 24 Juli 2026. Anthropic mengarahkan developer untuk memulai dari model ini jika belum yakin model mana yang tepat. Gunakan ID model API berikut, tanpa sufiks tanggal: claude-opus-5.

Coba Apidog hari ini

Panduan ini menunjukkan cara mendapatkan API key, mengirim request pertama, menangani streaming, menjalankan tool use, mengatur adaptive thinking dan effort, serta memverifikasi prompt caching lewat objek usage. Semua contoh menggunakan HTTP dan JSON, sehingga dapat diuji di Apidog sebelum diintegrasikan ke aplikasi.

Jika Anda memigrasikan layanan dari Opus 4.8, baca juga panduan migrasi Opus 4.8 ke Opus 5.

Sebelum request pertama: dua perubahan penting

1. Thinking aktif secara default

Pada Opus 4.8, request tanpa field thinking berjalan tanpa thinking. Pada Opus 5, request yang sama menggunakan adaptive thinking.

Konsekuensinya, max_tokens kini membatasi token thinking dan token respons dalam satu anggaran. Request lama dengan max_tokens kecil dapat berhenti sebelum jawaban selesai.

Tindakan yang perlu dilakukan:

  • Naikkan max_tokens dari nilai lama jika sebelumnya dihitung hanya untuk output terlihat.
  • Pantau stop_reason.
  • Jika nilainya max_tokens, respons Anda terpotong.

2. Thinking dinonaktifkan membatasi effort

Kombinasi berikut akan mengembalikan HTTP 400:

{
  "thinking": {"type": "disabled"},
  "output_config": {"effort": "xhigh"}
}
Enter fullscreen mode Exit fullscreen mode

Hal yang sama berlaku untuk effort max.

Jika thinking dinonaktifkan, gunakan effort maksimal high:

{
  "thinking": {"type": "disabled"},
  "output_config": {"effort": "high"}
}
Enter fullscreen mode Exit fullscreen mode

Anthropic menyarankan untuk membiarkan thinking aktif lalu menurunkan effort bila ingin mengendalikan biaya. Dengan thinking dinonaktifkan, Opus 5 kadang dapat menulis tool call sebagai teks biasa atau membocorkan tag <thinking> ke output.

Kedua perubahan ini dijelaskan dalam panduan migrasi model Anthropic.

Langkah 1: Dapatkan API key

Masuk ke Claude Developer Platform, buka pengaturan organisasi, lalu buat API key. Salin key tersebut saat dibuat karena Anda tidak dapat melihatnya lagi nanti.

Simpan key sebagai environment variable:

export ANTHROPIC_API_KEY="sk-ant-..."
Enter fullscreen mode Exit fullscreen mode

Jangan hard-code key ke source code.

Jika menggunakan klien GUI seperti Apidog, buat environment seperti Local, Staging, dan Production, lalu simpan variabel ANTHROPIC_API_KEY. Referensikan nilainya di header dengan:

{{ANTHROPIC_API_KEY}}
Enter fullscreen mode Exit fullscreen mode

Dengan cara ini, request dapat dibagikan ke tim tanpa memasukkan rahasia ke koleksi atau ekspor.

Antarmuka Apidog menunjukkan cara menyimpan kunci API sebagai variabel lingkungan.

Tambahkan juga kredit billing sebelum mengirim request. Tarif Opus 5 adalah $5 per juta token input dan $25 per juta token output, sama seperti Opus 4.8. Lihat rincian harga lengkap untuk tarif caching, batch, dan mode cepat.

Langkah 2: Kirim request pertama

Endpoint Messages API:

POST https://api.anthropic.com/v1/messages
Enter fullscreen mode Exit fullscreen mode

Header yang dibutuhkan:

  • x-api-key
  • anthropic-version
  • content-type

Contoh dengan curl:

curl https://api.anthropic.com/v1/messages \
  --header "x-api-key: $ANTHROPIC_API_KEY" \
  --header "anthropic-version: 2023-06-01" \
  --header "content-type: application/json" \
  --data '{
    "model": "claude-opus-5",
    "max_tokens": 4096,
    "messages": [
      {
        "role": "user",
        "content": "Jelaskan perbedaan antara 429 dan 529 dari perspektif API."
      }
    ]
  }'
Enter fullscreen mode Exit fullscreen mode

Gunakan max_tokens: 4096 sebagai titik awal yang lebih aman daripada 1024, karena anggaran token juga dipakai untuk thinking.

Contoh menggunakan SDK Python resmi:

import os
from anthropic import Anthropic

client = Anthropic(api_key=os.environ["ANTHROPIC_API_KEY"])

message = client.messages.create(
    model="claude-opus-5",
    max_tokens=4096,
    messages=[
        {
            "role": "user",
            "content": "Jelaskan perbedaan antara 429 dan 529 dari perspektif API.",
        }
    ],
)

for block in message.content:
    if block.type == "text":
        print(block.text)
Enter fullscreen mode Exit fullscreen mode

Jangan mengasumsikan message.content[0].text selalu berisi jawaban. content adalah array blok bertipe, dan adaptive thinking dapat menghasilkan blok thinking sebelum blok text.

Gunakan parsing berbasis tipe:

for block in message.content:
    if block.type == "thinking":
        # Simpan untuk logging bila diperlukan
        pass
    elif block.type == "text":
        print(block.text)
Enter fullscreen mode Exit fullscreen mode

Spesifikasi penting Opus 5:

  • Context window: 1 juta token sebagai default dan maksimum.
  • Output maksimum di Messages API: 128 ribu token.
  • Knowledge cutoff: Mei 2026.

Lihat ikhtisar model Anthropic dan penjelasan Claude Opus 5 untuk detail spesifikasi.

Langkah 3: Tangani adaptive thinking

Adaptive thinking berarti model menentukan sendiri seberapa banyak penalaran internal yang diperlukan. Anda tidak menetapkan token budget untuk thinking secara langsung; gunakan parameter effort untuk mengarahkannya.

Saat membangun aplikasi multi-turn atau agent, ikuti aturan berikut:

  1. Parse blok berdasarkan tipe.

    Tampilkan hanya blok dengan block.type == "text" kepada pengguna.

  2. Kirim kembali seluruh konten asisten.

    Jangan merekonstruksi respons asisten hanya dari teks. Teruskan message.content apa adanya agar blok thinking dan tool use tetap konsisten.

  3. Anggarkan max_tokens untuk thinking dan respons.

    Jika respons berhenti dengan stop_reason: "max_tokens", naikkan batasnya.

Untuk menonaktifkan thinking sepenuhnya:

{
  "model": "claude-opus-5",
  "max_tokens": 4096,
  "thinking": {"type": "disabled"},
  "output_config": {"effort": "high"},
  "messages": [
    {
      "role": "user",
      "content": "Kembalikan hanya kode status HTTP."
    }
  ]
}
Enter fullscreen mode Exit fullscreen mode

Jangan naikkan effort ke xhigh atau max pada request ini karena API akan mengembalikan 400.

Langkah 4: Kendalikan biaya dengan output_config.effort

Parameter effort berada di bawah output_config:

{
  "output_config": {
    "effort": "high"
  }
}
Enter fullscreen mode Exit fullscreen mode

Nilai yang tersedia:

  • low
  • medium
  • high
  • xhigh
  • max

Default-nya adalah high.

Contoh request dengan effort xhigh:

curl https://api.anthropic.com/v1/messages \
  --header "x-api-key: $ANTHROPIC_API_KEY" \
  --header "anthropic-version: 2023-06-01" \
  --header "content-type: application/json" \
  --data '{
    "model": "claude-opus-5",
    "max_tokens": 65536,
    "output_config": {"effort": "xhigh"},
    "messages": [
      {
        "role": "user",
        "content": "Refaktor handler ini untuk mengalirkan respons dan menjaga tekanan balik."
      }
    ]
  }'
Enter fullscreen mode Exit fullscreen mode

Hal yang perlu diperhatikan:

  • Jangan membawa setting effort dari Opus 4.8 tanpa evaluasi ulang.

    Anthropic menyatakan low dan medium lebih kuat di Opus 5 dibandingkan model Opus sebelumnya.

  • Gunakan xhigh sebagai titik awal untuk coding dan agent yang kompleks.

    Beri max_tokens yang cukup. Untuk giliran agent panjang, 65536 dapat menjadi batas awal yang masuk akal.

  • Effort lebih rendah tidak membuat output terlihat menjadi lebih pendek.

    Effort mengurangi thinking, bukan panjang jawaban. Jika ingin output singkat, nyatakan batas panjang di prompt.

Lihat uraian parameter effort untuk strategi evaluasi yang lebih lengkap.

Langkah 5: Streaming respons

Tambahkan "stream": true untuk menerima Server-Sent Events (SSE), bukan satu respons JSON penuh.

Contoh Python:

with client.messages.stream(
    model="claude-opus-5",
    max_tokens=4096,
    messages=[
        {
            "role": "user",
            "content": "Buat draf kebijakan coba lagi untuk upstream yang tidak stabil.",
        }
    ],
) as stream:
    for text in stream.text_stream:
        print(text, end="", flush=True)

    final = stream.get_final_message()
    print("\n\nusage:", final.usage)
Enter fullscreen mode Exit fullscreen mode

Urutan event SSE mentah:

message_start
content_block_start
content_block_delta
content_block_stop
message_delta
message_stop
Enter fullscreen mode Exit fullscreen mode

Dengan thinking aktif, Anda dapat menerima dua blok berbeda:

  • Blok thinking dengan thinking_delta
  • Blok teks dengan text_delta

Jangan gabungkan semua delta ke buffer UI yang sama. Jika dilakukan, reasoning internal dapat ikut tercetak kepada pengguna.

Saat menguji streaming, gunakan Apidog untuk melihat event SSE secara langsung dan memverifikasi batas antarblok sebelum menulis handler produksi.

Langkah 6: Tambahkan tool use

Definisikan tool melalui array tools. Jika model ingin menjalankan tool, respons akan memiliki:

{
  "stop_reason": "tool_use"
}
Enter fullscreen mode Exit fullscreen mode

Respons juga akan berisi blok konten bertipe tool_use.

Contoh:

tools = [
    {
        "name": "get_order_status",
        "description": "Mencari status pesanan pelanggan saat ini berdasarkan ID.",
        "input_schema": {
            "type": "object",
            "properties": {
                "order_id": {
                    "type": "string",
                    "description": "ID pesanan, mis. A-10293",
                }
            },
            "required": ["order_id"],
        },
    }
]

message = client.messages.create(
    model="claude-opus-5",
    max_tokens=4096,
    tools=tools,
    messages=[
        {
            "role": "user",
            "content": "Bagaimana status pesanan A-10293?",
        }
    ],
)

if message.stop_reason == "tool_use":
    call = next(block for block in message.content if block.type == "tool_use")
    result = get_order_status(**call.input)

    follow_up = client.messages.create(
        model="claude-opus-5",
        max_tokens=4096,
        tools=tools,
        messages=[
            {
                "role": "user",
                "content": "Bagaimana status pesanan A-10293?",
            },
            {
                "role": "assistant",
                "content": message.content,
            },
            {
                "role": "user",
                "content": [
                    {
                        "type": "tool_result",
                        "tool_use_id": call.id,
                        "content": result,
                    }
                ],
            },
        ],
    )
Enter fullscreen mode Exit fullscreen mode

Bagian pentingnya adalah ini:

{
    "role": "assistant",
    "content": message.content,
}
Enter fullscreen mode Exit fullscreen mode

Teruskan message.content secara langsung. Jangan membangun ulang respons asisten secara manual, karena Anda dapat menghapus blok thinking atau metadata tool call yang diperlukan.

Detail penting untuk agent:

  • Overhead system prompt tool use adalah 286 token ketika tool_choice bernilai auto atau none.
  • Nilai tersebut lebih rendah daripada Opus 4.8 (290 token) dan Opus 4.7 (675 token).
  • Header beta mid-conversation-tool-changes-2026-07-01 memungkinkan penambahan atau penghapusan tool antar giliran tanpa membatalkan prompt cache.
  • Opus 5 lebih mudah mendelegasikan pekerjaan ke subagent dibandingkan Opus 4.8. Tentukan scope delegasi secara eksplisit dalam system prompt agar biaya tetap terkontrol.

Langkah 7: Verifikasi prompt cache lewat usage

Setiap respons memiliki objek usage:

{
  "usage": {
    "input_tokens": 84,
    "cache_creation_input_tokens": 6421,
    "cache_read_input_tokens": 0,
    "output_tokens": 913
  }
}
Enter fullscreen mode Exit fullscreen mode

Tambahkan cache_control ke blok stabil yang ingin di-cache:

{
  "model": "claude-opus-5",
  "max_tokens": 4096,
  "system": [
    {
      "type": "text",
      "text": "<instruksi panjang dan stabil serta materi referensi Anda>",
      "cache_control": {"type": "ephemeral"}
    }
  ],
  "messages": [
    {
      "role": "user",
      "content": "Pertanyaan satu."
    }
  ]
}
Enter fullscreen mode Exit fullscreen mode

Interpretasi nilai cache:

Kondisi cache_creation_input_tokens cache_read_input_tokens
Request pertama Lebih dari 0 0
Request berikutnya dengan prefix identik Bisa tetap ada Lebih dari 0

Jika cache_read_input_tokens tidak pernah naik, periksa dua hal:

  1. Prefix prompt tidak identik byte demi byte.
  2. Jumlah token belum mencapai batas minimum cache.

Pada Opus 5, caching dimulai dari 512 token, turun dari 1.024 token di Opus 4.8. Token cache read ditagih $0,50 per juta token, dibandingkan harga input dasar $5 per juta token.

Jadikan cache sebagai assertion dalam pengujian integrasi:

assert response.usage.cache_read_input_tokens > 0
Enter fullscreen mode Exit fullscreen mode

Dengan begitu, perubahan kecil pada system prompt yang merusak cache dapat terdeteksi sebelum menjadi tagihan besar. Lihat juga panduan memotong tagihan API Claude.

Uji dan debug alur di Apidog

Semua langkah di atas adalah HTTP request dengan header autentikasi, JSON body, SSE stream, dan respons yang perlu divalidasi. Apidog dapat digunakan untuk mengirim request, menyimpan environment variable, melihat SSE, dan menguji respons.

Apidog tidak menjalankan inferensi atau merutekan model. Request tetap dikirim ke Anthropic.

Antarmuka Apidog menunjukkan permintaan HTTP dengan header dan badan JSON.

Setup praktis untuk tim:

  1. Buat request dasar

    Gunakan POST https://api.anthropic.com/v1/messages, tiga header wajib, dan environment variable untuk API key.

  2. Simpan ke koleksi

    Hindari setiap anggota tim membuat request baru dari nol.

  3. Fork request berdasarkan effort

    Buat variasi low, medium, high, dan xhigh. Jalankan prompt yang sama, lalu bandingkan kualitas output, latensi, dan jumlah token.

  4. Uji SSE

    Aktifkan "stream": true dan pastikan blok thinking serta text ditangani secara terpisah.

  5. Periksa tool call

    Saat stop_reason bernilai tool_use, periksa objek input. Jika input terlalu ambigu atau tidak sesuai, ketatkan input_schema.

  6. Tambahkan assertion respons

    Pastikan respons tidak berhenti karena max_tokens, dan cache hit muncul pada request berulang.

// Contoh assertion konseptual
stop_reason !== "max_tokens"
cache_read_input_tokens > 0
Enter fullscreen mode Exit fullscreen mode

Unduh Apidog jika ingin mengikuti alur ini. Koleksi yang sama juga dapat dipakai untuk Sonnet 5 atau request Claude Opus 4.8.

Kesalahan dan jebakan umum

  • HTTP 400 saat thinking: disabled dengan effort xhigh atau max

    Turunkan effort ke high, atau aktifkan kembali thinking.

  • HTTP 400 saat mengatur sampling parameter non-default

    temperature, top_p, dan top_k dengan nilai non-default tetap mengembalikan 400, sama seperti Opus 4.8. Arahkan gaya atau variasi output lewat prompt.

  • Jawaban terpotong

    Jika stop_reason adalah max_tokens, batas token habis untuk thinking dan output. Tingkatkan max_tokens.

  • Priority Tier tidak didukung di Opus 5

    Opus 4.8 menyediakannya. Jika kapasitas enterprise Anda bergantung pada Priority Tier, selesaikan kebutuhan ini sebelum memindahkan traffic.

  • System message di tengah percakapan kini didukung

    Entri role: "system" di dalam messages diterima oleh Opus 5, sedangkan Opus 4.8 mengembalikan 400.

  • Instruksi verifikasi berlebihan

    Opus 5 memverifikasi pekerjaannya sendiri tanpa perlu selalu diminta. Hapus instruksi seperti “periksa ulang jawaban Anda sebelum merespons” jika tidak memberi nilai tambahan, karena dapat menghabiskan token thinking.

Batas yang perlu diketahui

Opus 5 bukan model paling mampu di seluruh jajaran Claude. Fable 5 masih memegang sebutan Anthropic sebagai model “paling mampu dirilis secara luas”, dengan harga $10 per juta token input dan $50 per juta token output.

Menurut Anthropic, Opus 5 juga tertinggal dari Mythos 5 pada eksploitasi keamanan siber dan penelitian biologi otonom.

Klaim benchmark peluncuran berikut berasal dari Anthropic dan belum direproduksi secara independen pada 25 Juli 2026:

  • Kira-kira 2x Opus 4.8 pada Frontier-Bench v0.1.
  • Sekitar 3x model terbaik berikutnya pada ARC-AGI 3.
  • Berjarak 0,5% dari Fable 5 pada CursorBench 3.2.

Gunakan angka tersebut sebagai hasil vendor, lalu jalankan evaluasi dengan data dan workload Anda sendiri. Baca perbandingan Opus 5 versus Fable 5 dan posting peluncuran Anthropic untuk sumber utama klaim tersebut.

FAQ

Apa ID model untuk Claude Opus 5?

Gunakan:

claude-opus-5
Enter fullscreen mode Exit fullscreen mode

Tanpa sufiks tanggal. Di Amazon Bedrock, gunakan anthropic.claude-opus-5. Google Cloud dan Claude Platform di AWS menggunakan ID pihak pertama.

Mengapa request Opus 4.8 saya terpotong di Opus 5?

Thinking aktif secara default di Opus 5. Nilai max_tokens kini membatasi thinking dan respons sekaligus.

Naikkan max_tokens dan periksa:

{
  "stop_reason": "max_tokens"
}
Enter fullscreen mode Exit fullscreen mode

Mengapa saya mendapatkan HTTP 400 saat menonaktifkan thinking?

Kemungkinan request Anda menggunakan:

{
  "thinking": {"type": "disabled"},
  "output_config": {"effort": "xhigh"}
}
Enter fullscreen mode Exit fullscreen mode

Atau effort: "max".

Turunkan effort ke high, atau biarkan thinking aktif dan gunakan effort lebih rendah.

Apakah context window 1 juta token memerlukan beta header?

Tidak. Di Opus 5, 1 juta token adalah default dan maksimum tanpa beta header atau premi harga context panjang.

Untuk output 300k di Batch API, gunakan beta header:

output-300k-2026-03-24
Enter fullscreen mode Exit fullscreen mode

Messages API tetap membatasi output pada 128k token.

Bisakah saya menggunakan kembali setting effort Opus 4.8?

Tidak disarankan. Anthropic menyatakan level effort telah dikalibrasi ulang. Jalankan evaluasi baru untuk workload Anda, terutama pada low dan medium.

Apakah Apidog menjalankan model Claude?

Tidak. Apidog mengirim, memeriksa, dan menguji request HTTP. Inferensi tetap terjadi di infrastruktur Anthropic. Apidog membantu mengelola key, streaming, tool call payload, dan assertion respons di sekitar API call.

Top comments (0)