Luno-API

Ontwikkel aangepaste applicaties of integreer betalingen met onze krachtige Bitcoin-API

Met de Luno-API kan je:

  • Huidige en historische marktgegevens van Bitcoin en Ethereum raadplegen
  • Handelsorder indienen en orderstatus bekijken
  • Bitcoin en Ethereum kopen en verkopen
  • Bitcoin en Ethereum versturen en ontvangen
  • Adressen voor Bitcoin- en Ethereum-portemonnee genereren

De Luno-API maakt Bitcoin en Ethereum voor iedereen beschikbaar.

Gebruik altijd HTTPS wanneer je de API aanroept. Niet-TLS HTTP-verzoeken kunnen foutmelding 403 opleveren. Door geen TLS-verzoeken te gebruiken, kunnen je authenticatiegegevens uitlekken.

Zorg dat jouw klant het SSL-certificaat van de server valideert. Veel bibliotheken (zoals urllib2 in Python2) voeren standaard geen controle uit op servercertificaten. Wanneer het certificaat van de server niet wordt geverifieerd, is je aanvraag kwetsbaar voor man-in-the-middle-aanvallen.

Tijdstempels worden altijd als een geheel getal in milliseconden weergegeven sinds de UTC-tijdszone (een Unix-tijdsaanduiding).

Prijzen en volumes worden altijd als decimale strings weergegeven, zoals "123.3432". We gebruiken strings in plaats van floats om de nauwkeurigheid te waarborgen.

Parameters voor POST-aanroepen worden in de vorm van een gecodeerde URL verstuurd (application/x-www-form-urlencoded).

Voor aanroepen naar de Marktgegevens-API’s geldt een frequentielimiet van 1 aanroep per seconde per IP-adres. Voor alle overige API-aanroepen geldt een frequentielimiet van 1 aanroep per seconde per klant. De frequentiebeperking voor API-aanroepen staan clusters van maximaal vijf opeenvolgende aanroepen toe. Wanneer de limiet wordt overschreden, wordt de HTTP-foutmelding 429 geretourneerd.

De Go-bibliotheek is de aanbevolen manier om naar de API te gaan: bekijk dit op GitHub.

De volgende bibliotheken werden geïmplementeerd door derden of worden niet langer actief ontwikkeld en worden hier voor het gemak weergegeven. Er wordt door Luno geen ondersteuning voor deze geleverd en ze zijn mogelijk vervallen. We raden aan om de code grondig na te kijken voordat je die aan een project toevoegt.

Aanroepen naar de Marktgegevens-API kunnen plaatsvinden zonder authenticatie. De geretourneerde gegevens kunnen tot 1 seconde lang in de cache worden opgeslagen. De Streaming-API kan worden gebruikt als er marktgegevens van lagere latentie nodig zijn.

Ticker

Toont de meest recente tickerindicators.

Definitie

GET https://api.mybitx.com/api/1/ticker

Argumenten

pair string verplicht Currency pair e.g. XBTZAR or ETHXBT

Voorbeeld verzoek

$ curl https://api.mybitx.com/api/1/ticker?pair=XBTZAR

Voorbeeld antwoord

{
  "ask": "1050.00",
  "timestamp": 1366224386716,
  "bid": "924.00",
  "rolling_24_hour_volume": "12.52",
  "last_trade": "950.00"
}

Alle tickers

Toont de meest recente tickerindicators van alle actieve Luno-handelsplatformen.

Definitie

GET https://api.mybitx.com/api/1/tickers

Voorbeeld verzoek

$ curl https://api.mybitx.com/api/1/tickers

Voorbeeld antwoord

{
  "tickers": [
    {
      "timestamp": 1405413955793,
      "bid": "6801.00",
      "ask": "6900.00",
      "last_trade": "6900.00",
      "rolling_24_hour_volume": "12.455579",
      "pair":"XBTZAR"
    },
    {
      "timestamp": 1405413955337,
      "bid": "5000.00",
      "ask":"6968.00",
      "last_trade": "6830.00",
      "rolling_24_hour_volume": "0.00",
      "pair":"XBTNAD"
    }
  ]
}

Orderboek

Toont een overzicht van de 100 eerste bied- en laatorders in het orderboek. Laatorders worden gesorteerd op prijs van laag naar hoog. Biedorders worden gesorteerd op prijs van hoog naar laag. Orders aan dezelfde prijs worden samengevoegd.

Definitie

GET https://api.mybitx.com/api/1/orderbook_top

Argumenten

pair string verplicht Currency pair e.g. XBTZAR or ETHXBT

Voorbeeld verzoek

$ curl https://api.mybitx.com/api/1/orderbook_top?pair=XBTZAR

Voorbeeld antwoord

{
  "timestamp": 1366305398592,
  "bids": [
    {
      "volume": "0.10",
      "price": "1100.00"
    },
    {
      "volume": "0.10",
      "price": "1000.00"
    },
    {
      "volume": "0.10",
      "price": "900.00"
    }
  ],
  "asks": [
    {
      "volume": "0.10",
      "price": "1180.00"
    },
    {
      "volume": "0.10",
      "price": "2000.00"
    }
  ]
}

Orderboek (vol)

Toont een overzicht van alle bied- en laatorders in het orderboek. Laatorders worden gesorteerd op prijs van laag naar hoog. Biedorders worden gesorteerd op prijs van hoog naar laag. Meerdere orders aan dezelfde prijs worden niet samengevoegd.

Waarschuwing: Dit kan een grote hoeveelheid gegevens opleveren. Gebruik over het algemeen liever GetOrderBook of de Streaming-API.

Definitie

GET https://api.mybitx.com/api/1/orderbook

Argumenten

pair string verplicht Currency pair e.g. XBTZAR or ETHXBT

Voorbeeld verzoek

$ curl https://api.mybitx.com/api/1/orderbook?pair=XBTZAR

Voorbeeld antwoord

{
  "timestamp": 1366305398592,
  "bids": [
    {
      "volume": "0.10",
      "price": "1100.00"
    },
    {
      "volume": "0.10",
      "price": "1000.00"
    },
    {
      "volume": "0.10",
      "price": "900.00"
    }
  ],
  "asks": [
    {
      "volume": "0.10",
      "price": "1180.00"
    },
    {
      "volume": "0.10",
      "price": "2000.00"
    }
  ]
}

