--- title: "API Reference" description: "PrivateGPT REST API — endpoints, request shapes, and response formats." --- PrivateGPT exposes a REST API that follows the Claude API model. All endpoints are available at `http://localhost:8080` by default. The interactive reference below is generated from the OpenAPI schema. Use it to explore request bodies, response shapes, and try requests directly. --- ## Endpoint groups | Group | Endpoints | Description | |---|---|---| | **Messages** | `POST /v1/messages` and variants | Chat, streaming, token counting, validation, async | | **Models** | `GET /v1/models` | List and inspect available models | | **Artifacts** | `/v1/artifacts/*` | Ingest, list, retrieve, and delete documents | | **Embeddings** | `POST /v1/embeddings` | Generate text embeddings | | **Tools** | `/v1/tools/*` | Semantic search, web search, web fetch, database query, tabular analysis | | **Primitives** | `POST /v1/primitives/search` | Low-level chunk retrieval | | **Skills** | `/v1/skills/*` | Create and manage reusable instruction sets | --- ## Authentication When auth is enabled, pass a bearer token on every request: ```bash curl http://localhost:8080/v1/messages \ -H "Authorization: Bearer " \ -H "Content-Type: application/json" \ -d '{...}' ``` Auth is disabled by default. Enable it in `settings.yaml`: ```yaml server: auth: enabled: true secret: "Basic " ```