> ## Knowledge Base Index
> Fetch the complete knowledge base index at: https://staging.chrisp.chat/sitemap.xml
> Use this file to discover available pages before exploring further.
> Pure-Markdown content can be obtained by appending a '.md' suffix to the content URLs listed in the sitemap (without the trailing slash).

# How to setup the Crisp Status Reporter library?

**If you're using Crisp Status to monitor nodes in `push` mode, you will need to setup a Crisp Status Reporter on each of your monitored application node.**

Crisp Status Reporter libraries are easy to install in your applications. Crisp supports a growing number of application platforms. You may contact us if you need a non-supported programming language or platform added.

# Libraries

Find a Crisp Status Reporter library for your language:

* **Rust**: [rs-crisp-status-reporter](https://github.com/crisp-im/rs-crisp-status-reporter)  
* **Node**: [node-crisp-status-reporter](https://github.com/crisp-im/node-crisp-status-reporter)  
* **Golang**: [go-crisp-status-reporter](https://github.com/crisp-im/go-crisp-status-reporter)  
* **Python**: [python-crisp-status-reporter](https://github.com/crisp-im/python-crisp-status-reporter)

|| As each language is different and has its syntax specificities, instructions on how to install a reporter library are available on each library GitHub page.

# Get your reporter token & node identifier

When configuring your reporter library in your application, you'll need the following values: `token`, `service_id`, `node_id`.

You can retrieve them from your Crisp Status settings here:

1. Go to your [Crisp Dashboard](https://app.crisp.chat/)  
2. Go to Settings, then click on Status Page

## Get your token

You can get your secret token in the "Configure your Status Reporter" section.

|| The token is a chain of alphanumerical characters, separated by dashes.

## Get node identifiers

You can get your node identifiers ( `node_id` + `service_id`) in the "Manage monitored services" section.

When you hover a node with your mouse, click on "Show details" to reveal the identifiers.

![Reveal the node identifiers by clicking on &quot;Show details&quot;](https://storage.crisp.chat/users/helpdesk/website/-/5/7/5/7/5757eb307dd10800/b7ac6610-d487-432d-b03c-da3693_1jptaao.png)

# Manually report status

||| This section is only for advanced uses. In some very specific integrations, you may want to push your own status to the Crisp Status Reporter API endpoint, instead of using a library that we provide. Always use our libraries if in doubt of what you need.

Crisp Status exposes a Crisp Status Reporter API endpoint that you can use to do the periodic status push yourself. This section explains the format of a reporting request, and when to trigger such a request.

## Report request format

**API endpoint:** `[https://report.crisp.watch/v1/report/[service_id]/[node_id]](https://report.crisp.watch/v1/report/[service_id]/[node_id])`

|| Replace `[service_id]` and `[node_id]` with your node identifiers. See "Get node identifiers" above for more on how you can get those identifiers.

**Request method:** `HTTP POST`  
**Request authentication:** `Basic Auth`, with username blank and password to token value (see "Get your token" above)  
**Request content type:** `application/json; charset=utf-8`

**Request body:**

```
{
  "replica_id" : "[replica_id]",
  "interval" : "[interval_seconds]",

"load" : {
    "cpu" : "[cpu_load_average]",
    "ram" : "[ram_percent_used]"
  }
}
```

_Replace:_

* **[replica_id]:** a replica identifier, can be anything defining the host pushing its status, eg. its IP address like `192.168.1.2`  
* **[interval_seconds]:** the interval at which you plan to send periodic reports, in seconds, eg. `60` for 1 minute  
* **[cpu_load_average]:** a float number from `0.00` to `10.00` indicating current CPU load (can be `0.00`)  
* **[ram_percent_used]:** a float number from `0.00` to `1.00` indicating the current percent of RAM used (can be `0.00`)

||| Reporting requests will only work for nodes in `push` mode.

## When to report status

The status reporting request is to be executed at a fixed interval, eg. every minute. Once you start reporting every minute, and you've set `interval` in your request body to eg. `60` seconds, you need to commit to reporting at this interval. If you don't report in time, Crisp Status will mark the node as `DEAD`.