Docs · API & MCP

Des réponses fiables via API.

La Contract-API de c:node fournit des réponses, des normes juridiques et des services administratifs avec source, licence et statut de vérification. Vous l’appelez via REST ou l’intégrez via MCP directement dans Claude, Copilot et vos propres agents.

Vue d’ensemble

La Contract-API est l’interface publique du c:node Graph. Chaque réponse est conçue pour que vous puissiez la vérifier : elle indique la source (ref), le statut de vérification (grounding), la licence et, si nécessaire, la mention de la source de données.

Base URLhttps://contract.c-node.ai
FormatJSON · Server-Sent Events
Versionv1 · OpenAPI 3
MCPhttps://mcp.c-node.ai/mcp

Les champs de preuve

ChampSignification
refRéférence standard de la source, p. ex. ELI:BSIGesetz§10, CELEX:32024R1689 ou XZUFI:S1000030000000045.
groundingStatut de vérification par rapport au passage cité, p. ex. verified.
licenseClasse de licence de la source : open, attribution ou internal.
attributionsMentions obligatoires (source, licence, URL) pour les données fournies.
citations · factscorePour /v1/ask : uniquement des sources vérifiées, avec pour chaque affirmation un verdict (belegt = fiable ou offen = ouverte) et la part d’affirmations fiables.
content_hashPour les enregistrements de preuve : SHA-256 du contenu, pour la journalisation selon l’EU AI Act, art. 12.

Ce que mesurent nos indicateurs

IndicateurSignification
99,9 %+ des termes fiablesmetrics.verified_pct de /v1/graph : part des termes ancrés dans une source officielle. Il indique qu’une source existe – pas combien d’entrées sont exactes.
98,8 % de précision vérifiée des contenus juridiquesÉchantillon de 1 235 normes, termes et décisions, chacun contrôlé par rapport à la source officielle. Intervalle de confiance à 95 % (Wilson) : 98,0–99,3 %. Exécution graph-v32-2026-10-12T105151Z, état au 12/10/2026.

Chaque indicateur de précision cite l’exécution enregistrée dont il provient, pour pouvoir le retracer et le comparer aux exécutions suivantes.

La spécification complète, lisible par machine, se trouve sous /openapi.json.

Quickstart

Les deux premiers appels fonctionnent sans clé, contre la Sandbox. Pour les endpoints de connaissances, il vous faut une clé Contract.

1 · Vérifier la connexion
curl https://contract.c-node.ai/v1/health
2 · Récupérer une preuve (sans clé)
curl "https://contract.c-node.ai/v1/provenance?ref=CELEX:32024R1689"
3 · Avec clé : tous les paragraphes d’une loi
curl "https://contract.c-node.ai/v1/legal?law=BSIGesetz&limit=2" \ -H "X-API-Key: $CNODE_API_KEY"
Python
import os, httpx r = httpx.get("https://contract.c-node.ai/v1/ask", params={"q": "Quelles obligations ont les fournisseurs d’IA à haut risque ?"}, headers={"X-API-Key": os.environ["CNODE_API_KEY"]}, timeout=60) answer = r.json() print(answer["answer"], answer["citations"])

Authentification

Envoyez votre clé contrat dans l’en-tête X-API-Key. C’est la seule façon d’attribuer chaque appel à votre clé – profil, quota, limite de débit et /v1/usage. L’API accepte aussi le paramètre ?key=, mais il finit facilement dans des journaux et des historiques de navigation, et la consommation n’est alors pas attribuée à votre clé. Ne l’utilisez pas.

curl https://contract.c-node.ai/v1/usage -H "X-API-Key: $CNODE_API_KEY"
  • Sans clé, vous arrivez dans la sandbox (profil public-observatory) : vue d’ensemble du graphe, preuves, audit, mentions obligatoires et aperçu Company Brain.
  • Clé contrat (nk_…) : liée au profil de votre offre, elle débloque /v1/ask, /v1/retrieve, /v1/legal, /v1/leistung et /v1/betroffenheit.
  • Clé tenant (Enterprise) : liée en plus à votre propre graphe tenant – pour Company Brain, constats et ingestion. Les réponses relient alors le c:node Graph à votre propre savoir.
