Cara Menggunakan Kalshi API: Panduan Pasar Prediksi

Ashley Goolam

Ashley Goolam

6 February 2026

Cara Menggunakan Kalshi API: Panduan Pasar Prediksi

Apidog untuk Perusahaan

Penerapan On-Premises

SSO & RBAC

Sesuai SOC 2

Jelajahi Apidog Enterprise

Bagaimana jika Anda dapat menggunakan API kelas institusi di bursa yang diregulasi CFTC untuk memperdagangkan pasar prediksi secara terprogram? Menawarkan antarmuka REST, WebSocket, dan FIX 4.4 ke pasar prediksi pertama yang diotorisasi secara federal di AS, Kalshi melakukan hal itu. Pada paruh pertama tahun 2025 saja, perusahaan ini menghasilkan pendapatan lebih dari $200 juta.

Pasar prediksi telah meledak dalam popularitas, tetapi pengembang dihadapkan pada pilihan antara infrastruktur yang diatur dan fleksibilitas kripto-native. Platform yang tidak diatur beroperasi di zona abu-abu hukum, memerlukan dompet blockchain, dan memaparkan pengguna pada risiko smart contract. Kalshi menghilangkan titik-titik gesekan ini dengan beroperasi sebagai Designated Contract Market di bawah pengawasan CFTC, menawarkan penyelesaian berbasis fiat, pola API tradisional, dan kepatuhan terhadap peraturan keuangan AS. Anda membangun aplikasi perdagangan yang benar-benar dapat digunakan oleh institusi.

Daftar Isi:

💡
Membangun integrasi pasar prediksi memerlukan pengujian API yang andal di seluruh protokol REST, WebSocket, dan FIX. Apidog menyediakan pengujian API visual, pembuatan dokumentasi otomatis, dan fitur kolaborasi tim yang dirancang khusus untuk aplikasi perdagangan keuangan. Coba Apidog secara gratis untuk menyederhanakan pengembangan API Kalshi Anda—tidak memerlukan kartu kredit.
button

Memahami Arsitektur Kalshi

Kalshi beroperasi sebagai bursa terpusat dengan kontrak event yang tersertifikasi sendiri. Memahami arsitektur ini membantu Anda merancang integrasi yang kuat.

Status Designated Contract Market

Kalshi memegang lisensi CFTC yang memungkinkannya menawarkan kontrak event secara legal di 50 negara bagian AS. Tidak seperti taruhan olahraga yang diatur negara bagian, Kalshi beroperasi di bawah yurisdiksi federal, melewati kerangka hukum perjudian negara bagian yang terfragmentasi. Status ini memerlukan kepatuhan yang ketat: setiap pasar menjalani peninjauan CFTC, penyelesaian mengikuti buku aturan yang diterbitkan, dan bursa mempertahankan sistem pengawasan untuk mendeteksi manipulasi.

Central Limit Order Book (CLOB)

Kalshi mencocokkan pesanan melalui CLOB tradisional—penawaran beli dan jual bertemu pada harga yang ditentukan dengan kedalaman yang terlihat. Ini berbeda dari automated market maker (AMM) yang digunakan oleh bursa terdesentralisasi. CLOB menyediakan transparansi harga, memungkinkan pesanan limit, dan memungkinkan strategi pembuatan pasar. Pembuat pasar menerima sekitar $35.000 setiap hari dalam bentuk insentif likuiditas (diperkirakan setahun ~$12.7 juta), memastikan spread yang ketat bahkan di pasar yang kurang aktif.

Struktur Kontrak Event

Setiap kontrak mewakili hasil biner: Ya membayar $1.00, Tidak membayar $0.00. Harga berfluktuasi antara $0.01 dan $0.99, mencerminkan probabilitas yang diimplikasikan pasar. Kontrak yang diperdagangkan pada $0.63 menyiratkan kemungkinan 63% peristiwa tersebut terjadi. Penyelesaian terjadi pada $1.00 atau $0.00 setelah verifikasi hasil.

