Sur cette pageRessources pour l'IA
  1. Ressources pour l'IA
  2. Le jeton d'un utilisateur connecté
  3. Ce que couvre l'API
  4. La forme d'une requête
  5. Endpoints
  6. Importer des documents
  7. POST /ingest
  8. GET /jobs/{job_id}
  9. Rechercher et demander
  10. POST /search
  11. POST /ask
  12. Les dossiers et leur contenu
  13. GET /folders/summary
  14. GET /folders
  15. GET /folders/{id}
  16. GET /documents
  17. Lire des documents
  18. GET /documents/{id}
  19. POST /documents/batch
  20. GET /documents/{id}/content
  21. GET /documents/{id}/tags
  22. Quand un appel échoue
  23. Envie d'un accès anticipé à l'API ?

Référence API

Tous les endpoints publics, au même endroit

Les endpoints que l'application web Hippocampus utilise pour l'import, la recherche, les réponses et la lecture, avec leurs champs, le streaming, les jobs et les erreurs.

Bêta : les champs peuvent encore changer avant la disponibilité générale.

Ressources pour l'IA

  • Agent de code

    Votre agent de codage (Claude, Cursor, Codex ou un autre) lit notre fichier skill et configure Hippocampus dans votre projet tout seul.

  • Clients API

    Votre client API (Postman, Insomnia ou Bruno) importe chaque requête avec des exemples de réponses ; lancez d'abord Sign in et le jeton est renseigné pour vous.

  • OpenAPI 3.1

    Les générateurs de clients, Swagger UI et les autres outils API lisent chaque endpoint depuis ce fichier, au format standard.

  • Assistants de chat

    Votre assistant de chat (ChatGPT, Claude ou Gemini) répond aux questions sur l'API à partir de nos docs, réunies dans un seul fichier.

Authentification

Le jeton d'un utilisateur connecté

Chaque requête porte un en-tête Authorization: Bearer <token>. Le jeton est l'ID token d'un utilisateur Hippocampus connecté et dure environ une heure ; un script le rafraîchit donc comme le fait toute connexion. Un appel n'atteint que ce que cet utilisateur a le droit de lire.

Il n'y a pas de clés API : aujourd'hui, l'accès passe par MCP, avec une connexion dans le navigateur (voir la page MCP). Tant que l'API REST est en accès anticipé, un script se connecte avec son propre utilisateur, avec les dossiers dont il a besoin partagés avec lui.

La surface

Ce que couvre l'API

Recherche et réponses — search renvoie les passages qui correspondent à une question, avec les pages et un lien vers l'original ; ask renvoie une réponse courte.

Documents — importez une source et suivez la façon dont elle a été découpée en sections.

Parcourir et lire — listez les dossiers, lisez le texte d'un document ou téléchargez l'original.

Jobs — vérifiez l'état d'un import.

Erreurs — la forme d'un échec pour chaque service.

Illustratif

La forme d'une requête

Un document importé, et une question à laquelle on répond à partir de ce qui a été importé. Les endpoints et les champs ne sont pas définitifs.

curl -X POST /ingest \
  -H "Authorization: Bearer $HIPPOCAMPUS_TOKEN" \
  -F "[email protected]"

À titre illustratif seulement — pas encore un contrat en vigueur.

Référence

Endpoints

L'API comporte deux services, et les deux acceptent le même jeton. Le core importe, recherche et répond ; le vault contient les dossiers et les documents. Le core et le vault qui servent votre espace de travail dépendent de son canal de publication. Les exemples ci-dessous utilisent https://hippocampuscore.thalius.ai pour le core et https://hippocampusvault.thalius.ai pour le vault ; si un appel répond 409 avec code: wrong_channel, votre espace de travail est servi par un autre canal, et le core_url de la réponse indique le core auquel l'envoyer.

Chaque endpoint ci-dessous est accompagné d'une requête en cURL, Python et JavaScript et d'une réponse abrégée.

Les identifiants dans les exemples sont raccourcis.

Import

Importer des documents

Envoyez des fichiers au core. Chaque fichier est lu, découpé en sections et résumé, puis classé dans le dossier que vous indiquez. Un job suit le travail.

Core

POST /ingest

Envoyez un ou plusieurs fichiers pour import dans un dossier.

Paramètres de requête

  • stream — true diffuse la progression en server-sent events ; false (par défaut) renvoie immédiatement un job.

Champs du formulaire (multipart)

  • files — un ou plusieurs fichiers : .pdf, .docx, .pptx, .xlsx, .md, .markdown, .txt, .text. Obligatoire.
  • file_metadata — tableau JSON avec un objet par fichier, dans le même ordre : folder_name (chemin du dossier) et tags.

Renvoie un job : job_id, status (processing, complete ou error), total_files, done. Un fichier déjà importé revient avec duplicate: true.

