Logg inn
Registrering


Utviklerverktøy


Har du lyst til å integrere Bitnord i systemer du utvikler? Null problem! Vi har laget et web-API for akkurat dette.

Introduksjon


APIet gir en enkel måte å hente ut, legge til, redigere og slette data på plattformen med kode. Eksempelvis kan du skrive et script som henter ut prisdata hvert minutt og gir deg bedskjed dersom prisen går under eller over et punkt. Det er også mulig å opprette ordre, utføre utbetalinger og mye mer.

Det er sannsynlig at web-APIet kommer til å endre seg en del nå i begynnelsen. APIet er også i utgangspunktet skrevet for nettsiden, uten spesielt fokus på bruk utenfor dette. Derfor vil enkelte API-endepunkt kanskje være litt annerledes enn forventet for kunde-bruk.

Over tid vil vi prioritere mer kunde-rettede API-endepunkter som gir mer generell tilgang enn side-spesifikke endepunkter.

1. Web-APIet


Web-APIet er å finne på følgende base-adresse:

https://bitnord.no/api/

Videre er endepunktene delt inn i versjoner:

Versjon Endepunkt Beskrivelse
v1 https://bitnord.no/api/v1/ Nåværende eneste versjon med blanding av generelle og side-spesifikke endepunkter.
v2 https://bitnord.no/api/v2/ TBA. Bare side-spesifikke endepunkt.
v3 https://bitnord.no/api/v3/ TBA. Bare generelle kunderettede endepunkt.
Advarsel! Dette er en tidlig og tildels mangelfull eller vanskelig dokumentert utgave er Web-APIet. Brukes på eget ansvar. Ved spørsmål kontakt andreas@bitnord.no.

1.1. Responsdata


Alle responser er i JSON format, med følgende wrapper-struktur:

{
  "request": {
    "error": false,
    "message": "",
    "time": 1532205278
  },
  "response": {
    ... <-- Endepunktdata havner her
  }
}

Wapper-strukturen brukes fordi det er situasjoner hvor systemet stopper før du kommer til koden for de individuelle endepunktene. Eksempelvis hvis nettsiden er i vedlikeholdsmodus vil wrapper-strukturen være følgende:

{
  "request": {
    "error": true,
    "message": "Nettsiden er i vedlikeholdsmodus.",
    "time": 1532205278
  },
  "response": {[]}
}

1.2. Autentisering


Enkelte endepunkter krever autentisering (at du er logget inn) for å fungere.

1.2.1. Informasjonskapsler


På nåværende tidspunkt gjøres autentisering bare ved bruk av informasjonskapsler (cookies).

Informasjonskapselen som står for autentisering heter "session" (det er navnet på informasjonskapselen, ikke til å forvirres med en session cookie som blir borte når man lukker nettsiden).

Denne informasjonskapselen er en 100-symboler-lang tilfeldig tekst, eksempelvis "9Kgwmk6DCIyk5MasIGqMT26Tc9yCMcPEfQeJrCVCSjIIUr2kxFhY9cUZ28QWyLmwtViUPZw3M47elqUPiaaV7j2CVNeOusuDCkiO", som identifiserer hvilken bruker du er logget inn som.

Du får tak i denne informasjonskapselen ved å autentisere deg inn via endepunktene under /v1/auth/login/ med brukernavn/epostadresse, passord og eventuelt totrinnskode.

En enklere måte å få tak i denne informasjonskapselen på er å kopiere den ut av nettleseren etter du har logget på manuelt via https://bitnord.no/login, fra console eller en plugin.

1.2.2. API-nøkler


Autentisering med API-nøkler vil bli legget til så fort som mulig. TBA.

1.3. APIToken (CSRF)


Enkelte endepunkter har et felt/argument/parameter som heter "APIToken".

Dette er et felt som brukes for å forhindre såkalte Cross-Site Request Forgery (CSRF) forespørsler. Dette har med sikkerhet å gjøre for de som ikke er kjent med dette.

APIToken-feltet skal fylles med en bestemt verdi som er basert på "session"-informasjonskapselen din. Med andre ord så endrer APIToken seg hvis du endrer "session", med vilje eller eksempelvis når du logger inn (da får du en ny "session").

Du kan blant annet finne din APIToken-verdien for din "session" via endepunktet /api/v1/APIToken.

2. API-endepunkter


Her er en oversikt over alle nåværende API-endepunkter som er implementert.

