CT ClaimTrace by AXIONYX.io Obtenir une clé

Référence API ClaimTrace (v1)

URL de base : https://claimtrace.dev. Authentification : header X-API-Key: afk_…. Le contrat de transport v1 est stable : aucun champ n'est retiré ni ne change de sémantique sans version majeure.

Endpoints

MéthodeCheminRôle
POST/v1/signupClé self-serve (email → clé afk_…, affichée une fois, 50 crédits d'essai)
POST/v1/fetchAppel bloquant — JSON FetchResultV1 complet
GET/v1/fetch/streamFlux SSE — metaentity… → done
GET/v1/requests/{request_id}Relecture d'un résultat (TTL 24 h, isolé par clé)
GET/v1/usageVotre tier, crédits restants, requêtes du jour
GET/v1/statsCompteurs publics du service du jour (sans clé)
GET/v1/healthÉtat du service + version du schéma

Requête — POST /v1/fetch

{
  "thematique": "restaurants menus du jour",
  "lieu": "Neuchâtel",
  "prompt": "le menu du jour réel, avec prix si publié",
  "depth": "standard",
  "max_entities": 8,
  "day": "2026-08-08"
}
ChampTypeContraintes
thematiquestringrequis, 2–200 caractères — quel type d'entités
promptstringrequis, 2–4000 caractères — le fait à établir
lieustringoptionnel, ≤ 200 caractères — périmètre géographique
depthstringfast · standard (défaut) · deep (Pack M+)
max_entitiesint1–30, défaut 8
daystringoptionnel, AAAA-MM-JJ — pour les données datées (ex. menus du jour)

Réponse — FetchResultV1

ChampTypeSignification
schema_version"1"Version du contrat
request_idstringPoignée de relecture pour /v1/requests/{id} (24 h)
queryQueryEchoV1Écho : thematique, lieu, day, depth, vertical
entitiesEntityV1[]Les entités résolues
verificationVerificationV1truth_rules_version, verified_live, checked_at, notes
usageUsageV1credits_charged, cache_hits, cost_class
warningsstring[]Les dégradations, dites plutôt que cachées
attributionstring[]ex. © OpenStreetMap contributors (ODbL)

EntityV1

ChampTypeSignification
idstringIdentifiant stable de l'entité dans la réponse
titlestringNom de l'entité
summarystring \nullDescription courte si disponible
locationGeoV1 \nulladdress, city, country, lat, lng
contactContactV1 \nullphone, email, website
attributesobjectAttributs propres au vertical
claimsClaimV1[]Les faits vérifiés — voir ci-dessous
imagesImageV1[]url, role, caption
confidencefloat \nullConfiance au niveau entité, 0–1
not_foundNotFoundV1 \nullPrésent quand la donnée demandée n'est pas publiée

ClaimV1 — le cœur du produit

ChampTypeSignification
fieldstringQuel fait, ex. menu_du_jour
valueanyLe fait lui-même — null autorisé et assumé
provenance.source_urlstring \nullLa page ou le document où le fait a été lu
provenance.fetched_atstring \nullQuand il a été lu (ISO 8601 UTC)
provenance.verbatimstring \nullCourt extrait de preuve, littéral depuis la source
provenance.page_kindstring \nullex. menu_du_jour, carte
provenance.domain_owned_by_entitybool \nullLa source appartient-elle à l'entité
confidencefloat \null0–1
verified_livebool \nullTri-état : confirmé live / démenti / non vérifié

NotFoundV1 — l'absence est une réponse

ChampTypeSignification
reasonstringex. not_published, source_unreachable
detailstring \nullExplication lisible
source_checkedstring \nullLa source réellement consultée

Ce que la v1 ne renvoie jamais

Les champs dont la seule source est Google Places — notes, nombres d'avis, niveaux de prix, images hébergées par Google — sont exclus du payload pour des raisons juridiques (les conditions Google Maps Platform interdisent d'exporter ou repartager le contenu Places). Les claims proviennent exclusivement de sources appartenant à l'entité, garanties par une liste blanche de propriété de domaine.

Erreurs

CodeSignification
401Clé API absente ou invalide
402Crédits épuisés — rechargez ou attendez la recharge mensuelle
404Sur /v1/requests/{id} : résultat inconnu ou expiré pour cette clé
409Sur /v1/signup : une clé active existe déjà pour cet email
422Erreur de validation — un champ viole les contraintes ci-dessus
429Limite de débit — la réponse porte Retry-After

Les refus ne sont jamais facturés.