# Order Book Data

### Details

<mark style="color:blue;">`GET`</mark> `https://api.earnbit.com/api/v1/public/book`

#### Query Parameters

| Name                                     | Type    | Description                                                     | Example   |
| ---------------------------------------- | ------- | --------------------------------------------------------------- | --------- |
| market<mark style="color:red;">\*</mark> | STRING  | Any public pair                                                 | BTC\_USDT |
| side<mark style="color:red;">\*</mark>   | STRING  | buy / sell                                                      | buy       |
| offset                                   | NUMERIC | How many last orders to skip (default  = 0)                     | 0         |
| limit                                    | NUMERIC | How many orders to display (default = 50, min  = 1, max = 1000) | 5         |

<details>

<summary>CURL Example</summary>

```javascript
curl -X GET "https://api.earnbit.com/api/v1/public/book?market=BTC_USDT&side=sell&offset=0&limit=5" -H "accept: application/json"
```

</details>

{% tabs %}
{% tab title="200: OK Successful" %}
**Response parameters:**

|    Name   |   Type  | Description                              |
| :-------: | :-----: | ---------------------------------------- |
|     id    | NUMERIC | Order ID                                 |
|   market  |  STRING | Pair name                                |
|   price   |  STRING | Order price                              |
|   amount  |  STRING | Order amount (in 1st ticker of the pair) |
|    left   |  STRING | Available order amount                   |
|    type   |  STRING | Order type                               |
|    side   |  STRING | Order side (sell / buy)                  |
| timestamp | NUMERIC | Order creation time (TimeStamp format)   |
|  takerFee |  STRING | Order taker fee                          |
|  makerFee |  STRING | Order maker fee                          |
| dealStock |  STRING | Executed amount in stock currency        |
| dealMoney |  STRING | Executed amount in money currency        |

**Response example:**

```javascript
{
    "code": 200,
    "success": true,
    "message": "",
    "result": {
        "offset": 0,
        "limit": 5,
        "total": 302,
        "orders": [
        {
                "id": 19164608956,
                "market": "BTC_USDT",
                "price": "63363.0615556",
                "amount": "0.450231",
                "left": "0.450231",
                "type": "limit",
                "side": "sell",
                "timestamp": 1726835765.636000,
                "takerFee": "0",
                "makerFee": "0",
                "dealStock": "0",
                "dealMoney": "0"
        },
        ...
        ]
    }
}
```

{% endtab %}

{% tab title="400: Bad Request " %}

**Response example 1:**

```javascript
<html>

<head>
	<title>400 Bad Request</title>
</head>

<body>
	<center>
		<h1>400 Bad Request</h1>
	</center>
	<hr>
	<center>nginx</center>
</body>

</html>
```

**This error occurs in the following cases:**

* One or more query parameters are invalid
* The request contains invalid headers

**Response example 2:**

```javascript
{
    "code": 400,
    "success": false,
    "message": "invalid input",
    "result": []
}
```

**This error occurs in the following cases:**

* The query parameter `market` was not provided in the request.
* One or more query parameters in the request contain invalid values.

**Response example 3:**

```javascript
{
    "code": 400,
    "success": false,
    "message": {
        "side": [
            "The side is required."
        ]
    },
    "result": []
}
```

**This error occurs in the following cases:**

* The query parameter `side` was not provided in the request.
* The query parameter `side` was provided incorrectly.
  {% endtab %}

{% tab title="404: Not Found " %}
**Response example:**

```javascript
{
    "timestamp": 1660766043722,
    "status": 404,
    "error": "Not Found",
    "message": "",
    "path": "/api/v1/public/book-test"
}
```

**This error occurs in the following cases:**

* The requested URL was not found. Please check the endpoint and try again
  {% endtab %}
  {% endtabs %}

### With Authentication

This public endpoint can also be used as a `POST` request with [authentication](/earnbit/exchange-api-documentation/private-endpoints-or-http/authentication-and-api-keys.md) (similar to [private endpoints](/earnbit/exchange-api-documentation/private-endpoints-or-http.md)) to allow you to access more data.

<mark style="color:green;">`POST`</mark> `https://api.earnbit.com/api/v1/public/book`

#### Headers