Handel

Toont een overzicht van de meest recente handel. Er worden maximaal 100 resultaten per aanroep weergegeven.

Definitie

GET https://api.mybitx.com/api/1/trades

Argumenten

pair string verplicht Currency pair e.g. XBTZAR or ETHXBT
since integer optioneel Fetch trades executed after this time, specified as a Unix timestamp in milliseconds.

Voorbeeld verzoek

$ curl https://api.mybitx.com/api/1/trades?pair=XBTZAR

Voorbeeld antwoord

{
  "trades": [
    {
      "volume": "0.10",
      "timestamp": 1366052621774,
      "price": "1000.00",
      "is_buy": true
    },
    {
      "volume": "1.20",
      "timestamp": 1366052621770,
      "price": "1020.50",
      "is_buy": false
    }
  ]
}

Bij sommige API-aanroepen is er zelfauthenticatie voor je applicatie nodig. Dit kan met behulp van een API-sleutel die gekoppeld is aan je rekening. Je kunt een API-sleutel aanmaken door naar het gedeelte API-sleutel te gaan op de pagina voor instellingen.

Een API-sleutel bestaat uit een ID en een geheim. Bijvoorbeeld: cnz2yjswbv3jd (sleutel-ID) en 0hydMZDb9HRR3Qq-iqALwZtXLkbLR4fWxtDZvkB9h4I (sleutelgeheim).

API-verzoeken worden geauthentiseerd met behulp van HTTP-basisauthenticatie, waarbij de sleutel-ID de gebruikersnaam is en het sleutelgeheim het wachtwoord. Een ontbrekende, onjuiste of ingetrokken sleutel levert foutmelding 401 op.

Machtigingen

Elke API-sleutel wordt bij de aanmaak ervan een reeks machtigingen toegekend. De sleutel kan alleen worden gebruikt om de toegestane API-functies aan te roepen.

Hier volgt een opsomming van de mogelijke machtigingen:

  • Perm_R_Balance = 1 (Saldo bekijken)
  • Perm_R_Transactions = 2 (Transacties bekijken)
  • Perm_W_Send = 4 (Naar om het even welk adres versturen)
  • Perm_R_Addresses = 8 (Adressen bekijken)
  • Perm_W_Addresses = 16 (Adressen maken)
  • Perm_R_Orders = 32 (Orders bekijken)
  • Perm_W_Orders = 64 (Orders maken)
  • Perm_R_Withdrawals = 128 (Opnames bekijken)
  • Perm_W_Withdrawals = 256 (Opnames maken)
  • Perm_R_Merchant = 512 (Facturen voor handelaars bekijken)
  • Perm_W_Merchant = 1024 (Facturen voor handelaars maken)
  • Perm_W_ClientDebit = 8192 (Debetrekeningen)
  • Perm_W_ClientCredit = 16384 (Kredietrekeningen)
  • Perm_R_Beneficiaries = 32768 (Begunstigden bekijken)
  • Perm_W_Beneficiaries = 65536 (Begunstigden maken en verwijderen)

Een reeks machtigingen wordt weergegeven als de bitwise OF van elke machtiging in de reeks. De reeks machtigingen die bijvoorbeeld nodig is om de saldi en orders te bekijken, is Perm_R_Balance | Perm_R_Orders = 33.

Alle transacties op het Luno-handelsplatform werken via rekeningen. Elke rekening wordt aangeduid in één enkele munteenheid en bevat een geordende lijst met boekingen die het actuele saldo ervan bijhouden.

Elke rekening heeft een afzonderlijk saldo en beschikbaar saldo. Het beschikbare saldo kan lager zijn dan het saldo, indien er fondsen gereserveerd zijn (zoals voor een openstaande limietorder). Boekingen op de rekening zijn onafhankelijk van invloed op enerzijds het saldo en anderzijds het beschikbare saldo.

Rekeningboekingen worden op volgorde genummerd. Het is gegarandeerd dat de boekingen nooit opnieuw worden aangevraagd of verwijderd. Het is tevens gegarandeerd dat de kernattributen van de invoer (de actuele saldi en index) nooit worden gewijzigd. Een rekening fungeert daarom alleen als een toevoeging van transacties.

Rekening aanmaken

Maak nog een rekening aan voor de gespecificeerde munteenheid.

Definitie

POST https://api.mybitx.com/api/1/accounts

Argumenten

currency string verplicht De muntcode voor de rekening die je wilt aanmaken, bijv. XBT, IDR, MYR, ZAR
name string verplicht Het voor deze rekening te gebruiken label, bijv. "ACC verhandelen".

Je moet gecontroleerd zijn voor het handelen in currency om een rekening te kunnen aanmaken. Een gebruiker heeft maximaal 4 rekeningen per munteenheid.

Voorbeeld verzoek

$ curl -u keyid:keysecret -X POST -d currency=XBT -d name=Moon https://api.mybitx.com/api/1/accounts

Voorbeeld antwoord

{
  "id": "319323232",
  "name": "Moon",
  "currency": "XBT"
}

Vereiste machtigingen

Perm_W_Addresses

Saldi

Toon het overzicht van alle rekeningen en hun respectievelijke saldi.

Definitie

GET https://api.mybitx.com/api/1/balance

Voorbeeld verzoek

$ curl -u keyid:keysecret https://api.mybitx.com/api/1/balance

Voorbeeld antwoord

{
  "balance": [
    {
      "account_id": "1224342323",
      "asset": "XBT",
      "balance": "1.012423",
      "reserved": "0.01",
      "unconfirmed": "0.421",
      "name": "XBT Account"
    },
    {
      "account_id": "2997473",
      "asset": "ZAR",
      "balance": "1000.00",
      "reserved": "0.00",
      "unconfirmed": "0.00",
      "name": "ZAR Account"
    }
  ]
}

Vereiste machtigingen

Perm_R_Balance

Transacties

Toon een overzicht van de boekingen van een rekening.

De rijen voor het invoeren van transacties worden op volgorde genummerd, beginnend bij 1, waarbij 1 de oudste invoer is. Het bereik van de rijen dat getoond moet worden, wordt aangeduid met de parameters min_row (inclusief) en max_row (exclusief). Er kunnen maximaal 1000 rijen per aanroep worden opgevraagd.

