{"name":"NovaCheck Public API","version":"1.1.0","description":"API de vérification NovaCheck avec endpoints B2B sécurisés et surfaces publiques documentées.","baseUrl":"https://novacheck.vercel.app/api","authentication":{"type":"API key for B2B verification endpoints","header":"X-API-Key","description":"Requise pour POST /api/v1/check et POST /api/v2/verify. Les endpoints publics /api/public/*, /api/verify-image et /api/verify-video ne demandent pas de clé."},"rateLimit":{"free":"100/day","pro":"10,000/day","burst":"120/hour"},"endpoints":[{"method":"POST","path":"/v1/check","description":"Vérifie un texte via l'API B2B sécurisée et retourne un score de fiabilité.","request":{"headers":{"Content-Type":"application/json","X-API-Key":"votre-clé-api"},"body":{"text":{"type":"string","required":true,"description":"Le texte à vérifier (10-5000 caractères)","example":"La Tour Eiffel mesure 330 mètres de haut"},"language":{"type":"string","required":false,"default":"fr","enum":["fr","en","es","de","it","pt"],"description":"Langue de la réponse"},"url":{"type":"string","required":false,"description":"URL de la source (optionnel)"}}},"response":{"success":{"status":200,"body":{"score":{"type":"number","description":"Score de fiabilité (0-100)"},"label":{"type":"string","enum":["true","false","opinion","uncertain"],"description":"Verdict global"},"reasoning":{"type":"string","description":"Explication détaillée"},"sources":{"type":"array","description":"Sources utilisées pour la vérification"},"manipulation_detected":{"type":"boolean","description":"Indique si du langage manipulatif a été détecté"}}},"errors":[{"status":400,"description":"Données invalides"},{"status":401,"description":"Clé API manquante ou invalide"},{"status":429,"description":"Rate limit dépassé"},{"status":500,"description":"Erreur serveur"}]},"example":{"curl":"curl -X POST https://novacheck.vercel.app/api/v1/check \\\n  -H \"Content-Type: application/json\" \\\n  -H \"X-API-Key: votre-clé-api\" \\\n  -d '{\"text\": \"La Tour Eiffel mesure 330 mètres de haut\", \"language\": \"fr\"}'"}},{"method":"GET","path":"/v2/status","description":"Expose le statut du wrapper API v2.","response":{"success":{"status":200,"body":{"status":"operational | degraded","version":"2.0.0","timestamp":"2026-03-28T10:00:00.000Z","uptime_seconds":120,"services":{"verify":"operational | disabled","supabase":"configured | missing"},"endpoints":{"verify":"/api/v2/verify","fallback":"/api/v1/check","status":"/api/v2/status"},"observability":{"sli":"...","totals":"...","slo_breaches":"...","top_routes":"..."}}}}},{"method":"POST","path":"/v2/verify","description":"Wrapper public sécurisé vers /api/v1/check avec validation stricte, observabilité et rate limit.","request":{"headers":{"Content-Type":"application/json","X-API-Key":"votre-clé-api"},"body":{"text":{"type":"string","required":true,"description":"Le texte à vérifier (10-5000 caractères)"},"url":{"type":"string","required":false,"description":"URL source (optionnel)"},"language":{"type":"string","required":false,"default":"fr","enum":["fr","en","es","de","it","pt","nl"],"description":"Langue de réponse"}}}},{"method":"GET","path":"/public/trust-badge","description":"Retourne le score NovaTrust d'un domaine en JSON ou SVG.","request":{"query":{"domain":{"type":"string","required":false},"url":{"type":"string","required":false},"format":{"type":"string","required":false,"enum":["json","svg","badge"]}}}},{"method":"GET","path":"/public/release","description":"Expose la release réellement servie par l'instance déployée pour prouver la parité local/production.","response":{"success":{"status":200,"body":{"status":"ok","release":{"gitSha":"673f84a9abcdef","shortSha":"673f84a","gitBranch":"main","environment":"production","packageVersion":"0.1.0","deploymentUrl":"https://novacheck.vercel.app","source":"explicit_env | vercel_env | runtime","generatedAt":"2026-03-18T00:00:00.000Z"}}}}},{"method":"POST","path":"/verify-image","description":"Analyse publique d'image avec score de risque, verdict, niveau de preuve, limites et lien de provenance.","request":{"headers":{"Content-Type":"application/json"},"body":{"imageUrl":{"type":"string","required":true,"description":"URL publique de l'image à analyser"}}},"response":{"success":{"status":200,"body":{"success":true,"riskScore":62,"verdict":"likely_manipulated","evidenceLevel":"medium","canConfirmManipulation":false,"reviewPriority":"high","confidenceScore":58,"forensicFlags":["missing_or_stripped_metadata","screenshot_context"],"operatorChecklist":["Lancer une reverse search (Google Lens + TinEye + Yandex)."],"provenanceUrl":"/api/provenance/ast_xxx"}}}},{"method":"POST","path":"/verify-video","description":"Analyse publique de vidéo avec verdict, niveau de preuve, recommandations, outils externes, diagnostics forensic V2 lite et lien de provenance.","request":{"headers":{"Content-Type":"application/json"},"body":{"videoUrl":{"type":"string","required":true,"description":"URL publique de la vidéo à analyser"}}},"response":{"success":{"status":200,"body":{"status":"success","deepfakeScore":38,"verdict":"suspicious","analysisMode":"external_tool_only | platform_preview | ffmpeg_forensic_frames_lite","evidenceLevel":"low | medium","reviewPriority":"high","confidenceScore":51,"forensicFlags":["frame_extraction_limited"],"operatorChecklist":["Demander le fichier original pour analyse forensique complète."],"forensicV2":{"engine":"forensic_v2","ffmpeg":{"enabled":false,"frameExtraction":"skipped"},"scoring":{"totalScore":38,"confidence":52,"tier":"medium"},"diagnostics":["ffmpeg_not_available"]},"reverseSearchUrl":"https://weverify-demo.ails.iti.gr/?url=..."}}}},{"method":"GET","path":"/provenance/:assetId","description":"Récupère la preuve de provenance d'un asset image/vidéo déjà analysé","response":{"success":{"status":200,"body":{"status":"success","provenance":{"assetId":"ast_...","status":"verified | unknown | tampered","integrityHash":"sha256..."}}},"errors":[{"status":404,"description":"Provenance non trouvée ou expirée"}]}}],"sdks":{"javascript":"npm install novacheck-sdk (bientôt disponible)","python":"pip install novacheck (bientôt disponible)"},"llmDiscovery":{"llmsTxt":"https://novacheck.vercel.app/llms.txt","llmsFullTxt":"https://novacheck.vercel.app/llms-full.txt","sitemap":"https://novacheck.vercel.app/sitemap.xml","openapi":"https://novacheck.vercel.app/api/public/openapi","release":"https://novacheck.vercel.app/api/public/release"},"support":{"email":"api@novacheck.app","documentation":"https://novacheck.vercel.app/api/public/docs"}}