CléOù l’obtenirPour quoi
Clé contrat nk_…votre compte sur billing.c-node.ai (rubrique clé API)Contract-API ; via MCP, uniquement les outils du c:node Graph
Clé d’organisation ck_…c:node → Paramètres → Clés API & MCPMCP et API de l’application pour serveurs et agents sans personne – pas pour la Contract-API
Connexion (OAuth)votre compte c:node sur auth.c-node.aiMCP dans Claude, Claude Code, Copilot Studio – en tant que personne, avec votre espace de travail
Les clés restent côté serveur. Placez la clé dans une variable d’environnement ou votre coffre à secrets, jamais dans du code frontend ou un dépôt. Vous obtenez une clé avec votre offre ou lors d’un court échange.

Profils & offres

Chaque clé est liée à un profil. Le profil définit quelles classes de licence et quels domaines de connaissance une réponse peut utiliser – les modèles ne voient que ce que votre profil autorise. GET /v1/profiles les liste en direct.

ProfilOffreCe que voit la clé
public-observatorySandbox, sans cléVue d’ensemble du graphe et preuves.
research-openResearchRecherche et innovation, licences ouvertes.
free-marketStarterMarché, commerce, investissements, tendances de marché et finances publiques.
commercial-fullProfessionalAccès commercial complet (sans sources non commerciales), droit et services administratifs compris.
Profil tenantEnterpriseAccès complet plus votre propre graphe tenant.
de-federalsur demandeEspace de données fédéral allemand, accès complet.
trialAccès d’essaiLimité dans le temps, pour l’évaluation.

Les réponses fiables via l’API sont décomptées du même quota mensuel que l’application et MCP. L’unité facturée est la réponse fiable ; la consultation d’articles de loi et de services ne compte pas (voir Erreurs & limites).

Auto-hébergement (on-prem)

c:node tourne aussi sur votre infrastructure : l’interface, le chat et le runtime du graphe en stack Docker sur votre serveur, air-gapped si nécessaire. Pour des réponses locales, un modèle ouvert via Ollama suffit – ou vous apportez votre propre clé API.

LicenceLicence commerciale · code source pour les licenciés
PrérequisDocker + Docker Compose
Accès localShell :3010 · API :8080

Nous fournissons le code source et le guide d’installation aux licenciés. Contactez-nous – nous ouvrons l’accès et accompagnons l’installation.

Qu’est-ce qui tourne chez vous, qu’est-ce qui vient de nous ? L’interface et le runtime du graphe tournent chez vous – une base fonctionnelle, y compris air-gapped, que vous pouvez exploiter et auditer vous-même. L’intelligence c:node entraînée, avec le c:node Graph pour le droit, les registres et le marché, ainsi que l’exploitation avec SLA, sont disponibles dans les offres.

MCP : c:node dans Claude, Copilot & vos agents

Une seule adresse pour toutes les offres : https://mcp.c-node.ai/mcp (Streamable HTTP). Le modèle rédige, c:node fournit la base fiable. Chaque réponse porte son statut de preuve comme dans l’application – étayée, partiellement étayée ou appréciation générale – dans le champ evidence (statut et libellé). Les résultats vérifiés qui ne valent pas preuve figurent sous checked_sources. Les outils visibles dépendent de votre connexion, de votre offre, de votre rôle et des réglages de votre espace de travail.

  1. Dans Claude (claude.ai ou bureau) : Paramètres → Connecteurs → « Ajouter un connecteur personnalisé ».
  2. Nom c:node, URL https://mcp.c-node.ai/mcp. Aucun identifiant client n’est nécessaire.
  3. « Connecter » → connexion sur auth.c-node.ai → sur la page de consentement, choisissez votre espace de travail puis « Autoriser ».
  4. Dans Claude Team et Enterprise, le propriétaire ajoute le connecteur une fois ; chaque personne se connecte elle-même, avec ses propres droits, couches et connecteurs.

Une seule fois, pour tous vos projets :

claude mcp add --transport http --scope user cnode https://mcp.c-node.ai/mcp

Ensuite, dans Claude Code : /mcp → cnode → « Authenticate ». Le navigateur ouvre la connexion sur auth.c-node.ai ; après « Autoriser », vous revenez dans Claude Code. Sans --scope user, l’entrée ne vaut que pour le projet en cours.

Sans personne, par exemple sur un serveur ou en CI : une clé d’organisation dans l’en-tête. Il n’y a alors ni couche privée ni recherche dans les connecteurs, car les deux sont liées à une personne.

