Skip to main content

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.

1. Create your workspace

1

Sign up at userepo.com/console

Confirm your email when Supabase sends the verification link.
2

Create a workspace

Pick a workspace name. This is your organization — all sources, agents, and audit logs belong to it.
3

Choose a plan

The console hard-paywalls before you reach the dashboard. Pick Builder, Studio, or Scale and complete Stripe Checkout (7-day free trial on any plan).

2. Connect a source

Inside the console, open the Sources tab and click Connect on Slack or Notion. These are unverified-but-distributed OAuth flows that work immediately.
Google Drive and Gmail are gated behind a manual approval step while Repo waits for Google OAuth verification. Click Request access and we’ll email you when you’re cleared (usually within 24h).
The first sync starts automatically and runs in the background. You can watch it in the Activity tab.

3. Mint an API key for your agent

Open the Developers tab and click New API key. Configure:
  • Name — e.g. support-agent-prod
  • Actor type — agent | application | admin
  • Allowed actionssearch, context, ask, memory:read, etc.
  • Allowed providers — restrict to e.g. [slack] if this agent should never see Gmail
Copy the key (repo_...) — it’s shown once. Treat it like a Stripe secret.

4. Call the API

curl -X POST https://api.userepo.com/v1/ask \
  -H "Authorization: Bearer repo_your_key_here" \
  -H "Content-Type: application/json" \
  -d '{
    "query": "What did we decide about the brand color?",
    "limit": 5
  }'

Response shape

{
  "question": "What did we decide about the brand color?",
  "answer": "Based on Repo memory, the strongest context is:\n[1] Brand decisions: We're keeping the lime-green accent.\n[2] ...",
  "citations": [
    { "index": 1, "sourceItemId": "uuid", "title": "Brand decisions" },
    { "index": 2, "sourceItemId": "uuid", "title": "Design review notes" }
  ],
  "context": [
    {
      "sourceItemId": "uuid",
      "title": "Brand decisions",
      "content": "We're keeping the lime-green accent...",
      "url": "https://www.notion.so/...",
      "provider": "notion",
      "syncedAt": "2026-05-30T20:14:00Z"
    }
  ]
}

What just happened

  1. Your call hit /v1/ask with a bearer token.
  2. Repo verified the key, checked rate limits, and deducted 1 answer credit.
  3. The retrieval service ran a vector search against your org’s embeddings, scoped to the providers your key is allowed to read.
  4. The top hits were passed to OpenAI with a citation-grounded prompt.
  5. You got back a numbered answer + the exact source items that backed it.

Next steps

Context Contract

/v1/context returns a richer envelope with exclusions, limitations, and freshness data. Use it when your agent needs to know why something wasn’t returned.

Scope your keys

Give each agent the narrowest set of actions and providers it needs. Defense in depth.

Memory canvas

Get a graph view of what Repo knows: entities, relationships, and source channels.

Audit events

Every retrieval is logged. Pull the trail for compliance review.