API
We maintain a catalog of 100+ European sovereign technology suppliers. For each one: the raw state of every datum and a sovereignty judgment computed from it. Consume it through one scoped API — instead of rebuilding the catalog yourself.
[value, state] pair.Adding an engine is one operation: we issue you an API key with a scope. No direct access to the database or the JSON — everyone reads through the API, on the same terms.
Yes — even if the engine you are building competes with our own configurator, you are welcome as a consumer of the catalog. The catalog is meant to be neutral infrastructure: we keep the facts and the judgment honest for every engine that reads them. Our edge is the engine we build on top, not gatekeeping the substrate.
Nothing is dressed up. Every datum carries how we know it: verified (independent proof) · documented (with a source) · declared (by the supplier, not verified) · web/extracted (found online, unconfirmed) · to-verify / not-declared. The SEAL is capped by the weakest state: a merely declared datum can never score like a verified one. No sovereignty-washing — when we don't know, we say so, and the API says so too.
Commercial terms (referral conditions, take-rate, attribution) live in a separate layer that is never present in any read scope, and the judgment is never computed from them. Money cannot bias what you read. A consumer with referral rails can request an attributed link and report a conversion — it can never see the terms.
Base URL https://api-catalogo.sovrafit.eu · authenticate with the bearer key we issue you. Your key
carries a scope; the response adapts to it.
| Scope | Returns | For |
|---|---|---|
| facts | identity + merged facts + annotations + validata_da_fornitore | an engine that judges on its own |
| facts+judgment | the above + the Sovrafit SEAL giudizio | engines that buy the judgment |
| +rails | enables attributed referral links — not the commercial terms | monetizing through the rails |
Endpoints
GET /v1/catalog — list suppliers (id + name) visible to your scope.GET /v1/catalog/{supplier_id} — one supplier: facts, annotations, and the judgment if your scope includes it.# one supplier, with the judgment (scope facts+judgment) curl -H "Authorization: Bearer <your-key>" \ https://api-catalogo.sovrafit.eu/v1/catalog/{supplier_id} # response (shape — illustrative values) { "schema_version": "1.0", "as_of": "2026-06-10", "supplier": { "id": "example-supplier", "nome": "Example Supplier", "paese": "IT" }, "fatti": { "giurisdizione_societaria": { "v": "ue", "stato": "documentato" }, "residenza_dati": { "v": "ue_piena", "stato": "dichiarato" }, "dipendenze_tecnologiche": { "v": "presenti_eliminabili", "stato": "documentato" } }, "annotazioni": [], "validata_da_fornitore": false, "giudizio": { "di": "sovrafit", "politica_tetti": "v2", "seal": { "giurisdizione_societaria": 3, "residenza_dati": 2, "dipendenze_tecnologiche": 2, "aggregato": 2 } } }
With facts the giudizio is omitted — you bring your own
confidence policy over the raw states. The commercial layer never appears, in any scope.
Tell us what you're building and which scope you need. Keys are issued by hand — we'd rather talk first.
Tell us what you're building →