canonical: https://jentic.com/apis/quivr.app/quivr

# Quivr App FastAPI

Open-source RAG Framework. The API exposes 53 endpoints secured with bearer authentication.

## For AI agents

Programmatically retrieve public brains, update existing brain secrets. Covers 53 operations with bearer authentication.

## Scope

Does not handle payments, communications, or crm - use for developer tools only.

## Capabilities

- Retrieve Public Brains
- Update Existing Brain Secrets
- Get Question Context For Brain
- Healthz
- Create Chat Handler
- Delete Chat

## Use cases

### Developer Tools Operations

Use the FastAPI to perform developer tools operations programmatically. The API provides 53 endpoints covering core functionality including retrieve public brains, update existing brain secrets, get question context for brain.

Example prompt: Call GET `/brains/public` to retrieve public brains

### Automated Brain Management

Automate brain operations by combining multiple FastAPI endpoints. Agents can update existing brain secrets and then get question context for brain in a single workflow.

Example prompt: Call PUT `/brains/{brain_id}/secrets-values` to update existing brain secrets, then verify the result

### AI Agent Integration via Jentic

AI agents discover and call FastAPI endpoints through Jentic without managing credentials directly. An agent searches for the required operation by intent, receives the matching endpoint schema, and executes the call with Jentic-managed authentication. This eliminates the need to read API documentation or handle bearer tokens manually.

Example prompt: Search Jentic for 'retrieve public brains', load the operation schema, and execute with Jentic-managed credentials

## Key endpoints

| Method | Path | Description |
| --- | --- | --- |
| GET | `/brains/public` | Retrieve Public Brains |
| PUT | `/brains/{brain_id}/secrets-values` | Update Existing Brain Secrets |
| POST | `/brains/{brain_id}/documents` | Get Question Context For Brain |
| GET | `/chat/healthz` | Healthz |
| POST | `/chat` | Create Chat Handler |
| GET | `/chat` | Get Chats |
| DELETE | `/chat/{chat_id}` | Delete Chat |
| PUT | `/chat/{chat_id}/metadata` | Update Chat Metadata Handler |

## Key resources

- **Brain** — Operations related to Brain
- **Chat** — Operations related to Chat
- **Health** — Operations related to Health
- **Prompt** — Operations related to Prompt
- **User** — Operations related to User

## AI readiness

This API is usable in Jentic One now. Its AI-readiness score against Jentic's framework shows where it stands today and where improvements would make it even easier for agents to use.

- **Score:** 43 / 100
- **Maturity:** Foundational
- **Dimensions:**
  - Foundational Compliance: 52 / 100
  - Developer Experience & Jentic Compatibility: 62 / 100
  - AI-Readiness & Agent Experience: 19 / 100
  - Agent Usability: 93 / 100
  - Security: 60 / 100
  - AI Discoverability: 100 / 100
- **View full report:** https://jentic.com/apis/quivr.app/quivr/scorecard
- **How the score is calculated:** https://docs.jentic.com/reference/api-readiness-framework/overview/
- **More about the dimensions:** https://docs.jentic.com/reference/api-readiness-framework/specification/#dimensional-model-overview

### Score it yourself

Every API in the directory is allowlisted, so you can re-score it with no key required.

- **Score your own API:** https://jentic.com/scorecard.md
- **Scoring CLI agent skill:** https://github.com/jentic/jentic-api-scorecard/blob/main/skills/jentic-api-scorecard/SKILL.md

```sh
npx @jentic/api-scorecard-cli score <openapi-url>
```

## Why Jentic

- **Setup:** Wiring the Quivr API by hand means learning its bearer auth, targeting the api.quivr.app host, and handling retries across its brain, document, and chat operations yourself. Through Jentic you install once, import Quivr from the API Directory, store the token once, and your agent calls it.
- **Permission scoping:** Quivr puts the brain and chat id in the URL path (`/brains/{brain_id}`, `/chat/{chat_id}`), so a rule can pin your agent to one brain or chat: it reads and updates that resource and nothing else. You choose the operations it may call, so destructive ones like deleting a chat or writing brain secrets are not included unless you add them.
- **Credential handling:** Your Quivr token is stored once, encrypted, by your own Jentic One instance and injected at execution time. It never enters the agent's prompt, logs, or context.
- **Discovery method:** Agents search Jentic by intent such as 'ask a question against a brain' or 'add a document to a brain', and Jentic returns the matching Quivr operation with its input schema so the agent calls the right endpoint without browsing the reference docs.

## Related APIs

- **Github** — Alternative developer tools API
- **Gitlab** — Alternative developer tools API

## FAQ

### What authentication does the FastAPI use?

The FastAPI uses a Bearer token in the Authorization header. Through Jentic, these credentials are stored encrypted in your Jentic One instance and injected at execution time, so raw secrets never enter the agent context.

### Can I retrieve public brains with the FastAPI?

Yes. Use the GET `/brains/public` endpoint. The API returns structured JSON responses that agents can parse and act on directly.

### What are the rate limits for the FastAPI?

Rate limits are not specified in the OpenAPI spec. Check the vendor documentation for current limits. Through Jentic, rate limiting is handled automatically with retry logic built into the execution layer.

### How do I retrieve public brains through Jentic?

Install the Jentic SDK with pip install jentic, authenticate through Jentic One, the self-hosted execution layer, then search for 'retrieve public brains'. Jentic returns the matching FastAPI operation with its input schema. Load the schema and execute the call - credentials are injected automatically.

### How many endpoints does the FastAPI have?

The FastAPI exposes 53 endpoints covering brain, chat, health operations.

### Can I limit what my agent is allowed to do with the Quivr API?

Yes. Because Jentic One is self-hosted, your own rules decide which Quivr operations and credentials the agent can use, and Quivr puts the brain and chat id in the URL path (`/brains/{brain_id}`, `/chat/{chat_id}`), so a rule can pin the agent to one brain or chat and let it read and update only that resource. You also choose the exact operations it may call, so destructive ones like deleting a chat (DELETE `/chat/{chat_id}`) or writing brain secrets (PUT `/brains/{brain_id}/secrets-values`) are excluded unless you add them. The stored token stays with your instance and is injected at execution time, never entering the agent's prompt or logs.