2.1. Autentisering, registrering og kontogjenoppretting


  • POST /api/v1/auth/login/initiateUserAuthentication
  • POST /api/v1/auth/login/userAuthentication
  • POST /api/v1/auth/login/verifyTwoFactor
  • POST /api/v1/auth/register/userRegistrationInfo
  • POST /api/v1/auth/register/initiateUserRegistration
  • POST /api/v1/auth/register/registerNewUser
  • POST /api/v1/auth/accountRecovery/initiateAccountRecovery
  • POST /api/v1/auth/accountRecovery/sendRecoveryCode
  • POST /api/v1/auth/accountRecovery/verifyRecoveryCode
  • POST /api/v1/auth/accountRecovery/setNewPassword

2.2. APIToken


  • GET /api/v1/APIToken

2.3. Notifikasjoner


  • GET (USER) /api/v1/notifications

2.4. Konto- og sikkerhetsinnstillinger


  • GET (USER) /api/v1/account/securitySettings/twoFactorConfiguration/getTwoFactorConfigurationData
  • POST (USER) /api/v1/account/securitySettings/twoFactorConfiguration/initiateEnableOTPAuthTwoFactor
  • POST (USER) /api/v1/account/securitySettings/twoFactorConfiguration/verifyAndEnableOTPAuthTwoFactor
  • POST (USER) /api/v1/account/securitySettings/twoFactorConfiguration/sendSMSTwoFactorCode
  • POST (USER) /api/v1/account/securitySettings/twoFactorConfiguration/verifyAndEnableSMSTwoFactor
  • POST (USER) /api/v1/account/securitySettings/twoFactorConfiguration/initiateDisableTwoFactor
  • POST (USER) /api/v1/account/securitySettings/twoFactorConfiguration/verifyAndDisableTwoFactor
  • GET (USER) /api/v1/account/accountSettings/changePassword/getChangePasswordData
  • POST (USER) /api/v1/account/accountSettings/changePassword/initiateChangePassword
  • POST (USER) /api/v1/account/accountSettings/changePassword/changePassword
  • GET (USER) /api/v1/account/accountSettings/accountDeletion/getAccountDeletionData
  • POST (USER) /api/v1/account/accountSettings/accountDeletion/accountDeletionRequest

2.5. Mine valutaer


  • GET (USER) /api/v1/yourCurrencies
  • GET (USER) /api/v1/yourCurrencies/{currencyID}
  • GET (USER) /api/v1/yourCurrencies/wallets
  • GET (USER) /api/v1/yourCurrencies/wallets/primary
  • GET (USER) /api/v1/yourCurrencies/wallet/{walletID}

2.6. Innbetaling


  • POST (USER) /api/v1/inPayments/{userID}/LTC/generateNewAddress
  • POST (USER) /api/v1/inPayments/{userID}/LTC/getInPaymentPageData
  • GET (USER) /api/v1/inPayments/{userID}/LTC/getCurrentAddressDetails
  • POST (USER) /api/v1/inPayments/{userID}/LTC/getPreviousAddresses
  • POST (USER) /api/v1/inPayments/{userID}/LTC/getConfirmedInPayments
  • POST (USER) /api/v1/inPayments/{userID}/LTC/getPendingInPayments
  • POST (USER) /api/v1/inPayments/{userID}/BTC/generateNewAddress
  • POST (USER) /api/v1/inPayments/{userID}/BTC/getInPaymentPageData
  • GET (USER) /api/v1/inPayments/{userID}/BTC/getCurrentAddressDetails
  • POST (USER) /api/v1/inPayments/{userID}/BTC/getPreviousAddresses
  • POST (USER) /api/v1/inPayments/{userID}/BTC/getConfirmedInPayments
  • POST (USER) /api/v1/inPayments/{userID}/BTC/getPendingInPayments
  • POST (USER) /api/v1/inPayments/{userID}/ETH/generateNewAddress
  • POST (USER) /api/v1/inPayments/{userID}/ETH/getInPaymentPageData
  • GET (USER) /api/v1/inPayments/{userID}/ETH/getCurrentAddressDetails
  • POST (USER) /api/v1/inPayments/{userID}/ETH/getPreviousAddresses
  • POST (USER) /api/v1/inPayments/{userID}/ETH/getConfirmedInPayments
  • POST (USER) /api/v1/inPayments/{userID}/ETH/getPendingInPayments
  • POST (USER) /api/v1/inPayments/{userID}/NOK/bank/getInPaymentPageData
  • POST (USER) /api/v1/inPayments/{userID}/NOK/bank/getConfirmedInPayments
  • POST (USER) /api/v1/inPayments/{userID}/NOK/bank/getPendingInPayments
  • POST (USER) /api/v1/inPayments/{userID}/NOK/ERC20/generateNewAddress
  • POST (USER) /api/v1/inPayments/{userID}/NOK/ERC20/getInPaymentPageData
  • GET (USER) /api/v1/inPayments/{userID}/NOK/ERC20/getCurrentAddressDetails
  • POST (USER) /api/v1/inPayments/{userID}/NOK/ERC20/getPreviousAddresses
  • POST (USER) /api/v1/inPayments/{userID}/NOK/ERC20/getConfirmedInPayments
  • POST (USER) /api/v1/inPayments/{userID}/NOK/ERC20/getPendingInPayments