Als min_row of max_row niet positief is, dan beslaat het bereik de meest recente rij. Om bijvoorbeeld de 100 meest recente rijen op te halen, gebruik je min_row=-100 en max_row=0.

Definitie

GET https://api.mybitx.com/api/1/accounts/:id/transactions

Argumenten

id string verplicht Rekening-ID
min_row int verplicht Te retourneren minimum van het rijbereik (inclusief)
max_row int verplicht Te retourneren maximum van het rijbereik (exclusief)

Voorbeeld verzoek

$ curl -u keyid:keysecret https://api.mybitx.com/api/1/accounts/319232323/transactions?min_row=1&max_row=100

Voorbeeld antwoord

{
  "id": "319232323",
  "transactions": [
    {
      "row_index": 2,
      "timestamp": 1429908835000,
      "balance": 0.08,
      "available": 0.08,
      "balance_delta": -0.02,
      "available_delta": -0.02,
      "currency": "XBT",
      "description": "Sold 0.02 BTC"
    },
    {
      "row_index": 1,
      "timestamp": 1429908701000,
      "balance": 0.1,
      "available": 0.1,
      "balance_delta": 0.1,
      "available_delta": 0.1,
      "currency": "XBT",
      "description": "Bought 0.1 BTC"
    }
  ]
}

Vereiste machtigingen

Perm_R_Transactions

Openstaande transacties

Toon een overzicht van alle openstaande transacties die gerelateerd zijn aan de rekening.

In tegenstelling tot andere boekingen op je rekening, zijn de openstaande transacties niet genummerd en kunnen ze te allen tijde opnieuw worden aangevraagd, gewist of bijgewerkt.

Definitie

GET https://api.mybitx.com/api/1/accounts/:id/pending

Argumenten

id string verplicht Rekening-ID

Voorbeeld verzoek

$ curl -u keyid:keysecret https://api.mybitx.com/api/1/accounts/319232323/pending

Voorbeeld antwoord

{
  "id": "319232323",
  "pending": [
    {
      "timestamp": 1429908835000,
      "balance": 0.03,
      "available": 0.03,
      "balance_delta": 0.03,
      "available_delta": 0.03,
      "currency": "XBT",
      "description": "Received Bitcoin - 1 of 3 confirmations"
    }
  ]
}

Vereiste machtigingen

Perm_R_Transactions

Handelen op de markt wordt gedaan door handelsorders in te dienen. Nadat een nieuwe order is aangemaakt, wordt deze ingediend voor verwerking door de machine die de orders matcht. De order zal dan ofwel matchen met een bestaande order in het orderboek en wordt uitgevoerd of hij blijft in het orderboek staan totdat hij wordt beëindigd.

Klik hier om meer te lezen over hoe het matchen van orders werkt.

Orders weergeven

Toont een overzicht van de meest recentelijk geplaatste orders. Je kunt een optionele state=PENDING-parameter specificeren om de resultaten te beperken tot alleen openstaande orders. Je kunt tevens de markt specificeren door de optionele paar-parameter te gebruiken. De lijst wordt na 100 items afgebroken.

Definitie

GET https://api.mybitx.com/api/1/listorders

Argumenten

state string optioneel Filteren op enkel orders met deze status, bijv. PENDING
pair string optioneel Filteren op enkel orders van deze muntcombinatie, bijv. XBTZAR of ETHXBT

Voorbeeld verzoek

$ curl -u keyid:keysecret https://api.mybitx.com/api/1/listorders

Voorbeeld antwoord

{
  "orders": [
    {
      "base": "0.027496",
      "counter": "81.140696",
      "creation_timestamp": 1423990327333,
      "expiration_timestamp": 0,
      "completed_timestamp": 1423991515534,
      "fee_base": "0.00",
      "fee_counter": "0.00",
      "limit_price": "2951.00",
      "limit_volume": "0.027496",
      "order_id": "BXF3J88PZAYGXH7",
      "pair": "XBTZAR",
      "state": "COMPLETE",
      "type": "ASK",
    }
  ]
}
BIEDEN
bied(koop)limietorder
VRAGEN
laat(verkoop)limietorder
De mogelijke orderstatussen zijn:
OPENSTAAND
De order is geplaatst. Er kan handel hebben plaatsgevonden, maar de order is nog niet uitgevoerd.
VOLTOOIEN
De order is niet langer actief. De order is voldaan of geannuleerd.

De base- en counterbedragen zijn de hoofdsommen die werden verhandeld, waarbij de kosten worden genegeerd. Als de order bijvoorbeeld resulteerde in één enkele verhandeling van 1 BTC voor 1000 ZAR, dan betreft base=1 BTC en counter=1000 ZAR.

De fee_base- en fee_counter zijn de kosten die na verhandeling van de hoofdsommen worden gedebiteerd.

Voor een kooporder bijvoorbeeld worden de base - base_fee gecrediteerd op de BTC-rekening en de counter + counter_fee gedebiteerd van de ZAR-rekening. Op vergelijkbare wijze worden bij een verkooporder de counter - counter_fee gecrediteerd op de ZAR-rekening en debase + base_fee gedebiteerd van de BTC-rekening.

Het pair geeft de markt aan.

Vereiste machtigingen

Perm_R_Orders

Een limietorder plaatsen

Maak een nieuwe handelsorder aan.

Waarschuwing! Orders kunnen niet ongedaan worden gemaakt als ze eenmaal zijn uitgevoerd. Zorg dat je programma grondig getest is voordat je orders indient.

Indien er geen base_account_id of counter_account_id wordt gespecificeerd, wordt je standaardbasismunt- of contramuntrekening gebruikt. Je kunt jouw rekening-ID’s vinden doorde Saldi-API. aan te roepen.

Definitie

POST https://api.mybitx.com/api/1/postorder

Argumenten

