Gotrade Indonesia Trading API

Trading saham AS secara programatik lewat antarmuka REST sederhana. Kirim order, pantau posisi, dan cek daya beli untuk akun Gotrade Indonesia mana pun.

Ringkasan

Gotrade Trading API memungkinkan kamu mengirim dan mengelola order saham AS serta membaca data portofolio secara langsung, tanpa membuka aplikasi. Setiap request diautentikasi dengan bearer token yang terikat pada satu akun.

BASE URL

https://api.indo.gotrade.prod-indo.tr8.tech/api/b2c/v1

Trading programatik

Kirim order beli dan jual saham AS lewat REST. Mendukung tipe order market, limit, stop, stop limit, dan trailing stop, termasuk extended hours dan overnight trading.

Pemantauan portofolio

Ambil posisi terbuka real-time lengkap dengan unrealized P&L, cost basis, dan performa intraday. Cek saldo kas akun dan daya beli yang tersedia.

Kemampuan

Empat grup endpoint mencakup siklus order, pembacaan portofolio, harga, dan data pasar.

KategoriEndpointMethod
Order saham3 endpointPOST, GET, DELETE
Portofolio2 endpointGET
Harga saham1 endpointGET
Data pasar3 endpointGET

Mulai cepat

Enam langkah dari akun baru sampai order programatik pertamamu.

  1. 1

    Buka akun Gotrade

    Unduh aplikasi Gotrade lalu daftar.

  2. 2

    Selesaikan verifikasi KYC

    Kirim dokumen identitas untuk kepatuhan regulasi.

  3. 3

    Isi saldo akunmu

    Setor dana lewat transfer bank atau metode pembayaran yang didukung.

  4. 4

    Ajukan akses trading API

    Hubungi perwakilan akun Gotrade kamu untuk mengaktifkan API.

  5. 5

    Buat token API kamu

    Masuk ke Profil > API Key di aplikasi.

  6. 6

    Mulai trading

    Integrasikan endpoint API dan kirim order pertamamu.

Membuat token

Token API dibuat dari dalam aplikasi Gotrade Indonesia. Setiap akun hanya bisa punya satu token aktif dalam satu waktu. Token berlaku 1 tahun dan bisa dicabut kapan saja.

  1. 1

    Buka aplikasi Gotrade Indonesia

    Masuk dengan kredensial akun Gotrade yang terdaftar.

  2. 2

    Masuk ke Profil > API Key

    Di pengaturan profil, buka bagian pengelolaan API Key.

  3. 3

    Ketuk Generate Key

    Token JWT baru dibuat. Token lama yang masih aktif langsung dicabut, jadi apa pun yang masih memakainya akan berhenti berfungsi.

  4. 4

    Simpan token dengan aman

    Simpan sebagai environment variable di sisi server atau di secrets manager. Pembuatan token dibatasi 5 request per menit; masa berlaku token 1 tahun.

Pengingat keamanan

Token kamu memberi akses trading penuh ke akunmu. Jangan pernah membagikannya ke publik, meng-commit-nya ke source control, atau menaruhnya di kode sisi klien. Simpan sebagai environment variable di sisi server atau di secrets manager khusus.

Autentikasi

Sertakan token sebagai bearer token di header Authorization pada setiap request ke endpoint trading, portofolio, dan pasar.

Format header request

Authorization: Bearer <your_b2c_token>

Request terautentikasi

Authorization: Bearer <your_b2c_token>
curl -X GET "https://api.indo.gotrade.prod-indo.tr8.tech/api/b2c/v1/portfolio/account-balance" \
  -H "Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..." \
  -H "Accept: application/json"

Response berhasil

200 OK
{
  "data": {
    "cash_balance": "10000.00",
    "cash_available_for_trade": "8500.00",
    "currency": "USD"
  },
  "status": "success",
  "message": "Account balance retrieved successfully"
}

Semua request wajib memakai HTTPS

Request HTTP akan ditolak. Pastikan klienmu memvalidasi sertifikat TLS.

Membuat order

Kirim order saham baru. Mendukung tipe market, limit, stop, stop limit, dan trailing stop. Mengembalikan status order seketika.

POST /api/b2c/v1/stock-orders/create

Parameter request

ParameterTipeWajibDeskripsi
tickerstringYesKode saham, misalnya AAPL.
sidestringYesBUY, SELL, buy, atau sell.
order_typestringYesmarket, limit, stop, stop_limit, atau trailing_stop.
quantitynumberCond.Jumlah lembar. Wajib kecuali amount_cash diisi.
amount_cashnumberNoNominal dolar untuk order notional atau fraksional.
limit_pricenumberCond.Wajib untuk limit dan stop_limit. Minimum 1.
stop_pricenumberCond.Wajib untuk stop, stop_limit, dan trailing_stop. Minimum 1.
is_gtcbooleanNoGood til cancelled. Default-nya order harian.
is_extended_hoursbooleanNoIzinkan eksekusi pada extended hours.
take_profitnumberNoHarga take profit, opsional.
stop_lossnumberNoHarga stop loss, opsional.
trail_pricenumberNoSelisih trail dalam dolar untuk order trailing_stop.
trail_percentnumberNoPersentase trail untuk order trailing_stop.