2.7. Utbetaling


  • GET (USER) /api/v1/outPayments/{userID}/LTC/getUserData
  • POST (USER) /api/v1/outPayments/{userID}/LTC/createOutPayment
  • POST (USER) /api/v1/outPayments/{userID}/LTC/confirmOutPayment
  • POST (USER) /api/v1/outPayments/{userID}/LTC/getConfirmedOutPayments
  • POST (USER) /api/v1/outPayments/{userID}/LTC/getPendingOutPayments
  • GET (USER) /api/v1/outPayments/{userID}/BTC/getUserData
  • POST (USER) /api/v1/outPayments/{userID}/BTC/createOutPayment
  • POST (USER) /api/v1/outPayments/{userID}/BTC/confirmOutPayment
  • POST (USER) /api/v1/outPayments/{userID}/BTC/getConfirmedOutPayments
  • POST (USER) /api/v1/outPayments/{userID}/BTC/getPendingOutPayments
  • GET (USER) /api/v1/outPayments/{userID}/ETH/getUserData
  • POST (USER) /api/v1/outPayments/{userID}/ETH/createOutPayment
  • POST (USER) /api/v1/outPayments/{userID}/ETH/confirmOutPayment
  • POST (USER) /api/v1/outPayments/{userID}/ETH/getConfirmedOutPayments
  • POST (USER) /api/v1/outPayments/{userID}/ETH/getPendingOutPayments
  • GET (USER) /api/v1/outPayments/{userID}/NOK/bank/getUserData
  • POST (USER) /api/v1/outPayments/{userID}/NOK/bank/createOutPayment
  • POST (USER) /api/v1/outPayments/{userID}/NOK/bank/confirmOutPayment
  • POST (USER) /api/v1/outPayments/{userID}/NOK/bank/getConfirmedOutPayments
  • POST (USER) /api/v1/outPayments/{userID}/NOK/bank/getPendingOutPayments
  • GET (USER) /api/v1/outPayments/{userID}/NOK/ERC20/getUserData
  • POST (USER) /api/v1/outPayments/{userID}/NOK/ERC20/createOutPayment
  • POST (USER) /api/v1/outPayments/{userID}/NOK/ERC20/confirmOutPayment
  • POST (USER) /api/v1/outPayments/{userID}/NOK/ERC20/getConfirmedOutPayments
  • POST (USER) /api/v1/outPayments/{userID}/NOK/ERC20/getPendingOutPayments

2.8. Handel


  • GET /api/v1/trading/currencies
  • GET /api/v1/trading/currencies/{currencyID}
  • GET /api/v1/trading/currencyPairs
  • GET /api/v1/trading/currencyPairs/{currencyPairID}
  • GET /api/v1/trading/orders/{currencyPairID}
  • GET /api/v1/trading/orders/buy/{buyOrderID}
  • GET /api/v1/trading/orders/sell/{sellOrderID}
  • POST (USER) /api/v1/trading/orders/buy/new
  • POST (USER) /api/v1/trading/orders/buy/cancel
  • POST (USER) /api/v1/trading/orders/sell/new
  • POST (USER) /api/v1/trading/orders/sell/cancel
  • POST (USER) /api/v1/trading/orders/cancelAllOrders
  • GET /api/v1/trading/orderBook/{currencyPairID}
  • GET (USER) /api/v1/trading/yourOrders/{currencyPairID}
  • GET /api/v1/trading/transactions/{currencyPairID}
  • GET (USER) /api/v1/trading/yourTransactions/{currencyPairID}
  • GET (USER) /api/v1/trading/yourWallets/{currencyPairID}
  • GET /api/v1/trading/userData
  • GET /api/v1/trading/tradingPage
  • POST /api/v1/trading/tradingPage
  • GET /api/v1/trading/exchange/overview/currencies
  • POST /api/v1/trading/exchange/overview/overview