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.
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.
| Champ | Signification |
|---|---|
ref | Référence standard de la source, p. ex. ELI:BSIGesetz§10, CELEX:32024R1689 ou XZUFI:S1000030000000045. |
grounding | Statut de vérification par rapport au passage cité, p. ex. verified. |
license | Classe de licence de la source : open, attribution ou internal. |
attributions | Mentions obligatoires (source, licence, URL) pour les données fournies. |
citations · factscore | Pour /v1/ask : uniquement des sources vérifiées, avec pour chaque affirmation un verdict (belegt = sourcée ou offen = ouverte) et la part d’affirmations sourcées. |
content_hash | Pour les enregistrements de preuve : SHA-256 du contenu, pour la journalisation selon l’EU AI Act, art. 12. |
La spécification complète, lisible par machine, se trouve sous /openapi.json.
Les deux premiers appels fonctionnent sans clé, contre la Sandbox. Pour les endpoints de connaissances, il vous faut une clé Contract.
Envoyez votre clé Contract dans l’en-tête X-API-Key. Le paramètre de requête ?key= est également accepté, mais il se retrouve plus facilement dans les logs et l’historique du navigateur – ne l’utilisez que là où aucun en-tête n’est possible.
public-observatory) : aperçu du graphe, preuves, audit et mentions de sources./v1/ask, /v1/legal, /v1/leistung et /v1/betroffenheit.Chaque clé est liée à un profil. Le profil détermine quelles classes de licence et quels domaines de connaissances une réponse peut utiliser – les modèles ne voient que ce que votre profil autorise. GET /v1/profiles les liste en direct.
| Profil | Usage | Clé |
|---|---|---|
public-observatory | Sandbox publique : aperçu du graphe et preuves. | non |
trial | Accès d’essai pour l’évaluation. | oui |
free-market | Connaissances de marché (marché, commerce, investissements, finances publiques). | oui |
research-open | Partenaires de recherche : recherche et innovation. | oui |
de-federal | Espace de données fédéral allemand, accès complet. | oui |
commercial-full | Accès commercial complet (sans les sources non commerciales). | oui |
Le serveur MCP de c:node expose la Contract-API sous forme d’outils. Le modèle formule, c:node fournit la base sourcée : si vous demandez à Claude une base juridique, il appelle cnode_ask et répond avec la source.
À ajouter dans .vscode/mcp.json. Copilot demande la clé au premier lancement et ne l’enregistre pas dans le projet :
Tout client MCP compatible Streamable HTTP fonctionne : URL https://mcp.c-node.ai/mcp, clé dans l’en-tête X-API-Key ou sous la forme Authorization: Bearer <key>. La consommation et le profil passent alors par votre propre clé. En mode on-premise, le serveur MCP tourne dans votre environnement et interroge votre propre Contract-API.
| Outil | Ce qu’il fait | Endpoint |
|---|---|---|
cnode_ask | Réponse sourcée à une question, chaque affirmation avec sa source. | GET /v1/ask |
cnode_legal | Paragraphe par référence, tous les paragraphes d’une loi ou recherche plein texte. | GET /v1/legal |
cnode_leistung | Service administratif avec sa base juridique. | GET /v1/leistung |
cnode_dossier | Dossier de demande chaîné par hash. Prépare, ne déclenche rien. | POST /v1/dossier |
cnode_brain_preview | Company Brain à partir d’un domaine, sans enregistrement. | GET /v1/demo/brain/stream |
cnode_brain_bootstrap | Construire et enregistrer le Company Brain de votre espace dédié. | POST /v1/brain/bootstrap |
cnode_findings | Constats actuels de votre espace dédié, chacun avec ses preuves. | GET /v1/findings |
cnode_health · cnode_profiles | Vérification de connexion et profils de votre clé. | GET /v1/health · /v1/profiles |
Le shell c:node est Open Core : l’interface, le chat et le runtime du graphe tournent via Docker sur votre machine ou votre serveur. Pour des réponses locales, un modèle ouvert via Ollama suffit – ou vous apportez votre propre clé API.
Le shell tourne ensuite sous http://localhost:3010 et l’API sous http://localhost:8080. Le périmètre de l’Open Core, la configuration des espaces dédiés et la licence commerciale sont décrits dans le README sur GitHub.
Réponses sourcées et sources juridiques. Tous les endpoints de cette section nécessitent une clé Contract.
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ètre | Description |
|---|---|
q | La question en langage naturel (3 caractères min.). Obligatoire. |
k | Nombre de concepts sur lesquels s’appuie la réponse (1–20, par défaut 6). |
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).
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].
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ètre | Description |
|---|---|
ref | Référence exacte, p. ex. ELI:BSIGesetz§1. |
law | Nom de la loi, p. ex. BSIGesetz – renvoie ses paragraphes. |
q | Recherche plein texte (tous les termes doivent apparaître). |
limit · offset | Pagination (1–500, par défaut 50). S’il y a d’autres résultats, next_offset figure dans la réponse. |
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.
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.
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.
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.
É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).
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.
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.
Un domaine devient un profil d’entreprise sourcé : 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.
L’aperçu public : diffuse l’exécution pour un domaine, sans rien enregistrer. Limité par IP et par jour ; le résultat d’un domaine est mis en cache 24 heures et rejoué. Paramètre : domain, p. ex. firma.de.
Types d’événements dans cet ordre : step, page, feed, impressum, register, profile, anchor, finding, done (en cas d’erreur error), terminé par [DONE].
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.
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.
Écrit un document ou une note dans le graphe privé de votre espace dédié. L’entrée est immédiatement exploitable via /v1/ask. Le c:node Graph lui-même reste inchangé.
Champs : title ou label, text ou content, optionnellement source et ref.
Affiche votre quota actuel par minute et votre consommation : réponses fournies, dont facturables, ingestions et factscore moyen.
Termes, relations, domaines et taux de vérification du graphe que votre profil voit.
Les erreurs sont renvoyées en JSON avec un champ detail.
| Statut | Signification |
|---|---|
400 | Paramètre manquant, p. ex. /v1/legal sans ref, law ni q. |
401 | Clé absente ou invalide pour un endpoint qui requiert une clé Contract. |
403 | Clé valide, mais sans espace dédié (Company Brain, constats, ingestion). |
404 | Référence ou acte juridique absent du graphe. |
429 | Rate limit atteint. Attendez le nombre de secondes indiqué dans l’en-tête Retry-After. |
503 | Génération de réponses momentanément saturée. Réessayez après Retry-After. |
504 | L’exécution du Brain a dépassé le délai maximal. |
Chaque appel /v1, sauf /v1/health, est limité par client ; /v1/usage affiche votre quota actuel. Seuls un identifiant client pseudonymisé, le chemin et le statut sont journalisés – aucun contenu.