claude mcp add --transport http --scope user cnode https://mcp.c-node.ai/mcp \ --header "Authorization: Bearer $CNODE_ORG_KEY"
  1. Ouvrez l’agent → Outils → « Ajouter un outil » → « Model Context Protocol » → nouveau serveur.
  2. URL du serveur https://mcp.c-node.ai/mcp.
  3. Authentification OAuth 2.0, découverte dynamique : Copilot Studio trouve auth.c-node.ai via l’URL du serveur et s’enregistre lui-même. À la première connexion, vous vous connectez, choisissez l’espace de travail et donnez votre accord.
  4. Sinon OAuth 2.0, manuelle avec un client fixe que nous configurons pour vous : URL d’autorisation https://auth.c-node.ai/authorize, URL de jeton et de renouvellement https://auth.c-node.ai/token, scopes p. ex. cnode:graph.read cnode:workspace.read cnode:usage.read. Envoyez-nous l’URL de redirection affichée ensuite par Copilot Studio.
  5. Sans connexion personnelle, utilisez Clé API : en-tête X-API-Key avec une clé d’organisation ck_….
  6. Vos stratégies Power Platform (DLP) s’appliquent en plus.
La connexion avec Microsoft arrive. D’ici là, connectez-vous sur auth.c-node.ai avec un code par e-mail ou Google.

Tout client MCP avec Streamable HTTP fonctionne avec une clé dans l’en-tête X-API-Key ou en Authorization: Bearer <clé>. Pour VS Code, dans .vscode/mcp.json – Copilot demande la clé au premier démarrage et ne l’enregistre pas dans le projet :

{ "inputs": [{ "type": "promptString", "id": "cnode-key", "description": "Clé c:node (ck_… ou clé contrat)", "password": true }], "servers": { "cnode": { "type": "http", "url": "https://mcp.c-node.ai/mcp", "headers": { "X-API-Key": "${input:cnode-key}" } } } }

Avec une clé d’organisation ck_…, vous voyez les outils de votre espace de travail selon le rôle de la clé ; avec une clé contrat, uniquement le c:node Graph. auth.c-node.ai accepte les clients dotés de leur propre connexion via les métadonnées client (CIMD) ou comme application native avec retour sur localhost ; pour les autres services web, nous configurons un client fixe.

Connexion & espace de travail

  • La connexion se fait toujours sur auth.c-node.ai avec votre compte c:node (code par e-mail ou Google). Un connecteur ne crée pas de compte – il vous faut déjà un compte, par exemple via votre offre ou une invitation.
  • La page de consentement indique les droits accordés au client et, sous « Espace de travail », pour quel espace. L’espace de travail vient toujours de la connexion, jamais d’une saisie dans le chat. Si vous êtes membre de plusieurs espaces, ajoutez un connecteur par espace ou reconnectez-vous pour changer.
  • Votre propre instance c:node : même adresse – c:node vous dirige vers votre instance d’après votre connexion. Votre compte doit être membre de l’espace de travail de l’instance ; votre contact c:node s’en charge. Les clés d’organisation d’une instance dédiée ne fonctionnent pas encore via MCP ; utilisez la connexion.
  • Pour les admins : Paramètres → Clés API & MCP – activer ou désactiver MCP pour l’espace de travail, choisir les droits autorisés, « Mettre fin à toutes les sessions MCP ».

Les anciennes adresses nena-mcp.c-node.ai/mcp et mcp.c-node.ai/agents/mcp fonctionnent jusqu’au 05/01/2027. Passez à https://mcp.c-node.ai/mcp.

MCP : droits & outils

À la connexion, vous accordez des droits (scopes) au client. Un outil n’apparaît que si le droit est accordé, que votre offre et votre rôle le permettent et que votre espace de travail l’autorise pour MCP. La liste est recalculée à chaque requête.

