Ana içeriğe geç

API referansı

Ortak kavramlar

Hacim, fiyatlar, emir türleri ve geçerlilik süresi

Hacim

Hacim sent (0,0000001 lot birimi) olarak belirtilir.

Lot Hacim (sent)
0.01 100.000
0.1 1.000.000
1.0 10.000.000

Fiyatlar

Fiyat değerleri pipet cinsindendir. Dönüştürmek için: görüntülenen_fiyat = pipet_değeri / 10^pipBasamak

EURUSD (5 basamak) için, 112345 pipet değeri = 1,12345.

Emir türleri

Tür Açıklama Gerekli alanlar
MARKET Mevcut fiyattan hemen yürüt sembolKimliği, işlemYönü, hacim
LIMIT Limit fiyattan veya daha iyisinden yürüt + limitFiyat
STOP Piyasa durdurma fiyatına ulaştığında tetikle + durdurmaFiyat
MARKET_RANGE Bir fiyat aralığında yürüt + tabanSlipajFiyatı
STOP_LIMIT Durdurma fiyatında tetiklenen limit emir + durdurmaFiyat, limitFiyat

Geçerlilik süresi

Politika Açıklama
GOOD_TILL_CANCEL Emir doldurulana veya iptal edilene kadar aktif kalır
GOOD_TILL_DATE Emir belirtilen sonKullanmaZamanDamgasında sona erer
IMMEDIATE_OR_CANCEL Mevcut olanı hemen doldur, geri kalanı iptal et

Hesap bilgileri

GET /v1/balance Get account balance

Hesap bakiyesini, net varlığı ve serbest marjı döndürür.

Parametreler

Parametre yok.

Yanıtlar

200 Başarılı yanıt

Response body
{
  "balance": 10000.00,
  "equity": 10250.75,
  "freeMargin": 9800.50,
  "balanceVersion": 42,
  "moneyDigits": 2,
  "depositAssetId": 1
}
Alan Tür Açıklama
balance double Para yatırma para birimindeki hesap bakiyesi
equity double Bakiye + değişken K&Z
freeMargin double Yeni işlemler için kullanılabilir marj
balanceVersion int64 Bakiye sürüm sayacı
moneyDigits int32 Parasal değerler için ondalık basamaklar
depositAssetId int64 Para yatırma para birimi varlık kimliği
GET /v1/symbols Mevcut sembolleri al

Hesapta işlem yapmak için mevcut tüm sembolleri döndürür.

Parametreler

Parametre yok.

Yanıtlar

200 Sembol nesneleri dizisi

Response body
[
  {
    "symbolId": 1,
    "symbolName": "EURUSD",
    "enabled": true,
    "baseAssetId": 2,
    "quoteAssetId": 1,
    "description": "Euro vs US Dollar"
  }
]

Sembol

Alan Tür Açıklama
symbolId int64 Sembol Kimliği (diğer API çağrılarında kullanılır)
symbolName string Sembol adı (örn. "EURUSD")
enabled boolean Sembolün işlem yapılabilir olup olmadığı
baseAssetId int64 Taban varlık kimliği
quoteAssetId int64 Karşıt varlık kimliği
description string İnsan tarafından okunabilir açıklama
GET /v1/assets Mevcut varlıkları al

Mevcut varlıkları (para birimleri) döndürür.

Parametreler

Parametre yok.

Yanıtlar

200 Varlık nesneleri dizisi

Response body
[
  {
    "assetId": 1,
    "name": "USD",
    "displayName": "US Dollar"
  }
]

Varlık

Alan Tür Açıklama
assetId int64 Varlık Kimliği
name string Varlık kodu (örn. "USD")
displayName string Görüntü adı

Piyasa verileri

GET /v1/prices Spot fiyatları al

Belirtilen semboller için mevcut satış/alış fiyatlarını döndürür. Bu bir **anlık görüntü**dür – API akışı desteklemez.

Parametreler
Ad Konum Tür Gerekli Açıklama
symbolId sorgu int64[] Virgülle ayrılmış sembol kimlikleri
Yanıtlar

200 SpotFiyat nesneleri dizisi

Response body
[
  {
    "symbolId": 1,
    "bid": 112340,
    "ask": 112355,
    "high": 112890,
    "low": 111950,
    "sessionClose": 112100,
    "timestamp": 1700000000000
  }
]

SpotFiyat