| Name                                              | Type   | Description                                                                                                    |
| ------------------------------------------------- | ------ | -------------------------------------------------------------------------------------------------------------- |
| X-TXC-APIKEY<mark style="color:red;">\*</mark>    | STRING | Public [API key](/earnbit/exchange-api-documentation/private-endpoints-or-http/authentication-and-api-keys.md) |
| X-TXC-PAYLOAD<mark style="color:red;">\*</mark>   | STRING | Сonverted Base64 string containing body JSON                                                                   |
| X-TXC-SIGNATURE<mark style="color:red;">\*</mark> | STRING | Encrypted HmacSHA512 string containing body JSON with a API secret key                                         |

#### Request Body

| Name                                      | Type    | Description                                                                                                                                                              | Example             |
| ----------------------------------------- | ------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------- |
| market<mark style="color:red;">\*</mark>  | STRING  | Any public pair                                                                                                                                                          | BTC\_USDT           |
| side<mark style="color:red;">\*</mark>    | STRING  | buy / sell                                                                                                                                                               | sell                |
| offset                                    | NUMERIC | How many last orders to skip (default  = 0)                                                                                                                              | 1                   |
| limit                                     | NUMERIC | How many orders to display (default = 50, min  = 1, max = 1000)                                                                                                          | 10                  |
| request<mark style="color:red;">\*</mark> | STRING  | A request path without the domain name                                                                                                                                   | /api/v1/public/book |
| nonce<mark style="color:red;">\*</mark>   | NUMERIC | A 13-character number that must always be greater than the nonce of the previous completed request (we suggest generating a nonce as the UNIX timestamp in milliseconds) | 1704070810000       |

<details>

<summary>CURL Example</summary>

```javascript
curl --location --request POST 'https://api.earnbit.com/api/v1/public/book' \
--header 'Content-Type: application/json' \
--header 'X-TXC-APIKEY: 0000000000XXXXXXXXXXXXXXXXX' \
--header 'X-TXC-PAYLOAD: 0000000000XXXXXXXXXXXXXXXXX' \
--header 'X-TXC-SIGNATURE: 0000000000XXXXXXXXXXXXXXXXX' \
--data-raw '{"market":"BTC_USDT","side":"sell","offset":1,"limit":10,"request":"/api/v1/public/book","nonce":1704070810000}'
```

</details>

{% tabs %}
{% tab title="200: OK Successful" %}
**Response example:**

<pre class="language-javascript"><code class="lang-javascript"><strong>{
</strong>    "code": 200,
    "success": true,
    "message": "",
    "result": {
        "offset": 0,
        "limit": 50,
        "total": 1,
        "orders": [
            {
                "id": 1040986646,
                "market": "PXP_USDT",
                "price": "3.2",
                "amount": "1000",
                "left": "705.75",
                "type": "limit",
                "side": "sell",
                "timestamp": 1727773452.531000,
                "takerFee": "0.005",
                "makerFee": "0.005",
                "dealStock": "294.25",
                "dealMoney": "941.6"
            }
        ]
    }
}
</code></pre>

{% endtab %}

{% tab title="400: Authentication Failure " %}
**Response example:**

```javascript
{
    "code": 400,
    "success": false,
    "message": "authentication failure",
    "result": []
}
```

**This error occurs in the following cases:**

* The request was signed incorrectly.
* Some of the provided parameters are incorrect.
* Provided [nonce](/earnbit/exchange-api-documentation/private-endpoints-or-http/authentication-and-api-keys.md) is incorrect or less than on previous completed request
* The base URL or path is incorrect.
* The API keys are not [activated](/earnbit/exchange-api-documentation/private-endpoints-or-http/authentication-and-api-keys.md).
  {% endtab %}

{% tab title="404: Not Found " %}
**Response example:**

```javascript
{    
    "timestamp": 1727100903,
    "status": 404,
    "error": "Not Found",
    "message": "",
    "path": "/api/v1/public/public/test"
}
```

**This error occurs in the following cases:**

* The request was made with undefined data and the service cannot find the data for response.
  {% endtab %}
  {% endtabs %}


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://earnbit.gitbook.io/earnbit/exchange-api-documentation/public-endpoints-or-http/order-book-data.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
