cURL python

Introduction

API Key Setup

API Key Restrictions

Enabling Accounts

A SPOT account is provided by default upon creation of a Jeritex Account.

General API Information

Contact Us

Authentication

Parameters for Authenticated Endpoints

API Key

Parameters

The following parameters must be used for authentication:

We also provide recvWindow (unit in millisecond and default value is 5,000) to specify how Long an HTTP request is valid. It is also used to prevent replay attacks. Maximum allowed value is 60,000.

A smaller recvWindow is more secure, but your request may fail if the transmission time is greater than your recvWindow.

Please make sure that your timestamp is in sync with our server time. You can use the Server Time endpoint.

Create A Request

  1. Concatenate all the public parameters in the query string format. This will be used to generate the signature.
  2. Use the HMAC_SHA256 algorithm to sign the query string in step 1, and convert it to a hex string to obtain the signature parameter.
  3. Append the sign parameter to the end of the parameters string, and send the HTTP request. Note that the message format for GET and POST requests is different. Please refer to the examples.

SIGNED Endpoint Examples for GET /trade/history

Here is a step-by-step example of how to send a valid signed payload from the Linux command line using echo, openssl, and curl.

key value
apiKey g4AA0EA40t5qwU8OLrIpN9qbPx1PgbwP
secretKey OQqHHLH52AR6iHsoYLffDsO8H9qEa92cBVdq6T5Ir0a1oLNekaWdwwmuOwLmmksA
# HMAC SHA256 signature:
echo -n "symbol=BTC/USDT&pageNo=0&pageSize=20&timestamp=1657861196487&recvWindow=5000" |  openssl dgst -sha256 -hmac "OQqHHLH52AR6iHsoYLffDsO8H9qEa92cBVdq6T5Ir0a1oLNekaWdwwmuOwLmmksA"
(stdin)= 30a85b7cbf4e9404d4faaa05e6e97bb926d4f7090cf58d542a634a9a5c7ec184
curl -H "X-JRT-APIKEY": g4AA0EA40t5qwU8OLrIpN9qbPx1PgbwP" -X GET 'https://api.jeritex.io/api/v1/trade/history?symbol=BTC%2FUSDT&pageNo=0&pageSize=20&timestamp=1657861196487&recvWindow=5000&signature=30a85b7cbf4e9404d4faaa05e6e97bb926d4f7090cf58d542a634a9a5c7ec184'
import time
import hmac
import hashlib

from urllib.parse import urlencode


api_key = "g4AA0EA40t5qwU8OLrIpN9qbPx1PgbwP"
api_secret = "OQqHHLH52AR6iHsoYLffDsO8H9qEa92cBVdq6T5Ir0a1oLNekaWdwwmuOwLmmksA"
base_url = "https://api.jeritex.io/api/v1"


def timestamp():
    return int(time.time() * 1000)


def encoded_string(query):
    return urlencode(query, True)


def _get_sign(data):
    m = hmac.new(api_secret.encode("utf-8"), data.encode("utf-8"), hashlib.sha256)
    return m.hexdigest()

def signed_request(url_path, payload={}):
    query_string = urlencode(payload, True)
    if query_string:
        query_string = "{}&timestamp={}".format(query_string, timestamp())
    else:
        query_string = "timestamp={}".format(timestamp())

    url = (
        base_url + url_path + "?" + query_string + "&signature=" + _get_sign(query_string)
    )
    print(url)


payload = {
    "symbol": "BTC/USDT",
    "pageNo":  0,
    "pageSize": 20,
    "recvWindow":  60000
}
signed_request("/trade/history", payload)
Parameter Value
symbol BTC/USDT
pageNo 0
pageSize 20
recvWindow 5000
timestamp 1657861196487

symbol=BTC/USDT&pageNo=0&pageSize=20&timestamp=1657861196487&recvWindow=5000

Market Data Endpoints

Test Connectivity

curl -X 'GET' 'https://api.jeritex.io/api/v1/public/ping'
import requests

url = "https://api.jeritex.io/api/v1/public/ping"

payload={}
headers = {}

response = requests.request("GET", url, headers=headers, data=payload)

Test connectivity to the Rest API.

