The Rootprint API is the HTTP surface behind your self-hosted instance. Start with the external APIs when you need to send logs from a shipper or query logs from another tool. Use the session-based APIs when you need to automate web-app workflows such as index management, user administration, or monitoring. If you are setting up log collection for the first time, start with Send logs. If you already know the endpoint you need, use the generated endpoint reference in the sidebar.Documentation Index
Fetch the complete documentation index at: https://docs.rootprint.io/llms.txt
Use this file to discover all available pages before exploring further.
Send logs
Choose OTLP or the NDJSON gateway and create the right ingest API key.
NDJSON ingest
Push newline-delimited JSON logs through Rootprint to Quickwit.
Search API
Query logs from external tools with a search API key.
Base URL
All API requests go to your Rootprint instance. Replace the host below with your deployment URL.Authentication
Rootprint uses three authentication modes, depending on the endpoint.| Use case | Auth method | Where to get it |
|---|---|---|
| Send logs over NDJSON or OTLP | Ingest API key (bearer) | Settings → API keys |
| Search logs from an external tool | Search API key (bearer) | Settings → API keys |
| Manage indexes, users, settings, UI data | Better Auth session cookie | Sign in through the Rootprint web app |
| Check health | None | GET /api/health is public |
Authorization header.
App and admin endpoints are primarily intended for the Rootprint web UI. They are documented so the
contract is visible, but automation should prefer API-key-based ingest and search where possible.
Endpoint groups
The generated endpoint reference is arranged around the audience for each endpoint.| Group | What it contains |
|---|---|
| Log ingest API | NDJSON and OTLP endpoints for log producers |
| Search API | The API-key-authenticated endpoint for external log search |
| Log explorer API | Session-based search, histograms, field values, exports, shares, and saved queries |
| Index management API | Index metadata, field discovery, sources, preferences, and stats |
| API keys | Create, inspect, and delete ingest and search API keys |
| User and invite API | Users, roles, password resets, invites, and invite acceptance |
| Authentication API | Setup, sign-in, sessions, sign-out, and password changes |
| Auth settings API | Google authentication credentials and allowed domains |
| System monitoring API | Health, cluster overview, activity, and metrics |
Common content types
Useapplication/json for most app and admin endpoints.
Use application/x-ndjson for the NDJSON gateway.
application/x-protobuf for OTLP logs.
Good first requests
| Goal | Endpoint | Notes |
|---|---|---|
| Health check | GET /api/health | No authentication required |
| Send NDJSON logs | POST /api/ingest/ndjson | Requires an ingest API key |
| Send OTLP logs | POST /v1/logs | Requires an ingest API key and protobuf body |
| Search logs | GET /api/search/logs | Requires a search API key |
Error responses
Most app-level endpoints return JSON errors with a stableerror object.
| Status | Meaning |
|---|---|
400 | Invalid query string, path parameter, or JSON body |
401 | Missing session or bearer token |
403 | Authenticated, but not allowed |
404 | Unknown route or resource |
409 | Conflict, such as first-admin setup already done |
413 | Payload too large |
415 | Unsupported media type |
422 | Unprocessable entity, such as a share payload over 64KB |
429 | Upstream rate limit |
500 | Internal server error |
503 | Quickwit or another upstream dependency is down |
Playground notes
The generated endpoint pages include an interactive playground. For token-based endpoints, paste the token value into the bearer auth field. For session-cookie endpoints, use the playground against a Rootprint instance where you are signed in, or treat the page as a contract reference instead of an interactive client.Rootprint does not apply an application-level rate limit to ingest endpoints. Apply rate limiting at
your reverse proxy or load balancer if your deployment needs it.
