Search
L'API Search exécute une recherche full-text globale dans votre workspace en un seul appel. Au lieu de rechercher chaque domaine séparément, vous interrogez une fois et obtenez une liste classée et mixte de résultats — documents, channels, messages, todos, fichiers du drive, transcriptions vocales et chats IA — chacun étiqueté avec le type d'entité dont il provient.
Démarrage rapide
- REST API
- CLI
# 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"
curl -fsSL https://cli.copera.ai/install.sh | bash
# Global search across the workspace
copera search "contract"
# Restrict to specific entity types (repeat --type to add more)
copera search "contract" --type document --type driveContent
Disponible dans
| Public API | CLI | MCP | Copera AI |
|---|---|---|---|
| ✅ Complet | ✅ Complet | ✅ Complet | — |
La CLI et le serveur MCP hébergé exposent la même recherche globale. Elle n'est pas exposée à l'assistant Copera AI intégré à l'app.
Fonctionnement
Envoyez un GET à /search avec une chaîne de requête. L'endpoint recherche chaque type d'entité pour lequel vous avez la permission, classe les résultats, et les renvoie comme une seule liste de hits typés.
Paramètres
q— requis. La requête de recherche (au moins un caractère).types— optionnel. Restreint la recherche à des types d'entités spécifiques. Accepte une valeur séparée par des virgules (?types=document,channel) ou des paramètres répétés (?types=document&types=channel). Lorsqu'il est omis, tous les types autorisés sont recherchés. Valeurs valides :documentchannelchannelMessagetodotodoItemdriveContentvoiceTranscriptionaiChataiChatMessage
sortBy—createdAtouupdatedAt(défautupdatedAt).sortOrder—ascoudesc(défautdesc).limit— nombre de résultats, 1–100 (défaut 50).
Réponse
La réponse enveloppe les hits avec des métadonnées :
{
"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": "…" }
]
}
Chaque hit porte un champ entityType qui indique quelle forme attendre. Les champs par type reflètent l'entité (par exemple, les hits document ont un title et un mdBody ; les hits channelMessage ont content, author et channel ; les hits driveContent ont name, mimeType et size). Tous les horodatages sont en millisecondes epoch.
Permissions et filtrage
Search respecte les scopes de votre token. Chaque type d'entité se mappe à un scope de domaine — par exemple, les résultats document exigent access_docs, les résultats channel et transcription exigent access_channels, et les résultats drive exigent access_drive. Si votre token n'a pas le scope pour un type, ce type est silencieusement retiré des résultats.
Si vous demandez explicitement un ensemble de types et que votre token n'a la permission pour aucun d'eux, la requête renvoie un 403.
Authentification et scope
Search exige un Personal Access Token (cp_pat_) — les Integration API Keys (cp_key_) ne sont pas acceptées sur cet endpoint. Les résultats sont ensuite filtrés par les scopes de domaine que votre token détient (voir ci-dessus). Les utilisateurs externes ne peuvent pas utiliser cet endpoint. Voir Authentification.
Référence
- Search dans la référence de l'API — l'endpoint
GET /searchavec les schémas de hit complets par type d'entité. - Docs et Drive — pour une recherche scopée et spécifique au domaine au sein d'une seule surface.
- CLI Copera et serveur MCP.