Zum Hauptinhalt springen

Suche

Die Search API führt globale Volltextsuche über Ihren Workspace in einem Aufruf aus. Statt jede Domäne separat zu durchsuchen, fragen Sie einmal ab und erhalten eine gerankte, gemischte Trefferliste — Dokumente, Channels, Nachrichten, Todos, Drive-Dateien, Voice-Transkriptionen und KI-Chats — jeweils mit dem Entitätstyp markiert, aus dem sie stammen.

Quick Start

# Search across every entity type you can access
curl -X GET "https://api.copera.ai/public/v1/search?q=quarterly%20plan" \
-H "Authorization: Bearer YOUR_API_KEY"

# Restrict to specific entity types
curl -X GET "https://api.copera.ai/public/v1/search?q=contract&types=document,driveContent" \
-H "Authorization: Bearer YOUR_API_KEY"

# Sort and limit the results
curl -X GET "https://api.copera.ai/public/v1/search?q=plan&sortBy=updatedAt&sortOrder=desc&limit=20" \
-H "Authorization: Bearer YOUR_API_KEY"

Verfügbar in

Public APICLIMCPCopera AI
✅ Voll✅ Voll✅ Voll

Die CLI und der gehostete MCP-Server stellen dieselbe globale Suche bereit. Sie ist dem In-App-Assistenten Copera AI nicht freigegeben.

So funktioniert es

Senden Sie ein GET an /search mit einer Query. Der Endpunkt durchsucht jeden Entitätstyp, für den Sie Berechtigung haben, rankt die Ergebnisse und liefert sie als eine Liste typisierter Hits.

Parameter

  • qerforderlich. Die Suchquery (mindestens ein Zeichen).
  • types — optional. Suche auf bestimmte Entitätstypen beschränken. Akzeptiert einen kommagetrennten Wert (?types=document,channel) oder wiederholte Parameter (?types=document&types=channel). Wenn weggelassen, werden alle erlaubten Typen durchsucht. Gültige Werte:
    • document
    • channel
    • channelMessage
    • todo
    • todoItem
    • driveContent
    • voiceTranscription
    • aiChat
    • aiChatMessage
  • sortBycreatedAt oder updatedAt (Standard updatedAt).
  • sortOrderasc oder desc (Standard desc).
  • limit — Anzahl der Ergebnisse, 1–100 (Standard 50).

Antwort

Die Antwort wrappt die Hits mit Metadaten:

{
"query": "quarterly plan",
"totalHits": 12,
"processingTimeMs": 8,
"hits": [
{ "entityType": "document", "_id": "…", "title": "Q3 Plan", "updatedAt": 1719400000000 },
{ "entityType": "channelMessage", "_id": "…", "content": "let's finalize the plan", "channel": "…" }
]
}

Jeder Hit trägt ein Feld entityType, das die zu erwartende Form angibt. Die Felder pro Typ spiegeln die Entität (z. B. haben document-Hits title und mdBody; channelMessage-Hits haben content, author und channel; driveContent-Hits haben name, mimeType und size). Alle Zeitstempel sind Epoch-Millisekunden.

Berechtigungen und Filterung

Suche respektiert die Scopes Ihres Tokens. Jeder Entitätstyp mappt auf einen Domain-Scope — z. B. brauchen document-Ergebnisse access_docs, Channel- und Transkriptions-Ergebnisse access_channels und Drive-Ergebnisse access_drive. Fehlt Ihrem Token der Scope für einen Typ, wird dieser still aus den Ergebnissen weggelassen.

Wenn Sie explizit eine Menge types anfordern und Ihr Token für keinen davon Berechtigung hat, liefert die Anfrage 403.

Authentifizierung & Scope

Suche erfordert ein Personal Access Token (cp_pat_) — Integration API Keys (cp_key_) werden auf diesem Endpunkt nicht akzeptiert. Die Ergebnisse werden dann nach den Domain-Scopes Ihres Tokens gefiltert (siehe oben). Externe Benutzer können diesen Endpunkt nicht nutzen. Siehe Authentifizierung.

Referenz