Rozhraní Darwinex API vám umožní vytvářet vlastní metriky, aplikace nebo boty pro obchodování s DARWINy.
Table of contents
- Přehled
- Dokumentace a použití
- Refresh Token Grant Flow
- API Throttling
- Obecné kódy chyb API Handlers
- Často kladené otázky
- Jaký je rozdíl mezi Produktem a DARWINem?
- Který název produktu by měl být použit v rozhraní API?
- Kde najdu své ID účtu investora?
- Jak mohu odvolat přístupový token?
- K testování rozhraní API používám portál API, ale dostávám pouze zprávu „server neodpovídá“.
- Při pokusu o získání tokenu OAuth pro uživatele se zobrazují zprávy „OAuth application is not in active state“ / „invalid_client“.
1. Přehled
API Darwinex umožňuje uživatelům vytvářet vlastní obchodní aplikace nebo boty pro obchodování DARWINů na Darwinexu.
Rozhraní API lze používat v libovolném programovacím jazyce, pokud podporuje připojení a ověřování prostřednictvím webové služby RESTful.
V současné době se naše nabídka skládá z následujících rozhraní API:
- Darwin Info API: poskytuje nejnovější snímky i historické časové řady pro kotace DARWIN a investiční atributy.
- Cenové nabídky produktu API: Přístup k nabídkám produktů v reálném čase prostřednictvím rozhraní REST API.
- Product Websockets API: Předplatné WebSocket, pomocí něhož lze v reálném čase získat všechny aktualizace produktových nabídek.
- Investor Account Info API: načítá informace z vašeho účtu investora, jako jsou: aktuální stav, současné a minulé investice, otevřené/uzavřené obchody, provedené/zamítnuté/zrušené podmíněné příkazy atd.
- Darwin Trading API: poskytuje rozhraní pro správu investic DARWIN: nákup/prodej DARWINů, konfiguraci podmíněných příkazů, úpravu pákového efektu účtu atd.
2. Dokumentace a použití rozhraní API
Pro použití některého z dostupných rozhraní Darwinex API musí klienti nejprve získat platný přístupový token. Po jeho získání musí být vložen do hlavičky „Authorization“, aby bylo možné úspěšně provést volání libovolného rozhraní API. Taková hlavička Authorization obvykle vypadá takto:
{“Authorization”: “Bearer <your-access-token-string>”}
Přístupové tokeny lze získat na adrese darwinex.com/data/darwin-api. Pro získání přístupového tokenu se nabízejí dvě možnosti.
- Přístup pouze ke 3 datovým rozhraním API DARWIN (DARWIN Info API, DARWIN Quotes API, Quote Web Socket API). Tento přístupový token bude platný po dobu několika měsíců nebo do odvolání či regenerace tokenu.
- Požádejte o přístupové údaje ke všem rozhraním API, přičemž 2 rozhraní API pro investory (rozhraní API pro investorské účty, rozhraní API pro obchodování DARWIN) umožňují přístup k vašim investičním účtům DEMO nebo LIVE. S těmito pověřeními budou přístupná všechna rozhraní API. Přístupový token poskytnutý touto metodou bude platný pouze jednu hodinu, ale k obnovení tohoto tokenu lze použít tok udělování obnovovacích tokenů.
Dokumentaci s podrobnou technickou specifikací každého rozhraní API v naší nabídce najdete v obchodě Darwinex API Store - centrálním centru informací pro vývojáře používající rozhraní API.
Každý seznam rozhraní API ve službě Store má kartu „Konzola API“, která obsahuje seznam a popis dostupných metod. Informace zobrazené na kartě Konzola API vycházejí ze specifikace swagger 2.0.
Existují dvě hlavní prostředí: PRODUCTION a SANDBOX. Obě prostředí zobrazují skutečné informace o systémech DARWIN.
- Prostředí PRODUCTION umožňuje přístup k ŽIVÝM účtům investorů.
- Prostředí SANDBOX umožňuje přístup k DEMO investorským účtům.
Na první kartě Přehled jsou u každého rozhraní API uvedeny adresy URL, které se mají použít pro produkční prostředí a pro prostředí Sandbox.
Například:
https://api.darwinex.com/darwininfo
https://api.darwinex.com/darwininfo/1.0
Nejnovější verze jakéhokoli rozhraní API obvykle obsahuje výchozí adresu URL (bez čísla verze) a také adresu URL obsahující číslo verze. Při příchodu aktualizací jakéhokoli rozhraní API se číslo verze zvýší. V důsledku toho nemusí stávající přístupové tokeny zůstat platné pro novější verze rozhraní API a může být nutné vyžádat si pro ně nové přístupové tokeny. Abyste předešli neočekávaným problémům při používání rozhraní API, doporučuje se používat adresu URL s verzí, pro kterou je aplikace připravena.
All listed APIs can also be used directly via the API Console tab. Enter your access token in the “Set Request Header” text field at the beginning of the page, select the method to use, fill the corresponding fields and click on “Try It Out!”.
Kliknutím na tlačítko „Vyzkoušet!“ na této stránce po zadání přístupového tokenu skutečně odešlete požadavek LIVE (nejedná se pouze o test).
Zpráva o provedení také obsahuje příklad požadavku na metodu pomocí curl v terminálu.
Příklad:
curl -k -X GET "https://api.darwinex.com/darwininfo/1.5/products?status=ALL&page=0&per_page=50" -H "accept: application/json" -H "Authorization: Bearer <bearerToken>"
3. Refresh Token Grant Flow
Abyste mohli používat rozhraní DARWIN API po delší dobu, je třeba obnovit přístupový token pomocí toku Refresh Token Grant.
Přístupový token poskytnutý pro přístup k celé řadě rozhraní API je platný pouze po krátkou dobu. Abyste mohli využívat rozhraní API po delší časové období, je nutné token často obnovovat pomocí toku Refresh Token Grant.
Požadavek POST lze provést pomocí Postmanu, curlu, pythonu, R, Rustu nebo jazyka dle vlastního výběru.
Příklad v jazyce curl:
curl -k -d "grant_type=refresh_token&refresh_token=<refresh_token>" -H "Authorization: Basic Base64(<consumerKey>:<consumerSecret>)" -H "Content-Type: application/x-www-form-urlencoded" https://api.darwinex.com/token
Žádost musí obsahovat token pro obnovení, klíč spotřebitele a tajemství spotřebitele.
Ty jsou uvedeny na stránce generování přístupového tokenu.
Všimněte si, že klíč spotřebitele a jeho tajemství musí být odeslány v kódování base64. Kódovaný text by měl být: consumerKey:consumerSecret.
Například v případě consumerKey:
6ZuXLMou7gtnfQwPW2PkVpnwNoMa
... a consumerSecret:
sYuBhpNtfIFaETYzYtEOfmurNi4a
... zakódovaný text je:
Nlp1WExNb3U3Z3RuZlF3UFcyUGtWcG53Tm9NYTpzWXVCaHBOdGZJRmFFVFl6WXRFT2ZtdXJOaTRh
V návaznosti na náš příklad curl by požadavek vypadal následovně:
curl -k -d "grant_type=refresh_token&refresh_token=bc8232b9-934f-374f-a61f-b331aa5c8e96" -H "Authorization: Basic Nlp1WExNb3U3Z3RuZlF3UFcyUGtWcG53Tm9NYTpzWXVCaHBOdGZJRmFFVFl6WXRFT2ZtdXJOaTRh” -H "Content-Type: application/x-www-form-urlencoded" https://api.darwinex.com/token
A zde je příklad odpovědi:
{"access_token":"cf61ef76-222e-3359-b940-d8d474d6a160","refresh_token":"a5f17ab4-442f-335a-ae96-cdf356a0d97c","scope":"openid",...,"token_type":"Bearer","expires_in":3600}
4. API Throttling
Na používání rozhraní API se vztahují následující omezení, která se však mohou časem změnit. V případě dosažení některého z limitů budou následující požadavky až do následující minuty odmítnuty:
Per User | Each user is allowed to 50 requests / minute in total. |
DARWIN Info API | 10 requests / minute |
DARWIN Quotes API | 1 request / minute |
DARWIN Trading API | 20 requests / minute |
Investor Account Info API | 20 requests / minute |
Kromě toho existují některá další globální omezení, která mohou být dosažena používáním mnoha různých koncových bodů/uživatelů současně.
5. Obecné kódy chyb API Handlers
Při pokusu o použití rozhraní API může náš správce rozhraní API vrátit následující obecné chybové kódy. Podrobnosti a formát těchto chyb budou poskytnuty ve formátu JSON nebo XML v závislosti na hlavičce „accept“ uvedené v požadavku. (Příklad: „accept: application/json“).
Error Code | Error | Description |
700700 | API Blocked | This API has been blocked temporarily. Please try again later or contact info@darwinex.com. |
900800 | Message throttled out | The maximum number of requests that can be made to the API within a designated time period is reached and the API is throttled for the user. |
900801 | Hard limit exceeded | Hard throttle limit has been reached |
900802 | Resource level throttle out | Message is throttled out because resource level has exceeded |
900803 | Application level throttle out | Message is throttled out because application level is exceeded |
900804 | Subscription level throttled out | Message throttled out due to throttling limit reached for your account. |
900805 | Message blocked |
Accessing an API which is blocked on user, IP, application, or API Context. |
900806 | Custom policy throttled out |
Message throttled out due to exceeding the limit configured through one of our custom throttling policy rules. |
900807 | Message throttled out |
Messaged throttled out because of exceeding the burst control/rate limit (requests per second) for your account. |
900900 | Unclassified authentication failure | An unspecified error has occurred |
900901 | Invalid credentials | Invalid authentication information provided. |
900902 | Missing credentials | No authentication information provided. Check the Authorization: Bearer header is provided in the request. |
900905 | Incorrect access token type is provided | The access token type used is not supported when invoking the API. The supported access token types are application and user accesses tokens. |
900906 | No matching resource found in the API for the given request | A resource with the name in the request can not be found in the API. |
900907 | The requested API is temporarily blocked | The access for your user might be blocked. Contact info@darwinex.com for info and request unblocking of the user. |
900908 | Resource forbidden | The user invoking the API has not been granted access to the required resource. |
900909 | The subscription to the API is inactive | The status of the API has changed to an inaccessible/unavailable state. |
900910 | The access token does not allow you to access the requested resource | Can not access the required resource with the provided access token. Check the valid resources that can be accessed with this token. |
102511 | Incomplete payload | The payload sent with the request is too large and the client is unable to keep the connection alive until the payload is completely transferred to the API Gateway |
6. Často kladené otázky
a. Jaký je rozdíl mezi Produktem a DARWINem?
V současné době lze tyto termíny používat zaměnitelně a označují totéž: DARWIN.
b. Který název produktu má být použit v rozhraní API?
Krátký název produktu (příklad: „ULI“) lze použít ve většině metod rozhraní API.
Přesto se doporučuje používat dlouhou verzi názvu produktu (příklad: „ULI.4.2“).
Tuto dlouhou verzi názvu produktu lze nalézt v úplném výpisu URL společnosti DARWIN.
Například https://www.darwinex.com/darwin/LVS.4.20, kde „LVS.4.20“ je úplný název produktu.
Kroky, které je třeba provést, abyste získali tuto adresu URL pro jakýkoli produkt DARWIN, pro který máte zkrácený název (např. LVS):
- Přihlaš se https://www.darwinex.com.
- Klikněte na tlačítko Hledat.
- Napište zkrácený název produktu a vyberte produkt ze seznamu..
- The details about the DARWIN are displayed. On this page, get the long product name from the URL: https://www.darwinex.com/darwin/ULI.4.2 → ULI.4.2 is the long product name.
c. Kde najdu své ID účtu investora?
ID účtu investora identifikuje účet uživatele, který má být použit pro obchodování s DARWIN. Pokud je například požadován nebo resetován nový demo účet, mělo by být použito nové ID účtu investora pro demo účet.
ID účtu investora získáte pomocí metody GET /investoraccounts z rozhraní API pro informace o účtu investora.
d. Jak mohu odvolat přístupový token?
Mohou nastat scénáře, kdy byl přístupový token vystaven nezabezpečeně nebo kdy je třeba přístup jednoduše zrušit.
U tokenu poskytnutého prostřednictvím webové stránky lze možnost odvolání tokenu nalézt na adrese https://www.darwinex.com/data/darwin-api.
In case you are using OAuth 2.0 authentication, a request can be sent to revoke the access token, containing the consumer key and the consumer secret.
Mohou nastat scénáře, kdy byl přístupový token vystaven nezabezpečeně nebo kdy je třeba přístup jednoduše zrušit.
U tokenu poskytnutého prostřednictvím webové stránky lze možnost odvolání tokenu nalézt na adrese https://www.darwinex.com/data/darwin-api.
V případě, že používáte ověřování OAuth 2.0, lze odeslat žádost o odvolání přístupového tokenu, která obsahuje klíč spotřebitele a tajemství spotřebitele.
curl -X POST --basic -u "<consumer_key:consumer_secret>" -H "Content-Type: application/x-www-form-urlencoded;charset=UTF-8" -k -d "token=<access_token>&token_type_hint=access_token" https://api.darwinex.com/oauth2/revoke
Pokud používáte typ ověření Direct Access Token, obraťte se na náš tým podpory (info@darwinex.com) , který příslušný přístupový token zruší a vygeneruje nový.
e. I’m using the API Portal to test the APIs but all I get is “no response from server” K testování rozhraní API používám portál API, ale dostávám pouze zprávu „no response from server“.
Nejprve se ujistěte, že byl do vstupního textového pole pro autorizaci zadán platný přístupový token.
Poté se po kliknutí na tlačítko „Vyzkoušet!“ pokuste otevřít adresu URL zobrazenou v části metody Curl.
Mělo by to vypadat nějak jako https://api.darwinex.com/investoraccountinfo.
Zkuste tuto url adresu otevřít v jiné záložce webového prohlížeče. Mohlo by dojít k problémům s certifikátem použitým při handshake spojení nebo k problémům s nainstalovaným firewallem či antivirem.
Pokud máte stále problémy, kontaktujte prosím náš tým podpory (info@darwinex.com).
f. Při pokusu o získání tokenu OAuth pro uživatele se zobrazují zprávy „OAuth application is not in active state“ / „invalid_client“.
Je možné, že naši správci budou muset aktualizovat konfiguraci aplikace.
Kontaktujte náš tým na adrese info@darwinex.com.
Konfiguraci aplikace možná budou muset aktualizovat naši správci.