Alan Tür Açıklama
symbolId int64 Sembol Kimliği
bid int64 En iyi satış fiyatı (pipet)
ask int64 En iyi alış fiyatı (pipet)
high int64 Seansın en yüksek değeri (pipet)
low int64 Seansın en düşük değeri (pipet)
sessionClose int64 Önceki seans kapanışı (pipet)
timestamp int64 Kotasyon zaman damgası (epoch ms)
GET /v1/trendbars Geçmiş OHLCV verilerini al

Bir sembol için geçmiş mum çubuğu (OHLCV) verilerini döndürür.

Parametreler
Ad Konum Tür Gerekli Varsayılan Açıklama
symbolId sorgu int64 Sembol Kimliği
period sorgu string Çubuk dönemi
fromTimestamp sorgu string Başlangıç zamanı (ISO-8601)
toTimestamp sorgu string Bitiş zamanı (ISO-8601)
count sorgu int32 100 Döndürülecek maksimum çubuk sayısı
Mevcut dönemler

M_1 M_2 M_3 M_4 M_5 M_10 M_15 M_30 H_1 H_2 H_3 H_4 H_6 H_8 H_12 D_1 W_1 MN_1

Yanıtlar

200 Trendbar nesneleri dizisi

Response body
[
  {
    "timestamp": 1700000000000,
    "open": 112340.0,
    "high": 112890.0,
    "low": 111950.0,
    "close": 112500.0,
    "volume": 4521
  }
]

Trendbar

Alan Tür Açıklama
timestamp int64 Çubuk açılış zamanı (epoch ms)
open double Açılış fiyatı (pipetler)
high double Yüksek fiyat (pipetler)
low double Düşük fiyat (pipetler)
close double Kapanış fiyatı (pipetler)
volume int64 Tick hacmi

Emirler

POST /v1/orders Yeni bir emir ver

Yeni bir alım satım emri verir. Bir ExecutionResponse döndürür.

Parametreler

Yol veya sorgu parametresi yok.

İstek gövdesi application/json
Alan Tür Gerekli Açıklama
symbolId int64 İşlem yapılacak sembol
orderType string MARKET, LIMIT, STOP, MARKET_RANGE, STOP_LIMIT
tradeSide string AL veya SAT
volume int64 Cent cinsinden hacim
limitPrice double Limit fiyatı – LİMİT, LİMİTLİ_STOP için gerekli
stopPrice double Stop tetikleme fiyatı – STOP, LİMİTLİ_STOP için gerekli
stopLoss double Zarar durdur fiyatı
takeProfit double Kâr al fiyatı
comment string Serbest metin yorumu (maks. 256 karakter)
label string Bot etiketi (maks. 100 karakter)
timeInForce string GOOD_TILL_CANCEL, GOOD_TILL_DATE, IMMEDIATE_OR_CANCEL
baseSlippagePrice double Kayma için taban fiyat – PİYASA_ARALIĞI için gerekli
slippageInPoints int32 Puan cinsinden maksimum kayma
expirationTimestamp int64 Son kullanma zaman damgası (epoch ms) – TARİHE_KADAR_GEÇERLİ için
Example request body
{
  "symbolId": 1,
  "orderType": "MARKET",
  "tradeSide": "BUY",
  "volume": 10000000,
  "stopLoss": 112000,
  "takeProfit": 113000
}
Yanıtlar

200 ExecutionResponse – emir kabul edildi veya dolduruldu

400 GEÇERSİZ_İSTEK veya HATALI_İŞLEM_HACMİ

422 NOT_ENOUGH_MONEY

409 MARKET_CLOSED

Example success response
{
  "orderId": 12345,
  "positionId": 67890,
  "executionType": "ORDER_FILLED",
  "order": { "..." : "..." },
  "position": { "..." : "..." },
  "deal": { "..." : "..." }
}
GET /v1/orders Bekleyen emirleri al

Tüm bekleyen (doldurulmamış) emirleri döndürür.

Parametreler

Parametre yok.

Yanıtlar

200 Bekleyen Emir nesneleri dizisi

PUT /v1/orders/{orderId} Bekleyen bir emri değiştir

Mevcut bir bekleyen emri değiştirir. Bir ExecutionResponse döndürür.

Parametreler
Ad Konum Tür Gerekli Açıklama
orderId yol int64 Değiştirilecek emir
İstek gövdesi application/json

Aşağıdaki alanların herhangi bir alt kümesi.

Alan Tür Açıklama
volume int64 Cent cinsinden yeni hacim
limitPrice double Yeni limit fiyatı
stopPrice double Yeni stop fiyatı
stopLoss double Yeni zarar durdur fiyatı
takeProfit double Yeni kâr al fiyatı
expirationTimestamp int64 Yeni son kullanma zaman damgası (epoch ms)
Yanıtlar

