Przejdź do treści

Dokumentacja API

Wspólne koncepcje

Wolumen, ceny, typy zleceń i czas obowiązywania

Wolumen

Wolumen jest określany w centach (jednostkach 0,0000001 lota).

Loty Wolumen (centy)
0,01 100,000
0,1 1,000,000
1,0 10,000,000

Ceny

Wartości cen są w pipettach. Aby przeliczyć: cena_wyświetlana = wartość_pipetty / 10^pipDigits

Dla EURUSD (5 cyfr), wartość pipetty 112345 = 1,12345.

Typy zleceń

Typ Opis Wymagane pola
MARKET Wykonaj natychmiast po bieżącej cenie symbolId, tradeSide, volume
LIMIT Wykonaj po cenie limit lub lepszej + limitPrice
STOP Uruchom, gdy rynek osiągnie cenę stop + stopPrice
MARKET_RANGE Wykonaj w zakresie cenowym + baseSlippagePrice
STOP_LIMIT Zlecenie limit uruchamiane po cenie stop + stopPrice, limitPrice

Czas obowiązywania

Zasada Opis
GOOD_TILL_CANCEL Zlecenie pozostaje aktywne do momentu realizacji lub anulowania
GOOD_TILL_DATE Zlecenie wygasa w określonym expirationTimestamp
IMMEDIATE_OR_CANCEL Zrealizuj to, co jest dostępne natychmiast, anuluj resztę

Informacje o koncie

GET /v1/balance Get account balance

Zwraca saldo konta, kapitał i dostępny depozyt zabezpieczający.

Parametry

Brak parametrów.

Odpowiedzi

200 Pomyślna odpowiedź

Response body
{
  "balance": 10000.00,
  "equity": 10250.75,
  "freeMargin": 9800.50,
  "balanceVersion": 42,
  "moneyDigits": 2,
  "depositAssetId": 1
}
Pole Typ Opis
balance double Saldo konta w walucie depozytu
equity double Saldo + niezrealizowany zysk/strata
freeMargin double Depozyt zabezpieczający dostępny dla nowych transakcji
balanceVersion int64 Licznik wersji salda
moneyDigits int32 Miejsca dziesiętne dla wartości pieniężnych
depositAssetId int64 ID aktywa waluty depozytu
GET /v1/symbols Pobierz dostępne symbole

Zwraca wszystkie symbole dostępne do handlu na koncie.

Parametry

Brak parametrów.

Odpowiedzi

200 Tablica obiektów Symbol

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

Symbol

Pole Typ Opis
symbolId int64 ID symbolu (używane w innych wywołaniach API)
symbolName string Nazwa symbolu (np. "EURUSD")
enabled boolean Czy symbol jest zbywalny
baseAssetId int64 ID aktywa bazowego
quoteAssetId int64 ID aktywa kwotowanego
description string Opis czytelny dla człowieka
GET /v1/assets Pobierz dostępne aktywa

Zwraca dostępne aktywa (waluty).

Parametry

Brak parametrów.

Odpowiedzi

200 Tablica obiektów Asset

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

Asset

Pole Typ Opis
assetId int64 ID aktywa
name string Kod aktywa (np. "USD")
displayName string Nazwa wyświetlana

Dane rynkowe

GET /v1/prices Pobierz ceny spot

Zwraca bieżące ceny bid/ask dla określonych symboli. To jest migawka – API nie obsługuje przesyłania strumieniowego.

Parametry
Nazwa Znajduje się w Typ Wymagane Opis
symbolId query int64[] ID symboli oddzielone przecinkami
Odpowiedzi

200 Tablica obiektów SpotPrice

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

SpotPrice

Pole Typ Opis
symbolId int64 ID symbolu
bid int64 Najlepsza cena bid (pipetty)
ask int64 Najlepsza cena ask (pipetty)
high int64 Najwyższa wartość sesji (pipetty)
low int64 Najniższa wartość sesji (pipetty)
sessionClose int64 Zamknięcie poprzedniej sesji (pipetty)
timestamp int64 Znacznik czasu kwotowania (epoch ms)
GET /v1/trendbars Pobierz historyczne dane OHLCV