GET /public/ping

Parameters

No parameters

Response example

{
  "code": 200,
  "data": "success",
  "success": true
}

Check Server Time

curl -X 'GET' 'https://api.jeritex.io/api/v1/public/time'
import requests

url = "https://api.jeritex.io/api/v1/public/time"

payload={}
headers = {}

response = requests.request("GET", url, headers=headers, data=payload)

Test connectivity to the Rest API and get the current server time.

GET /public/time

Parameters

No parameters

Response example

{
  "code": 200,
  "data": {
    "server-time": 1657727196288
  },
  "success": true
}

Market Summary

curl -X 'GET' 'https://api.jeritex.io/api/v1/public/summary'
import requests

url = "https://api.jeritex.io/api/v1/public/summary"

payload={}
headers = {}

response = requests.request("GET", url, headers=headers, data=payload)

Market summary.

GET /public/summary

Parameters

No parameters

Response example


  "code": 200,
  "data": [
    {
      "trading_pairs": "BTC/USDT",
      "ticker_id": "BTC/USDT",
      "base": "BTC",
      "target": "USDT",
      "last_price": 17187.92000000,
      "lowest_ask": 30000.00000000,
      "highest_bid": 0,
      "base_volume": 354.9114,
      "quote_volume": 6103615.7950,
      "price_change_percent_24h": -0.0027,
      "highest_price_24h": 17243.36000000,
      "lowest_price_24h": 17185.04000000
    },
    ...
  ],
  "success": true

All Market Tickers

curl -X 'GET' 'https://api.jeritex.io/api/v1/public/tickers'
import requests

url = "https://api.jeritex.io/api/v1/public/tickers"

payload={}
headers = {}

response = requests.request("GET", url, headers=headers, data=payload)

All market tickers with statistics in 24 hours.

GET /public/tickers

Parameters

No parameters

Response example

{
    "code": 200,
    "data": {
      "DOGE_USDT": {
        "ticker_id": "DOGE/USDT",
        "base_currency": "DOGE",
        "target_currency": "USDT",
        "last_price": 0.074750,
        "base_volume": 8830133.0000,
        "quote_volume": 663044.4657,
        "ask": 0.074760,
        "bid": 0.074740,
        "open": 0.07524000,
        "high": 0.07563000,
        "low": 0.07473000,
        "close": 0.074750,
        "chg": -0.0066,
        "change": -0.00049000,
        "last_day_close": 0,
        "usd_rate": 0.074750,
        "base_usd_rate": 1
      },
      "SFT_USDT": {
        "ticker_id": "SFT/USDT",
        "base_currency": "SFT",
        "target_currency": "USDT",
        "last_price": 0,
        "base_volume": 0.0000,
        "quote_volume": 0,
        "ask": 0,
        "bid": 0,
        "open": 0,
        "high": 0,
        "low": 0,
        "close": 0,
        "chg": 0.00,
        "change": 0,
        "last_day_close": 0,
        "usd_rate": 0,
        "base_usd_rate": 1
      },
        ...
    },
    "success": true
}

Specific Market Ticker

curl -X 'GET' 'https://api.jeritex.io/api/v1/public/ticker?ticker_id=BTC/USDT'
import requests

url = "https://api.jeritex.io/api/v1/public/ticker?ticker_id=BTC/USDT"

payload={}
headers = {}

response = requests.request("GET", url, headers=headers, data=payload)

Latest statistics for a symbol.

GET /public/ticker

Parameters

Parameter Type Required Description
ticker_id string Yes Symbol

Response example

{
  "code": 200,
  "data": {
    "ticker_id": "BTC/USDT",
    "base_currency": "BTC",
    "target_currency": "USDT",
    "last_price": 17190.08,
    "base_volume": 323.038,
    "quote_volume": 5555797.7228,
    "ask": null,
    "bid": null,
    "open": 17233.44,
    "high": 17243.36,
    "low": 17185.04,
    "close": 17190.08,
    "chg": -0.0026,
    "change": -43.36,
    "last_day_close": 0,
    "usd_rate": 17190.08,
    "base_usd_rate": 1
  },
  "success": true
}

Order Book