Kontrak menetapkan kondisi penyelesaian yang tepat: definisi event, sumber data otoritatif, dan metodologi resolusi. Misalnya, kontrak "Apakah CPI akan melebihi 3,5% di bulan Januari?" menetapkan rilis Bureau of Labor Statistics yang tepat dan cara menafsirkan penyesuaian musiman.

Oracle dan Penyelesaian

Kalshi menggunakan oracle terpusat yang dioperasikan oleh staf bursa. Hasil diselesaikan berdasarkan sumber resmi—laporan pemerintah, penyedia data terkemuka, atau organisasi berita mapan. Resolusi biasanya selesai dalam beberapa jam setelah event berakhir. Model terpusat ini memprioritaskan kecepatan dan kejelasan di atas desentralisasi, dengan pengawasan CFTC menyediakan akuntabilitas.

kalshi

Autentikasi dan Pengaturan

Autentikasi Kalshi memerlukan permintaan yang ditandatangani RSA menggunakan kunci pribadi yang dihasilkan di dasbor akun Anda. Ini menyediakan verifikasi kriptografis panggilan API.

Pengaturan Lingkungan

Kalshi menyediakan dua lingkungan:

Selalu kembangkan terhadap demo terlebih dahulu. Lingkungan ini secara fungsional identik, tetapi pasar demo mungkin memiliki likuiditas yang disimulasikan.

Membuat Kunci API

Navigasi ke Pengaturan → API di dasbor Kalshi Anda. Buat pasangan kunci baru:

  1. Klik "Buat Kunci API"
  2. Simpan ID Kunci API (dimulai dengan kalshi_prod_ atau kalshi_demo_)
  3. Unduh kunci pribadi segera—Kalshi tidak akan pernah menampilkannya lagi
  4. Amankan kunci pribadi dengan izin file (chmod 600)

Kunci pribadi menggunakan penandatanganan RSA-PSS. Kalshi menyediakan SDK resmi yang menangani penandatanganan secara otomatis, atau Anda dapat mengimplementasikannya secara manual menggunakan pustaka kriptografi standar.

Instalasi SDK

Kalshi menawarkan SDK resmi untuk Python (sinkron dan asinkron) dan TypeScript:

# Python sinkron
pip install kalshi-python-sync

# Python asinkron  
pip install kalshi-python-async

# TypeScript/Node.js
npm install @kalshi/sdk

SDK komunitas ada untuk Go dan bahasa lain, tetapi SDK resmi menyediakan implementasi penandatanganan yang paling andal dan keamanan tipe.

kalshi sdk

Autentikasi Manual (Tanpa SDK)

Jika mengimplementasikan penandatanganan kustom, ikuti alur ini:

import requests
from cryptography.hazmat.primitives import hashes, serialization
from cryptography.hazmat.primitives.asymmetric import padding
import base64
import json
from datetime import datetime, timezone

class KalshiAuth:
    def __init__(self, api_key_id, private_key_path):
        self.api_key_id = api_key_id
        with open(private_key_path, "rb") as key_file:
            self.private_key = serialization.load_pem_private_key(
                key_file.read(),
                password=None
            )
        self.base_url = "https://api.kalshi.com/v1"
    
    def sign_request(self, method, path, body=None):
        # Create timestamp
        timestamp = datetime.now(timezone.utc).strftime("%Y-%m-%dT%H:%M:%S.%fZ")[:-3] + "Z"
        
        # Build string to sign
        string_to_sign = f"{timestamp}{method}{path}"
        if body:
            string_to_sign += json.dumps(body, separators=(',', ':'))
        
        # Sign with RSA-PSS
        signature = self.private_key.sign(
            string_to_sign.encode('utf-8'),
            padding.PSS(mgf=padding.MGF1(hashes.SHA256()), salt_length=32),
            hashes.SHA256()
        )
        
        return {
            "KALSHI-ACCESS-KEY": self.api_key_id,
            "KALSHI-ACCESS-TIMESTAMP": timestamp,
            "KALSHI-ACCESS-SIGNATURE": base64.b64encode(signature).decode('utf-8'),
            "Content-Type": "application/json"
        }
    
    def request(self, method, path, body=None):
        url = f"{self.base_url}{path}"
        headers = self.sign_request(method, path, body)
        
        if method == "GET":
            response = requests.get(url, headers=headers)
        elif method == "POST":
            response = requests.post(url, headers=headers, json=body)
        elif method == "DELETE":
            response = requests.delete(url, headers=headers)
        
        return response.json()