DroitPermetÀ partir de l’offre
cnode:graph.readc:node Graph : réponses, droit, services administratifs, dossier, aperçu Company BrainResearch
cnode:workspace.readQuestions à votre espace de travail ; à partir de Professional aussi agents, mémoire, lecture de la bibliothèque, notifications, état des lieuxStarter
cnode:connectors.readRechercher dans vos systèmes connectés, avec votre propre accèsProfessional
cnode:library.writeDéposer des fichiers dans la bibliothèque (privés par défaut)Professional
cnode:tasks.runLancer des tâches et suivre leur étatProfessional
cnode:drafts.createCréer des brouillons à valider, refuser des propositionsProfessional
cnode:usage.readVoir votre propre quotatoutes
cnode:adminAdministration : consommation et règles MCP de l’espace de travailEnterprise, admins
cnode:graph.writeMettre à jour le Company Brain dans votre propre graphe tenantavec une clé tenant

Outils par offre

OutilCe qu’il faitResearchStarterProfessionalEnterprise
cnode_graph_askRéponse issue du c:node Graph avec statut de preuve (evidence) et sources✓✓✓✓
cnode_legal
cnode_law_search
cnode_leistung
Article par référence ou citation, recherche de normes en texte intégral, service administratif avec sa base juridique✓✓✓✓
cnode_health
cnode_usage
Test de connexion, quota personnel✓✓✓✓
cnode_modelsModes de réponse et modèles débloqués par votre offre, avec classe et pondération✓✓✓✓
cnode_askQuestion à votre espace de travail : vos documents plus le c:node Graph–✓✓✓
cnode_dossier
cnode_brain_preview
Constituer un dossier de demande, aperçu Company Brain d’un domaine–✓✓✓
cnode_thread_results
cnode_memory_overview
Résultats d’un chat (artefacts, éléments créés avec lien, tâches, validations, exécutions) ; vue d’ensemble de la mémoire – c:node Graph en agrégat et vos propres entrées par niveau. Lecture seule–✓✓✓
cnode_memory_search
cnode_library_list
cnode_library_read
cnode_library_upload
Rechercher et lire mémoire et bibliothèque, déposer des fichiers––✓✓
cnode_connector_searchRechercher dans vos systèmes connectés––✓✓
cnode_list_agents
cnode_ask_agent
cnode_consult_agent
cnode_consult_team
Agents métier et équipe d’experts––✓✓
cnode_run_task
cnode_task_status
Tâches : recherche, note de décision, analyse de document, contrôle juridique et conformité––✓✓
cnode_draft_followup
cnode_list_pending_actions
cnode_reject_action
cnode_approve_action
cnode_notifications
Brouillons et liens de validation, propositions en attente, notifications––✓✓
cnode_tasks_list
cnode_task_create
cnode_task_update
Lister les tâches ; créer une tâche sous forme de brouillon ; proposer une modification d’une tâche – effective seulement après validation dans c:node––✓✓
cnode_lagebildÉtat des lieux de votre propre domaine––✓✓
cnode_admin_usageConsommation et règles MCP de l’espace de travail–––✓ admins

Rôles : les lecteurs voient les outils de lecture ; les membres en plus les questions, agents, tâches, brouillons et dépôts ; les admins en plus l’administration. Avec une clé contrat, vous ne voyez que les outils du c:node Graph selon votre profil, plus cnode_profiles et, avec une clé tenant, cnode_brain_bootstrap et cnode_findings. Pour les clés contrat, cnode_graph_ask reste aussi disponible sous son ancien nom cnode_ask jusqu’au 05/01/2027.

Les validations se font uniquement dans c:node. Via MCP, c:node crée au plus un brouillon ou une demande de validation et vous donne le lien vers la carte de validation (approve_url). Rien n’est envoyé ni inscrit avant que vous cliquiez sur « Valider » dans c:node. cnode_approve_action ne renvoie, lui aussi, que ce lien.

MCP : consommation & limites

  • Une réponse fiable via MCP compte comme dans l’application, sur le même quota mensuel de votre équipe. Les réponses comptent selon la classe de modèle : standard (par ex. Gemini Flash) 1×, premium (Claude ou Gemini Pro) 2×, en mode « Approfondi » 3×. cnode_models indique les modes et modèles que votre offre débloque.
  • Dès 80 % du quota, c:node affiche un avis. La consommation jusqu’à 150 % est incluse et n’est pas facturée ; au-delà, les réponses sont suspendues jusqu’au mois suivant ou jusqu’à une évolution de votre formule.
  • Rechercher, consulter et lire – articles de loi, services administratifs, bibliothèque, état – ne comptent pas comme réponses.
  • À partir de 80 % du quota, c:node affiche un avertissement. À 150 %, c:node n’accepte plus de réponses jusqu’au mois suivant ; l’outil l’indique avec un lien vers votre offre.
  • Limites par personne et par minute : 30 réponses, 120 consultations, 6 tâches, 10 brouillons ou dépôts. Au-delà, l’outil indique le délai d’attente.
  • Les instances c:node dédiées n’ont pas de quota d’offre ; les réponses MCP y sont comptées par canal.