curl -X 'GET' 'https://api.jeritex.io/api/v1/public/orderbook?ticker_id=BTC/USDT'
import requests

url = "https://api.jeritex.io/api/v1/public/orderbook?ticker_id=BTC/USDT"

payload={}
headers = {}

response = requests.request("GET", url, headers=headers, data=payload)

Order book of specific symbol

GET /public/orderbook

Parameters

Parameter Type Required Description
ticker_id string Yes Symbol
depth int No 0 returns full depth. Depth = 100 means 50 for each bid/ask side.

Response example

{
  "code": 200,
  "data": {
    "ticker_id": "BTC/USDT",
    "timestamp": 1673237050158,
    "asks": [
      {
        "price": 19974.29,
        "amount": 0.5946
      },
      {
        "price": 19974.97,
        "amount": 0.0003
      },
      ...
    ],
    "bids": [
      {
        "price": 19974.28,
        "amount": 0.5741
      },
      {
        "price": 19972.8,
        "amount": 0.1502
      },
      ...
    ]
  },
  "success": true
}

Kline/Candlestick Data

curl -X 'GET' 'https://api.jeritex.io/api/v1/public/kline?ticker_id=BTC/USDT&interval=1min&from=0&to=0&limit=500'
import requests

url = "https://api.jeritex.io/api/v1/public/kline?ticker_id=BTC/USDT&interval=1min&from=0&to=0&limit=500"

payload={}
headers = {}

response = requests.request("GET", url, headers=headers, data=payload)

Kline/candlestick bars for a symbol.

Klines are uniquely identified by their open time.

GET /public/kline

Parameters

Parameter Type Required Description
ticker_id string Yes Symbol
interval string Yes Interval of Kline data. Valid values: 1min, 5min, 15min, 30min, 1hour, 4hour, 1day, 1mon, 1week, 1year
from $int64 No start time
to $int64 No end time
limit integer No Limit the number of returned Klines. Default is 500.

Response example

{
  "code": 200,
  "data": [
    [
      1638103320000,
      54410.77,
      54410.77,
      54410.76,
      54410.76,
      0.000822999932917692
    ],
    [
      1638103380000,
      54410.77,
      54440.16,
      54410.75,
      54410.75,
      3.6218707025782133
    ],
    ...
  ],
  "success": true
}

Historical trades

curl -X 'GET' 'https://api.jeritex.io/api/v1/public/historical_trades?ticker_id=BTC/USDT&limit=100'
import requests

url = "https://api.jeritex.io/api/v1/public/historical_trades?ticker_id=BTC/USDT&limit=100"

payload={}
headers = {}

response = requests.request("GET", url, headers=headers, data=payload)

Historical trades of a symbol.

GET /public/historical_trades

Parameters

Parameter Type Required Description
ticker_id string Yes Symbol
type Enum No Order side
limit integer No Limit the number of returned trades. Default is 10.

Response example

{
  "code": 200,
  "success": true,
  "data": [
   {  
      "trade_id": "63fdbc61b650f34ef7484465",
      "price":"0.01",
      "base_volume":"569000",
      "quote_volume":"0.01000000",
      "timestamp":"1677573217550",
      "type":"sell"
   }
   ...
  ]
}

Assets

curl -X 'GET' 'https://api.jeritex.io/api/v1/public/assets'
import requests

url = "https://api.jeritex.io/api/v1/public/assets"

payload={}
headers = {}

response = requests.request("GET", url, headers=headers, data=payload)

Available crypto currencies on Jeritex exchange

GET /public/assets

Parameters

No parameters

Response example

{
  "code": 200,
  "success": true,
  "data": {
    "ENJ": {
      "unit": "ENJ",
      "name": "Enjin Coin",
      "can_withdraw": false,
      "can_deposit": false,
      "min_withdraw": 0.01000000,
      "max_withdraw": 50.00000000,
      "maker_fee": 0.001,
      "taker_fee": 0.001
    }
    ...
  }
}

Spot Trade

Test connectivity trade API

curl --location --request POST 'https://api.jeritex.io/api/v1/trade/ping?timestamp=1657874098080&signature={signature}' \
--header 'X-JRT-APIKEY: {your-api-key}'
import requests