# Usage
kalshi = KalshiAuth(
    api_key_id="kalshi_prod_abc123",
    private_key_path="~/.kalshi/private_key.pem"
)

# Get markets
markets = kalshi.request("GET", "/markets")
print(markets)

String penandatanganan menggabungkan timestamp, metode HTTP, path, dan JSON body (jika ada). RSA-PSS dengan SHA-256 menyediakan verifikasi kriptografis bahwa permintaan berasal dari akun Anda.

Sesi Berbasis Token

Setelah autentikasi awal, dapatkan token sesi untuk permintaan selanjutnya:

# Login untuk mendapatkan token sesi
login_response = kalshi.request("POST", "/log_in")
session_token = login_response["token"]

# Gunakan token untuk permintaan selanjutnya (berlaku selama 30 menit)
headers = {
    "Authorization": f"Bearer {session_token}",
    "Content-Type": "application/json"
}

Token kedaluwarsa setiap 30 menit. Terapkan logika refresh otomatis sebelum kedaluwarsa untuk mempertahankan sesi yang berkelanjutan.

Kiat ProApidog

Titik Akhir API Inti

REST API Kalshi mengikuti konvensi standar dengan struktur titik akhir yang logis berdasarkan jenis sumber daya.

Data Pasar (Publik)

Ambil pasar yang tersedia:

curl "https://api.kalshi.com/v1/markets" \
  -H "Content-Type: application/json"

Dapatkan detail pasar tertentu:

curl "https://api.kalshi.com/v1/markets/INXCHI-25JAN31-T69.5" \
  -H "Content-Type: application/json"

Format ticker mengkodekan detail kontrak: INXCHI-25JAN31-T69.5 mewakili pasar Indeks Aktivitas Nasional Inflasi/Chicago Fed yang kedaluwarsa 31 Januari 2025, dengan ambang batas 69.5.

Permintaan kedalaman order book:

curl "https://api.kalshi.com/v1/markets/INXCHI-25JAN31-T69.5/orderbook" \
  -H "Content-Type: application/json"

Respons mengembalikan level bid dan ask dengan kuantitas, memungkinkan Anda menilai likuiditas sebelum menempatkan pesanan.

KiatApidog

Operasi Perdagangan (Terautentikasi)

Tempatkan pesanan beli:

order = kalshi.request("POST", "/orders", {
    "market_id": "INXCHI-25JAN31-T69.5",
    "side": "yes",
    "order_type": "limit",
    "price": 6500,  # $0.65 dalam sen
    "quantity": 100,  # Jumlah kontrak
    "client_order_id": "my-strategy-001"  # ID pelacakan opsional
})

Harga Kalshi dalam sen (1 = $0.01). Pesanan limit pada 6500 dieksekusi pada $0.65 atau lebih baik.

Batalkan pesanan terbuka:

kalshi.request("DELETE", f"/orders/{order['id']}")

Daftar pesanan terbuka Anda:

curl "https://api.kalshi.com/v1/orders" \
  -H "Authorization: Bearer $SESSION_TOKEN"

Portofolio dan Akun

Periksa saldo akun:

curl "https://api.kalshi.com/v1/portfolio/balance" \
  -H "Authorization: Bearer $SESSION_TOKEN"

Ambil posisi:

