# 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](https://rezi-1.gitbook.io/rms-guide/rezi-rms-features/webhook).

When you send requests:

* The request bodies are serialized as JSON.
* Get your Bearer [Token Private API key](https://rezi-1.gitbook.io/rms-guide/rezi-api/private-token-api)
* 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`](https://rezi-1.gitbook.io/rms-guide/rezi-api/user/token) 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.


---

# Agent Instructions: 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:

```
GET https://rezi-1.gitbook.io/rms-guide/rezi-api/overview.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
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.