url = "https://api.jeritex.io/api/v1/trade/ping?timestamp=1657874098080&signature={signature}"

payload={}
headers = {
  'X-JRT-APIKEY': 'your-api-key'
}

response = requests.request("POST", url, headers=headers, data=payload)

print(response.text)

Test connectivity to the Trade API.

GET /trade/ping (HMAC SHA256)

Parameters

Name Type Required Description
recvWindow Long false
timestamp Long true timestamp
signature string true HMAC SHA256 signature

Response example

{
  "code": 200,
  "data": "pong!",
  "success": true
}

Create Order

curl -X 'POST' \
  'https://api.jeritex.io/api/v1/trade/order?symbol=JRIT%2FUSDT&side=BUY&type=MARKET&quantity=1000&price=1&timestamp=1657874098080&signature={signature}' \
  -H 'accept: application/json' \
  -H 'X-JRT-APIKEY: your-api-key' \
  -d ''
import requests

url = "https://api.jeritex.io/api/v1/trade/order?symbol=JRIT%2FUSDT&side=BUY&type=MARKET&quantity=1000&price=1&timestamp=1657874098080&signature={signature}"

payload={}
headers = {
  'X-JRT-APIKEY': 'your-api-key'
}

response = requests.request("POST", url, headers=headers, data=payload)

print(response.text)

Create a new order

POST /trade/order (HMAC SHA256)

Parameters

Name Type Required Description
symbol String true
side Enum true Order side
type Enum true Order type
quantity Long true
price Long false
recvWindow Long false
timestamp Long true timestamp
signature String true HMAC SHA256 signature

Response example

{
  "code": 0,
  "message": "string",
  "data": {
    "order_id": "string",
    "member_id": "string",
    "type": "MARKET",
    "amount": 0,
    "symbol": "string",
    "traded_amount": 0,
    "turnover": 0,
    "base_currency": "string",
    "quote_currency": "string",
    "status": "TRADING",
    "direction": "BUY",
    "price": 0,
    "time": 0,
    "completed_time": 0,
    "canceled_time": 0,
    "use_discount": true,
    "order_source": "",
    "detail": [
      {
        "order_id": "string",
        "price": 0,
        "amount": 0,
        "turnover": 0,
        "fee": 0,
        "timestamp": 0
      }
    ],
    "completed": true
  },
  "success": true
}

Cancel all Open Orders on a Symbol

curl -X 'POST' \
  'https://api.jeritex.io/api/v1/trade/cancel?symbol=JRIT%2FUSDT&timestamp=1657874098080&signature={signature}' \
  -H 'accept: application/json' \
  -H 'X-JRT-APIKEY: your-api-key' \
  -d ''
import requests

url = "https://api.jeritex.io/api/v1/trade/cancel?symbol=JRIT%2FUSDT&timestamp=1657874098080&signature={signature}"

payload={}
headers = {
  'X-JRT-APIKEY': 'your-api-key'
}

response = requests.request("POST", url, headers=headers, data=payload)

print(response.text)

Cancels all active orders on a symbol.

POST /trade/cancel (HMAC SHA256)

Parameters

Name Type Required Description
symbol String true
recvWindow Long false
timestamp Long true timestamp
signature String true HMAC SHA256 signature

Response example

{
  "code": 0,
  "message": "string",
  "data": "string",
  "success": true
}

Cancel an order

curl -X 'POST' \
  curl -X 'POST' \
  'https://api.jeritex.io/api/v1/trade/cancel/423523?timestamp=1657874098080&signature={signaure}' \
  -H 'accept: application/json' \
  -H 'X-JRT-APIKEY: your-api-key' \
  -d ''
import requests

url = "https://api.jeritex.io/api/v1/trade/cancel/423523?timestamp=1657874098080&signature={signaure}"

payload={}
headers = {
  'X-JRT-APIKEY': 'your-api-key'
}

response = requests.request("POST", url, headers=headers, data=payload)

print(response.text)

Cancel order by orderId

POST /trade/cancel/{orderId} (HMAC SHA256)

Parameters

