> For the complete documentation index, see [llms.txt](https://earnbit.gitbook.io/earnbit/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://earnbit.gitbook.io/earnbit/developers/exchange-api-documentation/public-endpoints-or-http/chart-data-kline.md).

# Chart Data KLine

### Details

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

#### Query Parameters

| Name                                     | Type    | Description                                                                                                         | Example    |
| ---------------------------------------- | ------- | ------------------------------------------------------------------------------------------------------------------- | ---------- |
| market<mark style="color:red;">\*</mark> | STRING  | Any public pair                                                                                                     | BTC\_USDT  |
| start<mark style="color:red;">\*</mark>  | NUMERIC | Start time (unixtime)                                                                                               | 1660638764 |
| end<mark style="color:red;">\*</mark>    | NUMERIC | End time (unixtime)                                                                                                 | 1660818764 |
| interval                                 | NUMERIC | Time interval (default = 1 min, 60 = 1 min, 900 = 15 min, 1800 = 30 min, 3600 = 1 h, 14400 = 4 h, 86400 = 1 d, etc) | 3600       |

<details>

<summary>CURL Example</summary>

```javascript
curl -X GET "https://api.earnbit.com/api/v1/public/kline?market=BTC_USDT&start=1660638764&end=1660818764&interval=3600" -H "accept: application/json"
```

</details>

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

|   Name  |   Type  | Description                        |
| :-----: | :-----: | ---------------------------------- |
|   time  | NUMERIC | Time in seconds                    |
|   open  |  STRING | Open price for the last 24 hours   |
|  close  |  STRING | Close price for the last 24 hours  |
| highest |  STRING | Higest price for the last 24 hours |
|  lowest |  STRING | Lowest price for the last 24 hours |
|  volume |  STRING | Volume in 1st ticker of the pair   |
|  amount |  STRING | Volume in 2nd ticker of the pair   |
|  market |  STRING | Pair name                          |

**Response example:**

```javascript
{
    "code": 200,
    "success": true,
    "message": "",
    "result": {
        "market": "BTC_USDT",
        "start": 1660638764,
        "end": 1660818764,
        "interval": 3600,
        "kline": [
            {
                "time": 1660640400,
                "open": "24013.18961046",
                "close": "24077.44983759",
                "highest": "24115.22403532",
                "lowest": "23960.28989815",
                "volume": "136.2378103",
                "amount": "3278615.587510444876",
                "market": "BTC_USDT"
            },
            ...
        ]
    }
}
```

{% 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": {
        "start": [
            "The start field is required."
        ],
        "end": [
            "The end field is required."
        ]
    },
    "result": []
}
```

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

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

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

```javascript
{
    "timestamp": 1660766043722,
    "status": 404,
    "error": "Not Found",
    "message": "",
    "path": "/api/v1/public/kline-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/developers/exchange-api-documentation/private-endpoints-or-http/authentication-and-api-keys.md) (similar to [private endpoints](/earnbit/developers/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/kline`

#### Headers

| Name                                              | Type   | Description                                                                                                               |
| ------------------------------------------------- | ------ | ------------------------------------------------------------------------------------------------------------------------- |
| X-TXC-APIKEY<mark style="color:red;">\*</mark>    | STRING | Public [API key](/earnbit/developers/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            |
| start<mark style="color:red;">\*</mark>   | NUMERIC | Start time (unixtime)                                                                                                                                                    | 1660638764           |
| end<mark style="color:red;">\*</mark>     | NUMERIC | End time (unixtime)                                                                                                                                                      | 1660818764           |
| interval                                  | NUMERIC | Time interval (default = 1 min, 60 = 1 min, 900 = 15 min, 1800 = 30 min, 3600 = 1 h, 14400 = 4 h, 86400 = 1 d, etc)                                                      | 3600                 |
| request<mark style="color:red;">\*</mark> | STRING  | A request path without the domain name                                                                                                                                   | /api/v1/public/kline |
| 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/kline' \
--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","start":1660638764,"end":1660818764,"interval":3600,"request":"/api/v1/public/kline","nonce":1704070810000}'
```

</details>

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

```javascript
{
    "code": 200,
    "success": true,
    "message": "",
    "result": {
        "market": "BTC_USDT",
        "start": 1660638764,
        "end": 1660818764,
        "interval": 3600,
        "kline": [
            {
                "time": 1660640400,
                "open": "24013.18961046",
                "close": "24077.44983759",
                "highest": "24115.22403532",
                "lowest": "23960.28989815",
                "volume": "136.2378103",
                "amount": "3278615.587510444876",
                "market": "BTC_USDT"
            },
            ...
        ]
    }
}
```

{% 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/developers/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/developers/exchange-api-documentation/private-endpoints-or-http/authentication-and-api-keys.md).
  {% endtab %}

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

```javascript
{    
    "timestamp": 1727100909,
    "status": 404,
    "error": "Not Found",
    "message": "",
    "path": "/api/v1/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 %}
