Come funziona l'API
Endpoint API
Tutti i tuoi richieste API devono essere effettuate al seguente endpoint API:
https://api.cryptohopper.com/v1/
Metodi di Richiesta Supportati
GET Utilizza GET per recuperare una risorsa o un insieme di risorse (come un elenco di tutti i tuoi bot di trading, gli ordini attuali o un elenco delle tue ultime transazioni). Questo metodo è sicuro e idempotente.
POST Utilizza POST per creare una risorsa. Ad esempio: effettua un nuovo ordine di acquisto/vendita, crea un nuovo bot di trading.
PATCH Utilizza PATCH per aggiornare una risorsa. Ad esempio: avvia o ferma il tuo bot di trading, oppure aggiorna i tuoi dati personali. Con questo metodo, devi solo fornire i campi che desideri modificare nel corpo della richiesta.
DELETE Usa ELIMINA quando vuoi eliminare una risorsa.
Parametri della richiesta
Ci sono quattro tipi di parametri che utilizziamo nella nostra API: percorso, stringa di query, header e parametri del corpo della richiesta. I parametri del corpo della richiesta sono dati pubblicati nel corpo della richiesta JSON per le richieste POST e PATCH. I parametri header sono ovviamente parametri che devono essere pubblicati nell'header. Maggiori informazioni sui parametri Header, Percorso e Stringa di query sono disponibili qui sotto.
Parametri Header
Ogni richiesta al nostro API deve essere autenticata inviando i seguenti valori nell'header:
- access-token - Il tuo token di accesso ricevuto con l'autenticazione Oauth2
Parametri di percorso
Questi sono i parametri forniti nell'URI dell'endpoint. Ad esempio, l'endpoint GET Hopper:
https://api.cryptohopper.com/v1/hopper/{hopper_id}
Per recuperare un bot di trading tramite il suo ID univoco, devi sostituire il valore del suo ID nel placeholder {hopper_id}. Ad esempio, per recuperare un bot di trading con ID 37, richiedi il seguente URL:
https://api.cryptohopper.com/v1/hopper/37
Alcuni endpoint richiedono più parametri. Ad esempio, se desideri restituire un ordine specifico dal Hopper precedente, devi chiamare il seguente URL:
https://api.cryptohopper.com/v1//hopper/{hopperId}/order/{orderId}
E sostituendo i parametri con l'ID Hopper e l'ID Ordine otterrai:
https://api.cryptohopper.com/v1//hopper/37/order/231
Per un elenco dettagliato dei parametri richiesti in ogni endpoint API, consulta la nostra guida di riferimento API.
Parametri Query String
Utilizziamo questi tipi di parametri nelle richieste GET per filtrare e/o pagina,re i dati. Questi parametri non sono specificati nel percorso, ma come un insieme di valori separati dal carattere ‘&’ nella stringa dell'URL.
Ad esempio, per recuperare gli ordini di acquisto Bitcoin di un bot di trading, puoi chiamare l'endpoint Hopper Order così:
https://api.cryptohopper.com/v1/hopper/37/order/?order_type=buy&coin=btc
Guardando la nostra referenza API, puoi vedere che, in questo caso, il parametro order_type può assumere i valori ‘buy’ o ‘sell’, e il parametro coin può essere qualsiasi codice di criptovaluta in minuscolo.
Formato Risposta
Tutti i riscontri sono in formato oggetto JSON. Quindi, il tipo MIME che trovi in tutte le nostre risposte sarà application/json. Consulta la nostra documentazione di riferimento API per il formato JSON specifico del corpo di ogni richiesta e risposta.
Codici di risposta HTTP
Utilizziamo i codici di stato di risposta definiti dagli standard RFC 2616 e RFC 6585..
200 - OK Richiesta andata a buon fine. Il cliente riceve il risultato della richiesta nel body e negli header della risposta.
201 – Created La richiesta è stata accettata e una nuova risorsa è stata creata.
202 – Accepted La richiesta è stata accettata per l'elaborazione, ma l'elaborazione non è stata completata.
204 – No Content Il server ha elaborato correttamente la richiesta, ma non restituisce alcun contenuto.
304 – Not Modified La risorsa non è stata modificata da quando la versione specificata dagli header della richiesta If-Modified-Since o If-None-Match. Non c'è bisogno di ritrasmettere la risorsa dato che il cliente possiede ancora una copia scaricata in precedenza.
Codici di Errore HTTP
400 – Bad Request Il server non può o non vuole elaborare la richiesta a causa di un evidente errore del client. Il corpo del messaggio restituirà le informazioni sull'errore.
400 – Bad Request Il server non può o non vuole elaborare la richiesta a causa di un evidente errore del client. Il corpo del messaggio restituirà le informazioni sull'errore.
401 – Unauthorized La richiesta richiede l'autenticazione dell'utente e è stata rifiutata a causa di credenziali API non valide o mancanti.
403 – Forbidden Il server ha capito la richiesta, ma si rifiuta di esaudirla perché non sei autorizzato ad accedervi o perché le tue credenziali sono state revocate.
404 – Not found La risorsa richiesta non è stata trovata. Questo errore può dipendere da una condizione temporanea o permanente.
405 – Method Not Allowed Il metodo di richiesta utilizzato non è supportato dall'endpoint API richiesto.
405 – Method Not Allowed Il metodo di richiesta utilizzato non è supportato dall'endpoint API richiesto.
429 – Too Many Request L'utente ha superato il limite di velocità delle richieste API. Controlla l'header Retry-After restituito per sapere quanti secondi aspettare per una nuova richiesta. Consulta la nostra sezione sui limiti di richiesta per conoscere i limiti attuali.
500 – Internal Server Error Un errore sul nostro server impedisce di rispondere alla tua richiesta. I nostri sviluppatori si vedranno togliere il caffè gratis per una settimana, come primo avvertimento...
503 – Service Unavailable I nostri server potrebbero avere un problema e non saranno in grado di soddisfare la tua richiesta.
Messaggi di errore
Ogni volta che l'API restituisce un codice di errore, allegherà un oggetto JSON con la descrizione dell'errore nel suo corpo. Un messaggio di errore potrebbe avere questo aspetto:
{
"status": 400,
"error": 1,
"message": "Missing required request parameters: [access_token]"
}
Limiti di Tariffazione
La nostra API ha un limite di richiesta per distribuire equamente le risorse di banda a tutti gli utenti. I limiti attuali sono 2 richieste al secondo per utente, tranne per le ordinazioni di acquisto. In quel caso, il massimo numero di ordini di acquisto che possono essere piazzati è uno ogni 8 secondi.
Se superi il numero di richieste al secondo disponibili, riceverai un codice di risposta errore 429. Controlla l'intestazione Retry-After allegata alla risposta, che contiene il numero di secondi che devi attendere prima di poter effettuare un'altra richiesta.