Name Type Required Description
orderId String true
recvWindow Long false
timestamp Long true timestamp
signature String true HMAC SHA256 signature

Response example

{
  "code": 0,
  "message": "string",
  "data": "string",
  "success": true
}

Trade history

curl -X 'POST' \
  curl -X 'GET' \
  'https://api.jeritex.io/api/v1/trade/history?symbol=JRIT/USDT&pageNo=0&pageSize=20&timestamp=1657874098080&signature={signature}' \
  -H 'accept: application/json' \
  -H 'X-JRT-APIKEY: your-api-key'
import requests

url = "https://api.jeritex.io/api/v1/trade/history?symbol=JRIT/USDT&pageNo=0&pageSize=20&timestamp=1657874098080&signature={signature}"

payload={}
headers = {
  'X-JRT-APIKEY': 'your-api-key'
}

response = requests.request("POST", url, headers=headers, data=payload)

print(response.text)

Get trading history for a symbol.

GET /trade/history (HMAC SHA256)

Parameters

Name Type Required Description
symbol String true
pageNo Integer false default is 0
pageSize Integer false default is 20
recvWindow Long false
timestamp Long true timestamp
signature String true HMAC SHA256 signature

Response example

{
  "code": 200,
  "data": {
    "content": [
      {
        "amount": 0,
        "base_currency": "string",
        "canceled_time": 0,
        "completed": true,
        "completed_time": 0,
        "detail": [
          {
            "amount": 0,
            "fee": 0,
            "order_id": "string",
            "price": 0,
            "timestamp": 0,
            "turnover": 0
          }
        ],
        "direction": "BUY",
        "member_id": "string",
        "order_id": "string",
        "order_source": "string",
        "price": 0,
        "quote_currency": "string",
        "status": "TRADING",
        "symbol": "string",
        "time": 0,
        "traded_amount": 0,
        "turnover": 0,
        "type": "MARKET",
        "use_discount": true
      }
    ],
    "empty": true,
    "first": true,
    "last": true,
    "number": 0,
    "number_of_elements": 0,
    "pageable": {
      "offset": 0,
      "page_number": 0,
      "page_size": 20,
      "paged": true,
      "sort": {
        "empty": false,
        "sorted": true,
        "unsorted": false
      },
      "unpaged": false
    },
    "size": 20,
    "sort": {
      "empty": false,
      "sorted": true,
      "unsorted": false
    },
    "total_elements": 0,
    "total_pages": 0
  },
  "success": true
}

Order detail

  curl -X 'GET' \
  'https://api.jeritex.io/api/v1/trade/detail/54223435?timestamp=1657874098080&signature={signature}' \
  -H 'accept: application/json' \
  -H 'X-JRT-APIKEY: your-api-key'
import requests

url = "https://api.jeritex.io/api/v1/trade/detail/54223435?timestamp=1657874098080&signature={signature}"

payload={}
headers = {
  'X-JRT-APIKEY': 'your-api-key'
}

response = requests.request("POST", url, headers=headers, data=payload)

print(response.text)

Get order detail by orderId.

GET /trade/detail/{orderId} (HMAC SHA256)

Parameters

Name Type Required Description
orderId String true
recvWindow Long false
timestamp Long true timestamp
signature String true HMAC SHA256 signature

Response example

{
  "code": 0,
  "message": "success",
  "data": [
    {
      "order_id": "54223435",
      "price": 1,
      "amount": 1000,
      "turnover": 0,
      "fee": 0,
      "timestamp": 1657874098080
    }
  ],
  "success": true
}

Current Open Orders

curl -X 'GET' \
  'https://api.jeritex.io/api/v1/trade/current?symbol=JRIT/USDT&pageNo=0&pageSize=20&timestamp=1657874098080&signature={signature}' \
  -H 'accept: application/json' \
  -H 'X-JRT-APIKEY: your-api-key'
import requests

url = "https://api.jeritex.io/api/v1/trade/current?symbol=JRIT/USDT&pageNo=0&pageSize=20&timestamp=1657874098080&signature={signature}"

payload={}
headers = {
  'X-JRT-APIKEY': 'your-api-key'
}

response = requests.request("POST", url, headers=headers, data=payload)