pair string verplicht De muntcombinatie waarin je wilt verhandelen, bijv. XBTZAR of ETHXBT
type string verplicht "BIED" voor een bied(koop)limietorder of "LAAT" voor een laat(verkoop)limietorder.
volume string verplicht Hoeveelheid Bitcoin of Ethereum om als een decimale reeks BTC-eenheden te kopen of te verkopen, bijv. "1,423".
price string verplicht Limietprijs als een decimale reeks ZAR/BTC-eenheden, bijv. "1200".
base_account_id string optioneel De in deze handel te gebruiken basismuntrekening.
counter_account_id string optioneel De in deze handel te gebruiken contramuntrekening.
post_only boolean optioneel Alleen-plaatsen-orders worden geannuleerd als ze anders onmiddellijk verhandeld zouden worden. Als er bijvoorbeeld een bod van 100.000 ZAR is en je een alleen-plaatsen-laatorder van 100.000 ZAR plaatst, wordt je order geannuleerd in plaats van dat er verhandeld wordt. Als het beste bod 100.000 ZAR is en je een alleen-plaatsen-laatorder van 101.000 ZAR plaatst, wordt je order niet verhandeld maar gaat deze het orderboek in.

Voorbeeld verzoek

$ curl -u keyid:keysecret -X POST -d pair=XBTZAR -d type=BID -d volume=0.1 -d price=1000 https://api.mybitx.com/api/1/postorder

Voorbeeld antwoord

{
  "order_id": "BXMC2CJ7HNB88U4"
}

Vereiste machtigingen

Perm_W_Orders

Een marktorder plaatsen

Maak een nieuwe marktorder aan.

Waarschuwing! Orders kunnen niet ongedaan worden gemaakt als ze eenmaal zijn uitgevoerd. Zorg dat je programma grondig getest is voordat je orders indient.

Indien er geen base_account_id of counter_account_id wordt gespecificeerd, wordt je standaardbasismunt- of contramuntrekening gebruikt. Je kunt jouw rekening-ID’s vinden doorde Saldi-API. aan te roepen.

Definitie

Een marktorder wordt onmiddellijk uitgevoerd en koopt ofwel zoveel mogelijk Bitcoin in voor een vastgesteld bedrag aan lokale valuta of verkoopt een vastgesteld bedrag aan Bitcoin voor zoveel mogelijk lokale valuta.

POST https://api.mybitx.com/api/1/marketorder

Argumenten

pair string verplicht De muntcombinatie waarin je wilt verhandelen, bijv. XBTZAR of ETHXBT
type string verplicht "BUY" to buy Bitcoin or Ethereum, or "SELL" to sell Bitcoin or Ethereum.
counter_volume string required - if type is "BUY" Voor een "KOOP"-order: hoeveelheid in de lokale munt (bijv. ZAR, MYR) om als een decimale reeks eenheden in de lokale munt uit te geven, bijv. "100,50".
base_volume string verplicht - als soort "VERKOOP" is Voor een "VERKOOP"-order: hoeveelheid Bitcoin om als een decimale reeks BTC-eenheden te verkopen, bijv. "1,423".
base_account_id string optioneel De in deze handel te gebruiken basismuntrekening.
counter_account_id string optioneel De in deze handel te gebruiken contramuntrekening.

Voorbeeld verzoek

$ curl -u keyid:keysecret -X POST -d pair=XBTZAR -d type=BUY -d counter_volume=100.50  https://api.mybitx.com/api/1/marketorder

Voorbeeld antwoord

{
  "order_id": "BXMC2CJ7HNB88U4"
}

Vereiste machtigingen

Perm_W_Orders

Een order beëindigen

Verzoek om een order te stoppen.

Definitie

POST https://api.mybitx.com/api/1/stoporder

Argumenten

order_id string verplicht De orderreferentie als een reeks, bijv. BXMC2CJ7HNB88U4

Voorbeeld verzoek

$ curl -u keyid:keysecret -X POST -d order_id=BXMC2CJ7HNB88U4 https://api.mybitx.com/api/1/stoporder

Voorbeeld antwoord

{
  "success": true
}

Vereiste machtigingen

Perm_W_Orders

Een order krijgen

Krijg een order via de order-ID.

Definitie

GET https://api.mybitx.com/api/1/orders/:id

Argumenten

id string verplicht De order-ID

Voorbeeld verzoek

$ curl -u keyid:keysecret https://api.mybitx.com/api/1/orders/BXHW6PFRRXKFSB4

Voorbeeld antwoord

{
  "order_id": "BXHW6PFRRXKFSB4",
  "creation_timestamp": 1402866878367,
  "expiration_timestamp": 0,
  "completed_timestamp": 0,
  "type": "ASK",
  "state": "PENDING",
  "limit_price": "6500.00",
  "limit_volume": "0.05",
  "base": "0.03",
  "counter": "195.02",
  "fee_base":"0.000",
  "fee_counter":"0.00"
}

Vereiste machtigingen

Perm_R_Orders

Handel weergeven

Toont een overzicht van je meest recente handel voor een bepaald paar, gesorteerd van oud naar nieuw.

type in het antwoord geeft het soort order aan dat je plaatste om deel te nemen aan de handel. Mogelijke soorten: BID, ASK.

Als is_buy in het antwoord waar is, dan was de order die de handel voltooide (markttaker) een biedorder.

De resultaten van deze vraag lopen mogelijk achter op de meest recente gegevens.

Definitie

GET https://api.mybitx.com/api/1/listtrades

Argumenten

pair string verplicht Filteren op handel in deze muntcombinatie, bijv. XBTZAR of ETHXBT
since integer optioneel Filteren op handel op of na deze tijdstempel, bijv. 1470810728478
limit integer optioneel Beperking voor dit aantal verhandelingen (min. 1, max. 100, standaard 100)

Voorbeeld verzoek

$ curl -u keyid:keysecret https://api.mybitx.com/api/1/listtrades?pair=XBTZAR

Voorbeeld antwoord

{
    "trades": [
        {
            "base": "0.147741",
            "counter": "1549.950831",
            "fee_base": "0.00",
            "fee_counter": "0.00",
            "is_buy": false,
            "order_id": "BXMC2CJ7HNB88U4",
            "pair": "XBTZAR",
            "price": "10491.00",
            "timestamp": 1467138492909,
            "type": "BID",
            "volume": "0.147741"
        }
    ]
}

Vereiste machtigingen

Perm_R_Orders

Informatie over kosten

Toont jouw kosten en handelsvolume over 30 dagen (vanaf middernacht) voor een bepaald paar.

Definitie

GET https://api.mybitx.com/api/1/fee_info

