Jak działa API

Koniec punktu API

Wszystkie żądania API powinny być wysyłane do następującego punktu końcowego API:

https://api.cryptohopper.com/v1/

Obsługiwane Metody Żądań

GET Użyj GET, by pobrać zasób lub zestaw zasobów (np. listę wszystkich botów handlowych, bieżące zlecenia lub listę ostatnich transakcji). Ta metoda jest bezpieczna i idempotentna.

POST Użyj POST do utworzenia zasobów. Na przykład: zmień nowe zlecenie kupna/sprzedaży, stwórz nowego bota handlowego.

PATCH Użyj PATCH do zaktualizowania zasobów. Na przykład: uruchom lub zatrzymaj swojego bota handlowego, lub zaktualizuj swoje dane osobowe. Dzięki temu metodzie musisz podać tylko pola, które chcesz zmodyfikować w ciele żądania.

DELETE Użyj USUŃ, gdy chcesz usunąć zasób.

Parametry żądania

Dostępne są cztery rodzaje parametrów wykorzystywanych w naszej API: ścieżka, ciąg zapytania, nagłówek i ciało żądania. Parametry ciała żądania to dane przesyłane w ciele żądania JSON dla żądań POST i PATCH. Parametry nagłówka to oczywiście parametry, które muszą być umieszczone w nagłówku. Więcej informacji o parametrach nagłówka, ścieżki i ciągu zapytania znajdziesz poniżej.

Parametry nagłówka

Każdy żądanie do naszej API wymaga uwierzytelnienia poprzez wysłanie następujących wartości w nagłówku:

  • access-token - Twój token dostępu otrzymano z uwierzytelnienia Oauth2

Parametry ścieżki

To są parametry podawane w URI punktu końcowego. Na przykład punkt końcowy GET Hopper:

https://api.cryptohopper.com/v1/hopper/{hopper_id}

Aby pobrać bota handlowego po jego unikalnym ID, musisz zastąpić jego wartość ID w polu zastępczym {hopper_id}. Na przykład, aby pobrać bota handlowego o ID 37, potrzebujesz takiego adresu URL:

https://api.cryptohopper.com/v1/hopper/37

Niektóre punkty końcowe wymagają wielu parametrów. Na przykład, jeśli chcesz zwrócić konkretne zlecenie z poprzedniego Hoppera, musisz wywołać następujący adres URL:

https://api.cryptohopper.com/v1//hopper/{hopperId}/order/{orderId}

I zastępując parametry Hopperem i ID zlecenia otrzymasz:

https://api.cryptohopper.com/v1//hopper/37/order/231

Aby uzyskać szczegółową listę parametrów wymaganych w każdym punkcie końcowym API, zapoznaj się z naszą dokumentacją API.

Parametry zapytania

Używamy takich parametrów w żądaniach GET do filtrowania i/lub paginacji danych. Parametry te nie są określone w ścieżce, ale jako zestaw wartości oddzielonych znakiem '&' w ciągu URL.

Na przykład, aby pobrać zlecenia kupna Bitcoinów dla robota handlowego, możesz wywołać punkt końcowy Hopper Order w ten sposób:

https://api.cryptohopper.com/v1/hopper/37/order/?order_type=buy&coin=btc
        

Patrząc na naszą referencję API, widzisz, że w tym przypadku parametr order_type może przyjmować wartości 'kup' lub 'sprzedaj', a parametr coin może być dowolnym kodzie kryptowaluty w małej literze.

Format odpowiedzi

Wszystkie odpowiedzi są w formacie obiektu JSON. Zatem typ MIME w naszych odpowiedziach to application/json. Sprawdź naszą dokumentację referencji API, aby dowiedzieć się o specyficznym formacie JSON odpowiedzi w treści każdego żądania i odpowiedzi.

Kod odpowiedzi HTTP

Używamy kodów statusu odpowiedzi zdefiniowanych w standardach RFC 2616 i RFC 6585..

200 - OK Poprawny żądanie. Klient dostaje wynik żądania w treści i nagłówkach odpowiedzi.

201 – Created Żądanie zaakceptowane i utworzono nowy zasób.

202 – Accepted Żądanie zaakceptowane do przetworzenia, ale przetwarzanie nie zostało zakończone.

204 – No Content Serwer poprawnie przetworzył żądanie, ale nie zwraca żadnej zawartości.

304 – Not Modified Zasób nie został zmodyfikowany od wersji określonej w nagłówkach żądania If-Modified-Since lub If-None-Match. Nie ma potrzeby ponownego przesyłania zasobu, ponieważ klient ma wciąż pobraną kopię.

Kody błędów HTTP

400 – Bad Request Serwer nie może lub nie chce przetworzyć żądania z powodu widocznego błędu klienta. Treść wiadomości zwróci informacje o błędzie.

400 – Bad Request Serwer nie może lub nie chce przetworzyć żądania z powodu widocznego błędu klienta. Treść komunikatu zwróci informacje o błędzie.

401 – Unauthorized Żądanie wymaga uwierzytelnienia użytkownika i zostało odrzucone z powodu nieprawidłowych lub brakujących danych uwierzytelniających API.

403 – Forbidden Serwer zrozumiał żądanie, ale odmawia jego realizacji, bo nie masz do niego dostępu lub Twoje uprawnienia zostały cofnięte.

404 – Not found Nie znaleziono żądanego zasobu. Błąd ten może być spowodowany tymczasowym lub trwałą awarią.

405 – Method Not Allowed Nieobsługiwana metoda żądania przez żądany punkt końcowy API.

405 – Method Not Allowed Nieobsługiwana metoda żądania przez żądany punkt końcowy API.

429 – Too Many Request Użytkownik przekroczył limit żądań API. Sprawdź nagłówek Retry-After, aby dowiedzieć się, ile sekund musisz poczekać, aby wysłać nowe żądanie. Zajrzyj do sekcji limitów żądań, aby poznać aktualne limity.

500 – Internal Server Error Problem z naszym serwerem uniemożliwił obsłużenie twojego żądania. Nasi deweloperzy stracą kawę na tydzień jako pierwsze ostrzeżenie...

503 – Service Unavailable Nasze serwery mogą mieć problem i nie będą w stanie zrealizować twojego żądania.

Wiadomości o błędach

Kiedy API zwróci kod błędu, dołączy obiekt JSON z opisem błędu w swoim ciele. Komunikat błędu będzie wyglądał mniej więcej tak:

{
            "status": 400,
            "error": 1,
            "message": "Missing required request parameters: [access_token]"
        }
        

Limity

Nasza API ma limit dotyczący szybkości żądań, aby zapewnić wszystkim użytkownikom równy dostęp do zasobów przepustowości. Aktualne limity to 2 żądania na sekundę na użytkownika, z wyjątkiem zleceń kupna. W przypadku zleceń kupna możesz umieścić maksymalnie jedno zlecenie co 8 sekund.

Jeśli przekroczysz limit żądań na sekundę, otrzymasz kod odpowiedzi 429. Sprawdź nagłówek Retry-After w odpowiedzi, który zawiera czas oczekiwania w sekundach, zanim będziesz mógł wysłać kolejne żądanie.