print(response.text)

Get current open orders for a symbol.

GET /trade/current (HMAC SHA256)

Parameters

Name Type Required Description
symbol String true
pageNo Integer false default is 0
pageSize Integer false default is 20
recvWindow Long false
timestamp Long true timestamp
signature String true HMAC SHA256 signature

Response example

{
  "code": 200,
  "data": {
    "content": [
      {
        "amount": 0,
        "base_currency": "string",
        "canceled_time": 0,
        "completed": true,
        "completed_time": 0,
        "detail": [
          {
            "amount": 0,
            "fee": 0,
            "order_id": "string",
            "price": 0,
            "timestamp": 0,
            "turnover": 0
          }
        ],
        "direction": "BUY",
        "member_id": "string",
        "order_id": "string",
        "order_source": "string",
        "price": 0,
        "quote_currency": "string",
        "status": "TRADING",
        "symbol": "string",
        "time": 0,
        "traded_amount": 0,
        "turnover": 0,
        "type": "MARKET",
        "use_discount": true
      }
    ],
    "empty": true,
    "first": true,
    "last": true,
    "number": 0,
    "number_of_elements": 0,
    "pageable": {
      "offset": 0,
      "page_number": 0,
      "page_size": 20,
      "paged": true,
      "sort": {
        "empty": false,
        "sorted": true,
        "unsorted": false
      },
      "unpaged": false
    },
    "size": 20,
    "sort": {
      "empty": false,
      "sorted": true,
      "unsorted": false
    },
    "total_elements": 0,
    "total_pages": 0
  },
  "success": true
}

Accounts/Wallet APIs

User Asset

curl -X 'GET' \
  'https://api.jeritex.io/api/v1/account?timestamp=1658030864658&signature={signature}' \
  -H 'accept: application/json' \
  -H 'X-JRT-APIKEY: your-api-key'
import requests

url = "https://api.jeritex.io/api/v1/account?timestamp=1658030864658&signature={signature}"

payload={}
headers = {
  'X-JRT-APIKEY': 'your-api-key'
}

response = requests.request("GET", url, headers=headers, data=payload)

print(response.text)

Get all user assets.

GET /account (HMAC SHA256)

Parameters

Name Type Required Description
recvWindow Long false
timestamp Long true timestamp
signature string true HMAC SHA256 signature

Response example

{
    "code": 200,
    "data": {
        "spot": [
            {
                "asset": "ADA",
                "balance": 0,
                "frozen_balance": 0,
                "locked_balance": 0,
                "total_balance": 0,
                "locked": false
            },
            {
                "asset": "AXS",
                "balance": 0,
                "frozen_balance": 0,
                "locked_balance": 0,
                "total_balance": 0,
                "locked": false
            },
            {
                "asset": "BPLUS",
                "balance": 0,
                "frozen_balance": 0,
                "locked_balance": 0,
                "total_balance": 0,
                "locked": false
            },
            ...
        ]
    },
    "success": true
}

Account Info

curl -X 'GET' \
  'https://api.jeritex.io/api/v1/account/apiKey?timestamp=1658030864658&signature=signature' \
  -H 'accept: application/json' \
  -H 'X-JRT-APIKEY: your-api-key'
import requests

url = "https://api.jeritex.io/api/v1/account/apiKey?timestamp=1658030864658&signature=signature"

payload={}
headers = {
  'X-JRT-APIKEY': 'your-api-key'
}

response = requests.request("GET", url, headers=headers, data=payload)

print(response.text)

Get account information base on API Key.

GET /account/apiKey (HMAC SHA256)

Parameters

Name Type Required Description
recvWindow Long false
timestamp Long true timestamp
signature string true HMAC SHA256 signature

Response example

{
  "code": 200,
  "data": {
    "member_id": "xxxxxxxxx-9590-4f6c-b274-xxxxxxxxxxxx",
    "permissions": ["READ", "SPOT_TRADE"],
    "bind_ip": null,
    "expire_time": "2022-12-15T02:12:01",
    "create_time": "2022-07-15T02:12:01"
  },
  "success": true
}

Enum definitions

Side (side)

Order type (order_type)