Argumenten

pair string verplicht Filteren op handel in deze muntcombinatie, bijv. XBTZAR of ETHXBT

Voorbeeld verzoek

$ curl -u keyid:keysecret https://api.mybitx.com/api/1/fee_info?pair=XBTZAR

Voorbeeld antwoord

{
  "maker_fee": "0.00",
  "taker_fee": "0.10",
  "thirty_day_volume": "0.894342"
}

Vereiste machtigingen

Perm_R_Orders

Adressen voor ontvangst

Toont het standaardadres voor ontvangst dat gekoppeld is aan jouw rekening en het bedrag dat via het adres werd ontvangen. Je kunt een optionele adresparameter specificeren om informatie over een niet-standaardadres voor ontvangst te retourneren. In het antwoord verwijst totaal_ontvangen naar het totaal aantal Bitcoins dat werd ontvangen, exclusief de onbevestigde transacties. totaal_onbevestigd is de som van alle onbevestigde transacties voor ontvangst.

Definitie

GET https://api.mybitx.com/api/1/funding_address

Argumenten

asset string verplicht Muntcode van de activa, bijv. XBT
address string optioneel Specifiek op te halen Bitcoin- of Ethereum-adres. Indien niet gegeven, wordt het standaardadres gebruikt.

Voorbeeld verzoek

$ curl -u keyid:keysecret https://api.mybitx.com/api/1/funding_address?asset=XBT&address=B1tC0InExAMPL3fundIN6AdDreS5t0Use

Voorbeeld antwoord

{
  "asset": "XBT",
  "address": "B1tC0InExAMPL3fundIN6AdDreS5t0Use",
  "total_received": "1.234567",
  "total_unconfirmed": "0.00"
}

Vereiste machtigingen

Perm_R_Addresses

Adres voor ontvangst maken

Wijst een nieuw adres voor ontvangst toe aan je rekening. Er is sprake van een frequentiebeperking van 1 adres per uur, maar clusters van maximaal 10 adressen worden toegestaan. Er kan maar 1 Ethereum-adres voor ontvangst worden gemaakt.

Definitie

POST https://api.mybitx.com/api/1/funding_address

Voorbeeld verzoek

$ curl -u keyid:keysecret -X POST -d asset=XBT https://api.mybitx.com/api/1/funding_address

Voorbeeld antwoord

{
  "asset": "XBT",
  "address": "B1tC0InExAMPL3fundIN6AdDreS5t0Use",
  "total_received": "0.00",
  "total_unconfirmed": "0.00"
}

Vereiste machtigingen

Perm_W_Addresses

Opnameverzoeken weergeven

Toont een overzicht van opnameverzoeken.

Definitie

GET https://api.mybitx.com/api/1/withdrawals

Voorbeeld verzoek

$ curl -u keyid:keysecret https://api.mybitx.com/api/1/withdrawals

Voorbeeld antwoord

{
  "withdrawals": [
    {
      "status": "PENDING",
      "id": "2221"
    },
    {
      "status": "COMPLETED",
      "id": "1121"
    }
  ]
}

Vereiste machtigingen

Perm_R_Withdrawals

Een opname aanvragen

Maakt een nieuw opnameverzoek aan.

Definitie

POST https://api.mybitx.com/api/1/withdrawals

Argumenten

type string verplicht Soorten opnames, bijv. ZAR_EFT, NAD_EFT, KES_MPESA, MYR_IBG, IDR_LLG
amount string verplicht Op te nemen hoeveelheid. De munteenheid hangt af van de soort.
beneficiary_id string optioneel De begunstigde-ID van de bankrekening waaraan de opname wordt uitbetaald. Deze parameter is verplicht als je meerdere bankrekeningen hebt. De begunstigde-ID van je bankrekening vind je door op de pagina Begunstigden op de naam van de begunstigde te klikken.

Voorbeeld verzoek

$ curl -u keyid:keysecret -X POST -d type=ZAR_EFT -d amount=1000 https://api.mybitx.com/api/1/withdrawals

Voorbeeld antwoord

{
  "status": "PENDING",
  "id": "1212"
}

Vereiste machtigingen

Perm_W_Withdrawals

Krijg de status van een opnameverzoek

Toont de status van een bepaald opnameverzoek.

Definitie

GET https://api.mybitx.com/api/1/withdrawals/:id

Argumenten

id string verplicht Op te halen opname-ID.

Voorbeeld verzoek

$ curl -u keyid:keysecret https://api.mybitx.com/api/1/withdrawals/1212

Voorbeeld antwoord

{
  "status": "COMPLETED",
  "id": "1212"
}

Vereiste machtigingen

Perm_R_Withdrawals

Een opnameverzoek annuleren

Annuleer een opnameverzoek. Dit kan alleen worden gedaan als de status van het verzoek nog PENDING is.

Definitie

DELETE https://api.mybitx.com/api/1/withdrawals/:id

Argumenten

id string verplicht ID van de te annuleren offerte.

Voorbeeld verzoek

$ curl -u keyid:keysecret -X DELETE https://api.mybitx.com/api/1/withdrawals/1212

Voorbeeld antwoord

{
  "status": "CANCELLED",
  "id": "1212"
}

Vereiste machtigingen

Perm_W_Withdrawals

Stuur Bitcoin van jouw rekening naar een Bitcoin-adres of e-mailadres. Stuur Ethereum van jouw rekening naar een Ethereum-adres.

Als het e-mailadres niet gekoppeld kan worden aan een bestaande Luno-rekening, wordt een uitnodiging gestuurd om een rekening aan te maken en de fondsen te claimen.

Warning! Cryptocurrency transactions are irreversible. Please ensure your program has been thoroughly tested before using this call.

Definitie

POST https://api.mybitx.com/api/1/send

Argumenten

amount string verplicht Hoeveelheid om als een decimale reeks te versturen.
currency string verplicht Te versturen munt, bijv. XBT
address string verplicht Bitcoin- of e-mailadres van bestemming of Ethereum-adres waarnaar wordt verstuurd.

Opmerking:
description string optioneel Beschrijving van de transactie op het rekeninguittreksel.
message string optioneel Naar de ontvanger te versturen bericht. Dit is alleen relevant als je naar een e-mailadres verstuurt.

