Hoe de API werkt

API-eindpunt

Al je API-verzoeken moeten naar het volgende API-eindpunt:

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

Ondersteunde Request Methoden

GET Gebruik GET om een resource of een set resources op te halen (zoals een lijst van al je trading bots, je huidige orders, of een lijst van je meest recente transacties). Deze methode is veilig en idempotent.

POST Gebruik POST om een resource aan te maken. Bijvoorbeeld: plaats een nieuwe koop/verkoop order, maak een nieuw trading bot.

PATCH Gebruik PATCH om een resource bij te werken. Bijvoorbeeld: start of stop je trading bot, of update je persoonlijke gegevens. Met deze methode hoef je alleen de velden op te geven die je wilt aanpassen in de request body.

DELETE Gebruik VERWIJDEREN als je een resource wilt verwijderen.

Verzoek parameters

Er zijn vier type parameters die we in onze API gebruiken: path, query string, header en request body parameters. Request body parameters zijn data die in de JSON request body worden gepost voor POST en PATCH requests. Header parameters zijn uiteraard parameters die in de header moeten worden gepost. Meer info over de Header, Path en Query string parameters vind je hieronder.

Header Parameters

Elke aanvraag aan onze API moet geauthenticeerd worden door de volgende waarden in de header te plaatsen:

  • access-token - Je access token ontvangen via de Oauth2-authenticatie.

Padparameters

Dit zijn parameters die worden meegegeven in de URI van de endpoint. Bijvoorbeeld de GET Hopper endpoint:

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

Om een tradingbot op te halen via zijn unieke ID, moet je de ID-waarde vervangen in de {hopper_id} placeholder. Bijvoorbeeld, om een bot met ID 37 op te halen, vraag je de volgende URL op:

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

Sommige endpoints vereisen meerdere parameters. Bijvoorbeeld als je een specifieke order van de vorige Hopper wilt ophalen, moet je de volgende URL aanroepen:

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

En door de parameters te vervangen door de Hopper- en Order-ID krijg je:

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

Voor een gedetailleerde lijst van parameters die in elke API-endpoint vereist zijn, verwijs je naar onze API-referentiegids.

Querystring-parameters

We gebruiken deze parameters in GET-verzoeken voor filtering en/of paginering van data. Deze parameters staan niet in de pad, maar als een set waarden gescheiden door het '&' teken in de URL-string.

Bijvoorbeeld om de Bitcoin kooporders van een trading bot op te halen, kun je de Hopper Order endpoint zo aanroepen:

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

Door onze API-referentie te bekijken, zie je dat in dit geval de parameter order_type de waarden 'koop' of 'verkoop' kan aannemen, en de coin-parameter kan elke kleine cryptovaluta-muntcode zijn.

Antwoordformaat

Alle antwoorden zijn in de vorm van een JSON-object. Dus, het MIME-type dat je in al onze antwoorden vindt is application/json. Raadpleeg onze API-referentie documentatie voor het specifieke JSON-antwoordformaat in de body van elke verzoek en antwoord.

HTTP-antwoordcodes

Wij gebruiken de responsstatuscodes zoals gedefinieerd in de RFC 2616 en RFC 6585 standaarden..

200 - OK Vraag succesvol verwerkt. De klant krijgt het resultaat van de vraag terug in de body en headers van het antwoord.

201 – Created De vraag is geaccepteerd en er is een nieuwe resource aangemaakt.

202 – Accepted De vraag is geaccepteerd voor verwerking, maar de verwerking is nog niet voltooid.

204 – No Content De server heeft de vraag succesvol verwerkt, maar er wordt geen inhoud geretourneerd.

304 – Not Modified De resource is niet gewijzigd sinds de versie die gespecificeerd was in de request headers If-Modified-Since of If-None-Match. Je hoeft de resource niet opnieuw te verzenden, aangezien de klant nog een eerder gedownloade kopie heeft.

HTTP-foutcodes

400 – Bad Request De server kan of wil de aanvraag niet verwerken vanwege een duidelijke fout van je client. De berichtinhoud zal de foutinformatie terugsturen.

400 – Bad Request De server kan of wil de aanvraag niet verwerken vanwege een duidelijke fout van de client. De berichtinhoud retourneert de foutinformatie.

401 – Unauthorized De verzoek vereist gebruikersauthenticatie en is afgewezen vanwege ongeldige of ontbrekende API-verificatiegegevens.

403 – Forbidden De server heeft de aanvraag begrepen, maar weigert deze uit te voeren omdat je er geen toegang toe hebt of je referenties zijn ingetrokken.

404 – Not found De gevraagde resource kon niet worden gevonden. Deze fout kan te wijten zijn aan een tijdelijke of permanente conditie.

405 – Method Not Allowed De gebruikte request-methode wordt niet ondersteund door het opgevraagde API-eindpunt.

405 – Method Not Allowed De gebruikte request-methode wordt niet ondersteund door het opgevraagde API-eindpunt.

429 – Too Many Request De gebruiker heeft de limiet voor API-verzoeken overschreden. Bekijk de geretourneerde Retry-After header om te zien hoeveel seconden je moet wachten voor een nieuw verzoek. Raadpleeg onze sectie over verzoeklimieten voor de huidige verzoeklimieten.

500 – Internal Server Error Er is een fout opgetreden op onze server die je verzoek belemmert. Onze developers krijgen een week lang geen koffie als eerste waarschuwing...

503 – Service Unavailable Onze servers hebben mogelijk een probleem en kunnen je verzoek niet verwerken.

Foutmeldingen

Wanneer de API een foutcode retourneert, plakt 'ie een JSON-object met de beschrijving van de fout in de body. Een foutmelding ziet er ongeveer zo uit:

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

Limieten

Onze API heeft een verzoeklimiet om de bandbreedte-resources eerlijk te verdelen onder alle gebruikers. De huidige limieten zijn 2 verzoeken per seconde per gebruiker, behalve bij het plaatsen van kooporders. Bij kooporders mag je maximaal één order plaatsen per 8 seconden.

Als je de beschikbare verzoeken per seconde overschrijdt, krijg je een 429 fout antwoordcode. Kijk naar de Retry-After header in het antwoord, die aangeeft hoeveel seconden je moet wachten voordat je een nieuw verzoek kunt sturen.