# Rasa X / Rasa Enterprise HTTP API (1.1.0)

Download OpenAPI specification: [Download](https://legacy-docs-rasa-x.rasa.com/docs/rasa-x/spec/rasa-x-public.yml)

This is the documentation for the Rasa X and Rasa Enterprise HTTP APIs.

# Authentication

## bearerAuth

Authentication via a JWT token, included in the HTTP `Authorization` header. Applicable only on certain endpoints.

| Security Scheme Type | HTTP |
| --------------------- | --- |
| HTTP Authorization Scheme | bearer |
| Bearer format | "JWT" |

## apiToken

Authentication via a per-user secret API token, included in the `api_token` query string argument. Applicable only on certain endpoints.

| Security Scheme Type | API Key |
| --------------------- | --- |
| Query parameter name: | api_token |

## rasaXToken

Authentication via a configurable per-server secret token, included in the `token` query string argument. Applicable only on certain endpoints.

| Security Scheme Type | API Key |
| --------------------- | --- |
| Query parameter name: | token |

# Authentication

Authentication endpoints

## Perform authentication using a username and password.

##### Authorizations:

##### Request Body schema: application/json

|     |     |
| --- | --- |
| username<br>required | string |
| password<br>required | string |

### Responses

**200**  
Success status

**401**  
Authentication required to access this resource.

post/auth

Local Server  
https://api/auth

### Request samples

- Payload

Content type

application/json

```json
{"username": "string",
"password": "string"}
```

### Response samples

- 200
- 401

Content type

application/json

```json
{"access_token": "string"}
```

# Git

Information about connected Git repositories

## Store credentials for a Git repository

##### Authorizations:

[bearerAuth](https://legacy-docs-rasa-x.rasa.com/docs/rasa-x/pages/http-api/#section/Authentication/bearerAuth)[apiToken](https://legacy-docs-rasa-x.rasa.com/docs/rasa-x/pages/http-api/#section/Authentication/apiToken)

##### Request Body schema: application/json

Credentials for the repository

|     |     |
| --- | --- |
| id | integer<br>ID of the repository |
| name | string<br>Name of the repository |
| repository_url | string<br>URL to clone repository |
| ssh_key | string<br>SSH key which should be used to access a private repository |
| username | string<br>Username used to access the repository when HTTPS is used. This field is only used in Rasa Enterprise deployments. |
| password | string<br>Password used to access the repository when HTTPS is used. Note: this property is only present in request payloads, and is never part of API responses. Additionally, passwords are never stored by Rasa X, they are only cached temporarily in memory using Git's 'cache' credential store. This field is only used in Rasa Enterprise deployments. |
| git_service | string<br>Name of the Git service which is used |
| git_service_access_token | string<br>Access token which might be used to access the API of the Git service (e.g. to create pull requests) |
| target_branch | string<br>Name of the branch which should be pulled |
| use_generated_ssh_keys | boolean<br>If `True` used the private SSH key generated by Rasa X. |
| is_target_branch_protected | boolean<br>`True` if changes cannot be pushed directly to the target branch. |
| is_target_branch_compatible | boolean<br>`False` if current branch contains incompatible data |
| first_annotator_id | string<br>Name of the user who made the the first annotation since Integrated Version Control was in a clean state. |
| first_annotated_at | number<br>Time of the first annotation since Integrated Version Control was in a clean state as unix timestamp. |

### Responses

**201**  
Created Git repository

**400**  
The checked out repository does not contain a valid Rasa project.

**401**  
Authentication required to access this resource.

**403**  
Not enough permissions to access this resource.

**409**  
Repository creation failed due to having specified an HTTPS URL when Rasa Enterprise is not installed.

**422**  
Branch could not be found in the the checked out repository.

post/git-repositories

Local Server  
https://api/git-repositories

### Request samples

- Payload

Content type

application/json

```json
{"id": 0,
"name": "string",
"repository_url": "string",
"ssh_key": "string",
"username": "string",
"password": "string",
"git_service": "github",
"git_service_access_token": "string",
"target_branch": "string",
"use_generated_ssh_keys": true,
"is_target_branch_protected": true,
"is_target_branch_compatible": true,
"first_annotator_id": "string",
"first_annotated_at": 0}
```

### Response samples

- 201
- 400
- 401
- 403
- 422

Content type

application/json

# Licensing

Rasa Enterprise license management

## Activate Rasa Enterprise using a license

##### Authorizations:

##### Request Body schema: application/json

|     |     |
| --- | --- |
| license<br>required | string<br>Rasa Enterprise license string |

### Responses

**200**  
Rasa Enterprise successfully activated

**400**  
Error while trying to validate Rasa Enterprise license

**401**  
Authentication required to access this resource.

**403**  
Not enough permissions to access this resource.

post/license

Local Server  
https://api/license

### Request samples

- Payload

Content type

application/json

```json
{"license": "string"}
```

### Response samples

- 200
- 401
- 403

Content type

application/json

```json
{"jti": "string",
"iat": 0,
"nbf": 0,
"exp": 0,
"version": 0,
"email": "string"}
```

## Get information about a stored Rasa Enterprise license

##### Authorizations:

### Responses

**200**  
Information about a stored Rasa Enterprise license in the database

**401**  
Authentication required to access this resource.

**403**  
Not enough permissions to access this resource.

**404**  
No stored Rasa Enterprise license was found

get/license

Local Server  
https://api/license

### Response samples

- 200
- 401
- 403

Content type

application/json

```json
{"encoded": "string",
"decoded": {
"jti": "string",
"iat": 0,
"nbf": 0,
"exp": 0,
"version": 0,
"email": "string"},
"valid": true}
```

## Delete a stored Rasa Enterprise license

##### Authorizations:

### Responses

**204**  
Rasa Enterprise license was successfully deleted

**401**  
Authentication required to access this resource.

**403**  
Not enough permissions to access this resource.

**404**  
No stored Rasa Enterprise license was found

delete/license

Local Server  
https://api/license

### Response samples

- 401
- 403

Content type

application/json

```json
{"exception": "string",
"reasons": "string"}
```

# Status

API status information

## Fetch status of Rasa services

##### Authorizations:

### Responses

**200**  
Status of services

get/health

Local Server  
https://api/health

### Response samples

- 200

Content type

application/json

```json
{"production": {
"version": "string",
"minimum_compatible_version": "string",
"status": 0},

"worker": {
"version": "string",
"minimum_compatible_version": "string",
"status": 0},

"database_migration": {
"status": "string",
"current_revision": ["string"],
"target_revision": ["string"],
"progress_in_percent": 0}}
```

## Fetch versions of services.

Fetch versions of services. If an update is available, the response will also contain an optional "updates" section.

##### Authorizations:

##### query Parameters

|     |     |
| --- | --- |
| skip_external | boolean<br>Default: false<br>When `true`, skip interactions with external services (Rasa Open Source nodes and DockerHub). |

### Responses

**200**  
Versions of services

get/version

Local Server  
https://api/version

### Response samples

- 200

Content type

application/json

```json
{"rasa": {
"production": "string",
"worker": "string"},

"rasa-x": "string",

"enterprise": true,
"local_mode": true,
"development_mode": true,
"updates": {
"rasa-x": {
"version": "string",
"changelog_url": "string"}},

"keys": [{"key": "string",
"alg": "string"}]}
```

# Telemetry

## Access the current telemetry configuration.

##### Authorizations:

##### query Parameters

|     |     |
| --- | --- |
| include_user_groups | boolean<br>Default: false<br>When true, include user groups in response |

### Responses

**200**  
Current telemetry configuration

**401**  
Authentication required to access this resource.

**403**  
Not enough permissions to access this resource.

get/telemetry

Local Server  
https://api/telemetry

### Response samples

- 200
- 401
- 403

Content type

application/json

```json
{"telemetry_enabled": true,
"user_groups": ["string"],
"user_id": "string"}
```

## Disable telemetry in server mode.

Disable telemetry if Rasa X is running in server mode. After calling this endpoint, the Rasa X server must be restarted in order for the changes to take effect.

##### Authorizations:

### Responses

**200**  
Telemetry configuration was updated, or was already disabled

**400**  
If Rasa X is running in local mode.

**401**  
Authentication required to access this resource.

**403**  
Not enough permissions to access this resource.

delete/telemetry

Local Server  
https://api/telemetry

### Response samples

- 401
- 403

Content type

application/json

```json
{"exception": "string",
"reasons": "string"}
```

# Conversations

Conversations between your assistant and end users

## Return data tags assigned to the conversation ID

##### path Parameters

|     |     |
| --- | --- |
| conversation_id<br>required | string<br>Example: conversation_id<br>Sender ID |

### Responses

**200**  
Data tags were successfully retrieved (including empty result)

**404**  
Conversation was not found

get/conversations/{conversation_id}/data-tags

Local Server  
https://api/conversations/{conversation_id}/data-tags

### Response samples

- 200

Content type

application/json

```json
[{
