> For the complete documentation index, see [llms.txt](https://openapi-docs.nagaexchange.co.id/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://openapi-docs.nagaexchange.co.id/faq.md).

# FAQ

Common questions from developers integrating with the NagaExchange API.

***

### What is the maximum difference between a request's timestamp parameter and the server's arrival time?

When the server receives the request, it checks the timestamp included in the request. If the timestamp is more than 5000 milliseconds off, the request is considered invalid. This time window value can be customized by sending the optional `recvWindow` parameter.

### The request header "X-CH-TS" cannot be empty. How do I solve it?

Print the `X-CH-TS` value when the exception occurs to check whether it's empty, and add a check in your code to verify `X-CH-TS` is set before every request.

### Why does authentication always return invalid signatures?

You can print out the request header information and the string before signing, and check the following points:

* Compare your request header against the example request header below, item by item:

```
Example request header:
Content-Type: application/json
X-CH-APIKEY: 44c541a1-****-****-****-10fe390df2
X-CH-SIGN: ssseLeefrffraoEQ3yI9qEtI1CZ82ikZ4xSG5Kj8gnl3uw=
X-CH-TS: 1574327555669
```

* Check whether the API key is configured correctly in your program.
* Check whether the string before signing conforms to the standard format — the order of all elements must be consistent. You can compare the example below against your own pre-signature string:

```
GET Example: 1588591856950GET/sapi/v1/account
POST Example: 1588591856950POST/sapi/v1/order/test{"symbol":"BTCUSDT","price":"9300","volume":"1","side":"BUY","type":"LIMIT"}
```

### Calling an endpoint returns ILLEGAL\_CONTENT\_TYPE (-1017). What is the reason?

We recommend attaching `Content-Type` to all request headers and setting it to `application/json`.

### Is there a limit to the frequency of API calls per second?

Yes, there are restrictions. See the access-frequency restrictions documented for each individual endpoint.

### What is the limit on API access frequency?

Personal data is rate-limited according to API key, and public data is rate-limited according to IP address. Note that if you request public data while also passing valid personal (API key) information, the request is rate-limited according to API key instead.

### What is the cause of HTTP status code 429?

The request has exceeded the endpoint's access-frequency limit. It's recommended that you reduce your request frequency.

### Will my IP be blocked if the API reports that the access frequency has been exceeded? How long would it be blocked for?

Normally not — just reduce your request frequency.

### Why does the WebSocket keep disconnecting?

* If a heartbeat isn't implemented client-side (responding to each `ping` with a `pong`), the connection will not stay stable.
* The pong message sent by the client may, due to network issues, fail to reach the server — or other network issues may also cause an automatic disconnection.
* It's recommended that you implement a solid WebSocket disconnect/reconnect mechanism so your program automatically reconnects if the heartbeat (ping/pong) connection is unexpectedly dropped.

### An endpoint reports a Time Out error — why?

The network could not connect to the server. It's recommended that you check whether your network connection is stable.

### How do I get all the currency pairs on the platform?

You can retrieve these via the `/sapi/v1/symbols` endpoint.

### Is there a limit on the number of batch orders/cancellations?

Yes, batch endpoints are limited to 10 orders per request.

### What is `newClientOrderId` and what does it do?

* `newClientOrderId` is a customized identifier you can attach when creating an order. It is not involved in the exchange's business logic and is not stored — the server simply echoes it back, unchanged, as `clientOrderId` in the Create new order response.
* **It cannot currently be used to look up or cancel an order.** [Query Order](/rest-api-spot-trading/trading.md#query-order) and [Cancel Order](/rest-api-spot-trading/trading.md#cancel-order) only accept the system-generated `orderId`; there is no supported way to query or cancel by `newClientOrderId`. Keep track of the `orderId` returned at creation time if you need to check status or cancel later.

### How do I get the latest transaction price?

You can retrieve the ticker information — `last` is the latest transaction price.

### Can the 24-hour trading volume in the ticker endpoint show negative growth?

Yes, this can happen. Because the 24-hour trading volume is a rolling 24-hour window, the accumulated trading volume in the next window can end up smaller than the accumulated trading volume in the previous window.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## 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, and the optional `goal` query parameter:

```
GET https://openapi-docs.nagaexchange.co.id/faq.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