Zwraca historyczne dane świecowe (OHLCV) dla symbolu.

Parametry
Nazwa Znajduje się w Typ Wymagane Ust. domyślne Opis
symbolId query int64 ID symbolu
period query string Okres słupka
fromTimestamp query string Czas rozpoczęcia (ISO-8601)
toTimestamp query string Czas zakończenia (ISO-8601)
count query int32 100 Maksymalna liczba słupków do zwrócenia
Dostępne okresy

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

Odpowiedzi

200 Tablica obiektów Trendbar

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

Trendbar

Pole Typ Opis
timestamp int64 Czas otwarcia słupka (epoch ms)
open double Cena otwarcia (pipetki)
high double Cena maksymalna (pipetki)
low double Cena minimalna (pipetki)
close double Cena zamknięcia (pipetki)
volume int64 Wolumen tickowy

Zlecenia

POST /v1/orders Złóż nowe zlecenie

Składa nowe zlecenie handlowe. Zwraca ExecutionResponse.

Parametry

Brak parametrów ścieżki lub zapytania.

Treść żądania application/json
Pole Typ Wymagane Opis
symbolId int64 Symbol do handlu
orderType string MARKET, LIMIT, STOP, MARKET_RANGE, STOP_LIMIT
tradeSide string BUY lub SELL
volume int64 Wolumen w centach
limitPrice double Cena limitu – wymagana dla LIMIT, STOP_LIMIT
stopPrice double Cena wyzwalacza stop – wymagana dla STOP, STOP_LIMIT
stopLoss double Cena stop loss
takeProfit double Cena take profit
comment string Komentarz w postaci tekstu (maks. 256 znaków)
label string Etykieta bota (maks. 100 znaków)
timeInForce string GOOD_TILL_CANCEL, GOOD_TILL_DATE, IMMEDIATE_OR_CANCEL
baseSlippagePrice double Cena bazowa dla poślizgu – wymagana dla MARKET_RANGE
slippageInPoints int32 Maks. poślizg w punktach
expirationTimestamp int64 Znacznik czasu wygaśnięcia (epoch ms) – dla GOOD_TILL_DATE
Example request body
{
  "symbolId": 1,
  "orderType": "MARKET",
  "tradeSide": "BUY",
  "volume": 10000000,
  "stopLoss": 112000,
  "takeProfit": 113000
}
Odpowiedzi

200 ExecutionResponse – zlecenie zaakceptowane lub zrealizowane

400 INVALID_REQUEST lub TRADING_BAD_VOLUME

422 NOT_ENOUGH_MONEY

409 MARKET_CLOSED

Example success response
{
  "orderId": 12345,
  "positionId": 67890,
  "executionType": "ORDER_FILLED",
  "order": { "..." : "..." },
  "position": { "..." : "..." },
  "deal": { "..." : "..." }
}
GET /v1/orders Pobierz zlecenia oczekujące

Zwraca wszystkie zlecenia oczekujące (niezrealizowane).

Parametry

Brak parametrów.

Odpowiedzi

200 Tablica obiektów oczekujących zleceń Order

PUT /v1/orders/{orderId} Zmień zlecenie oczekujące

Zmienia istniejące zlecenie oczekujące. Zwraca ExecutionResponse.

Parametry
Nazwa Znajduje się w Typ Wymagane Opis
orderId path int64 Zlecenie do zmiany
Treść żądania application/json

Dowolny podzbiór następujących pól.

Pole Typ Opis
volume int64 Nowy wolumen w centach
limitPrice double Nowa cena limitu
stopPrice double Nowa cena stop
stopLoss double Nowa cena stop loss
takeProfit double Nowa cena take profit
expirationTimestamp int64 Nowy znacznik czasu wygaśnięcia (epoch ms)
Odpowiedzi

200 ExecutionResponse z ORDER_REPLACED

404 Nie znaleziono zlecenia