Contoh: order beli market

cURL
curl -X POST "https://api.indo.gotrade.prod-indo.tr8.tech/api/b2c/v1/stock-orders/create" \
  -H "Authorization: Bearer <your_b2c_token>" \
  -H "Content-Type: application/json" \
  -d '{
    "ticker": "AAPL",
    "side": "BUY",
    "order_type": "market",
    "quantity": 1
  }'

Response pembuatan order

201 Created
{
  "data": {
    "stock": {
      "ticker": "AAPL",
      "name": "Apple",
      "full_name": "Apple Inc",
      "exchange": "NASDAQ",
      "currency": "USD",
      "fractionable": true,
      "shortable": false
    },
    "order": {
      "order_id": "61e69015-8549-4baf-b96e-00c55b5a28c6",
      "side": "BUY",
      "type": "MARKET",
      "status": "NEW",
      "quantity": "1.5",
      "cumulative_quantity": "0",
      "limit_price": 0,
      "time_in_force": "day",
      "extended_hours": false,
      "average_fill_price": "0",
      "fees": { "currency": "USD", "value": 0 },
      "created_at": "2026-02-27T06:00:00Z",
      "updated_at": "2026-02-27T06:00:00Z",
      "total_order_amount": null,
      "amount_cash": 0,
      "order_expires": "2026-02-28T06:00:00.000Z",
      "last_executed": null
    }
  },
  "status": "success",
  "message": "Order submitted successfully"
}

Tipe order dan response

Lima tipe order, masing-masing dengan field wajibnya sendiri.

Order market

Dieksekusi seketika pada harga terbaik yang tersedia. Mendukung saham fraksional dan order nominal dolar.

ticker, side, quantity or amount_cash

Order limit

Dieksekusi pada harga limit kamu atau lebih baik. Wajib untuk sesi extended hours dan overnight.

limit_price

Order stop

Menjadi order market begitu harga menyentuh stop_price. Hanya lembar utuh.

stop_price

Order stop limit

Menjadi order limit begitu harga menyentuh stop_price. Butuh kedua harga.

stop_price, limit_price

Order trailing stop

Stop yang mengikuti harga saham. Isi trail_price untuk selisih dolar atau trail_percent untuk persentase. Hanya lembar utuh.

stop_price, trail_price or trail_percent

Status dan pembatalan

Ambil status terkini dari order yang sudah dikirim. orderId adalah UUID yang dikembalikan endpoint create.

GET /api/b2c/v1/stock-orders/{orderId}

cURL
curl -X GET "https://api.indo.gotrade.prod-indo.tr8.tech/api/b2c/v1/stock-orders/61e69015-8549-4baf-b96e-00c55b5a28c6" \
  -H "Authorization: Bearer <your_b2c_token>"
200 OK
{
  "data": {
    "stock": {
      "ticker": "AAPL",
      "name": "Apple",
      "full_name": "Apple Inc",
      "exchange": "NASDAQ",
      "currency": "USD",
      "fractionable": true,
      "shortable": false
    },
    "order": {
      "order_id": "61e69015-8549-4baf-b96e-00c55b5a28c6",
      "side": "BUY",
      "type": "MARKET",
      "status": "FILLED",
      "quantity": "1.5",
      "cumulative_quantity": "1.5",
      "limit_price": 0,
      "time_in_force": "day",
      "extended_hours": false,
      "average_fill_price": "178.50",
      "fees": { "currency": "USD", "value": 0 },
      "created_at": "2026-02-27T06:00:00Z",
      "updated_at": "2026-02-27T06:00:00Z",
      "total_order_amount": 267.75,
      "amount_cash": 0,
      "order_expires": "2026-02-28T06:00:00.000Z",
      "last_executed": "2026-02-27T06:00:30Z"
    }
  },
  "status": "success",
  "message": "Order details successfully retrieved"
}

Nilai status order

StatusDeskripsi
NEWOrder diterima dan sedang berjalan. Mencakup juga accepted dan pending_new.
FILLEDOrder tereksekusi penuh.
PARTIAL_FILLOrder tereksekusi sebagian.
REJECTEDOrder ditolak broker.
CANCELEDOrder dibatalkan atau kedaluwarsa.

Batalkan order yang masih pending. Hanya order yang belum terisi penuh yang bisa dibatalkan.