Voorbeeld verzoek

curl \
  -u keyid:keysecret \
  -X POST \
  -d amount=0.001 \
  -d currency=XBT \
  -d [email protected] \
  -d description=Your+reference \
  -d message=Message+for+recipient \
  https://api.mybitx.com/api/1/send
        

Voorbeeld antwoord

{"success":true}

Vereiste machtigingen

Perm_W_Send

Met offertes kun je voor een korte periode een wisselkoers vastzetten, met de optie om de offerte te accepteren of af te wijzen.

Offertes kunnen heel handig zijn voor verschillende klantgerichte applicaties, waarbij prijsschommelingen verwarrend zouden zijn.

De API wordt als volgt gebruikt: Eerst maak je een offerte aan voor de transactie die je wilt uitvoeren. Als je besluit om de offerte uit te voeren voordat die vervalt, ga je de offerte uitvoeren. Besluit je om hem niet te accepteren, dan verwerp je de offerte. Je kunt ook op elk gewenst moment de status van een offerte opvragen.

Een offerte aanmaken

Maakt een nieuwe offerte aan om een bepaalde hoeveelheid te kopen of verkopen.

Je kunt ofwel het precieze bedrag aangeven dat je wilt betalen of het precieze bedrag dat je wilt ontvangen.

Om bijvoorbeeld precies 0,1 Bitcoin te kopen met ZAR, zou je de volgende offerte aanmaken: 0,1 XBTZAR KOPEN. De offerte die wordt getoond, bevat het juiste ZAR-bedrag. Om Bitcoin te kopen met precies 100 ZAR, zou je de volgende offerte aanmaken: 100 ZARXBT VERKOPEN. De offerte die wordt getoond, specificeert de Bitcoin als het contrabedrag dat je daarvoor zult ontvangen.

Er verschijnt een foutmelding als je rekening niet is gecontroleerd voor de twee munteenheden of wanneer er onvoldoende saldo op je rekening staat om de offerte ooit te kunnen uitvoeren.

Definitie

POST https://api.mybitx.com/api/1/quotes

Argumenten

type string verplicht Mogelijke soorten: BUY, SELL
base_amount string verplicht Hoeveelheid om in de basismunteenheid van het paar te kopen of te verkopen.
pair string verplicht Muntcombinatie om te verhandelen, bijv. XBTZAR, XBTMYR, ETHXBT. De combinatie kan ook worden omgedraaid als je de contramunt wilt kopen of verkopen (bijv. ZARXBT).

Voorbeeld verzoek

curl \
  -u keyid:keysecret \
  -X POST \
  -d type=BUY \
  -d pair=XBTZAR \
  -d base_amount=0.1 \
  https://api.mybitx.com/api/1/quotes

Voorbeeld antwoord

{
  "id": "1324",
  "type": "BUY",
  "pair": "XBTZAR",
  "base_amount": "0.1",
  "counter_amount": "1234.24",
  "created_at": 1418377612342,
  "expires_at": 1418377912342,
  "discarded": false,
  "exercised": false
}

Vereiste machtigingen

Perm_W_Orders

Een offerte krijgen

Krijg de meest actuele status van een offerte.

Definitie

GET https://api.mybitx.com/api/1/quotes/:id

Argumenten

id string verplicht ID van de op te halen offerte.

Voorbeeld verzoek

$ curl -u keyid:keysecret https://api.mybitx.com/api/1/quotes/1324

Voorbeeld antwoord

{
  "id": "1324",
  "type": "BUY",
  "pair": "XBTZAR",
  "base_amount": "0.1",
  "counter_amount": "1234.24",
  "created_at": 1418377612342,
  "expires_at": 1418377912342,
  "discarded": false,
  "exercised": false
}

Vereiste machtigingen

Perm_R_Orders

Een offerte uitvoeren

Voer een offerte uit om de verhandeling uit te voeren. Er staat onvoldoende saldo op je rekening, welke gedebiteerd wordt en het contrabedrag wordt gecrediteerd.

Er verschijnt een foutmelding als de offerte is vervallen of als je onvoldoende saldo beschikbaar hebt.

Definitie

PUT https://api.mybitx.com/api/1/quotes/:id

Argumenten

id string verplicht ID van de uit te voeren offerte.

Voorbeeld verzoek

$ curl -u keyid:keysecret -X PUT https://api.mybitx.com/api/1/quotes/1324

Voorbeeld antwoord

{
  "id": "1324",
  "type": "BUY",
  "pair": "XBTZAR",
  "base_amount": "0.1",
  "counter_amount": "1234.24",
  "created_at": 1418377612342,
  "expires_at": 1418377912342,
  "discarded": false,
  "exercised": true
}

Vereiste machtigingen

Perm_W_Orders

Een offerte verwerpen

Verwerp een offerte. Zodra een offerte verworpen is, kan deze niet meer worden uitgevoerd, zelfs wanneer die nog niet verlopen is.

Definitie

DELETE https://api.mybitx.com/api/1/quotes/:id

Argumenten

id string verplicht ID van de te verwerpen offerte.

Voorbeeld verzoek

$ curl -u keyid:keysecret -X DELETE https://api.mybitx.com/api/1/quotes/1324

Voorbeeld antwoord

{
  "id": "1324",
  "type": "BUY",
  "pair": "XBTZAR",
  "base_amount": "0.1",
  "counter_amount": "1234.24",
  "created_at": 1418377612342,
  "expires_at": 1418377912342,
  "discarded": true,
  "exercised": false
}

Vereiste machtigingen

Perm_W_Orders

Bèta-waarschuwing: Deze API bevindt zich nog steeds in de bètafase. Dit betekent dat er nog steeds incompatibele wijzigingen kunnen plaatsvinden.

De WebSocket-API biedt toegang tot een directe weergave van de marktgegevens. Het is efficiënter en biedt minder vertraagde informatie dan herhaaldelijk het orderboek en recente handel te moeten peilen, maar het is ingewikkelder om in te voeren.

Het streamingprotocol werkt door de klant te verplichten om een afschrift van het orderboek in het geheugen op te slaan. Updateberichten worden vervolgens vanaf de server verstuurd en de klant gebruikt die om zijn of haar kopie van het orderboek bij te werken. Wanneer ze juist en volledig worden toegepast, zal de weergave voor de klant identiek zijn aan de weergave van de server.