cnode_usage indique où vous en êtes – ou dans c:node, sous Paramètres.

MCP : dépannage

Ce que vous voyezCauseQue faire
401 « c:node MCP braucht eine Anmeldung oder einen Schlüssel »Pas encore connecté, connexion expirée ou clé invalide. L’en-tête WWW-Authenticate indique sous resource_metadata où le client trouve la connexion – c’est voulu.Reconnecter (Claude Code : /mcp → cnode → « Authenticate ») ou vérifier la clé.
invalid_redirect_uri à la connexionLe client s’enregistre avec une adresse de retour qu’auth.c-node.ai n’accepte pas automatiquement. Sont acceptés Claude, les clients avec métadonnées client (CIMD) et les applications natives avec retour sur localhost, 127.0.0.1 ou [::1], ainsi que Copilot Studio avec retour sur https://global.consent.azure-apim.net/redirect/….Mettre à jour Claude Code. Pour d’autres services web, demander un client fixe ou utiliser une clé d’organisation.
La page de consentement se termine par access_denied« Refuser » a été cliqué – ou votre compte n’est pas membre de l’espace de travail demandé par le client.Reconnecter et « Autoriser ». Votre admin ou votre contact c:node configure l’adhésion.
La connexion échoue, il n’y a pas encore de compteUn connecteur ne crée pas de compte.Créer d’abord un compte c:node ou se faire inviter, puis connecter.
Connecté, mais 0 outilSur la page de consentement, un espace a été choisi qui n’a pas d’espace de travail c:node – ou MCP y est désactivé.Reconnecter et choisir le bon espace de travail. Les admins vérifient Paramètres → Clés API & MCP.
Un outil manque ou indique ne pas être inclus dans votre offre c:nodeOffre, rôle ou droit non accordé à la connexion.Vérifier droits & outils ; reconnecter si un droit manque.
« Limite atteinte » ou « quota épuisé »Limite par minute et par personne ou 150 % du quota mensuel.Patienter un instant ou adapter votre offre.
« Valider uniquement dans c:node »Voulu : rien n’est validé via MCP.Ouvrir le lien approve_url et valider dans c:node.

Connaissances

Réponses fiables et sources juridiques. Tous les endpoints de cette section nécessitent une clé Contract.

GET/v1/askRéponse fiable à une questionClé

Répond à une question exclusivement à partir des concepts que votre profil autorise. Les citations proviennent uniquement de références vérifiées. Si c:node ne trouve pas de preuve, la réponse le dit au lieu de deviner.

ParamètreDescription
qLa question en langage naturel (3 caractères min.). Obligatoire.
kNombre de concepts sur lesquels s’appuie la réponse (1–20, par défaut 6).
Réponse · structure (abrégée)
{ "question": "Quelles obligations ont les fournisseurs de systèmes d’IA à haut risque ?", "grounded": true, "answer": "… [CELEX:32024R1689] …", "citations": ["CELEX:32024R1689"], "verdict": "…", "factscore": 1.0, "verification": [ { "claim": "…", "verdict": "belegt", "source": "CELEX:32024R1689", "via": "citation" } ], "profile": "de-federal", "attributions": [] }

Sans preuve : "grounded": false et la réponse « Cela ne figure pas (encore) dans le graphe de connaissances. » Les affirmations sans appui reçoivent le verdict offen (ouverte).

GET/v1/ask/streamLa même chose en flux (SSE)Clé

Mêmes paramètres et même vérification que /v1/ask. La réponse arrive sous forme de Server-Sent Events : des événements token avec des fragments de texte, puis un événement done avec les citations, le verdict et le factscore, et enfin [DONE].

curl -N "https://contract.c-node.ai/v1/ask/stream?q=Meldepflicht%20Wohnsitz" \ -H "X-API-Key: $CNODE_API_KEY" data: {"type": "token", "text": "La déclaration …"} data: {"type": "done", "citations": […], "factscore": …, "attributions": […]} data: [DONE]
GET/v1/retrievePreuves sans réponse rédigéeClé