curl "https://api.kalshi.com/v1/portfolio/positions" \
  -H "Authorization: Bearer $SESSION_TOKEN"

Titik akhir posisi mengembalikan kepemilikan Anda saat ini di seluruh pasar, termasuk P&L yang belum direalisasi berdasarkan harga perdagangan terakhir.

Dapatkan riwayat perdagangan:

curl "https://api.kalshi.com/v1/portfolio/fills" \
  -H "Authorization: Bearer $SESSION_TOKEN"

Isian mencakup pesanan yang dieksekusi dengan timestamp, harga, dan biaya yang dibayar.

Penyelesaian dan Resolusi

Permintaan status penyelesaian untuk pasar yang kedaluwarsa:

curl "https://api.kalshi.com/v1/markets/INXCHI-25JAN31-T69.5/settlement" \
  -H "Authorization: Bearer $SESSION_TOKEN"

Setelah resolusi, kontrak yang menang akan mengkredit $1.00 per saham ke akun Anda; posisi yang kalah diselesaikan pada $0.00.

kalshi api docs

Data Real-Time dengan WebSocket

Polling REST memperkenalkan latensi. API WebSocket Kalshi mengalirkan pembaruan order book real-time, eksekusi perdagangan, dan perubahan status pasar.

Menghubungkan ke WebSocket

const WebSocket = require('ws');

const ws = new WebSocket('wss://api.kalshi.com/v1/ws', {
  headers: {
    'Authorization': `Bearer ${sessionToken}`
  }
});

ws.on('open', () => {
  console.log('Terhubung ke Kalshi WebSocket');
  
  // Berlangganan pembaruan order book untuk pasar tertentu
  ws.send(JSON.stringify({
    type: 'subscribe',
    channels: ['orderbook:INXCHI-25JAN31-T69.5']
  }));
});

ws.on('message', (data) => {
  const message = JSON.parse(data);
  
  switch(message.type) {
    case 'orderbook_update':
      console.log('Order book berubah:', message.data);
      break;
    case 'trade':
      console.log('Perdagangan dieksekusi:', message.data);
      break;
    case 'market_status':
      console.log('Status pasar:', message.data);
      break;
  }
});

// Heartbeat untuk menjaga koneksi
setInterval(() => {
  ws.send(JSON.stringify({ type: 'ping' }));
}, 30000);

Koneksi WebSocket memerlukan heartbeat periodik (setiap 30 detik) untuk mencegah timeout. Terapkan logika koneksi ulang otomatis untuk aplikasi produksi.

Saluran Langganan

Saluran yang tersedia meliputi:

Berlangganan ke beberapa saluran dalam satu pesan untuk streaming data yang efisien.

Apidog
Testing APIs With Apidog
Menguji API Dengan Apidog
button

Kalshi vs Polymarket untuk Pengembang

Kedua platform menawarkan API pasar prediksi, tetapi arsitektur mereka melayani kasus penggunaan yang berbeda.

Status Regulasi

Kalshi beroperasi sebagai Designated Contract Market yang diatur CFTC. Ini memberikan kejelasan hukum bagi pengguna AS tetapi memerlukan kepatuhan KYC/AML dan membatasi akses ke 42 negara bagian (tidak termasuk Arizona, Illinois, Massachusetts, Maryland, Michigan, Montana, New Jersey, Ohio).

Polymarket baru-baru ini memperoleh persetujuan CFTC melalui akuisisi QCX LLC dan memegang lisensi DCM dengan No-Action Letter. Saat ini beroperasi secara internasional dengan ketersediaan terbatas di AS menunggu peluncuran penuh. Sebelumnya didenda $1.4 juta karena beroperasi tanpa registrasi (Januari 2022).

Arsitektur Teknis

Kalshi menggunakan infrastruktur terpusat dengan pencocokan pesanan off-chain dan penyelesaian USD fiat. Akses API mengikuti pola tradisional: REST melalui HTTPS, WebSocket untuk streaming, FIX 4.4 untuk perdagangan institusional. Waktu respons diukur dalam milidetik.

