Documentation Index
Fetch the complete documentation index at: https://docs.userepo.com/llms.txt
Use this file to discover all available pages before exploring further.
Base URL
| Environment | URL |
|---|---|
| Production | https://api.userepo.com |
| Local dev | http://localhost:4000 |
Authentication
All/v1/* requests (except OAuth callbacks and webhooks) require a bearer token:
Two endpoint surfaces
Repo exposes two parallel route surfaces:- Agent API (
/v1/*) — authenticated byrepo_API keys. This is what your agent code calls. - Console API (
/v1/console/*) — authenticated by Supabase Auth bearer tokens. This is what the browser console calls. Documented in [the Console section] (coming soon) — most agent integrations should ignore it.
admin-scoped key instead.
Endpoints at a glance
POST /v1/search
Vector search across your org’s memory. Returns ranked hits.
POST /v1/context
Search + Context Contract with citations, exclusions, and limitations.
POST /v1/ask
Grounded answer generation. Citations included.
GET /v1/memory-canvas
Graph view of entities, relationships, and sources.
GET/POST/DELETE /v1/api-keys
Mint, list, and revoke API keys (admin only).
GET /v1/sources
List connectors and their health.
GET/POST /v1/sync-runs
View sync history; trigger manual syncs.
POST /v1/ingest
Push documents directly without a connector.
GET /v1/audit-events
Pull the audit trail for compliance review.
Conventions
- Request body: JSON. Always include
Content-Type: application/json. - Response body: JSON. UTF-8.
- Timestamps: ISO 8601 UTC, e.g.
2026-05-30T20:14:00.123Z. - IDs: UUIDv4 unless otherwise noted.
- Pagination: cursor-based on endpoints that need it (none yet require it heavily). When introduced, the pattern will be
?cursor=...&limit=...with anextCursorin the response.
Errors
See Errors for the full status code catalog. The short version:| Code | Meaning |
|---|---|
| 200 | OK |
| 201 | Created |
| 400 | Bad request (validation, missing params, malformed state) |
| 401 | Missing or invalid bearer token |
| 402 | Subscription required (no active plan) |
| 403 | Authenticated but lacking the required scope or role |
| 404 | Resource not found |
| 409 | Conflict (e.g. trying to revoke the key making the request) |
| 429 | Rate limit or credit budget exceeded |
| 500 | Server error |
| 502 | Upstream OAuth or provider error |
| 503 | Service not configured (e.g. Stripe missing in dev) |
{ "error": "human-readable message" } plus optional structured fields.