Renvoie les concepts sur lesquels /v1/ask s’appuierait – chacun avec référence, définition, score et couche (macro = c:node Graph, micro = votre tenant) –, mais sans réponse rédigée ni vérification par affirmation. Pour les appelants qui rédigent la réponse avec leur propre modèle ; nettement plus rapide que /v1/ask. Mêmes paramètres que /v1/ask. Compte comme une réponse (facturable si fiable).

curl "https://contract.c-node.ai/v1/retrieve?q=Meldepflicht%20Wohnsitz&k=4" \ -H "X-API-Key: $CNODE_API_KEY" → { "mode": "retrieve", "grounded": true, "concepts": […], "citations": […], "sources": [{ "concept": "…", "ref": "…", "definition": "…", "score": …, "layer": "macro" }], "relations": […], "profile": "…", "attributions": […] }
GET/v1/legalNormes juridiques (ELI / CELEX)Clé

Un paragraphe par référence, tous les paragraphes d’une loi ou une recherche plein texte. L’un des trois paramètres est obligatoire.

ParamètreDescription
refRéférence exacte, p. ex. ELI:BSIGesetz§1.
lawNom de la loi, p. ex. BSIGesetz – renvoie ses paragraphes.
qRecherche plein texte (tous les termes doivent apparaître).
citeCitation telle qu’on la tape, par ex. § 309 BGB – renvoie la norme en texte intégral (comme /v1/legal/norm).
limit · offsetPagination (1–500, par défaut 50). S’il y a d’autres résultats, next_offset figure dans la réponse.
Réponse · réelle, texte abrégé
{ "profile": "de-federal", "total": 66, "count": 2, "limit": 2, "offset": 0, "next_offset": 2, "results": [ { "label": "BSIGesetzPar10", "ref": "ELI:BSIGesetz§10", "std": "ELI", "text": "Anordnungen von Maßnahmen zur Abwendung oder Behebung von Sicherheitsvorfällen. …", "grounding": "verified", "license": "open" } ], "attributions": [] }
GET/v1/legal/searchNormes pour une citation ou un thème, en texte intégralClé

Trouve les normes correspondant à une question, un thème ou une citation. Les citations contenues dans la question sont résolues en premier ("match": "citation"), suivies des résultats classés ("match": "search"), chacun avec texte intégral, source et date de mise à jour. missing liste les normes ou lois citées que le corpus ne contient pas.

ParamètreDescription
qQuestion, thème ou citation, p. ex. Art. 28 DSGVO ou Klauselverbote in AGB. Obligatoire.
kNombre de résultats (1–30, 8 par défaut).
lawLimiter à une loi, p. ex. BGB.
curl "https://contract.c-node.ai/v1/legal/search?q=Klauselverbote%20in%20AGB&k=3" \ -H "X-API-Key: $CNODE_API_KEY"
GET/v1/legal/normUne norme par citation, en texte intégralClé

Résout une citation telle qu’on la tape – cite=§ 309 BGB, cite=Art. 28 DSGVO – ou prend une ref exacte. Réponse : la norme avec texte intégral, URL source et date de mise à jour, ou honnêtement "found": false avec un reason (no_citation, law_not_held, norm_not_found, not_in_profile). /v1/legal?cite=… renvoie la même chose.

GET/v1/legal/coverageLes lois présentes dans le corpusClé

Normes par loi et date de mise à jour par loi – pour savoir ce que couvrent /v1/legal/search et /v1/legal/norm.

GET/v1/leistungServices administratifs avec base juridiqueClé

Services administratifs issus de XZuFi/LeiKa. rechtsgrundlagen ne contient que des liens vers des lois présentes dans le c:node Graph – rien n’est deviné. Paramètres : ref ou q, plus limit/offset.

Réponse · réelle
{ "profile": "de-federal", "total": 2, "count": 1, "results": [ { "label": "LeistungS1000030000000045", "ref": "XZUFI:S1000030000000045", "bezeichnung": "Wohnsitz Anmeldung als Hauptwohnsitz — Verwaltungsleistung (XZuFi/LeiKa, …)", "license": "attribution", "rechtsgrundlagen": [] } ], "attributions": [ { "source": "Freie Hansestadt Bremen — Bürgerservice (XZuFi/FIM)", "license": "Datenlizenz Deutschland (dl-de/by-2-0)", "url": "https://www.govdata.de" } ] }