Protocol

De status van de klant bestaat uit de volgende gegevens:

  • volgnummer
  • een reeks bied-orders (ID, prijs, volume)
  • een reeks laat-orders (ID, prijs, volume)
  • overzicht van handel

Elk updatebericht dat de server heeft verstuurd, heeft een uniek en oplopend volgnummer. Het bericht met volgnummer n kan worden toegepast op de statusreeks n-1 om statusreeks n te produceren.

Een bericht kan meerdere updates bevatten welke automatisch en in volgorde moeten worden toegepast.

Als een update in de verkeerde volgorde wordt ontvangen (bijvoorbeeld update met volgnummer n+2 of n-1 wordt na de update met volgnummer n ontvangen), dan kan de klant niet doorgaan en moet deze de status opnieuw initialiseren.

Er zijn drie soorten updates:

Aanmaken

Voeg een bied- of laat-order toe aan het orderboek met een bepaalde ID en prijs en een bepaald volume.

{
    "order_id": "12345678",
    "type": "BID",
    "price": "1234.00",
    "volume": "1.23"
}

Verwijderen

Verwijder de order uit het orderboek met een bepaalde ID.

{
    "order_id": "12345678"
}

Verhandelen

Verlaag het openstaande volume van een order in het orderboek (maker_order_id) en voeg een verhandeling toe aan de handelslijst.

{
    "base": "0.1",
    "counter": "5232.00",
    "maker_order_id": "12345678",
    "taker_order_id": "87654321",
}

Voorbeelden

Er is een nieuwe order beneden de marktprijs geplaatst

In dit geval zal er een updatebericht worden gestuurd met één enkele aanmaakupdate.

Een marktorder is geplaatst en is onmiddellijk uitgevoerd

In dit geval zal er een updatebericht worden gestuurd dat meerdere handelsupdates bevat. Er zal geen aanmaakupdate zijn, omdat de nieuwe order nooit in het orderboek terechtkomt.

Een order is geplaatst en is gedeeltelijk uitgevoerd

In dit geval bevat het updatebericht meerdere handelsupdates en een aanmaakupdate. Het volume in de aanmaakupdate is het resterende volume voor de order.

Een order is beëindigd

In dit geval bevat het updatebericht één enkele verwijderupdate.

WebSockets

Het streamingprotocol van de updates dat hierboven wordt beschreven, kan worden geopend met behulp van WebSockets. De server stuurt eerst de huidige status van het orderboek en stuurt de updateberichten vervolgens zo snel mogelijk. Zowel de klant als de server moeten regelmatig keepalive-berichten sturen om verbreking van de verbinding te vermijden gedurende periodes dat er weinig updateberichten zijn.

Maak verbinding met de WebSocket-server op: wss://ws.luno.com/api/1/stream/:pair

Bèta-waarschuwing: Deze API bevindt zich nog steeds in de bètafase. Dit betekent dat er nog steeds incompatibele wijzigingen kunnen plaatsvinden.

De klant moet beginnen door de aanmeldingsgegevens voor de API-sleutel te versturen:

{
    "api_key_id": "abcdef",
    "api_key_secret": "api_key_secret_goes_here"
}

De server zal vervolgens het huidige orderboek in dit formaat sturen:

{
    "sequence": "24352",
    "asks": [
        {
            "id": "23298343",
            "price": "1234.00",
            "volume": "0.93",
        }
        ],
    "bids": [
        {
            "id": "3498282",
            "price": "1201.00",
            "volume": "1.22"
        }
        ],
    "timestamp": 1528884331021
}

Vervolgens stuurt de server berichten zoals de volgende:

{
    "sequence": "24353",
    "trade_updates": null, // array of 0 or more trade updates
    "create_update": null, // null or 1 create update
    "delete_update": null, // null or 1 delete update
    "timestamp": 1528884332021
}

Een leeg bericht is een keepalive-bericht.

Als er een foutmelding optreedt tijdens de verwerking van een update (zoals een update in de verkeerde volgorde) of er vindt een netwerkfout of time-out plaats (zoals een keepalive-bericht dat niet op tijd werd ontvangen), dan moet de klant de verbinding verbreken en opnieuw verbinding maken om de status ervan opnieuw te initialiseren. Het is cruciaal dat klanten exponential backoff implementeren voor alle verbindingen die opnieuw tot stand worden gebracht, om overbelasting van de server bij foutmeldingen te voorkomen.