curl -sS -X POST "https://hippocampuscore.thalius.ai/ingest" \
  -H "Authorization: Bearer $HIPPOCAMPUS_TOKEN" \
  -F "[email protected]" \
  -F 'file_metadata=[{"folder_name":"contracts/master-agreements","tags":["msa"]}]'
{
  "job_id": "c0a9f6d2-…",
  "status": "processing",
  "message": "Queued 1 file",
  "total_files": 1,
  "done": false
}

Core

GET /jobs/{job_id}

Vérifiez un import lancé sans streaming. Interrogez jusqu'à ce que done soit true.

Chemin

  • job_id — issu de la réponse de POST /ingest.

Renvoie status, successful, failed et une entrée dans results par fichier, avec son document_id.

curl -sS "https://hippocampuscore.thalius.ai/jobs/c0a9f6d2-…" \
  -H "Authorization: Bearer $HIPPOCAMPUS_TOKEN"
{
  "job_id": "c0a9f6d2-…",
  "status": "complete",
  "successful": 1,
  "failed": 0,
  "results": [
    {
      "filename": "MSA-2025.pdf",
      "success": true,
      "document_id": "8c1f0e4a-…",
      "folder_name": "contracts/master-agreements",
      "duplicate": false
    }
  ],
  "done": true
}

Recherche et réponses

Rechercher et demander

Search renvoie les passages qui correspondent à une question, chacun avec ses pages et un lien vers l'original. Ask renvoie une réponse courte écrite par le modèle.

Core

POST /search

Trouvez les passages qui répondent à une question, classés.

Corps (JSON)

  • query — la question. Obligatoire.
  • folder_name — limite la recherche à un chemin de dossier.
  • tags — la limite aux documents portant ces tags.

Renvoie sources : pour chaque passage doc_id, document_title, leaf_title (la section), start_page, end_page, text, score et deep_link vers l'original à cette page.

curl -sS -X POST "https://hippocampuscore.thalius.ai/search" \
  -H "Authorization: Bearer $HIPPOCAMPUS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"query":"What is the notice period for termination?","folder_name":"contracts/master-agreements"}'
{
  "sources": [
    {
      "doc_id": "8c1f0e4a-…",
      "document_title": "Master Services Agreement 2025",
      "leaf_title": "12. Term and Termination",
      "start_page": 14,
      "end_page": 15,
      "score": 0.91,
      "text": "Either party may terminate this Agreement on ninety (90) days' written notice…",
      "deep_link": "/documents/5b7d2c90-….pdf#page=14"
    }
  ]
}

Core

POST /ask

Obtenez une réponse courte à une question, rédigée à partir des passages correspondants.

Corps (JSON)

  • query — la question. Obligatoire.
  • folder_name, tags — comme pour search.

Renvoie answer, reasoning et confidence. Les passages ne sont pas renvoyés ; appelez search pour les obtenir.

curl -sS -X POST "https://hippocampuscore.thalius.ai/ask" \
  -H "Authorization: Bearer $HIPPOCAMPUS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"query":"What is the notice period for termination?","folder_name":"contracts/master-agreements"}'
{
  "answer": "Either party may terminate on 90 days' written notice (section 12.2).",
  "reasoning": "Section 12.2 of the Master Services Agreement states…",
  "confidence": 0.86
}

Parcourir

Les dossiers et leur contenu

Les résumés de dossiers viennent du core ; les dossiers et les listes de documents viennent du vault.

Core

GET /folders/summary

Lisez le contenu d'un dossier, tel qu'écrit à l'import, sans lancer de recherche.

Paramètres de requête

  • folder_name — le chemin du dossier. Obligatoire.

Renvoie status (ok, none ou unavailable) et folder_summary avec title, description et content.

curl -sS "https://hippocampuscore.thalius.ai/folders/summary?folder_name=contracts/master-agreements" \
  -H "Authorization: Bearer $HIPPOCAMPUS_TOKEN"
{
  "status": "ok",
  "folder_summary": {
    "folder": "contracts/master-agreements",
    "title": "Master agreements",
    "description": "Signed MSAs with customers and suppliers, 2019–2025.",
    "content": "- Master Services Agreement 2025: term, termination, liability caps…",
    "truncated": false
  }
}

Vault

GET /folders

Listez les dossiers de premier niveau, ou les dossiers contenus dans un dossier.

Paramètres de requête

  • parentFolderId — le dossier à lister. Omettez-le pour le premier niveau.

Renvoie un tableau de dossiers : id, name, parentFolderId, createdAt, updatedAt.

curl -sS "https://hippocampusvault.thalius.ai/folders?parentFolderId=0c25a285-…" \
  -H "Authorization: Bearer $HIPPOCAMPUS_TOKEN"
[
  {
    "id": "0144f7ed-…",
    "name": "Onboarding notes",
    "parentFolderId": "0c25a285-…",
    "createdAt": "2026-09-08T09:15:16.000Z",
    "updatedAt": "2026-09-08T09:15:16.000Z"
  }
]

Vault

GET /folders/{id}

Un dossier. Avec include=true, le même appel renvoie aussi les dossiers parents, ses documents et ses sous-dossiers.

Chemin

  • id — l'identifiant du dossier.