Preuves & audit

Des enregistrements pour la traçabilité : d’où provient une affirmation, qui un acte juridique concerne et quelles sources doivent être mentionnées. Avec Essayer, vous appelez la Sandbox en direct.

GET/v1/provenanceEnregistrement de preuve pour une référencesans clé

Fournit pour une référence le statut de vérification, la licence, une indication d’incertitude et un hash du contenu – conçu pour la journalisation selon l’EU AI Act, art. 12. Paramètre : ref.

GET/v1/auditQuelles entreprises un acte juridique concerne-t-il ?sans clé

Relie un acte juridique de l’UE aux secteurs concernés et aux entreprises inscrites au registre du commerce. Paramètre : act, p. ex. ArtificialIntelligenceAct.

GET/v1/betroffenheitImpact régional par acte juridiqueClé

Étend /v1/audit à la dimension régionale : loi → secteur → entreprises concernées → Land → indicateurs régionaux (PIB, taux de chômage, revenus). Chaque chiffre dérivé porte sa chaîne de preuves. Paramètres : act (optionnel), limit (1–100).

POST/v1/dossierDossier de demande chaîné par hashClé

Assemble à partir des champs d’une demande un dossier vérifiable : chaque champ avec sa source, le verdict de confiance eIDAS sur le sceau et une chaîne de hash infalsifiable. Si la demande cite un service sans base juridique, c:node la complète à partir du graphe. Les réponses contiennent des données personnelles et ne sont pas mises en cache.

curl -X POST https://contract.c-node.ai/v1/dossier \ -H "X-API-Key: $CNODE_API_KEY" -H "Content-Type: application/json" \ -d '{ "leistung": "XZUFI:S1000030000000045", "felder": [ { "name": "Adresse", "wert": "…", "quelle": "Attestation de domicile", "siegel": { "aussteller": "…", "typ": "…" } } ] }'
GET/v1/attributionsMentions de sources obligatoiressans clé

Toutes les sources de données de votre profil avec licence et URL – pour les mentions légales, une liste des sources ou un export.

Company Brain

Un domaine devient un profil d’entreprise fiable : c:node lit les pages publiques, vérifie les mentions légales et le registre du commerce, ancre l’entreprise dans son secteur et fournit des constats sur la réglementation et les appels d’offres en cours – chacun avec sa source.

GET/v1/demo/brain/streamAperçu à partir d’un domaine (SSE)sans clé

L’aperçu public : diffuse l’exécution pour un domaine, sans rien enregistrer. Limité à quelques runs par IP et par heure, plus un quota journalier ; le résultat d’un domaine est mis en cache 24 heures et rejoué. Paramètre : domain, p. ex. firma.de ; en option lang (de, en, fr), mode (brief par défaut, swot ou lagebild) et, avec mode=lagebild, goal (gesamt, chancen, pflichten, foerderung, wettbewerb).

Types d’événements dans cet ordre : step, page, feed, impressum, register, profile, anchor, finding, done (en cas d’erreur error), terminé par [DONE].

curl -N "https://contract.c-node.ai/v1/demo/brain/stream?domain=firma.de"
POST/v1/brain/bootstrapConstruire le Brain de votre espace dédiéClé d’espace dédié

Exécute le traitement complet et enregistre le profil, les pages et les constats dans le graphe de votre espace dédié. Ensuite, /v1/ask et /v1/findings connaissent votre entreprise. Body : {"domain": "firma.de"}. Délai maximal 90 secondes (504 en cas de dépassement).

En flux : GET /v1/brain/stream?domain=… fournit les mêmes événements que l’aperçu et enregistre à la fin.

GET/v1/findingsConstats actuels de votre espace dédiéClé d’espace dédié

Les constats proactifs issus de la dernière exécution : réglementation, appels d’offres, registre et contexte sectoriel, chacun avec ses preuves. S’il n’y a pas encore eu d’exécution, findings est vide et hint indique l’étape suivante.

Graphe du tenant

Avec une clé tenant, /v1/ask, /v1/retrieve, /v1/graph et /v1/findings relient le c:node Graph à votre propre savoir. Avec scopes, vous choisissez quelles couches de votre tenant sont lues en plus : org (par défaut), team:<id>, user:<id>, séparées par des virgules.

