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.
Parametre yok.
200 Başarılı yanıt
{
"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.
Parametre yok.
200 Sembol nesneleri dizisi
[
{
"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.
Parametre yok.
200 Varlık nesneleri dizisi
[
{
"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.
| Ad | Konum | Tür | Gerekli | Açıklama |
|---|---|---|---|---|
symbolId | sorgu | int64[] | Virgülle ayrılmış sembol kimlikleri |
200 SpotFiyat nesneleri dizisi
[
{
"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.
| 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
200 Trendbar nesneleri dizisi
[
{
"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.
Yol veya sorgu parametresi yok.
| 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 |
{
"symbolId": 1,
"orderType": "MARKET",
"tradeSide": "BUY",
"volume": 10000000,
"stopLoss": 112000,
"takeProfit": 113000
}
200 ExecutionResponse – emir kabul edildi veya dolduruldu
400 GEÇERSİZ_İSTEK veya HATALI_İŞLEM_HACMİ
422 NOT_ENOUGH_MONEY
409 MARKET_CLOSED
{
"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.
Parametre yok.
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.
| Ad | Konum | Tür | Gerekli | Açıklama |
|---|---|---|---|---|
orderId | yol | int64 | Değiştirilecek emir |
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) |
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.
| Ad | Konum | Tür | Gerekli | Açıklama |
|---|---|---|---|---|
orderId | yol | int64 | İptal edilecek emir |
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.
| Ad | Konum | Tür | Gerekli | Açıklama |
|---|---|---|---|---|
fromTimestamp | sorgu | string | Başlangıç zamanı (ISO-8601) | |
toTimestamp | sorgu | string | Bitiş zamanı (ISO-8601) |
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.
Parametre yok.
200 Pozisyon nesneleri dizisi
[
{
"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.
| Ad | Konum | Tür | Gerekli | Açıklama |
|---|---|---|---|---|
positionId | yol | int64 | Pozisyon Kimliği |
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.
| Ad | Konum | Tür | Gerekli | Açıklama |
|---|---|---|---|---|
positionId | yol | int64 | Pozisyon Kimliği |
| 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 |
{
"stopLoss": 111500,
"takeProfit": 113500,
"trailingStopLoss": false
}
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.
| Ad | Konum | Tür | Gerekli | Açıklama |
|---|---|---|---|---|
positionId | yol | int64 | Pozisyon Kimliği |
| Alan | Tür | Gerekli | Açıklama |
|---|---|---|---|
volume | int64 | Sent cinsinden kapatılacak hacim |
{
"volume": 10000000
}
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.
| 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ı |
200 İşlem nesneleri dizisi
[
{
"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": {
"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.