Wie die API funktioniert

API-Endpoint

Alle deine API-Anfragen sollten an den folgenden API-Endpoint gerichtet werden:

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

Unterstützte Request-Methoden

GET Verwende GET, um eine Ressource oder eine Ressourcensammlung (z.B. eine Liste aller deiner Trading-Bots, deine aktuellen Orders oder eine Liste deiner letzten Transaktionen) abzurufen. Diese Methode ist sicher und idempotent.

POST Nutze POST, um Ressourcen zu erstellen. Zum Beispiel: einen neuen Buy/Sell-Order platzieren, einen neuen Trading-Bot erstellen.

PATCH Mit PATCH ein Ressourcen-Update durchführen. Zum Beispiel: deinen Trading-Bot starten oder stoppen, oder deine persönlichen Daten aktualisieren. Mit dieser Methode brauchst du nur die gewünschten Felder im Request-Body anzugeben.

DELETE Benutze LÖSCHEN, wenn du eine Ressource löschen möchtest.

Anforderungen an die Parameter

Es gibt vier Parametertypen, die wir in unserer API verwenden: Pfad-, Query-String-, Header- und Request-Body-Parameter. Request-Body-Parameter sind Daten, die im JSON-Request-Body für POST- und PATCH-Requests gepostet werden. Header-Parameter sind selbstverständlich Parameter, die im Header gepostet werden müssen. Weitere Infos zu den Header-, Pfad- und Query-String-Parametern findest du unten.

Header-Parameter

Jeder API-Request muss mit den folgenden Werten im Header authentifiziert werden:

  • access-token - Dein Zugriffstoken wurde per Oauth2-Authentifizierung erhalten.

Pfadparameter

Das sind Parameter, die im URI des Endpunkts übergeben werden. Beispielsweise der GET Hopper-Endpoint:

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

Um einen Trading-Bot über dessen eindeutige ID abzurufen, musst du den ID-Wert im Platzhalter {hopper_id} ersetzen. Beispielsweise, um einen Bot mit der ID 37 abzurufen, würdest du die folgende URL benötigen:

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

Einige Endpunkte benötigen mehrere Parameter. Beispielsweise, wenn du einen bestimmten Order vom vorherigen Hopper zurückgeben möchtest, musst du die folgende URL aufrufen:

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

Und durch Ersetzen der Parameter mit der Hopper- und Order-ID erhältst du:

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

Für eine detaillierte Liste der benötigten Parameter in jedem API-Endpoint, schau je bitte in den API-Referenz.

Abfrageparameter

Wir verwenden diese Parametertypen in GET-Anfragen zur Filterung und/oder Paginierung von Daten. Diese Parameter sind nicht im Pfad spezifiziert, sondern als Satz von Werten, die durch das Zeichen '&' in der URL-Zeichenkette getrennt sind.

Zum Beispiel, um die Bitcoin-Kauf-Orders eines Trading-Bots abzurufen, könntest du den Hopper Order-Endpunkt so aufrufen:

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

In der API-Referenz siehst du, dass der Parameter order_type hier entweder 'buy' oder 'sell' annehmen kann und der coin-Parameter irgendeinen Kleinbuchstaben-Kryptowährungs-Coin-Code sein kann.

Antwortformat

Alle Antworten liegen im JSON-Format vor. Daher ist der MIME-Typ aller Antworten application/json. Bitte verweise auf unsere API-Referenz-Dokumentation für das jeweilige JSON-Antwortformat im Body jeder Anfrage und Antwort.

HTTP-Antwortcodes

Wir verwenden die von den RFC 2616 und RFC 6585 Standards definierten Antwortstatuscodes..

200 - OK Erfolgreiche Anfrage. Je Client erhält die Ergebnisdaten in der Antwort-Body und den Headers.

201 – Created Die Anfrage wurde angenommen und eine neue Ressource erstellt.

202 – Accepted Die Anfrage wurde zum Verarbeiten angenommen, die Verarbeitung ist aber noch nicht abgeschlossen.

204 – No Content Der Server hat die Anfrage erfolgreich bearbeitet, aber keine Inhalte zurückgegeben.

304 – Not Modified Die Ressource wurde seit der im Anfrage-Header If-Modified-Since oder If-None-Match angegebenen Version nicht verändert. Es ist nicht nötig, die Ressource erneut zu übertragen, da der Client eine zuvor heruntergeladene Kopie besitzt.

HTTP-Fehlercodes

400 – Bad Request Der Server kann oder will die Anfrage aufgrund eines offensichtlichen Client-Fehlers nicht verarbeiten. Die Nachrichtenkörper liefert die Fehlerinformationen.

401 – Unauthorized Die Anfrage erfordert die Benutzerauthentifizierung und wurde aufgrund ungültiger oder fehlender API-Credentials abgelehnt.

403 – Forbidden Der Server hat die Anfrage verstanden, lehnt die Ausführung aber ab, weil du keinen Zugriff hast oder deine Zugangsdaten widerrufen wurden.

404 – Not found Die angeforderte Ressource konnte nicht gefunden werden. Dieser Fehler kann auf eine temporäre oder permanente Bedingung zurückzuführen sein.

405 – Method Not Allowed Die verwendete Anfragemethode wird vom angefragten API-Endpoint nicht unterstützt.

429 – Too Many Request Du hast zu viele Anfragen gesendet. Die Fehlermeldung sagt, wie viele Sekunden du bis zu einer neuen Anfrage warten musst. Die aktuellen Limits findest du im Abschnitt Rate Limits.

500 – Internal Server Error Ein Fehler auf unserem Server verhindert die Bearbeitung deiner Anfrage. Unsere Entwickler erhalten erst einmal eine Woche lang keinen Kaffee als erste Verwarnung...

503 – Service Unavailable Unsere Server könnten ein Problem haben und können deine Anfrage nicht erfüllen.

Fehlermeldungen

Wenn die API einen Fehlercode zurückgibt, fügt sie ein JSON-Objekt mit der Fehlerbeschreibung in den Body an. Ein Fehlermeldung sieht so aus:

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

Limits

Die API begrenzt, wie viele Anfragen deine App mit einem Zugriffstoken stellen kann: 30 Anfragen pro Minute und höchstens 1 Anfrage pro Sekunde. Eine Order platzieren oder eine Position verkaufen geht 1-mal alle 8 Sekunden, Backtests eines Hoppers 1-mal alle 2 Sekunden.

Wenn du ein Limit überschreitest, erhältst du einen 429-Fehler mit einer Meldung, wie viele Sekunden du bis zur nächsten Anfrage warten musst.

Rate Limits & Fehler