# Authorization

Some endpoints require Authorization. Our service provides two authorization options: either JWT token or transfer key. You can use one of them to request some protected endpoints: process callbacks log, make transfers, check private invoice information, change account/wallet settings, etc.

# JWT tokens request

# Request

  • HTTP Method: POST
  • Content Type: application/json
  • URL: https://apirone.com/api/v2/auth/login

# Request example

curl 'https://apirone.com/api/v2/auth/login' -X POST -H 'Content-Type: application/json;charset=utf-8' -d '{"login":"btc-f43a47823c6f0894c83e3e364fa12654","password":"oAqmClPQ69a2upN83N5XoPCBeH3XID41"}'
Parameter Type Description Required
login string Endpoint Identifier
password string Transfer Key for the endpoint

# Request example for Account

    {
      "login": "apr-e7be0e8eabd391b499fe64647576fad5",
      "password": "CY2qGJ65OVc5X5KJbibOelc5bbZbnfqx"
    }
    

# Success Response Reference

  • HTTP Status Code: 200
  • Content Type: application/json
Parameter Type Description
login string Endpoints Identifier
access-token string The token for accessing protected endpoints
refresh-token string A token to refresh the access token. See the Access token refresh section for details

By default, the token lifetime for accessing is 10 minutes. You can find out the token lifetime by decoding it in the standard way. When the time expires, you need to retrieve it again using an updated token and the corresponding API.
Read more about token decoding (opens new window)

# Response example

    {
      "login": "apr-e7be0e8eabd391b499fe64647576fad5",
      "access-token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9...",
      "refresh-token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9..."
    }

# Error response

  • HTTP Status Code: 400 500
  • Content Type: application/json

# Access token refresh

# Request

  • HTTP Method: POST
  • Header: Authorization Bearer {refresh-token}
  • URL: https://apirone.com/api/v2/auth/refresh-token

# Request example

curl 'https://apirone.com/api/v2/auth/refresh-token' -X POST -H 'Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJsIjoiNlJUOkRSVDp5UlQ6VFJUOlJSVDo1UlQ6elJUOkkiLCJleHAiOjE2MTM2NjI3MTN9.Dj6_4betKGS6MH2TkCTyikNWfcd5I_4e45FBvtfBi_8'
Parameter Type Description Required
refresh-token string Refresh token

# Success Response Reference

  • HTTP Status Code: 200
  • Content Type: application/json
Parameter Type Description
login string Endpoint Identifier (for example, account identifier)
access-token string The token for accessing protected endpoints
refresh-token string A token to refresh the access token

This response is used similarly to the response from the authorization request. With it, you can use the token further to access protected endpoints.

# Response example

    {
      "login": "btc-c70afacf0b7d7808e8be36bfd7ceed71",
      "access-token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9...",
      "refresh-token": "eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9..."
    }

# Error Response

  • HTTP Status Code: 400 500
  • Content Type: application/json

# Logout request

# Request

  • HTTP Method: POST
  • Header: Authorization Bearer {access-token}
  • URL: https://apirone.com/api/v2/auth/logout

# Request example

curl 'https://apirone.com/api/v2/auth/logout' -X POST -H 'Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJsIjoiNlJUOkRSVDp5UlQ6VFJUOlJSVDo1UlQ6elJUOkkiLCJleHAiOjE2MTM2NjI3MTN9.Dj6_4betKGS6MH2TkCTyikNWfcd5I_4e45FBvtfBi_8'
Parameter Type Description Required
access-token string Access token

# Success Response Reference

  • HTTP Status Code: 200
  • Content Type: application/json

# Response example

    {}

This response is used similarly to the response from the authorization request. With it, you can log out and tokens received during authorization become invalid.

# Error Response

  • HTTP Status Code: 400 500
  • Content Type: application/json

# Access to protected endpoints

A customer can use either transfer key or access-token to access protected endpoints. The difference between these two parameters lies in their use in the request. To authorize with transfer-key add this parameter in the request. To authorize with access-token send this parameter in the Header of the request.

With transfer-key:

# Request example for Account Callback Info:

curl 'https://apirone.com/api/v2/accounts/apr-e7be0e8eabd391b499fe64647576fad5/callback?currency=tbtc&transfer-key=bP1vwTAMNetr7uS5qTYzBTWeY6nPMuZK' 

With access-token:

To authorize with access-token send this parameter in the Header of the request.

# Request example for Account Callback Info:

curl 'https://apirone.com/api/v2/accounts/apr-e7be0e8eabd391b499fe64647576fad5/callback?currency=tbtc' -H 'Authorization: Bearer eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJsIjoiNlJUOkRSVDp5UlQ6VFJUOlJSVDo1UlQ6elJUOkkiLCJleHAiOjE2MTM2NjI3MTN9.Dj6_4betKGS6MH2TkCTyikNWfcd5I_4e45FBvtfBi_8'\'''

Both parameters are equivalent.