200 EMİR_DEĞİŞTİRİLDİ ile ExecutionResponse

404 Emir bulunamadı

DELETE /v1/orders/{orderId} Bekleyen bir emri iptal et

Bekleyen bir emri iptal eder. Bir ExecutionResponse döndürür.

Parametreler
Ad Konum Tür Gerekli Açıklama
orderId yol int64 İptal edilecek emir
Yanıtlar

200 EMİR_İPTAL_EDİLDİ ile ExecutionResponse

404 Emir bulunamadı

GET /v1/orders/history Emir geçmişini al

Bir zaman aralığındaki geçmiş emirleri döndürür.

Parametreler
Ad Konum Tür Gerekli Açıklama
fromTimestamp sorgu string Başlangıç zamanı (ISO-8601)
toTimestamp sorgu string Bitiş zamanı (ISO-8601)
Yanıtlar

200 OrderListResponse

Alan Tür Açıklama
orders Order[] Geçmiş emirler dizisi
hasMore boolean Ek sayfaların mevcut olup olmadığı

Pozisyonlar

GET /v1/positions Açık pozisyonları al

Tüm açık pozisyonları ve bekleyen emirleri döndürür.

Parametreler

Parametre yok.

Yanıtlar

200 Pozisyon nesneleri dizisi

Response body
[
  {
    "positionId": 67890,
    "symbolId": 1,
    "tradeSide": "BUY",
    "volume": 10000000,
    "entryPrice": 112345.0,
    "stopLoss": 112000.0,
    "takeProfit": 113000.0,
    "unrealizedPnl": 155.25,
    "commission": -7.00,
    "swap": -1.20
  }
]

Pozisyon

Alan Tür Açıklama
positionId int64 Pozisyon no.
symbolId int64 Sembol Kimliği
tradeSide string AL veya SAT
volume int64 Cent cinsinden hacim
entryPrice double VWAP giriş fiyatı
stopLoss double Zarar durdur fiyatı
takeProfit double Kâr al fiyatı
unrealizedPnl double Değişken kâr/zarar
commission double Uygulanan komisyon
swap double Swap miktarı
GET /v1/positions/{positionId} Pozisyon detaylarını al

İlgili emirleri ve işlemleriyle birlikte bir pozisyon döndürür.

Parametreler
Ad Konum Tür Gerekli Açıklama
positionId yol int64 Pozisyon Kimliği
Yanıtlar

200 PositionDetailResponse

Alan Tür Açıklama
position Pozisyon Pozisyon nesnesi
orders Order[] İlgili emirler
deals Deal[] İlgili işlemler
PUT /v1/positions/{positionId} Pozisyon ZD/KA'yı değiştir

Açık bir pozisyon için zarar durdur ve/veya kâr al'ı günceller. Bir ExecutionResponse döndürür.

Parametreler
Ad Konum Tür Gerekli Açıklama
positionId yol int64 Pozisyon Kimliği
İstek gövdesi application/json
Alan Tür Açıklama
stopLoss double Yeni zarar durdur fiyatı (null kaldırmak için)
takeProfit double Yeni kâr al fiyatı (null kaldırmak için)
trailingStopLoss boolean Takip eden zarar durdur'u etkinleştir
Example request body
{
  "stopLoss": 111500,
  "takeProfit": 113500,
  "trailingStopLoss": false
}
Yanıtlar
POST /v1/positions/{positionId}/close Bir pozisyonu kapat

Açık bir pozisyonu tamamen veya kısmen kapatır. Kısmi kapatma için pozisyonun tam hacminden daha küçük bir değer kullanın. Bir ExecutionResponse döndürür.

Parametreler
Ad Konum Tür Gerekli Açıklama
positionId yol int64 Pozisyon Kimliği
İstek gövdesi application/json
Alan Tür Gerekli Açıklama
volume int64 Sent cinsinden kapatılacak hacim
Example – full close (1 lot)
{
  "volume": 10000000
}
Yanıtlar

422 YETERSİZ_PARA – kısmi kapatma için yetersiz marj


İşlemler

GET /v1/deals İşlem geçmişini al

Belirli bir zaman aralığındaki gerçekleştirilmiş işlemleri döndürür.

Parametreler
Ad Konum Tür Gerekli Varsayılan Açıklama
fromTimestamp sorgu string Başlangıç zamanı (ISO-8601)
toTimestamp sorgu string Bitiş zamanı (ISO-8601)
maxRows sorgu int32 50 Döndürülecek maksimum işlem sayısı
Yanıtlar

200 İşlem nesneleri dizisi