POST/v1/ingestAjouter votre propre savoirClé tenant

Écrit un document ou une note dans votre graphe tenant privé. L’entrée peut aussitôt servir à répondre via /v1/ask. Le c:node Graph lui-même reste inchangé.

curl -X POST https://contract.c-node.ai/v1/ingest \ -H "X-API-Key: $CNODE_API_KEY" -H "Content-Type: application/json" \ -d '{"title": "Politique d’achat 2026", "text": "…", "source": "Intranet", "ref": "file:achats-2026", "scope": "org"}' → { "ok": true, "tenant": "…", "concept": "Politique d’achat 2026", "ref": "file:achats-2026", "scope": "org", "how": "…", "embedded": true }

Champs : title ou label, text ou content, en option source, ref (identifiant de la source ; une nouvelle ingestion avec la même ref remplace l’entrée) et scope (org, team:<id> ou user:<id>, org par défaut).

PATCH/v1/ingest?ref=…Déplacer une entrée vers une autre coucheClé tenant

Déplace une entrée au sein de votre tenant, par exemple d’une note personnelle vers la mémoire de l’organisation. Corps : {"scope": "org"}. 404 si rien n’est enregistré sous la ref.

DELETE/v1/ingest?ref=…Supprimer une entréeClé tenant

Supprime tout ce que vous avez ingéré sous cette ref – texte, alias et embedding –, par exemple pour un effacement RGPD. Les appels répétés renvoient "deleted": 0. Le c:node Graph n’est pas touché.

curl -X DELETE "https://contract.c-node.ai/v1/ingest?ref=file:achats-2026" \ -H "X-API-Key: $CNODE_API_KEY"

Exploitation

GET/v1/healthStatut de l’APIsans clé
GET/v1/profilesProfils et ce qu’ils peuvent voirsans clé
GET/v1/usageConsommation et rate limitsans clé

Votre quota par minute et votre consommation sur une période (since/until, par ex. since=30d) : réponses fournies (answers), dont facturables (billable_answers), retrievals, lookups, ingests, la répartition par canal (by_channel, par ex. api, mcp:claude) et le factscore moyen. detail=true ajoute les entrées détaillées. Appelez-le avec votre clé – sans clé, vous ne voyez que la sandbox.

GET/v1/graphIndicateurs du c:node Graphsans clé

Termes, relations, domaines et part des termes fiables (verified_pct, ce qu’elle mesure) – pour le graphe que votre profil voit.

Erreurs & limites

Les erreurs sont renvoyées en JSON avec un champ detail.

StatutSignification
400Paramètre manquant, p. ex. /v1/legal sans ref, law, q ni cite.
401Clé absente ou invalide pour un endpoint qui exige une clé contrat.
403L’endpoint exige une clé tenant (Company Brain, constats, ingestion) – sans clé ou avec une clé sans tenant.
404Référence ou acte juridique absent du graphe.
422Paramètre invalide, p. ex. q trop court ou k hors plage.
429Limite de débit atteinte. Attendez le nombre de secondes indiqué dans l’en-tête Retry-After.
503Génération de réponses momentanément saturée. Réessayez après Retry-After.
504Le run Brain a dépassé la limite de temps.

Limite de débit : 120 appels par minute et par clé, pour chaque appel /v1 sauf /v1/health. Chaque réponse porte X-RateLimit-Limit et X-RateLimit-Remaining ; /v1/usage indique aussi où vous en êtes.

Facturation : l’unité est la réponse fiable – une réponse de /v1/ask, /v1/ask/stream ou /v1/retrieve qui s’appuie sur des sources vérifiées. Les réponses sans preuve, les consultations (/v1/legal, /v1/legal/norm, /v1/legal/search, /v1/leistung) et les ingestions sont comptées mais pas facturées comme réponses fiables. Les réponses fiables via la Contract API sont décomptées du quota mensuel de votre formule. Au-delà, chaque réponse fiable coûte 0,04 € HT, plafonnée dans l’offre Starter au coût du passage à Professional. Il n’y a pas de pause à 150 % ici ; la limite de débit s’applique.

Seuls un identifiant client pseudonyme, le chemin et le statut sont journalisés – aucun contenu.