> 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/specific-pair-stats.md).

# Specific Pair Stats

### Details

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

#### Query Parameters

| Name                                     | Type   | Description     | Example   |
| ---------------------------------------- | ------ | --------------- | --------- |
| market<mark style="color:red;">\*</mark> | STRING | Any public pair | BTC\_USDT |

<details>

<summary>CURL Example</summary>

```javascript
curl -X GET "https://api.earnbit.com/api/v1/public/ticker?market=BTC_USDT" -H "accept: application/json"
```

</details>

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

| Name   |  Type  |                  Description                  |
| ------ | :----: | :-------------------------------------------: |
| name   | STRING |                   Pair name                   |
| bid    | STRING |                  Highest bid                  |
| ask    | STRING |                   Lowest ask                  |
| open   | STRING |        Open price for the last 24 hours       |
| high   | STRING |      Highest price for the last 24 hours      |
| low    | STRING |       Lowest price for the last 24 hours      |
| last   | STRING |                Last deal price                |
| volume | STRING |            Volume in stock currency           |
| deal   | STRING |            Volume in money currency           |
| change | STRING | Change in percent between open and last price |

**Response example:**

```javascript
{
    "code": 200,
    "success": true,
    "message": "",
    "result": {
        "name": "BTC_USDT",
        "bid": "63370.1875606",
        "ask": "63377.7924394",
        "open": "62924.07",
        "high": "64128.01",
        "low": "62616",
        "last": "63426.02",
        "volume": "529.54101",
        "deal": "33557657.4860868807",
        "change": "0.7945383501872970421"
    }
}
```

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

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

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

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

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

#### 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

<table><thead><tr><th>Name</th><th width="169">Type</th><th>Description</th><th>Example</th></tr></thead><tbody><tr><td>market<mark style="color:red;">*</mark></td><td>STRING</td><td>Any public pair</td><td>BTC_USDT</td></tr><tr><td>request<mark style="color:red;">*</mark></td><td>STRING</td><td>A request path without the domain name</td><td>/api/v1/public/ticker</td></tr><tr><td>nonce<mark style="color:red;">*</mark></td><td>NUMERIC</td><td>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)</td><td>1704070810000</td></tr></tbody></table>

<details>

<summary>CURL Example</summary>

```javascript
curl --location --request POST 'https://api.earnbit.com/api/v1/public/ticker' \
--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", "request":"/api/v1/public/ticker","nonce":1704070810000}'
```

</details>

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

```javascript
{
    "code": 200,
    "success": true,
    "message": "",
    "result": {
        "name": "BTC_USDT",
        "bid": "63948.034557",
        "ask": "63960.825443",
        "open": "63829.98",
        "high": "64159.97",
        "low": "62869.51",
        "last": "63953.99",
        "volume": "329.29335707",
        "deal": "20943689.71327047163",
        "change": "0.1940931875811036720"
    }
}
```

{% 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": 1727100902,
    "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 %}