Paramètres de requête

  • include — true pour ajouter ancestors, documents et subfolders.
curl -sS "https://hippocampusvault.thalius.ai/folders/0144f7ed-…?include=true" \
  -H "Authorization: Bearer $HIPPOCAMPUS_TOKEN"
{
  "id": "0144f7ed-…",
  "name": "Onboarding notes",
  "parentFolderId": "0c25a285-…",
  "ancestors": [
    {
      "id": "0c25a285-…",
      "name": "HR"
    }
  ],
  "documents": [
    {
      "id": "3c76ff09-…",
      "name": "comments.md",
      "contentType": "text/markdown",
      "folderId": "0144f7ed-…",
      "version": 1
    }
  ],
  "subfolders": [
    {
      "id": "9e2a…",
      "name": "_hippocampus"
    }
  ]
}

Vault

GET /documents

Listez les documents d'un dossier, sans leur contenu.

Paramètres de requête

  • folderId — le dossier. Omettez-le pour le premier niveau.
  • tag — uniquement les documents portant ce tag.

Renvoie un tableau : id, name, contentType, folderId, version, createdAt, updatedAt.

curl -sS "https://hippocampusvault.thalius.ai/documents?folderId=0144f7ed-…" \
  -H "Authorization: Bearer $HIPPOCAMPUS_TOKEN"
[
  {
    "id": "0001b85f-…",
    "name": "Onboarding notes.md",
    "contentType": "text/markdown",
    "folderId": "0144f7ed-…",
    "version": 1,
    "createdAt": "2026-09-08T09:15:17.000Z"
  }
]

Lecture

Lire des documents

Le vault renvoie le texte d'un document, ses tags et le fichier original.

Vault

GET /documents/{id}

Les détails d'un document. Un document texte porte aussi son content en Markdown.

Chemin

  • id — l'identifiant du document.

Renvoie id, name, contentType, size, version, folderId, createdAt et, pour le texte, content.

curl -sS "https://hippocampusvault.thalius.ai/documents/0001b85f-…" \
  -H "Authorization: Bearer $HIPPOCAMPUS_TOKEN"
{
  "id": "0001b85f-…",
  "name": "Onboarding notes.md",
  "contentType": "text/markdown",
  "size": 510,
  "version": 1,
  "folderId": "d3f3ed56-…",
  "createdAt": "2026-09-08T09:15:17.000Z",
  "content": "---
type: document
title: Onboarding notes
---
…"
}

Vault

POST /documents/batch

Jusqu'à 100 documents, avec leur contenu, en un seul appel.

Corps (JSON)

  • ids — jusqu'à 100 identifiants de documents. Obligatoire.

Renvoie un tableau de documents. Les identifiants qui n'existent pas ou que vous n'avez pas le droit de lire sont omis.

curl -sS -X POST "https://hippocampusvault.thalius.ai/documents/batch" \
  -H "Authorization: Bearer $HIPPOCAMPUS_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"ids":["0001b85f-…","3c76ff09-…"]}'
[
  {
    "id": "0001b85f-…",
    "name": "Onboarding notes.md",
    "contentType": "text/markdown",
    "content": "---
type: document
…"
  },
  {
    "id": "3c76ff09-…",
    "name": "comments.md",
    "contentType": "text/markdown",
    "content": "…"
  }
]

Vault

GET /documents/{id}/content

Le fichier stocké lui-même : le PDF original, une image ou du Markdown, avec son propre type de contenu.

Chemin

  • id — l'identifiant du document, par exemple celui du deep_link d'un résultat de recherche.
curl -sS -o original.pdf "https://hippocampusvault.thalius.ai/documents/5b7d2c90-…/content" \
  -H "Authorization: Bearer $HIPPOCAMPUS_TOKEN"

Vault

GET /documents/{id}/tags

Les tags d'un document.

Chemin

  • id — l'identifiant du document.

Renvoie tags.

curl -sS "https://hippocampusvault.thalius.ai/documents/0001b85f-…/tags" \
  -H "Authorization: Bearer $HIPPOCAMPUS_TOKEN"
{
  "tags": [
    "onboarding",
    "hr"
  ]
}

Erreurs

Quand un appel échoue

Le core répond avec detail. Le vault répond avec message, ou avec error lorsque le jeton est absent ou invalide.

  • 401 — le jeton est absent, expiré ou invalide. Reconnectez-vous.
  • 403 — l'utilisateur n'a pas le droit de lire ou de modifier ce dossier.
  • 404 — introuvable, ou non lisible par cet utilisateur.
  • 409 — le document a changé depuis que vous l'avez lu.
  • 422 — un champ est absent ou n'a pas le bon type.
{
  "detail": "Not authenticated"
}

Clients

Pour l'instant

curl et notre serveur MCP fonctionnent tous deux dès aujourd'hui. Des SDK officiels Python et TypeScript sont prévus avant la disponibilité générale.

Envie d'un accès anticipé à l'API ?

Nous accueillons des partenaires pilotes dès maintenant.