Response body
[
  {
    "dealId": 11111,
    "orderId": 12345,
    "positionId": 67890,
    "symbolId": 1,
    "tradeSide": "BUY",
    "volume": 10000000,
    "filledVolume": 10000000,
    "executionPrice": 112345.0,
    "executionTimestamp": 1700000000000,
    "dealStatus": "FILLED",
    "commission": -7.00
  }
]

İşlem

Alan Tür Açıklama
dealId int64 İşlem No.
orderId int64 Bu işlemi tetikleyen emir
positionId int64 Pozisyon no.
symbolId int64 Sembol Kimliği
tradeSide string AL veya SAT
volume int64 Sent cinsinden talep edilen hacim
filledVolume int64 Sent cinsinden doldurulan hacim
executionPrice double Gerçekleşme fiyatı
executionTimestamp int64 Gerçekleşme zamanı (epoch ms)
dealStatus string Durum – aşağıdaki değerlere bakın
commission double Uygulanan komisyon

dealStatus değerleri

Değer Anlamı
FILLED Emir tamamen dolduruldu
PARTIALLY_FILLED Emir kısmen yerine getirildi
REJECTED İşlem sunucusu tarafından reddedildi
INTERNALLY_REJECTED Sunucuya ulaşmadan önce dahili olarak reddedildi
ERROR Gerçekleşme sırasında bir hata oluştu
MISSED Emir kaçırıldı (örn. piyasada boşluk)

Schemas { #execution-response-schema }

ExecutionResponse

Tüm emir yerleştirme, değiştirme ve iptal etme işlemleri bu nesneyi döndürür.

Alan Tür Açıklama
orderId int64 Etkilenen emir ID'si
positionId int64 Etkilenen pozisyon ID'si
executionType string Sonuç türü – değerler aşağıdadır
order Emir Emir detayları (uygulanabilirse)
position Pozisyon Pozisyon detayları (uygulanabilirse)
deal İşlem İşlem detayları (uygulanabilirse)

executionType değerleri

Değer Anlamı
ORDER_ACCEPTED Bekleyen emir kabul edildi
ORDER_FILLED Emir tamamen yerine getirildi
ORDER_REPLACED Emir değiştirildi
ORDER_CANCELLED Emir iptal edildi
ORDER_EXPIRED Emrin süresi doldu
ORDER_REJECTED Emir reddedildi
ORDER_CANCEL_REJECTED İptal isteği reddedildi
ORDER_PARTIAL_FILL Emir kısmen yerine getirildi
SWAP Pozisyon takası uygulandı
DEPOSIT Hesaba para yatırma
WITHDRAW Hesaptan para çekme
BONUS_DEPOSIT_WITHDRAW Bonus para yatırma veya çekme

Oran limitleri

Ağ geçidi, birden fazla seviyede oran limitleri uygular.

Seviye Açıklama
IP başına Tek bir IP adresinden gelen toplam istekleri sınırlar
Kullanıcı başına Tek bir jeton için tüm hesaplardaki toplam istekleri sınırlar
Hesap başına Tek bir işlem hesabını hedefleyen istekleri sınırlar

Oran limiti aşıldı

Bir oran limiti aşıldığında, API 429 Too Many Requests hatasıyla birlikte bir Retry-After başlığı döndürür.


Hata yönetimi

Bir istek başarısız olduğunda, API bir JSON hata yanıtı döndürür.

Error response format
{
  "error": {
    "code": "NOT_ENOUGH_MONEY",
    "message": "Insufficient free margin for this order",
    "httpStatus": 422,
    "retryAfter": null
  }
}

Hata kodları

Kod HTTP Açıklama
INVALID_REQUEST 400 Geçersiz veya eksik istek parametreleri
UNAUTHORIZED 401 Geçersiz, süresi dolmuş veya eksik jeton
TRADING_BAD_VOLUME 400 Hacim geçersiz (minimumun altında veya pozisyonu aşıyor)
NOT_ENOUGH_MONEY 422 Yetersiz serbest marj
SYMBOL_NOT_FOUND 404 Sembol ID'si mevcut değil
MARKET_CLOSED 409 Sembol için piyasa şu anda kapalı
MAINTENANCE 503 İşlem sunucusu bakım modunda
TIMEOUT 504 İşlem sunucusu zamanında yanıt vermedi
GATEWAY_RATE_LIMIT 429 Oran limiti aşıldı – Retry-After başlığına bakın

Oran limiti yönetimi

Bir 429 yanıtı aldığınızda, Retry-After başlığı ve retryAfter alanı, bir sonraki isteği göndermeden önce kaç saniye beklemeniz gerektiğini belirtir.