DELETE /v1/orders/{orderId} Anuluj zlecenie oczekujące

Anuluje zlecenie oczekujące. Zwraca ExecutionResponse.

Parametry
Nazwa Znajduje się w Typ Wymagane Opis
orderId path int64 Zlecenie do anulowania
Odpowiedzi

200 ExecutionResponse z ORDER_CANCELLED

404 Nie znaleziono zlecenia

GET /v1/orders/history Pobierz historię zleceń

Zwraca historyczne zlecenia w określonym zakresie czasu.

Parametry
Nazwa Znajduje się w Typ Wymagane Opis
fromTimestamp query string Czas rozpoczęcia (ISO-8601)
toTimestamp query string Czas zakończenia (ISO-8601)
Odpowiedzi

200 OrderListResponse

Pole Typ Opis
orders Order[] Tablica historycznych zleceń
hasMore boolean Czy dostępne są dodatkowe strony

Pozycje

GET /v1/positions Pobierz otwarte pozycje

Zwraca wszystkie otwarte pozycje i zlecenia oczekujące.

Parametry

Brak parametrów.

Odpowiedzi

200 Tablica obiektów Position

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
  }
]

Pozycja

Pole Typ Opis
positionId int64 ID pozycji
symbolId int64 ID symbolu
tradeSide string BUY lub SELL
volume int64 Wolumen w centach
entryPrice double Cena wejścia VWAP
stopLoss double Cena stop loss
takeProfit double Cena take profit
unrealizedPnl double Zmienny zysk/strata
commission double Pobrana prowizja
swap double Kwota swap
GET /v1/positions/{positionId} Pobierz szczegóły pozycji

Zwraca pozycję wraz z powiązanymi zleceniami i transakcjami.

Parametry
Nazwa Znajduje się w Typ Wymagane Opis
positionId path int64 Identyfikator pozycji
Odpowiedzi

200 PositionDetailResponse

Pole Typ Opis
position Position Obiekt pozycji
orders Order[] Powiązane zlecenia
deals Deal[] Powiązane transakcje
PUT /v1/positions/{positionId} Zmień SL/TP pozycji

Aktualizuje stop loss i/lub take profit dla otwartej pozycji. Zwraca ExecutionResponse.

Parametry
Nazwa Znajduje się w Typ Wymagane Opis
positionId path int64 Identyfikator pozycji
Treść żądania application/json
Pole Typ Opis
stopLoss double Nowa cena stop loss (null, aby usunąć)
takeProfit double Nowa cena take profit (null, aby usunąć)
trailingStopLoss boolean Włącz trailing stop loss
Example request body
{
  "stopLoss": 111500,
  "takeProfit": 113500,
  "trailingStopLoss": false
}
Odpowiedzi
POST /v1/positions/{positionId}/close Zamknij pozycję

Zamyka otwartą pozycję całkowicie lub częściowo. Użyj wartości mniejszej niż pełny wolumen pozycji, aby zamknąć częściowo. Zwraca ExecutionResponse.

Parametry
Nazwa Znajduje się w Typ Wymagane Opis
positionId path int64 Identyfikator pozycji
Treść żądania application/json
Pole Typ Wymagane Opis
volume int64 Wolumen do zamknięcia w centach
Example – full close (1 lot)
{
  "volume": 10000000
}
Odpowiedzi

422 NOT_ENOUGH_MONEY – niewystarczający depozyt zabezpieczający do częściowego zamknięcia


Transakcje

GET /v1/deals Pobierz historię transakcji

Zwraca zrealizowane transakcje w określonym przedziale czasu.

Parametry
Nazwa Znajduje się w Typ Wymagane Ust. domyślne Opis
fromTimestamp query string Czas rozpoczęcia (ISO-8601)
toTimestamp query string Czas zakończenia (ISO-8601)
maxRows query int32 50 Maksymalna liczba transakcji do zwrócenia
Odpowiedzi

200 Tablica obiektów Deal

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
  }
]

Deal

