# Configuring the HTTP API

**Warning:** This document is for an old version of Rasa. The latest version is 1.10.26.

## [Using Rasa’s HTTP API](https://legacy-docs-v1.rasa.com/1.10.9/user-guide/configuring-http-api/#id1)

The instructions below are relevant for configuring how a model is run within a Docker container or for testing the HTTP API locally. If you want to deploy your assistant to users, see [Deploying Your Rasa Assistant](https://legacy-docs-v1.rasa.com/1.10.9/user-guide/how-to-deploy/#deploying-your-rasa-assistant).

You can run a simple HTTP server that handles requests using your trained Rasa model with:

```
rasa run -m models --enable-api --log-file out.log
```

All the endpoints this API exposes are documented in [HTTP API](https://legacy-docs-v1.rasa.com/1.10.9/api/http-api/#http-api).

The different parameters are:

- `-m`: the path to the folder containing your Rasa model,
- `--enable-api`: enable this additional API, and
- `--log-file`: the path to the log file.

Rasa can load your model in three different ways:

1. Fetch the model from a server (see [Fetching Models from a Server](https://legacy-docs-v1.rasa.com/1.10.9/user-guide/configuring-http-api/#server-fetch-from-server)), or
2. Fetch the model from a remote storage (see [Cloud Storage](https://legacy-docs-v1.rasa.com/1.10.9/user-guide/cloud-storage/#cloud-storage)).
3. Load the model specified via `-m` from your local storage system,

Rasa tries to load a model in the above mentioned order, i.e. it only tries to load your model from your local storage system if no model server and no remote storage were configured.

## [Fetching Models from a Server](https://legacy-docs-v1.rasa.com/1.10.9/user-guide/configuring-http-api/#id2)

You can configure the HTTP server to fetch models from another URL:

```
rasa run --enable-api --log-file out.log --endpoints my_endpoints.yml
```

The model server is specified in the endpoint configuration (`my_endpoints.yml`), where you specify the server URL Rasa regularly queries for zipped Rasa models:

```
models:
  url: http://my-server.com/models/default@latest
  wait_time_between_pulls: 10   # [optional](default: 100)
```

## [Fetching Models from a Remote Storage](https://legacy-docs-v1.rasa.com/1.10.9/user-guide/configuring-http-api/#id3)

You can also configure the Rasa server to fetch your model from a remote storage:

```
rasa run -m 20190506-100418.tar.gz --enable-api --log-file out.log --remote-storage aws
```

## [Configuring SSL / HTTPS](https://legacy-docs-v1.rasa.com/1.10.9/user-guide/configuring-http-api/#id4)

To secure the communication with SSL, you need to provide a valid certificate and the corresponding private key file.

You can specify these files as part of the `rasa run` command:

```
rasa run --ssl-certificate myssl.crt --ssl-keyfile myssl.key
```

If you encrypted your keyfile with a password during creation, you need to add this password to the command:

```
rasa run --ssl-certificate myssl.crt --ssl-keyfile myssl.key --ssl-password mypassword
```

## [Security Considerations](https://legacy-docs-v1.rasa.com/1.10.9/user-guide/configuring-http-api/#id5)

We recommend to not expose the Rasa Server to the outside world, but rather connect to it from your backend over a private connection.

### Token Based Auth:

Pass in the token using `--auth-token thisismysecret` when starting the server:

```
rasa run \
    -m models \
    --enable-api \
    --log-file out.log \
    --auth-token thisismysecret
```

### JWT Based Auth:

Enable JWT based authentication using `--jwt-secret thisismysecret`.

## [Endpoint Configuration](https://legacy-docs-v1.rasa.com/1.10.9/user-guide/configuring-http-api/#id6)

To connect Rasa to other endpoints, you can specify an endpoint configuration within a YAML file.

### [Connecting a Tracker Store](https://legacy-docs-v1.rasa.com/1.10.9/user-guide/configuring-http-api/#id7)

To configure a tracker store within your endpoint configuration, see [Tracker Stores](https://legacy-docs-v1.rasa.com/1.10.9/api/tracker-stores/#tracker-stores).

### [Connecting an Event Broker](https://legacy-docs-v1.rasa.com/1.10.9/user-guide/configuring-http-api/#id8)

To configure an event broker within your endpoint configuration, see [Event Brokers](https://legacy-docs-v1.rasa.com/1.10.9/api/event-brokers/#event-brokers).
