> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.nvidia.com/nemo/guardrails/llms.txt.
> For full documentation content, see https://docs.nvidia.com/nemo/guardrails/llms-full.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.nvidia.com/nemo/guardrails/_mcp/server.

# Overview of the NVIDIA NeMo Guardrails Library API Server

> The NVIDIA NeMo Guardrails library API server runs guardrails in a secure, isolated environment.

The NVIDIA NeMo Guardrails library API server provides the following capabilities:

* Loads guardrails configurations at startup.
* Exposes an [OpenAI-compatible REST API](https://platform.openai.com/docs/api-reference/chat/create) for chat completions and model listing.
* Works with the [OpenAI Python SDK](https://github.com/openai/openai-python). Use `OpenAI(base_url="http://localhost:8000/v1")`.
* Includes a built-in chat UI for testing.
* Supports multiple configurations and combines them for each request.

## Quick Start

The following steps show how to start the NVIDIA NeMo Guardrails library API server with the provided configuration files and send test requests to the endpoints.

### Prerequisites

Meet the following prerequisites before you use the NVIDIA NeMo Guardrails library API server.

1. Install the NVIDIA NeMo Guardrails library with the `server` extra. For instructions, refer to [Extra Dependencies](/get-started/installation-guide#extra-dependencies).

   ```bash
   pip install nemoguardrails[server]
   ```

2. Set the environment variable for your NVIDIA API key.

   ```console
   export NVIDIA_API_KEY="your-nvidia-api-key"
   ```

   This key is required to access NVIDIA-hosted models on [build.nvidia.com](https://build.nvidia.com). The provided [example configurations](https://github.com/NVIDIA-NeMo/Guardrails/tree/develop/examples/configs) and code examples throughout the documentation use NVIDIA-hosted models.

### Start the Server

Follow these steps to start the server:

1. Point the server to a parent directory that contains multiple configuration subdirectories:

   ```console
   $ cd Guardrails
   $ nemoguardrails server --config examples/configs
   ```

2. To check if the server is running and list the available configurations, use the following command:

   ```console
   $ curl http://localhost:8000/v1/rails/configs

   [
     {"id": "content_safety"},
     {"id": "jailbreak_detection"},
     {"id": "topic_safety"},
     {"id": "llama_guard"},
     ...
   ]
   ```

Each subdirectory that contains a `config.yml` or `config.yaml` file becomes an available configuration ID.

### Send a Request

Send a chat completion request to the server:

```bash
curl -X POST http://localhost:8000/v1/chat/completions \
  -H "Content-Type: application/json" \
  -d '{
    "model": "meta/llama-3.1-8b-instruct",
    "messages": [{"role": "user", "content": "Hello!"}],
    "guardrails": {
      "config_id": "content_safety"
    }
  }'
```

### View the Chat UI

Open `http://localhost:8000` in your browser to access the built-in chat UI for testing.

## Related Topics

* [Create Chat Completion](api:POST/v1/chat/completions)
* [Introduction to LLM Benchmarking](https://docs.nvidia.com/nim/benchmarking/llm/latest/overview.html)