> For the complete documentation index, see [llms.txt](https://docs.sigrex.io/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.sigrex.io/api-reference/reference/signal-bots/cex-bot.md).

# CEX Bot

## GET /api/v2/bot/signal/cex

> Get all CEX signal bots

```json
{"openapi":"3.0.0","info":{"title":"Sigrex API","version":"2.1.0"},"tags":[{"name":"cex-bot"}],"servers":[{"url":"https://api.sigrex.io"}],"security":[{"ApiKey":[],"Signature":[],"Timestamp":[]}],"components":{"securitySchemes":{"ApiKey":{"type":"apiKey","in":"header","name":"api-key","description":"Your public API key"}},"schemas":{}},"paths":{"/api/v2/bot/signal/cex":{"get":{"summary":"Get all CEX signal bots","tags":["cex-bot"],"responses":{"200":{"description":"List of user's CEX signal bots","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/CexSignalBot"}}}}}}}}}}
```

## POST /api/v2/bot/signal/cex

> Create a new CEX signal bot

```json
{"openapi":"3.0.0","info":{"title":"Sigrex API","version":"2.1.0"},"tags":[{"name":"cex-bot"}],"servers":[{"url":"https://api.sigrex.io"}],"security":[{"ApiKey":[],"Signature":[],"Timestamp":[]}],"components":{"securitySchemes":{"ApiKey":{"type":"apiKey","in":"header","name":"api-key","description":"Your public API key"}},"schemas":{"CreateCexSignalBotRequest":{"type":"object","required":["webhook_id","api_id","symbol","amount_from_signal"],"properties":{"name":{"type":"string","description":"The name of the bot max 255 characters"},"folder_id":{"type":"number","description":"The folder id of the bot"},"webhook_id":{"type":"number","description":"The id of a bot webhook"},"api_id":{"type":"number","description":"The id of a bot CEX API key"},"symbol":{"type":"string","description":"The symbol of the bot"},"pair_base":{"type":"string","description":"The base currency of the pair (On ALPACA not required)"},"pair_quote":{"type":"string","description":"The quote currency of the pair (On ALPACA not required)"},"amount_from_signal":{"type":"boolean","description":"Set if amount is coming from signal"},"amount":{"type":"number","description":"The amount to trade (if amount_from_signal is false)"},"is_quote":{"type":"boolean","description":"Set if the amount is in quote currency"},"delay":{"type":"number","description":"Set how often the bot will check for new signals. eg. 10 means 10 in 1 second"}}},"ErrorResponse":{"type":"object","properties":{"error":{"type":"string"}}}}},"paths":{"/api/v2/bot/signal/cex":{"post":{"summary":"Create a new CEX signal bot","tags":["cex-bot"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateCexSignalBotRequest"}}}},"responses":{"201":{"description":"CEX signal bot created successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CexSignalBot"}}}},"400":{"description":"Missing required fields or invalid data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"API or webhook not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}}}}
```

## GET /api/v2/bot/signal/cex/total

> Get the total number of CEX signal bots

```json
{"openapi":"3.0.0","info":{"title":"Sigrex API","version":"2.1.0"},"tags":[{"name":"cex-bot"}],"servers":[{"url":"https://api.sigrex.io"}],"security":[{"ApiKey":[],"Signature":[],"Timestamp":[]}],"components":{"securitySchemes":{"ApiKey":{"type":"apiKey","in":"header","name":"api-key","description":"Your public API key"}}},"paths":{"/api/v2/bot/signal/cex/total":{"get":{"summary":"Get the total number of CEX signal bots","tags":["cex-bot"],"responses":{"200":{"description":"Total number of CEX signal bots","content":{"application/json":{"schema":{"type":"object","properties":{"total":{"type":"number"}}}}}}}}}}}
```

## GET /api/v2/bot/signal/cex/{id}

> Get CEX signal bot by ID

```json
{"openapi":"3.0.0","info":{"title":"Sigrex API","version":"2.1.0"},"tags":[{"name":"cex-bot"}],"servers":[{"url":"https://api.sigrex.io"}],"security":[{"ApiKey":[],"Signature":[],"Timestamp":[]}],"components":{"securitySchemes":{"ApiKey":{"type":"apiKey","in":"header","name":"api-key","description":"Your public API key"}},"schemas":{"ErrorResponse":{"type":"object","properties":{"error":{"type":"string"}}}}},"paths":{"/api/v2/bot/signal/cex/{id}":{"get":{"summary":"Get CEX signal bot by ID","tags":["cex-bot"],"parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"CEX signal bot details","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CexSignalBot"}}}},"400":{"description":"Missing bot id","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"Bot not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}}}}
```

## PUT /api/v2/bot/signal/cex/{id}

> Update CEX signal bot

```json
{"openapi":"3.0.0","info":{"title":"Sigrex API","version":"2.1.0"},"tags":[{"name":"cex-bot"}],"servers":[{"url":"https://api.sigrex.io"}],"security":[{"ApiKey":[],"Signature":[],"Timestamp":[]}],"components":{"securitySchemes":{"ApiKey":{"type":"apiKey","in":"header","name":"api-key","description":"Your public API key"}},"schemas":{"UpdateCexSignalBotRequest":{"type":"object","required":["webhook_id","api_id","symbol","amount_from_signal"],"properties":{"name":{"type":"string","description":"The name of the bot max 255 characters"},"folder_id":{"type":"number","description":"The folder id of the bot"},"webhook_id":{"type":"number","description":"The id of a bot webhook"},"api_id":{"type":"number","description":"The id of a bot CEX API key"},"symbol":{"type":"string","description":"The symbol of the bot"},"pair_base":{"type":"string","description":"The base currency of the pair (On ALPACA not required)"},"pair_quote":{"type":"string","description":"The quote currency of the pair (On ALPACA not required)"},"amount_from_signal":{"type":"boolean","description":"Set if amount is coming from signal"},"amount":{"type":"number","description":"The amount to trade (if amount_from_signal is false)"},"is_quote":{"type":"boolean","description":"Set if the amount is in quote currency"},"delay":{"type":"number","description":"Set how often the bot will check for new signals. eg. 10 means 10 in 1 second"}}},"SuccessResponse":{"type":"object","properties":{"message":{"type":"string"}}},"ErrorResponse":{"type":"object","properties":{"error":{"type":"string"}}}}},"paths":{"/api/v2/bot/signal/cex/{id}":{"put":{"summary":"Update CEX signal bot","tags":["cex-bot"],"parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateCexSignalBotRequest"}}}},"responses":{"200":{"description":"CEX signal bot updated successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SuccessResponse"}}}},"400":{"description":"Missing bot id or invalid data","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"Bot, API key, or webhook not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}}}}
```

## DELETE /api/v2/bot/signal/cex/{id}

> Delete CEX signal bot

```json
{"openapi":"3.0.0","info":{"title":"Sigrex API","version":"2.1.0"},"tags":[{"name":"cex-bot"}],"servers":[{"url":"https://api.sigrex.io"}],"security":[{"ApiKey":[],"Signature":[],"Timestamp":[]}],"components":{"securitySchemes":{"ApiKey":{"type":"apiKey","in":"header","name":"api-key","description":"Your public API key"}},"schemas":{"SuccessResponse":{"type":"object","properties":{"message":{"type":"string"}}},"ErrorResponse":{"type":"object","properties":{"error":{"type":"string"}}}}},"paths":{"/api/v2/bot/signal/cex/{id}":{"delete":{"summary":"Delete CEX signal bot","tags":["cex-bot"],"parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"CEX signal bot deleted successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SuccessResponse"}}}},"400":{"description":"Missing bot id","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"Bot not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}}}}
```

## PUT /api/v2/bot/signal/cex/{id}/status

> Update CEX signal bot status

```json
{"openapi":"3.0.0","info":{"title":"Sigrex API","version":"2.1.0"},"tags":[{"name":"cex-bot"}],"servers":[{"url":"https://api.sigrex.io"}],"security":[{"ApiKey":[],"Signature":[],"Timestamp":[]}],"components":{"securitySchemes":{"ApiKey":{"type":"apiKey","in":"header","name":"api-key","description":"Your public API key"}},"schemas":{"UpdateStatusRequest":{"type":"object","required":["status"],"properties":{"status":{"type":"string","enum":["ACTIVE","INACTIVE"]}}},"SuccessResponse":{"type":"object","properties":{"message":{"type":"string"}}},"ErrorResponse":{"type":"object","properties":{"error":{"type":"string"}}}}},"paths":{"/api/v2/bot/signal/cex/{id}/status":{"put":{"summary":"Update CEX signal bot status","tags":["cex-bot"],"parameters":[{"in":"path","name":"id","required":true,"schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateStatusRequest"}}}},"responses":{"200":{"description":"Status updated successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/SuccessResponse"}}}},"400":{"description":"Missing bot id or invalid status","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"402":{"description":"Bot limit reached","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"Bot or package not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}}}}
```

## POST /api/v2/bot/signal/cex/duplicate

> Duplicate a CEX signal bot

```json
{"openapi":"3.0.0","info":{"title":"Sigrex API","version":"2.1.0"},"tags":[{"name":"cex-bot"}],"servers":[{"url":"https://api.sigrex.io"}],"security":[{"ApiKey":[],"Signature":[],"Timestamp":[]}],"components":{"securitySchemes":{"ApiKey":{"type":"apiKey","in":"header","name":"api-key","description":"Your public API key"}},"schemas":{"ErrorResponse":{"type":"object","properties":{"error":{"type":"string"}}}}},"paths":{"/api/v2/bot/signal/cex/duplicate":{"post":{"summary":"Duplicate a CEX signal bot","tags":["cex-bot"],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["id"],"properties":{"id":{"type":"string","description":"Bot ID to duplicate"}}}}}},"responses":{"201":{"description":"CEX signal bot duplicated successfully","content":{"application/json":{"schema":{"$ref":"#/components/schemas/CexSignalBot"}}}},"400":{"description":"Missing bot id or bot limit reached","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}},"404":{"description":"Bot or webhook not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorResponse"}}}}}}}}}
```


---

# 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 by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.sigrex.io/api-reference/reference/signal-bots/cex-bot.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

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.
