{"openapi":"3.0.3","info":{"title":"Verdict","version":"0.1.0","description":"Verdicts typés pour agents IA, payables en satoshis (L402)."},"servers":[{"url":"https://verdict.kechlab.com"}],"paths":{"/v1/guard":{"post":{"summary":"Prompt-Injection Guard (from 20 sats)","description":"Pre-flight guardrail for untrusted text before an LLM agent reads it: prompt injection, data exfiltration requests, secrets and API keys, personal data, toxicity. A la carte: pick the checks (price drops with them), the sensitivity (strict, balanced, lenient) and an optional consensus of independent models. Returns allow, review or block with per-check scores. L402 payment : sans en-tête Authorization, la réponse 402 contient une facture Lightning et un jeton. Payez, puis renvoyez la même requête avec Authorization: L402 <jeton>:<preimage>.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"text":{"description":"le texte non fiable à examiner"},"checks":{"description":"(facultatif) liste parmi injection, exfiltration, pii, secrets, toxic : un seul contrôle coûte moitié moins cher"},"sensitivity":{"description":"(facultatif) strict, balanced (défaut) ou lenient"},"consensus":{"description":"(facultatif) true : trois modèles indépendants, désaccord = relecture, prix doublé"}}}}}},"responses":{"200":{"description":"Verdict typé"},"402":{"description":"Paiement requis (facture Lightning)"}}}},"/v1/firewall":{"post":{"summary":"Action Firewall (from 30 sats)","description":"Agent security guardrail. Judges the pair (untrusted content + proposed action) before an AI agent acts: detects tool calls that obey hidden prompt injection, leave the user's goal, destroy data or send data or money elsewhere. Adjustable sensitivity and optional multi-model consensus. Returns allow, review or block with scores and reasons. L402 payment : sans en-tête Authorization, la réponse 402 contient une facture Lightning et un jeton. Payez, puis renvoyez la même requête avec Authorization: L402 <jeton>:<preimage>.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"goal":{"description":"l'objectif donné par l'humain"},"content":{"description":"le contenu non fiable lu par l'agent (page, e-mail, document)"},"action":{"description":"l'action que l'agent veut exécuter (appel d'outil, commande, paiement)"},"sensitivity":{"description":"(facultatif) strict, balanced (défaut) ou lenient"},"consensus":{"description":"(facultatif) true : trois modèles indépendants, désaccord = relecture, prix doublé"}}}}}},"responses":{"200":{"description":"Verdict typé"},"402":{"description":"Paiement requis (facture Lightning)"}}}},"/v1/pointer":{"post":{"summary":"Screen Pointer (from 30 sats)","description":"Computer-use agent helper. Send a screenshot (PNG/JPEG) and 1 to 8 element descriptions, get click coordinates (fractions and pixels) and the probability each UI element is really visible. Visual grounding for GUI automation and browser agents. L402 payment : sans en-tête Authorization, la réponse 402 contient une facture Lightning et un jeton. Payez, puis renvoyez la même requête avec Authorization: L402 <jeton>:<preimage>.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"image":{"description":"capture PNG ou JPEG en data URL base64 (2,5 Mo max)"},"targets":{"description":"liste de 1 à 8 descriptions d'éléments à repérer"},"width":{"description":"(facultatif) largeur de la capture en pixels"},"height":{"description":"(facultatif) hauteur en pixels"}}}}}},"responses":{"200":{"description":"Verdict typé"},"402":{"description":"Paiement requis (facture Lightning)"}}}},"/v1/grounding":{"post":{"summary":"Source Grounding (from 20 sats)","description":"Hallucination check for RAG: is a claim supported by the source text? Returns supported, unsupported, contradicted or uncertain with probabilities, so an agent can verify an answer before showing it. L402 payment : sans en-tête Authorization, la réponse 402 contient une facture Lightning et un jeton. Payez, puis renvoyez la même requête avec Authorization: L402 <jeton>:<preimage>.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"source":{"description":"le texte de référence"},"claim":{"description":"l'affirmation à vérifier"}}}}}},"responses":{"200":{"description":"Verdict typé"},"402":{"description":"Paiement requis (facture Lightning)"}}}},"/v1/triage":{"post":{"summary":"Message Triage (from 10 sats)","description":"Customer support triage and spam filter: classifies an inbound message by category and urgency, scores spam, and returns a routing decision (queue, escalate, review, discard). L402 payment : sans en-tête Authorization, la réponse 402 contient une facture Lightning et un jeton. Payez, puis renvoyez la même requête avec Authorization: L402 <jeton>:<preimage>.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"description":"le message du client"}}}}}},"responses":{"200":{"description":"Verdict typé"},"402":{"description":"Paiement requis (facture Lightning)"}}}},"/v1/web-guard":{"post":{"summary":"Web Page Guard (from 25 sats)","description":"For agents that read web pages: finds what a human cannot see but an agent reads (HTML comments, CSS-hidden text, hidden attributes, invisible Unicode-encoded text) and tells whether those hidden instructions target an AI. Extraction by code, reading by the decision engine on the hidden text only. Returns allow, review or block. L402 payment : sans en-tête Authorization, la réponse 402 contient une facture Lightning et un jeton. Payez, puis renvoyez la même requête avec Authorization: L402 <jeton>:<preimage>.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"html":{"description":"le code HTML de la page (400 Ko maximum)"}}}}}},"responses":{"200":{"description":"Verdict typé"},"402":{"description":"Paiement requis (facture Lightning)"}}}},"/v1/command-gate":{"post":{"summary":"Shell Command Gate (from 20 sats)","description":"For coding agents that run shell commands: approve, review or block. Text rules first (root deletion, download-and-run, key exfiltration, reverse shells, SQL destruction, persistence, privilege escalation), then a fake terminal that simulates the command without ever running it (decoy files, pipe and variable tracking, outbound transfers), whose trace the engine judges. Returns the rule and the trace that fired. L402 payment : sans en-tête Authorization, la réponse 402 contient une facture Lightning et un jeton. Payez, puis renvoyez la même requête avec Authorization: L402 <jeton>:<preimage>.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"command":{"description":"la commande shell que l'agent veut exécuter (8000 caractères maximum)"},"intent":{"description":"(facultatif) ce que l'humain a demandé à l'agent de faire"}}}}}},"responses":{"200":{"description":"Verdict typé"},"402":{"description":"Paiement requis (facture Lightning)"}}}},"/v1/tool-output-guard":{"post":{"summary":"Tool Output Guard (from 15 sats)","description":"Tool results (MCP servers, APIs, search, file reads) are untrusted content the agent re-reads. Detects a result that gives orders to the agent, strays from what the tool should return or asks to send data (tool poisoning). Returns allow, review or block. L402 payment : sans en-tête Authorization, la réponse 402 contient une facture Lightning et un jeton. Payez, puis renvoyez la même requête avec Authorization: L402 <jeton>:<preimage>.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"output":{"description":"le résultat renvoyé par l'outil"},"tool_name":{"description":"(facultatif) nom de l'outil"},"purpose":{"description":"(facultatif) ce que l'outil est censé renvoyer"}}}}}},"responses":{"200":{"description":"Verdict typé"},"402":{"description":"Paiement requis (facture Lightning)"}}}},"/v1/answer-gate":{"post":{"summary":"Answer Gate (from 10 sats)","description":"For model cascades: is the small model's answer usable, or should the larger model be paid? Detects refusal, evasion, off-topic answers, contradiction and incompleteness; decides accept, review or escalate. Does not fact-check without a source: provide the source to check substance. L402 payment : sans en-tête Authorization, la réponse 402 contient une facture Lightning et un jeton. Payez, puis renvoyez la même requête avec Authorization: L402 <jeton>:<preimage>.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"task":{"description":"la tâche demandée"},"answer":{"description":"la réponse produite par le premier modèle"},"source":{"description":"(facultatif) texte de référence pour contrôler la cohérence"}}}}}},"responses":{"200":{"description":"Verdict typé"},"402":{"description":"Paiement requis (facture Lightning)"}}}},"/v1/payee-check":{"post":{"summary":"Payee Check (from 60 sats)","description":"Invoice-fraud guard for AI agents that pay bills. Detects supplier bank-detail change fraud (BEC) before payment: checks the IBAN and sender domain against your supplier record (lookalike domains included), then reads pressure and off-channel requests. Returns ok, verify_callback or freeze_payment. L402 payment : sans en-tête Authorization, la réponse 402 contient une facture Lightning et un jeton. Payez, puis renvoyez la même requête avec Authorization: L402 <jeton>:<preimage>.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"sender":{"description":"(facultatif) adresse de l'expéditeur"},"subject":{"description":"(facultatif) objet du mail"},"body":{"description":"le corps du mail"},"known_supplier":{"description":"(facultatif mais recommandé) { name, domain, iban } du référentiel fournisseur"}}}}}},"responses":{"200":{"description":"Verdict typé"},"402":{"description":"Paiement requis (facture Lightning)"}}}},"/v1/reply-guard":{"post":{"summary":"Reply Guard (from 30 sats)","description":"Output guardrail for customer-support chatbots. Blocks unauthorized promises, invented facts, leaked instructions or customer data, off-topic answers and bad tone before the reply is sent. Returns send, human_review or block. L402 payment : sans en-tête Authorization, la réponse 402 contient une facture Lightning et un jeton. Payez, puis renvoyez la même requête avec Authorization: L402 <jeton>:<preimage>.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"customer_question":{"description":"la question du client"},"bot_reply":{"description":"la réponse que le bot s'apprête à envoyer"},"policy":{"description":"(facultatif) la politique de l'entreprise"},"facts":{"description":"(facultatif) les données connues (commande, compte...)"}}}}}},"responses":{"200":{"description":"Verdict typé"},"402":{"description":"Paiement requis (facture Lightning)"}}}},"/v1/lead-qualify":{"post":{"summary":"Lead Qualification (from 25 sats)","description":"Inbound lead qualification and routing for sales agents: spam, job application, vendor pitch, existing customer, or a real project with urgency. Hard rules first (disposable email, tests), returns a routing lane. L402 payment : sans en-tête Authorization, la réponse 402 contient une facture Lightning et un jeton. Payez, puis renvoyez la même requête avec Authorization: L402 <jeton>:<preimage>.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"message":{"description":"le texte de la demande"},"offer":{"description":"(facultatif) ce que vous vendez"},"name":{"description":"(facultatif)"},"email":{"description":"(facultatif)"},"source":{"description":"(facultatif)"},"consent_named":{"description":"(facultatif) true si le prospect a consenti à être rappelé nommément"}}}}}},"responses":{"200":{"description":"Verdict typé"},"402":{"description":"Paiement requis (facture Lightning)"}}}},"/v1/moderate":{"post":{"summary":"Content Moderation (from 10 sats)","description":"Semantic content moderation, not a word list: profanity (even disguised, any language), harassment, hate, sexual content, threats, self-harm, scams. Per-category scores, allow/review/block, configurable ignore list. L402 payment : sans en-tête Authorization, la réponse 402 contient une facture Lightning et un jeton. Payez, puis renvoyez la même requête avec Authorization: L402 <jeton>:<preimage>.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"text":{"description":"le texte à modérer"},"ignore":{"description":"(facultatif) catégories à tolérer : profanity, harassment, hate, sexual, violence, self_harm, spam_scam"}}}}}},"responses":{"200":{"description":"Verdict typé"},"402":{"description":"Paiement requis (facture Lightning)"}}}},"/v1/sentiment":{"post":{"summary":"Aspect Sentiment (from 20 sats)","description":"Sentiment from -1 to +1 with confidence, mixed-opinion flag and a separate score per aspect you name (price, support, delivery). Abstains when the text is ambiguous. L402 payment : sans en-tête Authorization, la réponse 402 contient une facture Lightning et un jeton. Payez, puis renvoyez la même requête avec Authorization: L402 <jeton>:<preimage>.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"text":{"description":"le texte à analyser"},"aspects":{"description":"(facultatif) jusqu'à 6 aspects à noter séparément, par exemple [\"price\",\"support\"]"}}}}}},"responses":{"200":{"description":"Verdict typé"},"402":{"description":"Paiement requis (facture Lightning)"}}}},"/v1/pii-scan":{"post":{"summary":"PII Scan (from 40 sats)","description":"PII detector that finds what regex misses (names, addresses, ID numbers, health data, credentials) and locates what patterns can verify (emails, valid IBANs, Luhn-checked cards, phones). Does not rewrite text. L402 payment : sans en-tête Authorization, la réponse 402 contient une facture Lightning et un jeton. Payez, puis renvoyez la même requête avec Authorization: L402 <jeton>:<preimage>.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"text":{"description":"le texte à examiner"},"types":{"description":"(facultatif) sous-ensemble de : person_name, email, phone, postal_address, id_number, payment_card, bank_account, date_of_birth, credentials, health_info"}}}}}},"responses":{"200":{"description":"Verdict typé"},"402":{"description":"Paiement requis (facture Lightning)"}}}}}}