Changez une ligne. Chaque appel devient prouvable.
Pointez le SDK que vous utilisez déjà vers le Gateway Subsidia. Il parle les dialectes OpenAI et Anthropic : votre code ne change pas, le trafic passe par le moteur et revient avec une preuve.
Dans un éditeur, un client du SDK OpenAI change une seule ligne : baseURL passe de api.openai.com à api.subsidia.protypa.fr, la clé devient SUBSIDIA_API_KEY. Le modèle devient l'adresse pulse-auto+cortex et le message contient un nom, un e-mail et un IBAN fictifs. La réponse arrive en HTTP 200 avec les en-têtes x-pulse-proof, x-pulse-provider et x-pulse-pii-masked (2 valeurs masquées avant de sortir vers le fournisseur), puis le texte de la réponse. Un certificat de preuve apparaît : identifiant, route du modèle, rang dans la chaîne et empreinte du précédent, empreinte du document et signature Ed25519. Il est vérifié hors ligne : empreinte recalculée, signature valide, maillon de la chaîne en place. Une ligne changée. Chaque appel prouvé.
Votre équipe envoie déjà des prompts vers des clouds tiers.
Votre trafic IA fuit déjà
Les prompts transportent des noms de clients, des adresses, des extraits de données de production, sans registre de ce qui est sorti ni quand.
Rien n'est prouvable après coup
Un journal applicatif que vous avez écrit vous-même ne constitue pas une preuve opposable face à un client ou un auditeur.
Réécrire les applications n'est pas une option
Un correctif qui oblige à toucher au code meurt dans le backlog. Le seul budget d'intégration qui existe toujours : une ligne de configuration.
Un pipeline que vous n'écrivez pas, sur un trafic que vous ne réécrivez pas.
- 1
Bouclier PII
E-mails, IBAN, numéros de téléphone (et les noms, en mode renforcé) sont remplacés par des jetons cohérents avant de partir vers un fournisseur externe, puis restaurés dans la réponse.
- 2
Routage du modèle
Un modèle économique pour les demandes simples, un modèle plus lourd pour le travail complexe. Aucun fournisseur codé en dur.
- 3
Mesure
L'usage est compté sur votre espace de travail ; une clé peut porter son propre plafond mensuel.
- 4
Certificat signé
Chaque réponse porte une attestation Ed25519 chaînée par hash : la requête, ce qui est réellement sorti (masqué), les sources utilisées.
Le champ model est une adresse.
Sans préfixe Subsidia, le Gateway est un passe-plat fidèle. Les capacités ne s'activent que si vous les écrivez dans l'adresse, et se composent.
"pulse-auto"routé à chaque appel selon la complexité"pulse-sensitive"forcé sur un modèle local ; le certificat le prouve"agent:cfo"l'agent du workspace répond (mémoire, documents, outils)"pulse-auto+cortex"ancré dans la base de connaissances
GET /v1/models liste les modèles et les adresses d'agents de votre espace.
Quatre manières de changer l'URL.
La clé se lit dans SUBSIDIA_API_KEY. Le SDK Anthropic prend l'hôte seul, il ajoute /v1/messages lui-même.
import OpenAI from "openai"
const client = new OpenAI({
baseURL: "https://api.subsidia.protypa.fr/v1",
apiKey: process.env.SUBSIDIA_API_KEY,
})
const { data, response } = await client.chat.completions
.create({
model: "pulse-auto",
messages: [{ role: "user", content: "Summarise this clause." }],
})
.withResponse()
console.log(response.headers.get("x-pulse-proof"))import os
from openai import OpenAI
client = OpenAI(
base_url="https://api.subsidia.protypa.fr/v1",
api_key=os.environ["SUBSIDIA_API_KEY"],
)
raw = client.chat.completions.with_raw_response.create(
model="pulse-auto",
messages=[{"role": "user", "content": "Summarise this clause."}],
)
print(raw.headers.get("x-pulse-proof"))import Anthropic from "@anthropic-ai/sdk"
const client = new Anthropic({
baseURL: "https://api.subsidia.protypa.fr", // host only: the SDK adds /v1/messages
apiKey: process.env.SUBSIDIA_API_KEY,
})
const { data, response } = await client.messages
.create({
model: "pulse-auto",
max_tokens: 1024,
messages: [{ role: "user", content: "Summarise this clause." }],
})
.withResponse()
console.log(response.headers.get("x-pulse-proof"))curl -i https://api.subsidia.protypa.fr/v1/chat/completions \
-H "Authorization: Bearer $SUBSIDIA_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "pulse-auto",
"messages": [{"role": "user", "content": "Summarise this clause."}]
}'
# x-pulse-proof: pf_… x-pulse-pii-masked: 2L'identifiant de preuve revient dans l'en-tête x-pulse-proof ; x-pulse-pii-masked compte les valeurs masquées.
Ce que la clé API ouvre.
Le moteur, en direct
POST /v1/ai/complete pour l'appel direct, POST /v1/chat/completions et POST /v1/messages pour les dialectes OpenAI et Anthropic.
Cortex et Light
POST /v1/knowledge/query pour interroger la base, POST /v1/knowledge-sources pour l'alimenter, POST /light/ask pour une réponse sourcée ou un refus honnête.
Reflex, les automatisations
GET et POST /engine/flows. Tout envoi sortant reste soumis à une approbation humaine (GET /engine/approvals) : une clé ne peut pas s'auto-approuver.
Faites vérifier un texte, d'où qu'il vienne.
Envoyez un texte et les passages sur lesquels il s'appuie (ceux que votre propre recherche a renvoyés, ou des collections Cortex). Chaque affirmation reçoit un verdict : vérifiée, non étayée, contredite ou invérifiable. Aucun modèle n'est appelé : le résultat se recalcule à l'identique, et le rapport est signé dans la même chaîne que les certificats du Gateway.
Une vérification est comptée comme un contrôle, à part des questions. Les contrôles sont décomptés et affichés séparément ; la tarification n'est pas arrêtée à ce jour.
curl -X POST https://api.subsidia.protypa.fr/v1/verify \
-H "Authorization: Bearer $SUBSIDIA_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"text": "Le loyer mensuel est de 1 250 €. Le préavis est de 30 jours.",
"passages": [{
"source": "Bail commercial.pdf", "page": 3,
"content": "Le loyer mensuel est de 1 250 €. Le préavis est de 90 jours."
}]
}'POST /v1/verifyvérifier un texte, rapport signé en retourGET /v1/verifylister les rapportsGET /v1/verify/usagecontrôles du moisGET /v1/verify/:idrelire un rapportGET /v1/verify/:id/certificateson certificatGET /v1/verify/:id/exportl'export du rapport
Le registre d'usage IA, lisible par vos outils.
Le registre répond aux cinq mentions du règlement européen sur l'IA. Parcourez-le, résumez-le, ou exportez-le : l'export est une archive signée (CSV, JSON, attestation) qui engage aussi les filtres, donc un extrait partiel ne peut pas passer pour exhaustif.
GET /v1/registreles lignes, paginéesGET /v1/registre/summaryle résumé pour les filtresGET /v1/registre/exportl'export signé (zip)
Le registre fait partie du forfait Cabinet ; un autre forfait reçoit un 402 PLAN_UPGRADE_REQUIRED.
Une preuve que vous pouvez montrer à un tiers.
Chaque réponse du Gateway porte un identifiant de preuve. Récupérez le certificat, faites-le contrôler, ou vérifiez-le vous-même avec la clé publique, ouverte.
GET /v1/proofs/:idle certificatGET /v1/proofs/:id/verifycontrôle de la signature et de la chaîneGET /v1/gateway/public-keyclé publique de signature (PEM), sans authentification
Une clé ne peut faire que ce que vous lui donnez.
Dès qu'une clé porte une portée de capacité, elle devient stricte : seules les familles nommées lui sont ouvertes. Ajoutez readonly pour qu'elle ne puisse rien modifier.
engine/v1/chat/completions, /v1/messages, /v1/models, /v1/ai/*, /v1/proofs, /v1/gateway/*knowledge/v1/knowledge*reflex/engine/* (flows, approbations)light/light/*webhooks/v1/webhooks*partner/partner/* (intégrateurs)proof/v1/verify*, /v1/registre*readonlylecture seule ; les POST qui ne font que lire (chat, messages, verify, knowledge/query…) restent permis
Les clés plus anciennes, qui n'ont que des noms de modules, restent sans restriction. On crée une clé après connexion, dans Console, Gateway.
Tout ce qui parle OpenAI ou Anthropic parle Subsidia.
Claude Code passe entièrement par le Gateway : chaque tour de la boucle d'agent est masqué, routé et attesté. Les frameworks et outils d'automatisation se branchent par leur réglage d'URL de base.
Un proxy cloud peut promettre. Dans vos murs, il peut prouver.
Auto-hébergez le tout
Le Gateway tourne en service autonome sur votre infrastructure : c'est le même qui fait tourner le cloud Subsidia, hébergé en France.
Vos clés, votre registre
Chaque installation génère sa propre paire de signature Ed25519. Personne ne peut fabriquer ou modifier un certificat pour votre trafic.
Modèles locaux inclus
Avec pulse-sensitive, la donnée reste sur la machine, et le certificat l'établit techniquement, pas seulement par contrat.
La référence complète, sur le portail développeur.
De la clé au premier certificat.
Créez un compte, ouvrez Console, Gateway pour générer une clé, puis testez-la sans écrire de code.
Après l'inscription, rendez-vous dans Console, Gateway.
