---
myst:
html_meta:
title: AutoRAG - Deploy API endpoint
description: Learn how to deploy optimized RAG pipeline to Flask API server in AutoRAG
keywords: AutoRAG,RAG,RAG deploy,RAG API,Flask
---
# API endpoint
## Running API server
As mentioned in the tutorial, you can run api server from the extracted YAML file or trial folder as follows:
```python
from autorag.deploy import Runner
runner = Runner.from_yaml('your/path/to/pipeline.yaml')
runner.run_api_server()
runner = Runner.from_trial_folder('your/path/to/trial_folder')
runner.run_api_server()
```
```bash
autorag run_api --config_path your/path/to/pipeline.yaml --host 0.0.0.0 --port 8000
```
## API Endpoint
You can use AutoRAG api server using `/run` endpoint.
It is a `POST` operation, and you can specify a user query as `query` and result column as `result_column` in the request body.
Then, you can get a response with result looks like `{'result_column': result}`
The `result_column` is the same as the `result_column` you specified in the request body.
And the `result_column` must be one of the last output of your pipeline. The default is 'answer.'
```bash
curl -X POST "http://your-host:your-port/run" -H "accept: application/json" -H "Content-Type: application/json" -d "{\"query\":\"your question\", \"result_column\":\"your_result_column\"}"
```
```python
import requests
url = "http://your-host:your-port/run"
payload = "{\"query\":\"your question\", \"result_column\":\"your_result_column\"}"
headers = {
'accept': "application/json",
'Content-Type': "application/json"
}
response = requests.request("POST", url, data=payload, headers=headers)
print(response.text)
```