Pole Typ Opis
dealId int64 ID transakcji
orderId int64 Zlecenie, które wywołało tę transakcję
positionId int64 ID pozycji
symbolId int64 ID symbolu
tradeSide string BUY lub SELL
volume int64 Żądany wolumen w centach
filledVolume int64 Zrealizowany wolumen w centach
executionPrice double Cena realizacji
executionTimestamp int64 Czas realizacji (epoch ms)
dealStatus string Status – zobacz wartości poniżej
commission double Pobrana prowizja

Wartości dealStatus

Wartość Znaczenie
FILLED Zlecenie całkowicie zrealizowane
PARTIALLY_FILLED Zlecenie częściowo zrealizowane
REJECTED Odrzucone przez serwer transakcyjny
INTERNALLY_REJECTED Odrzucone wewnętrznie przed dotarciem do serwera
ERROR Wystąpił błąd podczas realizacji
MISSED Zlecenie pominięte (np. luka w rynku)

Schemas { #execution-response-schema }

ExecutionResponse

Wszystkie operacje składania, zmiany i anulowania zleceń zwracają ten obiekt.

Pole Typ Opis
orderId int64 Identyfikator dotkniętego zlecenia
positionId int64 Identyfikator dotkniętej pozycji
executionType string Typ wyniku – zobacz wartości poniżej
order Order Szczegóły zlecenia (jeśli dotyczy)
position Position Szczegóły pozycji (jeśli dotyczy)
deal Deal Szczegóły transakcji (jeśli dotyczy)

Wartości executionType

Wartość Znaczenie
ORDER_ACCEPTED Zlecenie oczekujące zaakceptowane
ORDER_FILLED Zlecenie całkowicie zrealizowane
ORDER_REPLACED Zlecenie zmienione
ORDER_CANCELLED Zlecenie anulowane
ORDER_EXPIRED Zlecenie wygasło
ORDER_REJECTED Zlecenie odrzucone
ORDER_CANCEL_REJECTED Żądanie anulowania odrzucone
ORDER_PARTIAL_FILL Zlecenie częściowo zrealizowane
SWAP Zastosowano swap pozycji
DEPOSIT Wpłata na konto
WITHDRAW Wypłata z konta
BONUS_DEPOSIT_WITHDRAW Wpłata lub wypłata bonusu

Limity częstotliwości

Brama wymusza limity częstotliwości na wielu poziomach.

Poziom Opis
Na adres IP Ogranicza całkowitą liczbę żądań z pojedynczego adresu IP
Na użytkownika Ogranicza całkowitą liczbę żądań we wszystkich kontach dla pojedynczego tokena
Na konto Ogranicza żądania kierowane do pojedynczego konta handlowego

Przekroczono limit częstotliwości

Gdy limit częstotliwości zostanie przekroczony, API zwraca 429 Too Many Requests z nagłówkiem Retry-After.


Obsługa błędów

Gdy żądanie nie powiedzie się, API zwraca odpowiedź błędu JSON.

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

Kody błędów

Kod HTTP Opis
INVALID_REQUEST 400 Nieprawidłowe lub brakujące parametry żądania
UNAUTHORIZED 401 Nieprawidłowy, wygasły lub brakujący token
TRADING_BAD_VOLUME 400 Wolumen jest nieprawidłowy (poniżej minimum lub przekracza pozycję)
NOT_ENOUGH_MONEY 422 Niewystarczający dostępny depozyt zabezpieczający
SYMBOL_NOT_FOUND 404 Identyfikator symbolu nie istnieje
MARKET_CLOSED 409 Rynek dla symbolu jest obecnie zamknięty
MAINTENANCE 503 Serwer handlowy jest w trybie konserwacji
TIMEOUT 504 Serwer handlowy nie odpowiedział na czas
GATEWAY_RATE_LIMIT 429 Przekroczono limit częstotliwości – zobacz nagłówek Retry-After

Obsługa limitu częstotliwości

Gdy otrzymasz odpowiedź 429, nagłówek Retry-After i pole retryAfter wskazują, ile sekund musisz odczekać przed wysłaniem kolejnego żądania.