Skip to main content
POST
/
v1
/
search
Search
curl --request POST \
  --url https://api.userepo.com/v1/search \
  --header 'Content-Type: application/json' \
  --data '
{
  "query": "<string>",
  "limit": 123
}
'
{
  "query": "<string>",
  "hits": [
    {
      "sourceItemId": "<string>",
      "title": "<string>",
      "content": "<string>",
      "url": "<string>",
      "provider": "<string>",
      "score": 123,
      "metadata": {},
      "syncedAt": "<string>"
    }
  ]
}

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.

The simplest retrieval endpoint. Use it when you want raw hits and will craft your own prompt downstream. For grounded answers with citations + exclusions, use /v1/context or /v1/ask.

Required action

search — see Authentication → Actions.

Cost

Each successful call consumes 1 credit. On Builder tier this is hard-blocked at the monthly cap. On Studio/Scale tiers calls past the cap are billed at $0.015 per answer overage. See Billing.

Body

query
string
required
The user-facing question or search phrase. Sent as-is to the embedding model.
limit
integer
default:"8"
Maximum number of hits to return. Min 1, max 25.

Response

{
  "query": "What did we decide about the brand color?",
  "hits": [
    {
      "sourceItemId": "9c0e7a3f-1234-4abc-bdef-1234567890ab",
      "title": "Brand decisions",
      "content": "We're keeping the lime-green accent because Q2 testing showed...",
      "url": "https://www.notion.so/Brand-decisions-...",
      "provider": "notion",
      "score": 0.8432,
      "metadata": {
        "workspaceId": "ws-1",
        "workspaceName": "Repo Labs"
      },
      "syncedAt": "2026-05-30T20:00:00Z"
    }
  ]
}
query
string
Echo of the input query for convenience.
hits
array
Ranked array of source items matching the query, ordered by score descending.

Example

curl -X POST https://api.userepo.com/v1/search \
  -H "Authorization: Bearer repo_your_key" \
  -H "Content-Type: application/json" \
  -d '{"query": "Q3 OKRs", "limit": 5}'

Provider scoping

If the calling key has allowedProviders set, hits from excluded providers are filtered out server-side before the response is built. See Scopes for details. The exclusions array that explains why something was filtered is only returned by /v1/context/v1/search is silent about scope filtering.