Polymarket beroperasi di blockchain Polygon dengan arsitektur CLOB hibrida—pencocokan pesanan off-chain, penyelesaian on-chain melalui Conditional Tokens Framework. Integrasi memerlukan interaksi blockchain: pesanan yang ditandatangani EIP-712, panggilan smart contract, transaksi USDC. Finalitas penyelesaian memerlukan konfirmasi blockchain (detik hingga menit).

Model Autentikasi

Kalshi menggunakan permintaan yang ditandatangani RSA-PSS dengan kunci API, sesi berbasis token yang kedaluwarsa setiap 30 menit. Memerlukan penyimpanan kunci pribadi yang aman dan penandatanganan kriptografis.

Polymarket menggunakan tanda tangan dompet blockchain (MetaMask, WalletConnect). Pengguna menandatangani pesanan dengan kunci pribadi yang mengontrol alamat Polygon mereka. Tidak ada token sesi—setiap transaksi memerlukan tanda tangan baru.

Mata Uang Penyelesaian

Kalshi menyelesaikan dalam USD melalui transfer bank, ACH, kartu debit, PayPal, Apple Pay, Google Pay. Penarikan minimum biasanya $10. Waktu pemrosesan 1-3 hari kerja untuk ACH, lebih cepat untuk transfer kawat.

Polymarket menyelesaikan dalam USDC di blockchain Polygon. Penyelesaian instan setelah resolusi, tetapi memerlukan dompet kripto dan infrastruktur on-ramp/off-ramp. Biaya gas berlaku untuk penarikan.

Protokol API

Kalshi menawarkan tiga protokol:

Polymarket memerlukan:

Rekomendasi Kasus Penggunaan

Pilih Kalshi untuk:

Pilih Polymarket untuk:

Kompleksitas Integrasi

Integrasi Kalshi memerlukan 2-4 minggu untuk fungsionalitas data pasar dasar dan perdagangan, dengan asumsi pengalaman REST API. Pola HTTP yang familiar mengurangi kurva pembelajaran.

Integrasi Polymarket memerlukan 3-6 bulan untuk pasar smart contract siap produksi, termasuk audit keamanan (anggaran $50K-$200K), integrasi oracle, dan bootstrapping likuiditas. Keahlian blockchain adalah wajib.

Struktur Biaya

Kalshi membebankan biaya perdagangan berdasarkan pendapatan yang diharapkan (0,7-3,5%, rata-rata 0,8%). Akses API gratis—Anda hanya membayar biaya perdagangan. Tidak ada biaya penarikan untuk ACH.

Polymarket membebankan biaya taker 0,01% pada pasar inti, dengan biaya gas untuk transaksi blockchain. Tidak ada biaya pada beberapa pasar, tetapi biaya jaringan berlaku.

Kesimpulan

API Kalshi menyediakan akses yang diatur ke pasar prediksi melalui protokol REST dan WebSocket yang familiar. Anda melakukan autentikasi dengan permintaan yang ditandatangani RSA, memperdagangkan kontrak event melalui central limit order book, dan menyelesaikan dalam USD melalui perbankan tradisional. Pengawasan CFTC memastikan kepatuhan hukum untuk aplikasi AS, sementara tingkat pendapatan $200 juta menunjukkan kelayakan institusional.

Mulai dengan lingkungan demo untuk menguji pola integrasi. Terapkan manajemen kunci yang tepat dan penandatanganan permintaan sebelum pindah ke produksi. Gunakan streaming WebSocket untuk aplikasi real-time yang membutuhkan latensi rendah. Pantau kedaluwarsa token 30 menit dan terapkan logika refresh untuk operasi berkelanjutan.

Mulai dengan Apidog hari ini—impor titik akhir API Kalshi Anda dalam hitungan detik dan mulai uji strategi pasar prediksi Anda tanpa konfigurasi.

button

Mengembangkan API dengan Apidog

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