De Handelaar-API van Luno is momenteel alleen beschikbaar voor partners met hoge volumes. Als je geïnteresseerd bent om als handelaar Bitcoin-betalingen te integreren, neem dan contact op met Luno-ondersteuning.

  • 16-07-2018: Samengevoegd orderboek API toegevoegd. Frequentielimieten voor marktgegevens werden naar 1 per seconde verhoogd. Marktgegevens kunnen tot 1 seconde lang in de cache worden opgeslagen.
  • 2018-06-29: post_only-parameter aan POST /api/1/postorder toevoegen.
  • 15-06-2018: Update van PHP- en Python SDK-URL's.
  • 2018-06-13: timestamp aan antwoorden van streamers in het orderboek toegevoegd.
  • 08-06-2018: Update van Go SDK-URL.
  • 23-12-2017: maker_order_id en taker_order_id toegevoegd aan directe weergave van handelsupdates. order_id afgeschaft.
  • 31-10-2017: OAuth2 is niet langer beschikbaar voor nieuwe applicaties.
  • 16-10-2017: /api/1/trades bijgewerkt, zodat deze alleen BID- of ASK-orders laat zien en nu mogelijk achterloopt op de meest recente gegevens.
  • 02-07-2017: WebSocket-server bijgewerkt naar wss://ws.luno.com.
  • 02-03-2017: /api/1/fee_info toegevoegd, die jouw kosten en handelsvolume over 30 dagen toont.
  • 21-11-2016: De /api/1/trades toont nu maximaal 100 resultaten per aanroep.
  • 01-11-2016: Creatiebeperking van 50 adressen voor ontvangst verwijderd POST /api/1/funding_address om per rekening een ongelimiteerd aantal adressen voor ontvangst te kunnen maken. De creatie van adressen is beperkt tot 1 per uur, wat clusters van maximaal 10 opeenvolgende aanroepen toestaat.
  • 10-08-2016: GET /api/1/listtrades toegevoegd om weergave van recente handel toe te staan. Merk op dat handel binnenkort verwijderd zal worden uit het antwoord van GET /api/1/listorders GET /api/1/orders/:id.
  • 05-08-2016: Bètagedeelte van Streaming-API toegevoegd
  • 25-07-2016: Optionele beneficiary_id-parameter toegevoegd aan POST /api/1/withdrawals.
  • 29-05-2016: Foutmelding 429 kan worden geretourneerd wanneer de frequentielimiet wordt overschreden. Dit wordt de standaardpraktijk vanaf 01-07-2016.
  • 04-04-2016: Het veld completed_timestamp toegevoegd aan de antwoorden GET /api/1/listorders en GET /api/1/orders/:id.
  • 05-02-2016: Optionele since-parameter toegevoegd aan GET /api/1/trades en het veld is_buy toegevoegd aan het antwoord.
  • 14-09-2015: POST /api/1/marketorder toegevoegd om het plaatsen van marktorders toe te staan.
  • 29-07-2015: Machtigingen Perm_R_Beneficiaries en Perm_W_Beneficiaries toegevoegd. Je moet een nieuwe API-sleutel genereren als je deze machtigingen nodig hebt.
  • 08-06-2015: GET /api/1/withdrawals/ een andere naam gegeven, zodat GET /api/1/withdrawals en POST /api/1/withdrawals/ naar POST /api/1/withdrawals consistenter is met andere eindpunten. De oude URL's zijn nu afgeschaft.
  • 28-05-2015: POST accounts toegevoegd voor het aanmaken van bijkomende rekeningen in specifieke valuta.
  • 07-05-2015: Het veld "Name" toegevoegd aan het antwoord voor "Balance"
  • 2015-04-25:
    • Het gedeelte "Accounts" toegevoegd.
    • Aanroepen voor rekeningtransacties en openstaande transacties toegevoegd.
    • Het gedeelte "Permissions" toegevoegd.
    • Vastgelegd welke machtigingen nodig zijn voor elke aanroep.
    • Beschrijving van de aanroep "send" bijgewerkt. Er is niet langer een pincode nodig.
    • "name"-parameter toegevoegd aan POST /api/1/funding_address.
  • 27-03-2015: Een lijst met verhandelingen voor een order tonen GET orders/:id als er handel plaatsvindt bij de order.
  • 30-01-2015: De interpretatie van base, counter, base_fee en counter_fee in het antwoord met de list_orders is verduidelijkt in het geval waarbij de counter_fee niet gelijk zijn aan nul voor kooporders en waarbij de base_fee niet gelijk zijn aan nul voor verkooporders.
  • 17-12-2014: De parameter van het bedrag voor opnameverzoeken is vanaf nu exclusief de opnamekosten.
  • 2014-12-12:
    • De nieuwe Offerte-API toegevoegd.
    • De bèta-aanroep voor transactions is afgeschaft.
  • 04-12-2014: De balance-methode kan nu worden aangeroepen zonder argumenten om alle rekeningsaldi te tonen.
  • 2014-08-26:
    • API-aanroep versturen toegevoegd.
    • OAuth2-API toegevoegd.
  • 10-06-2014: Orders die via de API werden geplaatst, zijn niet langer onderhevig aan andere limieten dan die die via de website werden geplaatst.
  • 2014-06-02:
    • Je kunt nu meerdere API-sleutels met verschillende machtigingen aanmaken (bijv. alleen lezen, lezen/schrijven).
    • Aanroepen toegevoegd om opnameverzoeken weer te geven, aan te maken, te ontvangen en te annuleren.
    • Link aan bibliotheek van Android-client toegevoegd.
  • 2014-05-29:
    • De gewenste hostnaam voor API-aanroepen is veranderd in api.mybitx.com.
    • Experimentele aanroep toegevoegd om transactielijsten op te halen.
    • Aanroep toegevoegd om nieuwe adressen voor ontvangst toe te wijzen.
    • Aanroep voor adres voor ontvangst toont nu het bedrag dat door dat adres ontvangen is.
    • Je kunt nu listorders aanvragen om alleen de lijst van open orders weer te geven.
  • 15-04-2014: Eerdere orders aangemaakt via de API zouden na 24 uur komen te vervallen. Nu vervallen orders die via de API worden aangemaakt niet meer. Dit functioneert nu op dezelfde wijze als voor orders die via de website werden geplaatst.
  • 2014-01-25:
    • Er werd een nieuwe aanroep voor een funding_address toegevoegd om het Bitcoin-adres te ontvangen dat je nodig hebt om het saldo op je handelsrekening te financieren.
  • 2014-01-21:
    • De API is uitgebreid om meerdere activaparen te kunnen ondersteunen.
    • Er werd een nieuwe balanceaanroep toegevoegd om het saldo op je handelsrekening op te vragen.
    • Alle URL’s zijn van naam gewijzigd, van /api/1/BTCZAR/x naar /api/1/x?pair=XBTZAR. De oude URL's zijn nu afgeschaft.
    • getlimits: Deze aanroep is afgeschaft. Gebruik in plaats daarvan de nieuwe balanceaanroep.
    • ticker: Het veld currency is nu afgeschaft.
    • orderbook: Het veld currency is nu afgeschaft.
    • trades: Het veld currency is nu afgeschaft.
    • listorders: De velden btc, zar, fee_btc en fee_zar zijn nu afgeschaft. Gebruik in plaats daarvan de velden base, counter, fee_base, fee_counter.
    • De ingebouwde marktindicator is verwijderd, omdat niemand hem gebruikte.
    • Alle afgeschafte functies blijven nog twee maanden werken.
  • 2014-01-06:
    • orderweergaves: Toegevoegde velden kosten_btc en kosten_zar.
    • orderweergaves: Status AFREKENING verwijderd (niet langer relevant).
    • ticker: Mtgox_prijs verwijderd (gebruik de API van Mt Gox in plaats daarvan rechtstreeks).

Het is nooit te laat om ermee te beginnen.
Koop, bewaar en ontdek nu Bitcoin en Ethereum.

Desktop Icon Apple App Store Logo Google Play Store Logo