Base URL: https://claimtrace.dev. Authentication: header X-API-Key: afk_…. The v1 transport contract is stable: no field is removed or changes meaning without a major version.
Public service counters of the day (no key required)
GET
/v1/health
Service status + schema version
Request — POST /v1/fetch
{
"thematique": "restaurants menus du jour",
"lieu": "Neuchâtel",
"prompt": "the actual daily menu, with prices if published",
"depth": "standard",
"max_entities": 8,
"day": "2026-08-08"
}
Field
Type
Constraints
thematique
string
required, 2–200 chars — what kind of entities
prompt
string
required, 2–4000 chars — the fact you want established
lieu
string
optional, ≤ 200 chars — geographic scope
depth
string
fast · standard (default) · deep (Pack M+)
max_entities
int
1–30, default 8
day
string
optional, YYYY-MM-DD — for dated data (e.g. daily menus)
Tri-state: live-confirmed / contradicted / not checked
NotFoundV1 — absence is an answer
Field
Type
Meaning
reason
string
e.g. not_published, source_unreachable
detail
string \
null
Human-readable explanation
source_checked
string \
null
The source that was actually read
What v1 never returns
Fields whose only source is Google Places — ratings, review counts, price levels, Google-hosted images — are excluded from the payload for legal reasons (Google Maps Platform terms of service prohibit exporting or re-sharing Places content). Claims come exclusively from sources owned by the entity, enforced by a domain-ownership whitelist.
Errors
Code
Meaning
401
Missing or invalid API key
402
Credits exhausted — top up or wait for the monthly refill
404
On /v1/requests/{id}: unknown or expired result for this key
409
On /v1/signup: an active key already exists for this email
422
Validation error — a field violates the constraints above