> For the complete documentation index, see [llms.txt](https://rezi-1.gitbook.io/rms-guide/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://rezi-1.gitbook.io/rms-guide/rezi-api/overview.md).

# Overview

This page contains some essential things to know about the interactions between Rezi and your server.

{% hint style="success" %}
For API reference documentation, see the "Rezi API" section in the sidebar.
{% endhint %}

### Requests

Rezi mostly sends requests to a Rezi server rather than the reverse. This means most requests are inbound (from your service to Rezi) and not outbound (from Rezi to your service). It’s only in certain situations that Rezi sends requests to your service, such as at [Webhook](/rms-guide/rezi-rms-features/webhook.md).

When you send requests:

* The request bodies are serialized as JSON.
* Get your Bearer [Token Private API key](/rms-guide/rezi-api/private-token-api.md)
* The properties in the request body depend on:
  * The endpoint is receiving the request.

{% hint style="warning" %}
Rezi occasionally adds new properties to response bodies. This is considered a non-breaking change. Your extensions must be prepared to handle the presence of new fields.
{% endhint %}

#### Base URL

Rezi receives all requests to a single base URL.

`https://open-api.rezi.ai/v1`

### Responses

Rezi responds to requests with JSON bodies. The body include a `type` property that identifies whether or not the request was successful.

#### Successful responses

If the value of the `status` property is `"success"`, the response body must conform to a schema that is (typically) determined by the path of the request. The exact schemas are detailed in the API reference documentation.

This is an example of a `"success"` response for the [`/connect`](/rms-guide/rezi-api/user/token.md) endpoint:

```json
{    
    "status": "success",
    "token": "eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJhdWQiOiJodHRwczovL2lkZW50aXR5dG9vbGtpdC5nb29nbGVhcGlzLmNvbS9nb29nbGUuaWRlbnRpdHkuaWRlbnRpdHl0b29sa2l0LnYxLklkZW50aXR5VG9vbGtpdCIsImlhdCI6MTYyOTM2MTU5MywiZXhwIjoxNjI5MzY1MTkzLCJpc3MiOiJmaXJlYmFzZS1hZG1pbnNkay1wNmFyekByZXppLWRldmVsb3AuaWFtLmdzZXJ2aWNlYWNjb3VudC5jb20iLCJzdWIiOiJmaXJlYmFzZS1hZG1pbnNkay1wNmFyekByZXppLWRldmVsb3AuaWFtLmdzZXJ2aWNlYWNjb3VudC5jb20iLCJ1aWQiOiJ5ZGtzU1hEVTFQWjVoaHVOZENWbCJ9.TtMwURv2p_c2wm0MTVA1EmJQs_eXcg3KjINWs3SgGQHian2jp7zVSlN16fhf5IbyD9VWhujyG4738IjfjDnqW7EXrKRatm4QWGstCx6t1G2u86YObuJIaqzt09-IC_gVKLN4t4wJ5AHbACC1HjOf9t_Htd4ce8U7tdFqUtA_taR1BH6VQ0gISba8LICwXk6EC1vvwS3qPB202GCr4KAlyLnHLOmI6Xh93BghBtab2Do-_tpMVeu2NlCBlw0KCgsP2llpvqAALrqKyReyNb3ESPUGqsrNBS8Zi6gQnOuq-5VlVP08E9_YfswNPDRNHhKXYNn4IrRND62WWRchjys2AQ"
}
```

#### Unsuccessful responses

If the value of the `status` property is `"error"`, the response contains an `errorCode` property that indicates what went wrong. The supported error codes are listed in the API reference documentation.

This is an example of an `"ERROR"` response:

```json
{
  "status": "error",
  "errorCode": "error code: connect-01, please contact administrator"
}
```

### Status codes

You can expect Rezi endpoints to respond to requests with a `200` status code—even if an error has occurred. The only exception to this rule is when a request fails due to the server. In that case, the endpoint should reject the request with a `500` status code.

### Timeout duration

All HTTP requests that send to Rezi have a timeout duration. If Rezi fails to respond to the request within this duration, the request fails. The exact duration depends on the request.

If timeouts occur too frequently, Please contact your account manager.