DELETE /api/b2c/v1/stock-orders/{orderId}

cURL
curl -X DELETE "https://api.indo.gotrade.prod-indo.tr8.tech/api/b2c/v1/stock-orders/61e69015-8549-4baf-b96e-00c55b5a28c6" \
  -H "Authorization: Bearer <your_b2c_token>"
200 OK
{
  "data": { "order_id": "61e69015-8549-4baf-b96e-00c55b5a28c6" },
  "status": "success",
  "message": "Order has been cancelled successfully"
}

Posisi

Mengembalikan seluruh posisi saham yang sedang dipegang, lengkap dengan nilai pasar real time dan unrealized P&L. Isi is_extended_hours=true untuk menyertakan data harga extended hours.

GET /api/b2c/v1/portfolio/open-positions

cURL
curl -X GET "https://api.indo.gotrade.prod-indo.tr8.tech/api/b2c/v1/portfolio/open-positions?is_extended_hours=false" \
  -H "Authorization: Bearer <your_b2c_token>"
200 OK
{
  "data": [
    {
      "ticker": "AAPL",
      "exchange": "NASDAQ",
      "currency": "USD",
      "quantity": "10.5",
      "avg_entry_price": "175.20",
      "market_value": "1873.50",
      "cost_basis": "1839.60",
      "unrealized_pl": "33.90",
      "unrealized_plpc": "0.0184",
      "unrealized_intraday_pl": "12.50",
      "unrealized_intraday_plpc": "0.0067"
    }
  ],
  "status": "success",
  "message": "Open positions retrieved successfully"
}

Field posisi

FieldDeskripsi
tickerKode saham.
exchangeBursa pencatatan, misalnya NASDAQ atau NYSE.
currencyMata uang posisi (USD).
quantityJumlah lembar yang dipegang.
avg_entry_priceRata-rata tertimbang harga beli per lembar.
market_valueNilai pasar total saat ini (jumlah lembar x harga sekarang).
cost_basisTotal biaya perolehan posisi.
unrealized_plUntung atau rugi belum terealisasi (market_value dikurangi cost_basis).
unrealized_plpcUnrealized P&L dalam persentase desimal.
unrealized_intraday_plUnrealized P&L hari ini.
unrealized_intraday_plpcUnrealized P&L hari ini dalam persentase desimal.

Saldo akun

Mengembalikan saldo kas akun dan daya beli yang tersedia dalam USD.

GET /api/b2c/v1/portfolio/account-balance

cURL
curl -X GET "https://api.indo.gotrade.prod-indo.tr8.tech/api/b2c/v1/portfolio/account-balance" \
  -H "Authorization: Bearer <your_b2c_token>"
200 OK
{
  "data": {
    "cash_balance": "10000.00",
    "cash_available_for_trade": "8500.00",
    "currency": "USD"
  },
  "status": "success",
  "message": "Account balance retrieved successfully"
}

Error dan keamanan

Semua response error mengikuti struktur JSON yang konsisten.

{
  "status": "error",
  "message": "Description of what went wrong"
}

Kode status HTTP

KodeArtiKapan terjadi
200OKRequest GET dan DELETE berhasil.
201CreatedOrder berhasil dibuat.
400Bad RequestParameter tidak valid atau melanggar aturan bisnis, misalnya trading dibatasi, take profit atau stop loss pada extended hours, atau daya beli tidak cukup.
401UnauthorizedBearer token tidak ada, kedaluwarsa, atau tidak valid, atau akun belum diaktifkan untuk akses API.
403ForbiddenPembelian saham sedang tidak tersedia.
404Not FoundOrder, saham, atau ticker tidak ditemukan.
500Server ErrorError internal atau kegagalan pengiriman order yang tidak tertangani.
502Bad GatewayRequest ke broker gagal saat pembatalan atau pengambilan status.

Praktik keamanan terbaik

Lakukan

  • Gunakan HTTPS untuk semua request
  • Simpan token di environment variable
  • Gunakan secrets manager di produksi
  • Rotasi token secara berkala
  • Pantau penggunaan API untuk anomali

Jangan

  • Menaruh token di kode sisi klien
  • Meng-commit token ke source control
  • Membagikan token lewat kanal tanpa enkripsi
  • Mencatat nilai token dalam teks polos
  • Memakai koneksi HTTP (tanpa TLS)

Changelog

Dokumen ini dikelola Gotrade dan diperbarui seiring hadirnya fitur API baru. Untuk versi terkini, hubungi perwakilan akun kamu.

VersiTanggalPerubahan
1.0Maret 2026Rilis awal dengan dokumentasi B2C Trading API.
Traders League IV

Total hadiah
lebih dari $4000

termasuk langganan
TradingView untuk
semua pemenang

Daftar sekarang

*Syarat dan ketentuan berlaku