{"openapi":"3.1.0","info":{"title":"Novarithm Agent Services","version":"2026-10-24"},"servers":[{"url":"https://gogeta2-u35175.vm.elestio.app/agents"}],"paths":{"/v1/site/audit-quick":{"get":{"operationId":"site_audit_quick","summary":"Bierus Site Audit Quick","description":"Quick Bierus website audit (5 pages, no Lighthouse): ~25 checks, each ok/ko/not_measured with sources and two-source corroboration. Async: returns job_id + free result_url (about 1-2 min).","parameters":[{"name":"url","in":"query","required":true,"schema":{"type":"string","description":"Public website URL or domain, e.g. https://www.example.com"},"example":"https://www.novarithm.com"},{"name":"name","in":"query","required":false,"schema":{"type":"string","description":"Business name as it should appear (default: from the domain)"},"example":"Novarithm"},{"name":"sector","in":"query","required":false,"schema":{"type":"string","description":"Business sector, e.g. 'dentist', 'perfume e-shop'"},"example":"AI agency"}],"x-payment-info":{"protocol":"x402","version":2,"network":"eip155:8453","payTo":"0xe414aD5c7542CE63D890526f0e2133ff8da6F22D","price":"$5","currency":"USDC"},"responses":{"200":{"description":"Successful result after verified payment. Scores are indicative, not certifications.","content":{"application/json":{"schema":{"type":"object","required":["service","data"],"properties":{"service":{"const":"site_audit_quick"},"data":{"type":"object"}}},"example":{"service":"site_audit_quick","data":{"job_id":"qUkSg5chGXoZ89y6F6WwsSot","status":"done","kind":"quick","result_url":"https://gogeta2-u35175.vm.elestio.app/agents/v1/jobs/site-audit/qUkSg5chGXoZ89y6F6WwsSot","created_at":"2026-10-25T00:10:22Z","results_kept_days":7,"input":{"url":"https://www.novarithm.com","name":"Novarithm","sector":"agence IA"},"finished_at":"2026-10-25T00:11:19Z","duration_s":57.1,"result":{"url":"https://www.novarithm.com/","name":"Novarithm","sector":"agence IA","mode":"quick","measured_at":"2026-10-25 02:10:22 CEST","finished_at":"2026-10-25 02:11:19 CEST","engine_version":"controles-1.0.0","pages_sampled":4,"pages_rendered":3,"sitemap_urls":12,"summary":{"ok":17,"ko":4,"not_measured":4,"total":25},"verdict":{"zero_defect_allowed":false,"major_ko":["404.statut_http","404.noindex_html_brut"],"major_not_measured":["mobile.lcp_accueil","mobile.lcp_page_profonde","ia.reponses_moteurs"],"publishable_findings":["identite.adresse_registre","404.statut_http","contact.formulaire"],"to_verify":["404.noindex_html_brut"],"gates_not_run":[]},"gates":{"identity":{"run":true,"ko":["identite.adresse_registre"],"not_measured":[]},"indexing":{"run":true,"ko":[],"not_measured":[]},"titles_meta":{"run":true,"ko":[],"not_measured":[]},"structured_data":{"run":true,"ko":[],"not_measured":[]},"mobile_speed":{"run":false,"ko":[],"not_measured":["mobile.lcp_accueil","mobile.lcp_page_profonde"]},"real_404":{"run":true,"ko":["404.statut_http","404.noindex_html_brut"],"not_measured":[]},"contact_forms_booking":{"run":true,"ko":["contact.formulaire"],"not_measured":[]},"local_presence":{"run":true,"ko":[],"not_measured":["local.fiche_google"]},"ai_visibility":{"run":true,"ko":[],"not_measured":["ia.reponses_moteurs"]},"contact":{"run":true,"ko":[],"not_measured":[]}},"checks":[{"id":"identite.nom_declare","gate":"identity","label_fr":"Le nom de l'entreprise est déclaré de façon cohérente","importance":"major","state":"ok","corroborated":true,"finding_fr":"Le site déclare clairement son nom","measure":{"concordent":["jsonld","title","og_site_name"]},"sources":[{"type":"html_brut","url":"https://www.novarithm.com/"}]},{"id":"identite.siren_publie","gate":"identity","label_fr":"Mentions légales avec SIREN vérifiable au registre","importance":"major","state":"ok","corroborated":true,"finding_fr":"Société identifiable au registre","measure":{"siren":["831841077"],"registre":{"siren":"831841077","nom":"[NON-DIFFUSIBLE]","etat":"A","adresse":"[NON-DIFFUSIBLE]","cp":"[NON-DIFFUSIBLE]","naf":"47.91B","creation":"2017-09-05"}},"sources":[{"type":"html_brut","url":"https://www.novarithm.com/mentions-legales"},{"type":"navigateur","url":"https://www.novarithm.com/mentions-legales"},{"type":"registre_public","url":"https://recherche-entreprises.api.gouv.fr/"}]},{"id":"identite.adresse_registre","gate":"identity","label_fr":"L'adresse déclarée correspond au siège au registre","importance":"normal","state":"ko","corroborated":true,"finding_fr":"L'adresse publiée diffère du siège enregistré","measure":{"cp_site":"91940","cp_registre":"[NON-DIFFUSIBLE]"},"sources":[{"type":"jsonld","url":"https://www.novarithm.com/"},{"type":"registre_public"}]},{"id":"indexation.robots_txt","gate":"indexing","label_fr":"robots.txt n'interdit pas le site","importance":"major","state":"ok","corroborated":true,"finding_fr":"Le site est ouvert aux moteurs","measure":{},"sources":[{"type":"http_brut","url":"https://www.novarithm.com/robots.txt"}]},{"id":"indexation.sitemap","gate":"indexing","label_fr":"Plan du site (sitemap) disponible","importance":"normal","state":"ok","corroborated":true,"finding_fr":"Plan du site : 12 adresses","measure":{"n_urls":12},"sources":[{"type":"http_brut"}]},{"id":"indexation.pages_indexables","gate":"indexing","label_fr":"Les pages de l'échantillon sont indexables","importance":"major","state":"ok","corroborated":true,"finding_fr":"4/4 pages indexables","measure":{"n_pages":4,"problemes":[]},"sources":[{"type":"http_brut"},{"type":"navigateur"}]}],"vm_load":{"at_start":0.13,"at_end":0.22,"cpus":2,"rule":"Lighthouse figures measured above 1.5 x CPU load are discarded by Bierus and reported as not_measured"},"rules":["not_measured is never counted as ok","a ko seen by only one source is flagged to_verify","public GET requests only: no form submitted, no click, no login, no paid AI call"],"language_note":"labels and findings are in French (Bierus engine); ids, gates and states are stable English keys"}}}}}},"400":{"description":"Invalid request; no settlement"},"402":{"description":"Payment required; same x402 v2 offer in JSON body and PAYMENT-REQUIRED header","content":{"application/json":{"schema":{"type":"object","required":["x402Version","accepts"],"properties":{"x402Version":{"const":2},"accepts":{"type":"array","items":{"type":"object"}}}}}}},"502":{"description":"Upstream unavailable; no settlement"}}},"post":{"operationId":"site_audit_quick_post","summary":"Bierus Site Audit Quick","description":"Quick Bierus website audit (5 pages, no Lighthouse): ~25 checks, each ok/ko/not_measured with sources and two-source corroboration. Async: returns job_id + free result_url (about 1-2 min). Also accepts POST with the same parameters as a JSON body.","x-payment-info":{"protocol":"x402","version":2,"network":"eip155:8453","payTo":"0xe414aD5c7542CE63D890526f0e2133ff8da6F22D","price":"$5","currency":"USDC"},"responses":{"200":{"description":"Successful result after verified payment. Scores are indicative, not certifications.","content":{"application/json":{"schema":{"type":"object","required":["service","data"],"properties":{"service":{"const":"site_audit_quick"},"data":{"type":"object"}}},"example":{"service":"site_audit_quick","data":{"job_id":"qUkSg5chGXoZ89y6F6WwsSot","status":"done","kind":"quick","result_url":"https://gogeta2-u35175.vm.elestio.app/agents/v1/jobs/site-audit/qUkSg5chGXoZ89y6F6WwsSot","created_at":"2026-10-25T00:10:22Z","results_kept_days":7,"input":{"url":"https://www.novarithm.com","name":"Novarithm","sector":"agence IA"},"finished_at":"2026-10-25T00:11:19Z","duration_s":57.1,"result":{"url":"https://www.novarithm.com/","name":"Novarithm","sector":"agence IA","mode":"quick","measured_at":"2026-10-25 02:10:22 CEST","finished_at":"2026-10-25 02:11:19 CEST","engine_version":"controles-1.0.0","pages_sampled":4,"pages_rendered":3,"sitemap_urls":12,"summary":{"ok":17,"ko":4,"not_measured":4,"total":25},"verdict":{"zero_defect_allowed":false,"major_ko":["404.statut_http","404.noindex_html_brut"],"major_not_measured":["mobile.lcp_accueil","mobile.lcp_page_profonde","ia.reponses_moteurs"],"publishable_findings":["identite.adresse_registre","404.statut_http","contact.formulaire"],"to_verify":["404.noindex_html_brut"],"gates_not_run":[]},"gates":{"identity":{"run":true,"ko":["identite.adresse_registre"],"not_measured":[]},"indexing":{"run":true,"ko":[],"not_measured":[]},"titles_meta":{"run":true,"ko":[],"not_measured":[]},"structured_data":{"run":true,"ko":[],"not_measured":[]},"mobile_speed":{"run":false,"ko":[],"not_measured":["mobile.lcp_accueil","mobile.lcp_page_profonde"]},"real_404":{"run":true,"ko":["404.statut_http","404.noindex_html_brut"],"not_measured":[]},"contact_forms_booking":{"run":true,"ko":["contact.formulaire"],"not_measured":[]},"local_presence":{"run":true,"ko":[],"not_measured":["local.fiche_google"]},"ai_visibility":{"run":true,"ko":[],"not_measured":["ia.reponses_moteurs"]},"contact":{"run":true,"ko":[],"not_measured":[]}},"checks":[{"id":"identite.nom_declare","gate":"identity","label_fr":"Le nom de l'entreprise est déclaré de façon cohérente","importance":"major","state":"ok","corroborated":true,"finding_fr":"Le site déclare clairement son nom","measure":{"concordent":["jsonld","title","og_site_name"]},"sources":[{"type":"html_brut","url":"https://www.novarithm.com/"}]},{"id":"identite.siren_publie","gate":"identity","label_fr":"Mentions légales avec SIREN vérifiable au registre","importance":"major","state":"ok","corroborated":true,"finding_fr":"Société identifiable au registre","measure":{"siren":["831841077"],"registre":{"siren":"831841077","nom":"[NON-DIFFUSIBLE]","etat":"A","adresse":"[NON-DIFFUSIBLE]","cp":"[NON-DIFFUSIBLE]","naf":"47.91B","creation":"2017-09-05"}},"sources":[{"type":"html_brut","url":"https://www.novarithm.com/mentions-legales"},{"type":"navigateur","url":"https://www.novarithm.com/mentions-legales"},{"type":"registre_public","url":"https://recherche-entreprises.api.gouv.fr/"}]},{"id":"identite.adresse_registre","gate":"identity","label_fr":"L'adresse déclarée correspond au siège au registre","importance":"normal","state":"ko","corroborated":true,"finding_fr":"L'adresse publiée diffère du siège enregistré","measure":{"cp_site":"91940","cp_registre":"[NON-DIFFUSIBLE]"},"sources":[{"type":"jsonld","url":"https://www.novarithm.com/"},{"type":"registre_public"}]},{"id":"indexation.robots_txt","gate":"indexing","label_fr":"robots.txt n'interdit pas le site","importance":"major","state":"ok","corroborated":true,"finding_fr":"Le site est ouvert aux moteurs","measure":{},"sources":[{"type":"http_brut","url":"https://www.novarithm.com/robots.txt"}]},{"id":"indexation.sitemap","gate":"indexing","label_fr":"Plan du site (sitemap) disponible","importance":"normal","state":"ok","corroborated":true,"finding_fr":"Plan du site : 12 adresses","measure":{"n_urls":12},"sources":[{"type":"http_brut"}]},{"id":"indexation.pages_indexables","gate":"indexing","label_fr":"Les pages de l'échantillon sont indexables","importance":"major","state":"ok","corroborated":true,"finding_fr":"4/4 pages indexables","measure":{"n_pages":4,"problemes":[]},"sources":[{"type":"http_brut"},{"type":"navigateur"}]}],"vm_load":{"at_start":0.13,"at_end":0.22,"cpus":2,"rule":"Lighthouse figures measured above 1.5 x CPU load are discarded by Bierus and reported as not_measured"},"rules":["not_measured is never counted as ok","a ko seen by only one source is flagged to_verify","public GET requests only: no form submitted, no click, no login, no paid AI call"],"language_note":"labels and findings are in French (Bierus engine); ids, gates and states are stable English keys"}}}}}},"400":{"description":"Invalid request; no settlement"},"402":{"description":"Payment required; same x402 v2 offer in JSON body and PAYMENT-REQUIRED header","content":{"application/json":{"schema":{"type":"object","required":["x402Version","accepts"],"properties":{"x402Version":{"const":2},"accepts":{"type":"array","items":{"type":"object"}}}}}}},"502":{"description":"Upstream unavailable; no settlement"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","description":"Public website URL or domain, e.g. https://www.example.com"},"name":{"type":"string","description":"Business name as it should appear (default: from the domain)"},"sector":{"type":"string","description":"Business sector, e.g. 'dentist', 'perfume e-shop'"}},"required":["url"]},"example":{"url":"https://www.novarithm.com","name":"Novarithm","sector":"AI agency"}}}}}},"/v1/site/audit-full":{"get":{"operationId":"site_audit_full","summary":"Bierus Site Audit Full","description":"Full Bierus website audit: 20 pages, Lighthouse mobile speed, ~25 checks ok/ko/not_measured with sources, plus registry comparison with the previous full run (observed / fixed / possible regression). Async: job_id + free result_url (about 2-4 min).","parameters":[{"name":"url","in":"query","required":true,"schema":{"type":"string","description":"Public website URL or domain, e.g. https://www.example.com"},"example":"https://www.manimini.com"},{"name":"name","in":"query","required":false,"schema":{"type":"string","description":"Business name (default: from the domain)"},"example":"Manimini"},{"name":"sector","in":"query","required":false,"schema":{"type":"string","description":"Business sector"},"example":"perfume wholesale"}],"x-payment-info":{"protocol":"x402","version":2,"network":"eip155:8453","payTo":"0xe414aD5c7542CE63D890526f0e2133ff8da6F22D","price":"$25","currency":"USDC"},"responses":{"200":{"description":"Successful result after verified payment. Scores are indicative, not certifications.","content":{"application/json":{"schema":{"type":"object","required":["service","data"],"properties":{"service":{"const":"site_audit_full"},"data":{"type":"object"}}},"example":{"service":"site_audit_full","data":{"job_id":"PsDE7Jm_k9xcP7HczzQVWISE","status":"done","kind":"full","result_url":"https://gogeta2-u35175.vm.elestio.app/agents/v1/jobs/site-audit/PsDE7Jm_k9xcP7HczzQVWISE","created_at":"2026-10-25T00:10:30Z","results_kept_days":7,"input":{"url":"https://www.manimini.com","name":"Manimini","sector":"parfum en gros"},"finished_at":"2026-10-25T00:13:33Z","duration_s":133.2,"result":{"url":"https://www.manimini.com/","name":"Manimini","sector":"parfum en gros","mode":"full","measured_at":"2026-10-25 02:11:20 CEST","finished_at":"2026-10-25 02:13:32 CEST","engine_version":"controles-1.0.0","pages_sampled":21,"pages_rendered":7,"sitemap_urls":5124,"summary":{"ok":12,"ko":10,"not_measured":4,"total":26},"verdict":{"zero_defect_allowed":false,"major_ko":["indexation.contenu_html_brut","mobile.lcp_accueil","mobile.lcp_page_profonde","404.statut_http","404.noindex_html_brut","contact.adresse_marque"],"major_not_measured":["identite.siren_publie","ia.reponses_moteurs"],"publishable_findings":["indexation.contenu_html_brut","seo.descriptions","404.statut_http","404.noindex_html_brut","local.telephone","contact.adresse_marque"],"to_verify":["mobile.lcp_accueil","mobile.lcp_page_profonde","contact.formulaire"],"gates_not_run":[]},"gates":{"identity":{"run":true,"ko":[],"not_measured":["identite.siren_publie","identite.adresse_registre"]},"indexing":{"run":true,"ko":["indexation.contenu_html_brut"],"not_measured":[]},"titles_meta":{"run":true,"ko":["seo.descriptions"],"not_measured":[]},"structured_data":{"run":true,"ko":[],"not_measured":[]},"mobile_speed":{"run":true,"ko":["mobile.lcp_accueil","mobile.lcp_page_profonde"],"not_measured":[]},"real_404":{"run":true,"ko":["404.statut_http","404.noindex_html_brut"],"not_measured":[]},"contact_forms_booking":{"run":true,"ko":["contact.formulaire","contact.rdv_en_ligne"],"not_measured":[]},"local_presence":{"run":true,"ko":["local.telephone"],"not_measured":["local.fiche_google"]},"ai_visibility":{"run":true,"ko":[],"not_measured":["ia.reponses_moteurs"]},"contact":{"run":true,"ko":["contact.adresse_marque"],"not_measured":[]}},"checks":[{"id":"identite.nom_declare","gate":"identity","label_fr":"Le nom de l'entreprise est déclaré de façon cohérente","importance":"major","state":"ok","corroborated":true,"finding_fr":"Le site déclare clairement son nom","measure":{"concordent":["jsonld","title","og_site_name"]},"sources":[{"type":"html_brut","url":"https://www.manimini.com/"}],"registry_status":null},{"id":"identite.siren_publie","gate":"identity","label_fr":"Mentions légales avec SIREN vérifiable au registre","importance":"major","state":"not_measured","corroborated":false,"finding_fr":"Mentions légales non trouvées automatiquement","measure":{},"sources":[{"type":"sitemap","url":"https://www.manimini.com/","note":"aucune page de mentions légales trouvée dans l'échantillon"}],"registry_status":"not_tested"},{"id":"identite.adresse_registre","gate":"identity","label_fr":"L'adresse déclarée correspond au siège au registre","importance":"normal","state":"not_measured","corroborated":false,"finding_fr":"Comparaison d'adresse impossible","measure":{},"sources":[{"type":"jsonld","url":"https://www.manimini.com/"},{"type":"registre_public"}],"registry_status":"not_tested"},{"id":"indexation.robots_txt","gate":"indexing","label_fr":"robots.txt n'interdit pas le site","importance":"major","state":"ok","corroborated":true,"finding_fr":"Le site est ouvert aux moteurs","measure":{},"sources":[{"type":"http_brut","url":"https://www.manimini.com/robots.txt"}],"registry_status":null},{"id":"indexation.sitemap","gate":"indexing","label_fr":"Plan du site (sitemap) disponible","importance":"normal","state":"ok","corroborated":true,"finding_fr":"Plan du site : 5124 adresses","measure":{"n_urls":5124},"sources":[{"type":"http_brut"}],"registry_status":null},{"id":"indexation.pages_indexables","gate":"indexing","label_fr":"Les pages de l'échantillon sont indexables","importance":"major","state":"ok","corroborated":true,"finding_fr":"21/21 pages indexables","measure":{"n_pages":21,"problemes":[]},"sources":[{"type":"http_brut"},{"type":"navigateur"}],"registry_status":null}],"vm_load":{"at_start":0.22,"at_end":1.26,"cpus":2,"rule":"Lighthouse figures measured above 1.5 x CPU load are discarded by Bierus and reported as not_measured"},"rules":["not_measured is never counted as ok","a ko seen by only one source is flagged to_verify","public GET requests only: no form submitted, no click, no login, no paid AI call"],"language_note":"labels and findings are in French (Bierus engine); ids, gates and states are stable English keys","registry":{"run_id":"manimini.com-20261025T0211","previous_run":null,"tracked_findings":[{"id":"identite.siren_publie","status":"not_tested"},{"id":"identite.adresse_registre","status":"not_tested"},{"id":"indexation.contenu_html_brut","status":"observed"},{"id":"seo.descriptions","status":"observed"},{"id":"mobile.lcp_accueil","status":"observed"},{"id":"mobile.lcp_page_profonde","status":"observed"}]}}}}}}},"400":{"description":"Invalid request; no settlement"},"402":{"description":"Payment required; same x402 v2 offer in JSON body and PAYMENT-REQUIRED header","content":{"application/json":{"schema":{"type":"object","required":["x402Version","accepts"],"properties":{"x402Version":{"const":2},"accepts":{"type":"array","items":{"type":"object"}}}}}}},"502":{"description":"Upstream unavailable; no settlement"}}},"post":{"operationId":"site_audit_full_post","summary":"Bierus Site Audit Full","description":"Full Bierus website audit: 20 pages, Lighthouse mobile speed, ~25 checks ok/ko/not_measured with sources, plus registry comparison with the previous full run (observed / fixed / possible regression). Async: job_id + free result_url (about 2-4 min). Also accepts POST with the same parameters as a JSON body.","x-payment-info":{"protocol":"x402","version":2,"network":"eip155:8453","payTo":"0xe414aD5c7542CE63D890526f0e2133ff8da6F22D","price":"$25","currency":"USDC"},"responses":{"200":{"description":"Successful result after verified payment. Scores are indicative, not certifications.","content":{"application/json":{"schema":{"type":"object","required":["service","data"],"properties":{"service":{"const":"site_audit_full"},"data":{"type":"object"}}},"example":{"service":"site_audit_full","data":{"job_id":"PsDE7Jm_k9xcP7HczzQVWISE","status":"done","kind":"full","result_url":"https://gogeta2-u35175.vm.elestio.app/agents/v1/jobs/site-audit/PsDE7Jm_k9xcP7HczzQVWISE","created_at":"2026-10-25T00:10:30Z","results_kept_days":7,"input":{"url":"https://www.manimini.com","name":"Manimini","sector":"parfum en gros"},"finished_at":"2026-10-25T00:13:33Z","duration_s":133.2,"result":{"url":"https://www.manimini.com/","name":"Manimini","sector":"parfum en gros","mode":"full","measured_at":"2026-10-25 02:11:20 CEST","finished_at":"2026-10-25 02:13:32 CEST","engine_version":"controles-1.0.0","pages_sampled":21,"pages_rendered":7,"sitemap_urls":5124,"summary":{"ok":12,"ko":10,"not_measured":4,"total":26},"verdict":{"zero_defect_allowed":false,"major_ko":["indexation.contenu_html_brut","mobile.lcp_accueil","mobile.lcp_page_profonde","404.statut_http","404.noindex_html_brut","contact.adresse_marque"],"major_not_measured":["identite.siren_publie","ia.reponses_moteurs"],"publishable_findings":["indexation.contenu_html_brut","seo.descriptions","404.statut_http","404.noindex_html_brut","local.telephone","contact.adresse_marque"],"to_verify":["mobile.lcp_accueil","mobile.lcp_page_profonde","contact.formulaire"],"gates_not_run":[]},"gates":{"identity":{"run":true,"ko":[],"not_measured":["identite.siren_publie","identite.adresse_registre"]},"indexing":{"run":true,"ko":["indexation.contenu_html_brut"],"not_measured":[]},"titles_meta":{"run":true,"ko":["seo.descriptions"],"not_measured":[]},"structured_data":{"run":true,"ko":[],"not_measured":[]},"mobile_speed":{"run":true,"ko":["mobile.lcp_accueil","mobile.lcp_page_profonde"],"not_measured":[]},"real_404":{"run":true,"ko":["404.statut_http","404.noindex_html_brut"],"not_measured":[]},"contact_forms_booking":{"run":true,"ko":["contact.formulaire","contact.rdv_en_ligne"],"not_measured":[]},"local_presence":{"run":true,"ko":["local.telephone"],"not_measured":["local.fiche_google"]},"ai_visibility":{"run":true,"ko":[],"not_measured":["ia.reponses_moteurs"]},"contact":{"run":true,"ko":["contact.adresse_marque"],"not_measured":[]}},"checks":[{"id":"identite.nom_declare","gate":"identity","label_fr":"Le nom de l'entreprise est déclaré de façon cohérente","importance":"major","state":"ok","corroborated":true,"finding_fr":"Le site déclare clairement son nom","measure":{"concordent":["jsonld","title","og_site_name"]},"sources":[{"type":"html_brut","url":"https://www.manimini.com/"}],"registry_status":null},{"id":"identite.siren_publie","gate":"identity","label_fr":"Mentions légales avec SIREN vérifiable au registre","importance":"major","state":"not_measured","corroborated":false,"finding_fr":"Mentions légales non trouvées automatiquement","measure":{},"sources":[{"type":"sitemap","url":"https://www.manimini.com/","note":"aucune page de mentions légales trouvée dans l'échantillon"}],"registry_status":"not_tested"},{"id":"identite.adresse_registre","gate":"identity","label_fr":"L'adresse déclarée correspond au siège au registre","importance":"normal","state":"not_measured","corroborated":false,"finding_fr":"Comparaison d'adresse impossible","measure":{},"sources":[{"type":"jsonld","url":"https://www.manimini.com/"},{"type":"registre_public"}],"registry_status":"not_tested"},{"id":"indexation.robots_txt","gate":"indexing","label_fr":"robots.txt n'interdit pas le site","importance":"major","state":"ok","corroborated":true,"finding_fr":"Le site est ouvert aux moteurs","measure":{},"sources":[{"type":"http_brut","url":"https://www.manimini.com/robots.txt"}],"registry_status":null},{"id":"indexation.sitemap","gate":"indexing","label_fr":"Plan du site (sitemap) disponible","importance":"normal","state":"ok","corroborated":true,"finding_fr":"Plan du site : 5124 adresses","measure":{"n_urls":5124},"sources":[{"type":"http_brut"}],"registry_status":null},{"id":"indexation.pages_indexables","gate":"indexing","label_fr":"Les pages de l'échantillon sont indexables","importance":"major","state":"ok","corroborated":true,"finding_fr":"21/21 pages indexables","measure":{"n_pages":21,"problemes":[]},"sources":[{"type":"http_brut"},{"type":"navigateur"}],"registry_status":null}],"vm_load":{"at_start":0.22,"at_end":1.26,"cpus":2,"rule":"Lighthouse figures measured above 1.5 x CPU load are discarded by Bierus and reported as not_measured"},"rules":["not_measured is never counted as ok","a ko seen by only one source is flagged to_verify","public GET requests only: no form submitted, no click, no login, no paid AI call"],"language_note":"labels and findings are in French (Bierus engine); ids, gates and states are stable English keys","registry":{"run_id":"manimini.com-20261025T0211","previous_run":null,"tracked_findings":[{"id":"identite.siren_publie","status":"not_tested"},{"id":"identite.adresse_registre","status":"not_tested"},{"id":"indexation.contenu_html_brut","status":"observed"},{"id":"seo.descriptions","status":"observed"},{"id":"mobile.lcp_accueil","status":"observed"},{"id":"mobile.lcp_page_profonde","status":"observed"}]}}}}}}},"400":{"description":"Invalid request; no settlement"},"402":{"description":"Payment required; same x402 v2 offer in JSON body and PAYMENT-REQUIRED header","content":{"application/json":{"schema":{"type":"object","required":["x402Version","accepts"],"properties":{"x402Version":{"const":2},"accepts":{"type":"array","items":{"type":"object"}}}}}}},"502":{"description":"Upstream unavailable; no settlement"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","description":"Public website URL or domain, e.g. https://www.example.com"},"name":{"type":"string","description":"Business name (default: from the domain)"},"sector":{"type":"string","description":"Business sector"}},"required":["url"]},"example":{"url":"https://www.manimini.com","name":"Manimini","sector":"perfume wholesale"}}}}}},"/v1/proof/website":{"get":{"operationId":"test_website","summary":"Deploy Proof: Website","description":"Signed passive website proof: page reachable, TLS certificate, http→https, response time, title, mixed content, real 404, internal links sample, optional expected text. ok/ko/not_measured + EIP-712 attestation.","parameters":[{"name":"url","in":"query","required":true,"schema":{"type":"string","description":"Public website URL or domain, e.g. https://www.example.com"},"example":"https://www.novarithm.com"},{"name":"expect_text","in":"query","required":false,"schema":{"type":"string","description":"Texts that must appear on the page, separated by |"},"example":"Novarithm"},{"name":"max_response_ms","in":"query","required":false,"schema":{"type":"integer","minimum":200,"maximum":20000,"default":3000,"description":"Maximum HTML response time"}}],"x-payment-info":{"protocol":"x402","version":2,"network":"eip155:8453","payTo":"0xe414aD5c7542CE63D890526f0e2133ff8da6F22D","price":"$5","currency":"USDC"},"responses":{"200":{"description":"Successful result after verified payment. Scores are indicative, not certifications.","content":{"application/json":{"schema":{"type":"object","required":["service","data"],"properties":{"service":{"const":"test_website"},"data":{"type":"object"}}},"example":{"service":"test_website","data":{"url":"https://www.novarithm.com","check_type":"test_website","verdict":"partial","summary":{"ok":8,"ko":1,"not_measured":0,"total":9},"major_ko":[],"not_measured":[],"checks":[{"id":"page_reachable","label":"Page reachable over HTTPS (HTTP status < 400)","state":"ok","importance":"major","detail":"HTTP 200","measure":{"http_status":200,"final_url":"https://www.novarithm.com"}},{"id":"tls_certificate","label":"TLS certificate valid for 14+ days","state":"ok","importance":"major","detail":"TLSv1.3 · expires 2027-01-06 (73 days) · Google Trust Services","measure":{"protocol":"TLSv1.3","expires":"2027-01-06","days_left":73,"issuer":"Google Trust Services"}},{"id":"http_redirects_to_https","label":"http:// redirects to https://","state":"ok","importance":"normal","detail":"HTTP 301 → https://www.novarithm.com/","measure":{"http_status":301}},{"id":"response_time","label":"HTML response time ≤ 3000 ms (server-side, from Novarithm's server)","state":"ok","importance":"normal","detail":"55 ms","measure":{"response_ms":55}},{"id":"page_title","label":"Page has a non-empty <title>","state":"ok","importance":"normal","detail":"Novarithm · Partenaire de croissance IA pour PME"},{"id":"no_mixed_content","label":"No http:// resources on the https page","state":"ok","importance":"normal","detail":"none","measure":{"insecure":[]}}],"conformance":{"verdict":"pass","score":92,"criteria_passed":9,"criteria_total":10,"hard_failed":[]},"attestation":{"status":"signed","standard":"EIP-712","signer":"0xD999A24d377086a2Fa887491f2986033Bfc3E26C","chain_id":8453,"digest":"0x3d38b07cec28c7b6fa31148288e680204ecb24df81345a34f2dcbf9a2809a656","signature":"0xf54bac82054751aa8a762ec98cbf03347e9b0134945477e4495bb505f2d0e23307ea36d9186554f28d8a119438d4d767a34c4b4659ecf150134b6150f6ea02141b","evaluated_at":1792887038,"job_id":"716542832945690224","payload":{"product":"novarithm-deploy-proof","kind":"test_website","url":"https://www.novarithm.com","measured_at":"2026-10-25T00:10:38Z","checks":{"page_reachable":"ok","tls_certificate":"ok","http_redirects_to_https":"ok","response_time":"ok","page_title":"ok","no_mixed_content":"ok","real_404":"ko","internal_links":"ok","expected_text":"ok"}},"payload_sha256":"9f1abe900147670fa231c6a5fb210c9cce1512053f074374cf375241ce7cdbbd","deliverable_hash_eip712":"keccak256 of the exact payload JSON (sorted keys, compact) is the signed deliverableHash","verify":"https://gogeta2-u35175.vm.elestio.app/agents/v1/escrow/verify?token=<token> (0.001 USDC) or recover the EIP-712 signer offline","scope":"This attestation covers only the listed passive measurements, taken at measured_at from Novarithm's server. It is not a security audit, penetration test, legal or compliance certification, and does not guarantee future behaviour."},"passive_only":true,"statement":"Attests what was measured, not that everything is correct. not_measured is never counted as ok.","generated_at":"2026-10-25T00:10:38Z"}}}}},"400":{"description":"Invalid request; no settlement"},"402":{"description":"Payment required; same x402 v2 offer in JSON body and PAYMENT-REQUIRED header","content":{"application/json":{"schema":{"type":"object","required":["x402Version","accepts"],"properties":{"x402Version":{"const":2},"accepts":{"type":"array","items":{"type":"object"}}}}}}},"502":{"description":"Upstream unavailable; no settlement"}}},"post":{"operationId":"test_website_post","summary":"Deploy Proof: Website","description":"Signed passive website proof: page reachable, TLS certificate, http→https, response time, title, mixed content, real 404, internal links sample, optional expected text. ok/ko/not_measured + EIP-712 attestation. Also accepts POST with the same parameters as a JSON body.","x-payment-info":{"protocol":"x402","version":2,"network":"eip155:8453","payTo":"0xe414aD5c7542CE63D890526f0e2133ff8da6F22D","price":"$5","currency":"USDC"},"responses":{"200":{"description":"Successful result after verified payment. Scores are indicative, not certifications.","content":{"application/json":{"schema":{"type":"object","required":["service","data"],"properties":{"service":{"const":"test_website"},"data":{"type":"object"}}},"example":{"service":"test_website","data":{"url":"https://www.novarithm.com","check_type":"test_website","verdict":"partial","summary":{"ok":8,"ko":1,"not_measured":0,"total":9},"major_ko":[],"not_measured":[],"checks":[{"id":"page_reachable","label":"Page reachable over HTTPS (HTTP status < 400)","state":"ok","importance":"major","detail":"HTTP 200","measure":{"http_status":200,"final_url":"https://www.novarithm.com"}},{"id":"tls_certificate","label":"TLS certificate valid for 14+ days","state":"ok","importance":"major","detail":"TLSv1.3 · expires 2027-01-06 (73 days) · Google Trust Services","measure":{"protocol":"TLSv1.3","expires":"2027-01-06","days_left":73,"issuer":"Google Trust Services"}},{"id":"http_redirects_to_https","label":"http:// redirects to https://","state":"ok","importance":"normal","detail":"HTTP 301 → https://www.novarithm.com/","measure":{"http_status":301}},{"id":"response_time","label":"HTML response time ≤ 3000 ms (server-side, from Novarithm's server)","state":"ok","importance":"normal","detail":"55 ms","measure":{"response_ms":55}},{"id":"page_title","label":"Page has a non-empty <title>","state":"ok","importance":"normal","detail":"Novarithm · Partenaire de croissance IA pour PME"},{"id":"no_mixed_content","label":"No http:// resources on the https page","state":"ok","importance":"normal","detail":"none","measure":{"insecure":[]}}],"conformance":{"verdict":"pass","score":92,"criteria_passed":9,"criteria_total":10,"hard_failed":[]},"attestation":{"status":"signed","standard":"EIP-712","signer":"0xD999A24d377086a2Fa887491f2986033Bfc3E26C","chain_id":8453,"digest":"0x3d38b07cec28c7b6fa31148288e680204ecb24df81345a34f2dcbf9a2809a656","signature":"0xf54bac82054751aa8a762ec98cbf03347e9b0134945477e4495bb505f2d0e23307ea36d9186554f28d8a119438d4d767a34c4b4659ecf150134b6150f6ea02141b","evaluated_at":1792887038,"job_id":"716542832945690224","payload":{"product":"novarithm-deploy-proof","kind":"test_website","url":"https://www.novarithm.com","measured_at":"2026-10-25T00:10:38Z","checks":{"page_reachable":"ok","tls_certificate":"ok","http_redirects_to_https":"ok","response_time":"ok","page_title":"ok","no_mixed_content":"ok","real_404":"ko","internal_links":"ok","expected_text":"ok"}},"payload_sha256":"9f1abe900147670fa231c6a5fb210c9cce1512053f074374cf375241ce7cdbbd","deliverable_hash_eip712":"keccak256 of the exact payload JSON (sorted keys, compact) is the signed deliverableHash","verify":"https://gogeta2-u35175.vm.elestio.app/agents/v1/escrow/verify?token=<token> (0.001 USDC) or recover the EIP-712 signer offline","scope":"This attestation covers only the listed passive measurements, taken at measured_at from Novarithm's server. It is not a security audit, penetration test, legal or compliance certification, and does not guarantee future behaviour."},"passive_only":true,"statement":"Attests what was measured, not that everything is correct. not_measured is never counted as ok.","generated_at":"2026-10-25T00:10:38Z"}}}}},"400":{"description":"Invalid request; no settlement"},"402":{"description":"Payment required; same x402 v2 offer in JSON body and PAYMENT-REQUIRED header","content":{"application/json":{"schema":{"type":"object","required":["x402Version","accepts"],"properties":{"x402Version":{"const":2},"accepts":{"type":"array","items":{"type":"object"}}}}}}},"502":{"description":"Upstream unavailable; no settlement"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","description":"Public website URL or domain, e.g. https://www.example.com"},"expect_text":{"type":"string","description":"Texts that must appear on the page, separated by |"},"max_response_ms":{"type":"integer","minimum":200,"maximum":20000,"default":3000,"description":"Maximum HTML response time"}},"required":["url"]},"example":{"url":"https://www.novarithm.com","expect_text":"Novarithm"}}}}}},"/v1/proof/seo":{"get":{"operationId":"test_seo","summary":"Deploy Proof: SEO","description":"Signed passive SEO proof: SEO module scores (technical, content, links, local, AI visibility), title/meta lengths, canonical, single h1, lang, JSON-LD, indexable, sitemap. ok/ko/not_measured + EIP-712 attestation.","parameters":[{"name":"url","in":"query","required":true,"schema":{"type":"string","description":"Public website URL or domain, e.g. https://www.example.com"},"example":"https://www.novarithm.com"}],"x-payment-info":{"protocol":"x402","version":2,"network":"eip155:8453","payTo":"0xe414aD5c7542CE63D890526f0e2133ff8da6F22D","price":"$5","currency":"USDC"},"responses":{"200":{"description":"Successful result after verified payment. Scores are indicative, not certifications.","content":{"application/json":{"schema":{"type":"object","required":["service","data"],"properties":{"service":{"const":"test_seo"},"data":{"type":"object"}}},"example":{"service":"test_seo","data":{"url":"https://www.novarithm.com","check_type":"test_seo","verdict":"partial","summary":{"ok":11,"ko":2,"not_measured":0,"total":13},"major_ko":[],"not_measured":[],"checks":[{"id":"seo_technical","label":"SEO module technical score ≥ 70","state":"ok","importance":"major","detail":"score 89 (A)","measure":{"score":89}},{"id":"seo_content","label":"SEO module content score ≥ 70","state":"ko","importance":"normal","detail":"score 69 (C)","measure":{"score":69}},{"id":"seo_internal_links","label":"SEO module internal_links score ≥ 70","state":"ok","importance":"normal","detail":"score 92 (A)","measure":{"score":92}},{"id":"seo_local","label":"SEO module local score ≥ 70","state":"ok","importance":"normal","detail":"score 72 (B)","measure":{"score":72}},{"id":"seo_ai_visibility","label":"SEO module ai_visibility score ≥ 70","state":"ok","importance":"normal","detail":"score 88 (A)","measure":{"score":88}},{"id":"title_length","label":"Title 10-65 characters","state":"ok","importance":"normal","detail":"48 chars"}],"conformance":{"verdict":"pass","score":88,"criteria_passed":12,"criteria_total":14,"hard_failed":[]},"attestation":{"status":"signed","standard":"EIP-712","signer":"0xD999A24d377086a2Fa887491f2986033Bfc3E26C","chain_id":8453,"digest":"0x9df1c0df81cbdc9dfcfa6beceea275c45685c0b9a622277981b79e2adbb3c5ea","signature":"0x5b07406e33bd77b7eb0b40b850f6a42731ffc1d87db21c72de08227d55603a8965360db703f232acf06eff0a9dcd19c44e038c8e4b72cb030ce7d4ad1bd81c931c","evaluated_at":1792887038,"job_id":"553155670547787198","payload":{"product":"novarithm-deploy-proof","kind":"test_seo","url":"https://www.novarithm.com","measured_at":"2026-10-25T00:10:38Z","checks":{"seo_technical":"ok","seo_content":"ko","seo_internal_links":"ok","seo_local":"ok","seo_ai_visibility":"ok","title_length":"ok","meta_description":"ko","canonical":"ok","h1":"ok","html_lang":"ok","json_ld":"ok","indexable":"ok","sitemap":"ok"}},"payload_sha256":"7ad3426d07e6dbe3b55a0851b9f3c23d019fb08ae875a02923c89a9de5b9cec9","deliverable_hash_eip712":"keccak256 of the exact payload JSON (sorted keys, compact) is the signed deliverableHash","verify":"https://gogeta2-u35175.vm.elestio.app/agents/v1/escrow/verify?token=<token> (0.001 USDC) or recover the EIP-712 signer offline","scope":"This attestation covers only the listed passive measurements, taken at measured_at from Novarithm's server. It is not a security audit, penetration test, legal or compliance certification, and does not guarantee future behaviour."},"passive_only":true,"statement":"Attests what was measured, not that everything is correct. not_measured is never counted as ok.","seo_score":84,"seo_grade":"B","priority_actions":[{"area":"content","impact":"high","fix":"Put the focus keyword « diagnostic gratuit » in the <title>."},{"area":"technical","impact":"medium","fix":"http:// redirects with a temporary 302: use a permanent 301 so ranking signals consolidate."},{"area":"technical","impact":"medium","fix":"6/11 images have no alt text: describe them (accessibility + image search)."},{"area":"technical","impact":"medium","fix":"Unknown URLs return HTTP 200 (soft 404): return a real 404 status."},{"area":"content","impact":"medium","fix":"Put « diagnostic gratuit » in the <h1>."},{"area":"content","impact":"medium","fix":"Use « diagnostic gratuit » in the meta description."}],"generated_at":"2026-10-25T00:10:38Z"}}}}},"400":{"description":"Invalid request; no settlement"},"402":{"description":"Payment required; same x402 v2 offer in JSON body and PAYMENT-REQUIRED header","content":{"application/json":{"schema":{"type":"object","required":["x402Version","accepts"],"properties":{"x402Version":{"const":2},"accepts":{"type":"array","items":{"type":"object"}}}}}}},"502":{"description":"Upstream unavailable; no settlement"}}},"post":{"operationId":"test_seo_post","summary":"Deploy Proof: SEO","description":"Signed passive SEO proof: SEO module scores (technical, content, links, local, AI visibility), title/meta lengths, canonical, single h1, lang, JSON-LD, indexable, sitemap. ok/ko/not_measured + EIP-712 attestation. Also accepts POST with the same parameters as a JSON body.","x-payment-info":{"protocol":"x402","version":2,"network":"eip155:8453","payTo":"0xe414aD5c7542CE63D890526f0e2133ff8da6F22D","price":"$5","currency":"USDC"},"responses":{"200":{"description":"Successful result after verified payment. Scores are indicative, not certifications.","content":{"application/json":{"schema":{"type":"object","required":["service","data"],"properties":{"service":{"const":"test_seo"},"data":{"type":"object"}}},"example":{"service":"test_seo","data":{"url":"https://www.novarithm.com","check_type":"test_seo","verdict":"partial","summary":{"ok":11,"ko":2,"not_measured":0,"total":13},"major_ko":[],"not_measured":[],"checks":[{"id":"seo_technical","label":"SEO module technical score ≥ 70","state":"ok","importance":"major","detail":"score 89 (A)","measure":{"score":89}},{"id":"seo_content","label":"SEO module content score ≥ 70","state":"ko","importance":"normal","detail":"score 69 (C)","measure":{"score":69}},{"id":"seo_internal_links","label":"SEO module internal_links score ≥ 70","state":"ok","importance":"normal","detail":"score 92 (A)","measure":{"score":92}},{"id":"seo_local","label":"SEO module local score ≥ 70","state":"ok","importance":"normal","detail":"score 72 (B)","measure":{"score":72}},{"id":"seo_ai_visibility","label":"SEO module ai_visibility score ≥ 70","state":"ok","importance":"normal","detail":"score 88 (A)","measure":{"score":88}},{"id":"title_length","label":"Title 10-65 characters","state":"ok","importance":"normal","detail":"48 chars"}],"conformance":{"verdict":"pass","score":88,"criteria_passed":12,"criteria_total":14,"hard_failed":[]},"attestation":{"status":"signed","standard":"EIP-712","signer":"0xD999A24d377086a2Fa887491f2986033Bfc3E26C","chain_id":8453,"digest":"0x9df1c0df81cbdc9dfcfa6beceea275c45685c0b9a622277981b79e2adbb3c5ea","signature":"0x5b07406e33bd77b7eb0b40b850f6a42731ffc1d87db21c72de08227d55603a8965360db703f232acf06eff0a9dcd19c44e038c8e4b72cb030ce7d4ad1bd81c931c","evaluated_at":1792887038,"job_id":"553155670547787198","payload":{"product":"novarithm-deploy-proof","kind":"test_seo","url":"https://www.novarithm.com","measured_at":"2026-10-25T00:10:38Z","checks":{"seo_technical":"ok","seo_content":"ko","seo_internal_links":"ok","seo_local":"ok","seo_ai_visibility":"ok","title_length":"ok","meta_description":"ko","canonical":"ok","h1":"ok","html_lang":"ok","json_ld":"ok","indexable":"ok","sitemap":"ok"}},"payload_sha256":"7ad3426d07e6dbe3b55a0851b9f3c23d019fb08ae875a02923c89a9de5b9cec9","deliverable_hash_eip712":"keccak256 of the exact payload JSON (sorted keys, compact) is the signed deliverableHash","verify":"https://gogeta2-u35175.vm.elestio.app/agents/v1/escrow/verify?token=<token> (0.001 USDC) or recover the EIP-712 signer offline","scope":"This attestation covers only the listed passive measurements, taken at measured_at from Novarithm's server. It is not a security audit, penetration test, legal or compliance certification, and does not guarantee future behaviour."},"passive_only":true,"statement":"Attests what was measured, not that everything is correct. not_measured is never counted as ok.","seo_score":84,"seo_grade":"B","priority_actions":[{"area":"content","impact":"high","fix":"Put the focus keyword « diagnostic gratuit » in the <title>."},{"area":"technical","impact":"medium","fix":"http:// redirects with a temporary 302: use a permanent 301 so ranking signals consolidate."},{"area":"technical","impact":"medium","fix":"6/11 images have no alt text: describe them (accessibility + image search)."},{"area":"technical","impact":"medium","fix":"Unknown URLs return HTTP 200 (soft 404): return a real 404 status."},{"area":"content","impact":"medium","fix":"Put « diagnostic gratuit » in the <h1>."},{"area":"content","impact":"medium","fix":"Use « diagnostic gratuit » in the meta description."}],"generated_at":"2026-10-25T00:10:38Z"}}}}},"400":{"description":"Invalid request; no settlement"},"402":{"description":"Payment required; same x402 v2 offer in JSON body and PAYMENT-REQUIRED header","content":{"application/json":{"schema":{"type":"object","required":["x402Version","accepts"],"properties":{"x402Version":{"const":2},"accepts":{"type":"array","items":{"type":"object"}}}}}}},"502":{"description":"Upstream unavailable; no settlement"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","description":"Public website URL or domain, e.g. https://www.example.com"}},"required":["url"]},"example":{"url":"https://www.novarithm.com"}}}}}},"/v1/proof/security-basics":{"get":{"operationId":"test_security_basics","summary":"Deploy Proof: Security Basics","description":"Signed PASSIVE security basics: TLS 1.2+, certificate expiry, HSTS, CSP, framing, nosniff, referrer policy, version disclosure, cookie flags, known-vulnerable JS versions in script URLs, mixed content, SPF/DMARC, security.txt. No scanning.","parameters":[{"name":"url","in":"query","required":true,"schema":{"type":"string","description":"Public website URL or domain, e.g. https://www.example.com"},"example":"https://www.novarithm.com"}],"x-payment-info":{"protocol":"x402","version":2,"network":"eip155:8453","payTo":"0xe414aD5c7542CE63D890526f0e2133ff8da6F22D","price":"$5","currency":"USDC"},"responses":{"200":{"description":"Successful result after verified payment. Scores are indicative, not certifications.","content":{"application/json":{"schema":{"type":"object","required":["service","data"],"properties":{"service":{"const":"test_security_basics"},"data":{"type":"object"}}},"example":{"service":"test_security_basics","data":{"url":"https://www.novarithm.com","check_type":"test_security_basics","verdict":"partial","summary":{"ok":9,"ko":4,"not_measured":0,"total":13},"major_ko":[],"not_measured":[],"checks":[{"id":"tls","label":"TLS 1.2+ with a valid certificate (14+ days)","state":"ok","importance":"major","detail":"TLSv1.3 · 73 days left","measure":{"protocol":"TLSv1.3","days_left":73,"issuer":"Google Trust Services"}},{"id":"hsts","label":"HSTS with max-age ≥ 180 days","state":"ok","importance":"major","detail":"max-age=31536000; includeSubDomains"},{"id":"csp","label":"Content-Security-Policy header present","state":"ko","importance":"normal","detail":"absent"},{"id":"clickjacking","label":"Framing restricted (X-Frame-Options or CSP frame-ancestors)","state":"ko","importance":"normal","detail":"absent"},{"id":"nosniff","label":"X-Content-Type-Options: nosniff","state":"ok","importance":"normal"},{"id":"referrer_policy","label":"Referrer-Policy header present","state":"ok","importance":"normal","detail":"strict-origin-when-cross-origin"}],"conformance":{"verdict":"partial","score":75,"criteria_passed":10,"criteria_total":14,"hard_failed":[]},"attestation":{"status":"signed","standard":"EIP-712","signer":"0xD999A24d377086a2Fa887491f2986033Bfc3E26C","chain_id":8453,"digest":"0x80c4b891f0c26d143740c5cec8b9e60b1e557362e4c4591bcde1f509e170ac6a","signature":"0xe1832d16b75c08f742cb9c7423936b56dfa75aa8cd7044e8b2b4365edcdc2d5f5959989d27d64ce0097f4e8a02fdcaff40538c61cb2d33f84e613bcd2244975b1b","evaluated_at":1792887039,"job_id":"1009231339127608409","payload":{"product":"novarithm-deploy-proof","kind":"test_security_basics","url":"https://www.novarithm.com","measured_at":"2026-10-25T00:10:39Z","checks":{"tls":"ok","hsts":"ok","csp":"ko","clickjacking":"ko","nosniff":"ok","referrer_policy":"ok","version_disclosure":"ok","cookies_flags":"ok","outdated_js_libraries":"ok","no_mixed_content":"ok","spf":"ok","dmarc_enforced":"ko","security_txt":"ko"}},"payload_sha256":"e01828e48e49459460f44983cc17bb9683c108c23dd19e53900e61357ed544fc","deliverable_hash_eip712":"keccak256 of the exact payload JSON (sorted keys, compact) is the signed deliverableHash","verify":"https://gogeta2-u35175.vm.elestio.app/agents/v1/escrow/verify?token=<token> (0.001 USDC) or recover the EIP-712 signer offline","scope":"This attestation covers only the listed passive measurements, taken at measured_at from Novarithm's server. It is not a security audit, penetration test, legal or compliance certification, and does not guarantee future behaviour."},"passive_only":true,"statement":"Attests what was measured, not that everything is correct. not_measured is never counted as ok.","method":"passive: one HTTPS GET of the page, TLS handshake, public DNS (SPF/DMARC), security.txt. No scanning, no exploit, no hidden-file probing.","generated_at":"2026-10-25T00:10:39Z"}}}}},"400":{"description":"Invalid request; no settlement"},"402":{"description":"Payment required; same x402 v2 offer in JSON body and PAYMENT-REQUIRED header","content":{"application/json":{"schema":{"type":"object","required":["x402Version","accepts"],"properties":{"x402Version":{"const":2},"accepts":{"type":"array","items":{"type":"object"}}}}}}},"502":{"description":"Upstream unavailable; no settlement"}}},"post":{"operationId":"test_security_basics_post","summary":"Deploy Proof: Security Basics","description":"Signed PASSIVE security basics: TLS 1.2+, certificate expiry, HSTS, CSP, framing, nosniff, referrer policy, version disclosure, cookie flags, known-vulnerable JS versions in script URLs, mixed content, SPF/DMARC, security.txt. No scanning. Also accepts POST with the same parameters as a JSON body.","x-payment-info":{"protocol":"x402","version":2,"network":"eip155:8453","payTo":"0xe414aD5c7542CE63D890526f0e2133ff8da6F22D","price":"$5","currency":"USDC"},"responses":{"200":{"description":"Successful result after verified payment. Scores are indicative, not certifications.","content":{"application/json":{"schema":{"type":"object","required":["service","data"],"properties":{"service":{"const":"test_security_basics"},"data":{"type":"object"}}},"example":{"service":"test_security_basics","data":{"url":"https://www.novarithm.com","check_type":"test_security_basics","verdict":"partial","summary":{"ok":9,"ko":4,"not_measured":0,"total":13},"major_ko":[],"not_measured":[],"checks":[{"id":"tls","label":"TLS 1.2+ with a valid certificate (14+ days)","state":"ok","importance":"major","detail":"TLSv1.3 · 73 days left","measure":{"protocol":"TLSv1.3","days_left":73,"issuer":"Google Trust Services"}},{"id":"hsts","label":"HSTS with max-age ≥ 180 days","state":"ok","importance":"major","detail":"max-age=31536000; includeSubDomains"},{"id":"csp","label":"Content-Security-Policy header present","state":"ko","importance":"normal","detail":"absent"},{"id":"clickjacking","label":"Framing restricted (X-Frame-Options or CSP frame-ancestors)","state":"ko","importance":"normal","detail":"absent"},{"id":"nosniff","label":"X-Content-Type-Options: nosniff","state":"ok","importance":"normal"},{"id":"referrer_policy","label":"Referrer-Policy header present","state":"ok","importance":"normal","detail":"strict-origin-when-cross-origin"}],"conformance":{"verdict":"partial","score":75,"criteria_passed":10,"criteria_total":14,"hard_failed":[]},"attestation":{"status":"signed","standard":"EIP-712","signer":"0xD999A24d377086a2Fa887491f2986033Bfc3E26C","chain_id":8453,"digest":"0x80c4b891f0c26d143740c5cec8b9e60b1e557362e4c4591bcde1f509e170ac6a","signature":"0xe1832d16b75c08f742cb9c7423936b56dfa75aa8cd7044e8b2b4365edcdc2d5f5959989d27d64ce0097f4e8a02fdcaff40538c61cb2d33f84e613bcd2244975b1b","evaluated_at":1792887039,"job_id":"1009231339127608409","payload":{"product":"novarithm-deploy-proof","kind":"test_security_basics","url":"https://www.novarithm.com","measured_at":"2026-10-25T00:10:39Z","checks":{"tls":"ok","hsts":"ok","csp":"ko","clickjacking":"ko","nosniff":"ok","referrer_policy":"ok","version_disclosure":"ok","cookies_flags":"ok","outdated_js_libraries":"ok","no_mixed_content":"ok","spf":"ok","dmarc_enforced":"ko","security_txt":"ko"}},"payload_sha256":"e01828e48e49459460f44983cc17bb9683c108c23dd19e53900e61357ed544fc","deliverable_hash_eip712":"keccak256 of the exact payload JSON (sorted keys, compact) is the signed deliverableHash","verify":"https://gogeta2-u35175.vm.elestio.app/agents/v1/escrow/verify?token=<token> (0.001 USDC) or recover the EIP-712 signer offline","scope":"This attestation covers only the listed passive measurements, taken at measured_at from Novarithm's server. It is not a security audit, penetration test, legal or compliance certification, and does not guarantee future behaviour."},"passive_only":true,"statement":"Attests what was measured, not that everything is correct. not_measured is never counted as ok.","method":"passive: one HTTPS GET of the page, TLS handshake, public DNS (SPF/DMARC), security.txt. No scanning, no exploit, no hidden-file probing.","generated_at":"2026-10-25T00:10:39Z"}}}}},"400":{"description":"Invalid request; no settlement"},"402":{"description":"Payment required; same x402 v2 offer in JSON body and PAYMENT-REQUIRED header","content":{"application/json":{"schema":{"type":"object","required":["x402Version","accepts"],"properties":{"x402Version":{"const":2},"accepts":{"type":"array","items":{"type":"object"}}}}}}},"502":{"description":"Upstream unavailable; no settlement"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","description":"Public website URL or domain, e.g. https://www.example.com"}},"required":["url"]},"example":{"url":"https://www.novarithm.com"}}}}}},"/v1/proof/checkout":{"get":{"operationId":"test_checkout","summary":"Deploy Proof: Checkout","description":"Signed passive checkout-path proof for a store or product page: price/currency/availability, add-to-cart control, cart page, checkout links over https, payment provider, terms/returns/privacy/legal pages reachable, contact. Nothing added to cart, no payment.","parameters":[{"name":"url","in":"query","required":true,"schema":{"type":"string","description":"Store or product page URL"},"example":"https://www.allbirds.com/products/mens-tree-runners"}],"x-payment-info":{"protocol":"x402","version":2,"network":"eip155:8453","payTo":"0xe414aD5c7542CE63D890526f0e2133ff8da6F22D","price":"$25","currency":"USDC"},"responses":{"200":{"description":"Successful result after verified payment. Scores are indicative, not certifications.","content":{"application/json":{"schema":{"type":"object","required":["service","data"],"properties":{"service":{"const":"test_checkout"},"data":{"type":"object"}}},"example":{"service":"test_checkout","data":{"url":"https://www.allbirds.com/products/mens-tree-runners","check_type":"test_checkout","verdict":"fail","summary":{"ok":8,"ko":2,"not_measured":2,"total":12},"major_ko":["legal_terms"],"not_measured":["cart_page","legal_privacy"],"checks":[{"id":"page_reachable","label":"Store page reachable (HTTP < 400)","state":"ok","importance":"major","detail":"HTTP 200"},{"id":"tls_certificate","label":"TLS certificate valid for 14+ days","state":"ok","importance":"major","detail":"74 days left"},{"id":"product_offer","label":"Product page exposes price, currency and availability","state":"ok","importance":"major","detail":"100.0 USD · in_stock · via schema.org_json-ld","measure":{"price":100,"currency":"USD","availability":"in_stock"}},{"id":"add_to_cart_control","label":"Add-to-cart control present in HTML (detected, never clicked)","state":"ok","importance":"normal"},{"id":"cart_page","label":"Cart page answers HTTP < 400 (GET only)","state":"not_measured","importance":"major","detail":"https://www.allbirds.com/cart → not read: robots.txt disallowed for our agent (we never bypass it)"},{"id":"checkout_links_https","label":"Checkout links use https","state":"ok","importance":"normal","detail":"no checkout link in HTML (normal for many carts)"}],"conformance":{"verdict":"partial","score":68,"criteria_passed":9,"criteria_total":13,"hard_failed":["cart_page","legal_terms"]},"attestation":{"status":"signed","standard":"EIP-712","signer":"0xD999A24d377086a2Fa887491f2986033Bfc3E26C","chain_id":8453,"digest":"0x70fe7ea834753ca78542c21f54f367f547c318175566bb184b6240339123e131","signature":"0x4e4e1c69d75293178ec0d8ae4c82dcb89d5d222440c9c6cad5e9b6cedbeda4531d83712f206f31a49f72a7323cd897f036032d232aa1bf0b1a7ae4c07aaffaea1c","evaluated_at":1792887040,"job_id":"948245001915459343","payload":{"product":"novarithm-deploy-proof","kind":"test_checkout","url":"https://www.allbirds.com/products/mens-tree-runners","measured_at":"2026-10-25T00:10:40Z","checks":{"page_reachable":"ok","tls_certificate":"ok","product_offer":"ok","add_to_cart_control":"ok","cart_page":"not_measured","checkout_links_https":"ok","payment_provider_detected":"ok","legal_terms":"ko","legal_returns":"ok","legal_privacy":"not_measured","legal_legal_notice":"ko","contact_visible":"ok"}},"payload_sha256":"d28d7ce2335e70f2070ea3622d17d35f8a4ee832a0d632cd1553fd0fc59a0bed","deliverable_hash_eip712":"keccak256 of the exact payload JSON (sorted keys, compact) is the signed deliverableHash","verify":"https://gogeta2-u35175.vm.elestio.app/agents/v1/escrow/verify?token=<token> (0.001 USDC) or recover the EIP-712 signer offline","scope":"This attestation covers only the listed passive measurements, taken at measured_at from Novarithm's server. It is not a security audit, penetration test, legal or compliance certification, and does not guarantee future behaviour."},"passive_only":true,"statement":"Attests what was measured, not that everything is correct. not_measured is never counted as ok.","platform":["shopify","magento"],"payment_providers":["apple_pay"],"method":"passive: GET of the given page, cart page and linked legal pages only. Nothing added to cart, no form submitted, no payment.","generated_at":"2026-10-25T00:10:40Z"}}}}},"400":{"description":"Invalid request; no settlement"},"402":{"description":"Payment required; same x402 v2 offer in JSON body and PAYMENT-REQUIRED header","content":{"application/json":{"schema":{"type":"object","required":["x402Version","accepts"],"properties":{"x402Version":{"const":2},"accepts":{"type":"array","items":{"type":"object"}}}}}}},"502":{"description":"Upstream unavailable; no settlement"}}},"post":{"operationId":"test_checkout_post","summary":"Deploy Proof: Checkout","description":"Signed passive checkout-path proof for a store or product page: price/currency/availability, add-to-cart control, cart page, checkout links over https, payment provider, terms/returns/privacy/legal pages reachable, contact. Nothing added to cart, no payment. Also accepts POST with the same parameters as a JSON body.","x-payment-info":{"protocol":"x402","version":2,"network":"eip155:8453","payTo":"0xe414aD5c7542CE63D890526f0e2133ff8da6F22D","price":"$25","currency":"USDC"},"responses":{"200":{"description":"Successful result after verified payment. Scores are indicative, not certifications.","content":{"application/json":{"schema":{"type":"object","required":["service","data"],"properties":{"service":{"const":"test_checkout"},"data":{"type":"object"}}},"example":{"service":"test_checkout","data":{"url":"https://www.allbirds.com/products/mens-tree-runners","check_type":"test_checkout","verdict":"fail","summary":{"ok":8,"ko":2,"not_measured":2,"total":12},"major_ko":["legal_terms"],"not_measured":["cart_page","legal_privacy"],"checks":[{"id":"page_reachable","label":"Store page reachable (HTTP < 400)","state":"ok","importance":"major","detail":"HTTP 200"},{"id":"tls_certificate","label":"TLS certificate valid for 14+ days","state":"ok","importance":"major","detail":"74 days left"},{"id":"product_offer","label":"Product page exposes price, currency and availability","state":"ok","importance":"major","detail":"100.0 USD · in_stock · via schema.org_json-ld","measure":{"price":100,"currency":"USD","availability":"in_stock"}},{"id":"add_to_cart_control","label":"Add-to-cart control present in HTML (detected, never clicked)","state":"ok","importance":"normal"},{"id":"cart_page","label":"Cart page answers HTTP < 400 (GET only)","state":"not_measured","importance":"major","detail":"https://www.allbirds.com/cart → not read: robots.txt disallowed for our agent (we never bypass it)"},{"id":"checkout_links_https","label":"Checkout links use https","state":"ok","importance":"normal","detail":"no checkout link in HTML (normal for many carts)"}],"conformance":{"verdict":"partial","score":68,"criteria_passed":9,"criteria_total":13,"hard_failed":["cart_page","legal_terms"]},"attestation":{"status":"signed","standard":"EIP-712","signer":"0xD999A24d377086a2Fa887491f2986033Bfc3E26C","chain_id":8453,"digest":"0x70fe7ea834753ca78542c21f54f367f547c318175566bb184b6240339123e131","signature":"0x4e4e1c69d75293178ec0d8ae4c82dcb89d5d222440c9c6cad5e9b6cedbeda4531d83712f206f31a49f72a7323cd897f036032d232aa1bf0b1a7ae4c07aaffaea1c","evaluated_at":1792887040,"job_id":"948245001915459343","payload":{"product":"novarithm-deploy-proof","kind":"test_checkout","url":"https://www.allbirds.com/products/mens-tree-runners","measured_at":"2026-10-25T00:10:40Z","checks":{"page_reachable":"ok","tls_certificate":"ok","product_offer":"ok","add_to_cart_control":"ok","cart_page":"not_measured","checkout_links_https":"ok","payment_provider_detected":"ok","legal_terms":"ko","legal_returns":"ok","legal_privacy":"not_measured","legal_legal_notice":"ko","contact_visible":"ok"}},"payload_sha256":"d28d7ce2335e70f2070ea3622d17d35f8a4ee832a0d632cd1553fd0fc59a0bed","deliverable_hash_eip712":"keccak256 of the exact payload JSON (sorted keys, compact) is the signed deliverableHash","verify":"https://gogeta2-u35175.vm.elestio.app/agents/v1/escrow/verify?token=<token> (0.001 USDC) or recover the EIP-712 signer offline","scope":"This attestation covers only the listed passive measurements, taken at measured_at from Novarithm's server. It is not a security audit, penetration test, legal or compliance certification, and does not guarantee future behaviour."},"passive_only":true,"statement":"Attests what was measured, not that everything is correct. not_measured is never counted as ok.","platform":["shopify","magento"],"payment_providers":["apple_pay"],"method":"passive: GET of the given page, cart page and linked legal pages only. Nothing added to cart, no form submitted, no payment.","generated_at":"2026-10-25T00:10:40Z"}}}}},"400":{"description":"Invalid request; no settlement"},"402":{"description":"Payment required; same x402 v2 offer in JSON body and PAYMENT-REQUIRED header","content":{"application/json":{"schema":{"type":"object","required":["x402Version","accepts"],"properties":{"x402Version":{"const":2},"accepts":{"type":"array","items":{"type":"object"}}}}}}},"502":{"description":"Upstream unavailable; no settlement"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","description":"Store or product page URL"}},"required":["url"]},"example":{"url":"https://www.allbirds.com/products/mens-tree-runners"}}}}}},"/v1/proof/delivery":{"get":{"operationId":"verify_delivery","summary":"Deploy Proof: Full Delivery","description":"Full signed delivery verification: website + SEO + security basics (+ checkout if store=true) + the client's acceptance criteria (expected texts, pages that must answer). One verdict pass/partial/fail and one EIP-712 attestation over all measurements. Async: job_id + free result_url.","parameters":[{"name":"url","in":"query","required":true,"schema":{"type":"string","description":"Public website URL or domain, e.g. https://www.example.com"},"example":"https://www.novarithm.com"},{"name":"expect_text","in":"query","required":false,"schema":{"type":"string","description":"Texts that must appear on the page, separated by |"},"example":"Novarithm"},{"name":"pages","in":"query","required":false,"schema":{"type":"string","description":"Site paths that must answer HTTP < 400, comma-separated, e.g. /pricing,/contact"},"example":"/llms.txt"},{"name":"max_response_ms","in":"query","required":false,"schema":{"type":"integer","minimum":200,"maximum":20000,"default":3000,"description":"Maximum HTML response time"}},{"name":"store","in":"query","required":false,"schema":{"type":"boolean","default":false,"description":"Also run the checkout checks"}}],"x-payment-info":{"protocol":"x402","version":2,"network":"eip155:8453","payTo":"0xe414aD5c7542CE63D890526f0e2133ff8da6F22D","price":"$99","currency":"USDC"},"responses":{"200":{"description":"Successful result after verified payment. Scores are indicative, not certifications.","content":{"application/json":{"schema":{"type":"object","required":["service","data"],"properties":{"service":{"const":"verify_delivery"},"data":{"type":"object"}}},"example":{"service":"verify_delivery","data":{"job_id":"gicjV7B9hVjoxedDdJUKkmQ2","status":"done","kind":"delivery","result_url":"https://gogeta2-u35175.vm.elestio.app/agents/v1/jobs/deploy-proof/gicjV7B9hVjoxedDdJUKkmQ2","created_at":"2026-10-25T00:25:26Z","results_kept_days":7,"input":{"url":"https://www.novarithm.com","expect_text":["Novarithm"],"pages":["/llms.txt"],"max_response_ms":3000,"store":false},"finished_at":"2026-10-25T00:25:27Z","duration_s":0.7,"result":{"url":"https://www.novarithm.com","check_type":"verify_delivery","verdict":"partial","summary":{"ok":29,"ko":7,"not_measured":0,"total":36},"major_ko":[],"not_measured":[],"checks":[{"id":"website.page_reachable","label":"Page reachable over HTTPS (HTTP status < 400)","state":"ok","importance":"major","detail":"HTTP 200","measure":{"http_status":200,"final_url":"https://www.novarithm.com"}},{"id":"website.tls_certificate","label":"TLS certificate valid for 14+ days","state":"ok","importance":"major","detail":"TLSv1.3 · expires 2027-01-06 (73 days) · Google Trust Services","measure":{"protocol":"TLSv1.3","expires":"2027-01-06","days_left":73,"issuer":"Google Trust Services"}},{"id":"website.http_redirects_to_https","label":"http:// redirects to https://","state":"ok","importance":"normal","detail":"HTTP 301 → https://www.novarithm.com/","measure":{"http_status":301}},{"id":"website.response_time","label":"HTML response time ≤ 3000 ms (server-side, from Novarithm's server)","state":"ok","importance":"normal","detail":"57 ms","measure":{"response_ms":57}},{"id":"website.page_title","label":"Page has a non-empty <title>","state":"ok","importance":"normal","detail":"Novarithm · Partenaire de croissance IA pour PME"},{"id":"website.no_mixed_content","label":"No http:// resources on the https page","state":"ok","importance":"normal","detail":"none","measure":{"insecure":[]}}],"conformance":{"verdict":"pass","score":89,"criteria_passed":30,"criteria_total":37,"hard_failed":[]},"attestation":{"status":"signed","criteria_scored":36,"checks_covered_by_hash":36,"standard":"EIP-712","signer":"0xD999A24d377086a2Fa887491f2986033Bfc3E26C","chain_id":8453,"digest":"0xb323f16adf891e192f8b3d602dea495a3ad75e03b25724d5e0eb82c5199b391a","signature":"0x4925e7bca3f2643a45d5a5b949ea86fff52fc8bc93cb05e9e5c68b776c8dee8a79487653c3749efd0c28244b5ca57024113c08a8fd968af2b85aa43fd1b8db161c","evaluated_at":1792887927,"job_id":"437029769944787129","payload":{"product":"novarithm-deploy-proof","kind":"verify_delivery","url":"https://www.novarithm.com","measured_at":"2026-10-25T00:25:27Z","checks":{"website.page_reachable":"ok","website.tls_certificate":"ok","website.http_redirects_to_https":"ok","website.response_time":"ok","website.page_title":"ok","website.no_mixed_content":"ok","website.real_404":"ko","website.internal_links":"ok","website.expected_text":"ok","website.expected_pages":"ok","seo.seo_technical":"ok","seo.seo_content":"ko","seo.seo_internal_links":"ok","seo.seo_local":"ok","seo.seo_ai_visibility":"ok","seo.title_length":"ok","seo.meta_description":"ko","seo.canonical":"ok","seo.h1":"ok","seo.html_lang":"ok","seo.json_ld":"ok","seo.indexable":"ok","seo.sitemap":"ok","security.tls":"ok","security.hsts":"ok","security.csp":"ko","security.clickjacking":"ko","security.nosniff":"ok","security.referrer_policy":"ok","security.version_disclosure":"ok","security.cookies_flags":"ok","security.outdated_js_libraries":"ok","security.no_mixed_content":"ok","security.spf":"ok","security.dmarc_enforced":"ko","security.security_txt":"ko"},"client_criteria":{"expect_text":["Novarithm"],"pages":["/llms.txt"]}},"payload_sha256":"610a442a1d468b9a13cb5bcee38a242f965626369e4d246a7cced2d71a1e1772","deliverable_hash_eip712":"keccak256 of the exact payload JSON (sorted keys, compact) is the signed deliverableHash","verify":"https://gogeta2-u35175.vm.elestio.app/agents/v1/escrow/verify?token=<token> (0.001 USDC) or recover the EIP-712 signer offline","scope":"This attestation covers only the listed passive measurements, taken at measured_at from Novarithm's server. It is not a security audit, penetration test, legal or compliance certification, and does not guarantee future behaviour."},"passive_only":true,"statement":"Attests what was measured, not that everything is correct. not_measured is never counted as ok.","sections":{"website":10,"seo":13,"security":13,"checkout":"not requested"},"seo_score":84,"seo_priority_actions":[{"area":"content","impact":"high","fix":"Put the focus keyword « diagnostic gratuit » in the <title>."},{"area":"technical","impact":"medium","fix":"http:// redirects with a temporary 302: use a permanent 301 so ranking signals consolidate."},{"area":"technical","impact":"medium","fix":"6/11 images have no alt text: describe them (accessibility + image search)."},{"area":"technical","impact":"medium","fix":"Unknown URLs return HTTP 200 (soft 404): return a real 404 status."},{"area":"content","impact":"medium","fix":"Put « diagnostic gratuit » in the <h1>."},{"area":"content","impact":"medium","fix":"Use « diagnostic gratuit » in the meta description."}],"store":null,"client_criteria":{"expect_text":["Novarithm"],"pages":["/llms.txt"],"max_response_ms":3000}},"check_type":"verify_delivery","generated_at":"2026-10-25T00:25:27Z"}}}}},"400":{"description":"Invalid request; no settlement"},"402":{"description":"Payment required; same x402 v2 offer in JSON body and PAYMENT-REQUIRED header","content":{"application/json":{"schema":{"type":"object","required":["x402Version","accepts"],"properties":{"x402Version":{"const":2},"accepts":{"type":"array","items":{"type":"object"}}}}}}},"502":{"description":"Upstream unavailable; no settlement"}}},"post":{"operationId":"verify_delivery_post","summary":"Deploy Proof: Full Delivery","description":"Full signed delivery verification: website + SEO + security basics (+ checkout if store=true) + the client's acceptance criteria (expected texts, pages that must answer). One verdict pass/partial/fail and one EIP-712 attestation over all measurements. Async: job_id + free result_url. Also accepts POST with the same parameters as a JSON body.","x-payment-info":{"protocol":"x402","version":2,"network":"eip155:8453","payTo":"0xe414aD5c7542CE63D890526f0e2133ff8da6F22D","price":"$99","currency":"USDC"},"responses":{"200":{"description":"Successful result after verified payment. Scores are indicative, not certifications.","content":{"application/json":{"schema":{"type":"object","required":["service","data"],"properties":{"service":{"const":"verify_delivery"},"data":{"type":"object"}}},"example":{"service":"verify_delivery","data":{"job_id":"gicjV7B9hVjoxedDdJUKkmQ2","status":"done","kind":"delivery","result_url":"https://gogeta2-u35175.vm.elestio.app/agents/v1/jobs/deploy-proof/gicjV7B9hVjoxedDdJUKkmQ2","created_at":"2026-10-25T00:25:26Z","results_kept_days":7,"input":{"url":"https://www.novarithm.com","expect_text":["Novarithm"],"pages":["/llms.txt"],"max_response_ms":3000,"store":false},"finished_at":"2026-10-25T00:25:27Z","duration_s":0.7,"result":{"url":"https://www.novarithm.com","check_type":"verify_delivery","verdict":"partial","summary":{"ok":29,"ko":7,"not_measured":0,"total":36},"major_ko":[],"not_measured":[],"checks":[{"id":"website.page_reachable","label":"Page reachable over HTTPS (HTTP status < 400)","state":"ok","importance":"major","detail":"HTTP 200","measure":{"http_status":200,"final_url":"https://www.novarithm.com"}},{"id":"website.tls_certificate","label":"TLS certificate valid for 14+ days","state":"ok","importance":"major","detail":"TLSv1.3 · expires 2027-01-06 (73 days) · Google Trust Services","measure":{"protocol":"TLSv1.3","expires":"2027-01-06","days_left":73,"issuer":"Google Trust Services"}},{"id":"website.http_redirects_to_https","label":"http:// redirects to https://","state":"ok","importance":"normal","detail":"HTTP 301 → https://www.novarithm.com/","measure":{"http_status":301}},{"id":"website.response_time","label":"HTML response time ≤ 3000 ms (server-side, from Novarithm's server)","state":"ok","importance":"normal","detail":"57 ms","measure":{"response_ms":57}},{"id":"website.page_title","label":"Page has a non-empty <title>","state":"ok","importance":"normal","detail":"Novarithm · Partenaire de croissance IA pour PME"},{"id":"website.no_mixed_content","label":"No http:// resources on the https page","state":"ok","importance":"normal","detail":"none","measure":{"insecure":[]}}],"conformance":{"verdict":"pass","score":89,"criteria_passed":30,"criteria_total":37,"hard_failed":[]},"attestation":{"status":"signed","criteria_scored":36,"checks_covered_by_hash":36,"standard":"EIP-712","signer":"0xD999A24d377086a2Fa887491f2986033Bfc3E26C","chain_id":8453,"digest":"0xb323f16adf891e192f8b3d602dea495a3ad75e03b25724d5e0eb82c5199b391a","signature":"0x4925e7bca3f2643a45d5a5b949ea86fff52fc8bc93cb05e9e5c68b776c8dee8a79487653c3749efd0c28244b5ca57024113c08a8fd968af2b85aa43fd1b8db161c","evaluated_at":1792887927,"job_id":"437029769944787129","payload":{"product":"novarithm-deploy-proof","kind":"verify_delivery","url":"https://www.novarithm.com","measured_at":"2026-10-25T00:25:27Z","checks":{"website.page_reachable":"ok","website.tls_certificate":"ok","website.http_redirects_to_https":"ok","website.response_time":"ok","website.page_title":"ok","website.no_mixed_content":"ok","website.real_404":"ko","website.internal_links":"ok","website.expected_text":"ok","website.expected_pages":"ok","seo.seo_technical":"ok","seo.seo_content":"ko","seo.seo_internal_links":"ok","seo.seo_local":"ok","seo.seo_ai_visibility":"ok","seo.title_length":"ok","seo.meta_description":"ko","seo.canonical":"ok","seo.h1":"ok","seo.html_lang":"ok","seo.json_ld":"ok","seo.indexable":"ok","seo.sitemap":"ok","security.tls":"ok","security.hsts":"ok","security.csp":"ko","security.clickjacking":"ko","security.nosniff":"ok","security.referrer_policy":"ok","security.version_disclosure":"ok","security.cookies_flags":"ok","security.outdated_js_libraries":"ok","security.no_mixed_content":"ok","security.spf":"ok","security.dmarc_enforced":"ko","security.security_txt":"ko"},"client_criteria":{"expect_text":["Novarithm"],"pages":["/llms.txt"]}},"payload_sha256":"610a442a1d468b9a13cb5bcee38a242f965626369e4d246a7cced2d71a1e1772","deliverable_hash_eip712":"keccak256 of the exact payload JSON (sorted keys, compact) is the signed deliverableHash","verify":"https://gogeta2-u35175.vm.elestio.app/agents/v1/escrow/verify?token=<token> (0.001 USDC) or recover the EIP-712 signer offline","scope":"This attestation covers only the listed passive measurements, taken at measured_at from Novarithm's server. It is not a security audit, penetration test, legal or compliance certification, and does not guarantee future behaviour."},"passive_only":true,"statement":"Attests what was measured, not that everything is correct. not_measured is never counted as ok.","sections":{"website":10,"seo":13,"security":13,"checkout":"not requested"},"seo_score":84,"seo_priority_actions":[{"area":"content","impact":"high","fix":"Put the focus keyword « diagnostic gratuit » in the <title>."},{"area":"technical","impact":"medium","fix":"http:// redirects with a temporary 302: use a permanent 301 so ranking signals consolidate."},{"area":"technical","impact":"medium","fix":"6/11 images have no alt text: describe them (accessibility + image search)."},{"area":"technical","impact":"medium","fix":"Unknown URLs return HTTP 200 (soft 404): return a real 404 status."},{"area":"content","impact":"medium","fix":"Put « diagnostic gratuit » in the <h1>."},{"area":"content","impact":"medium","fix":"Use « diagnostic gratuit » in the meta description."}],"store":null,"client_criteria":{"expect_text":["Novarithm"],"pages":["/llms.txt"],"max_response_ms":3000}},"check_type":"verify_delivery","generated_at":"2026-10-25T00:25:27Z"}}}}},"400":{"description":"Invalid request; no settlement"},"402":{"description":"Payment required; same x402 v2 offer in JSON body and PAYMENT-REQUIRED header","content":{"application/json":{"schema":{"type":"object","required":["x402Version","accepts"],"properties":{"x402Version":{"const":2},"accepts":{"type":"array","items":{"type":"object"}}}}}}},"502":{"description":"Upstream unavailable; no settlement"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","description":"Public website URL or domain, e.g. https://www.example.com"},"expect_text":{"type":"string","description":"Texts that must appear on the page, separated by |"},"pages":{"type":"string","description":"Site paths that must answer HTTP < 400, comma-separated, e.g. /pricing,/contact"},"max_response_ms":{"type":"integer","minimum":200,"maximum":20000,"default":3000,"description":"Maximum HTML response time"},"store":{"type":"boolean","default":false,"description":"Also run the checkout checks"}},"required":["url"]},"example":{"url":"https://www.novarithm.com","expect_text":"Novarithm","pages":"/llms.txt"}}}}}},"/v1/trust/provider":{"get":{"operationId":"check_provider","summary":"Trust Check: Provider","description":"Trust decision (trust/caution/avoid + score) for one paid agent provider: x402 offer, MCP, A2A card, 3 unpaid availability probes, domain reputation, OFAC check of payTo, ERC-8004 identity and agentWallet = payTo on Base.","parameters":[{"name":"url","in":"query","required":true,"schema":{"type":"string","description":"Provider paid endpoint URL (x402) or agent base URL"},"example":"https://gogeta2-u35175.vm.elestio.app/agents/v1/fx/latest"},{"name":"agent_id","in":"query","required":false,"schema":{"type":"integer","minimum":0,"description":"ERC-8004 agentId on Base (optional)"},"example":1122322},{"name":"mcp_url","in":"query","required":false,"schema":{"type":"string","description":"MCP endpoint (default: <url>/mcp)"}},{"name":"method","in":"query","required":false,"schema":{"type":"string","enum":["GET","POST"],"default":"GET","description":"HTTP method of the paid endpoint"}}],"x-payment-info":{"protocol":"x402","version":2,"network":"eip155:8453","payTo":"0xe414aD5c7542CE63D890526f0e2133ff8da6F22D","price":"$0.5","currency":"USDC"},"responses":{"200":{"description":"Successful result after verified payment. Scores are indicative, not certifications.","content":{"application/json":{"schema":{"type":"object","required":["service","data"],"properties":{"service":{"const":"check_provider"},"data":{"type":"object"}}},"example":{"service":"check_provider","data":{"provider":"https://gogeta2-u35175.vm.elestio.app/agents/v1/fx/latest","decision":"trust","trust_score":87,"reasons":["a2a_card:not_measured","domain_reputation:ko","erc8004_feedback:ko"],"checks":[{"id":"x402_offer","label":"Valid x402 offer (402, known USDC, network, payTo)","state":"ok","weight":3,"detail":"payable_looks_safe · score 100","measure":{"price_usd":0.002,"networks":["eip155:8453"],"pay_to":"0xe414aD5c7542CE63D890526f0e2133ff8da6F22D"}},{"id":"mcp_server","label":"MCP server answers initialize + tools/list","state":"ok","weight":1,"detail":"healthy · 42 tools","measure":{"url":"https://gogeta2-u35175.vm.elestio.app/agents/mcp"}},{"id":"a2a_card","label":"A2A Agent Card at the domain root (optional)","state":"not_measured","weight":1,"detail":"no A2A card published at the domain root (optional for an API)"},{"id":"payee_not_sanctioned","label":"Payment address (payTo) not on OFAC SDN crypto list","state":"ok","weight":3,"detail":"not_listed · 506 addresses checked"},{"id":"domain_reputation","label":"Domain reputation (age, TLS, DNS, phishing lists)","state":"ko","weight":2,"detail":"verify_before_paying · score 44 · no_email_mx, homepage_unreachable","measure":{"score":44}},{"id":"availability","label":"3/3 unpaid probes answered (< 500) in < 5 s","state":"ok","weight":2,"detail":"statuses [402, 402, 402] · median 13 ms","measure":{"statuses":[402,402,402],"latency_ms":[19,13,9],"median_ms":13}}],"not_measured":["a2a_card"],"facts":{"url":"https://gogeta2-u35175.vm.elestio.app/agents/v1/fx/latest","price_usd":0.002,"pay_to":"0xe414aD5c7542CE63D890526f0e2133ff8da6F22D","networks":["eip155:8453"],"erc8004":{"registry":"eip155:8453:0x8004A169FB4a3325136EB29fA0ceB6D2e539a432","agent_id":"1122322","owner":"0xf5fc60ad53b294f7e9d471b7a3cf2d551916f182","exists":true,"agent_wallet":"0xe414ad5c7542ce63d890526f0e2133ff8da6f22d","agent_uri_kind":"data","registration":{"name":"Novarithm Agent Services","description":"Pay-per-call tools for AI agents: sanctions screening, email and domain checks, ECB/CFA FX rates, product recalls, seller reputation, pre-purchase and EU-ready checks, SEO/GEO audits, US/UK geocoding,","services":[{"name":"web","endpoint":"https://gogeta2-u35175.vm.elestio.app/agents/catalog"},{"name":"A2A","endpoint":"https://gogeta2-u35175.vm.elestio.app/agents/.well-known/agent-card.json"},{"name":"MCP","endpoint":"https://gogeta2-u35175.vm.elestio.app/agents/mcp"},{"name":"agentWallet","endpoint":"eip155:8453:0xe414aD5c7542CE63D890526f0e2133ff8da6F22D"}],"x402Support":true,"active":true},"feedback_clients":0}},"checked_at":"2026-10-25T00:10:43Z","note":"Pre-payment trust decision from measured signals; no payment was made to the provider. It does not prove that a paid answer will be correct. For continuous checks use Agent Monitor (hourly re-checks).","built_on":["agent_check (x402_probe, mcp_probe, a2a_card_check)","trust_trio","agent_monitor probe method","seller_reputation","sanctions_crypto_address (OFAC)","ERC-8004 Identity + Reputation registries (Base, read-only)"],"generated_at":"2026-10-25T00:10:43Z"}}}}},"400":{"description":"Invalid request; no settlement"},"402":{"description":"Payment required; same x402 v2 offer in JSON body and PAYMENT-REQUIRED header","content":{"application/json":{"schema":{"type":"object","required":["x402Version","accepts"],"properties":{"x402Version":{"const":2},"accepts":{"type":"array","items":{"type":"object"}}}}}}},"502":{"description":"Upstream unavailable; no settlement"}}},"post":{"operationId":"check_provider_post","summary":"Trust Check: Provider","description":"Trust decision (trust/caution/avoid + score) for one paid agent provider: x402 offer, MCP, A2A card, 3 unpaid availability probes, domain reputation, OFAC check of payTo, ERC-8004 identity and agentWallet = payTo on Base. Also accepts POST with the same parameters as a JSON body.","x-payment-info":{"protocol":"x402","version":2,"network":"eip155:8453","payTo":"0xe414aD5c7542CE63D890526f0e2133ff8da6F22D","price":"$0.5","currency":"USDC"},"responses":{"200":{"description":"Successful result after verified payment. Scores are indicative, not certifications.","content":{"application/json":{"schema":{"type":"object","required":["service","data"],"properties":{"service":{"const":"check_provider"},"data":{"type":"object"}}},"example":{"service":"check_provider","data":{"provider":"https://gogeta2-u35175.vm.elestio.app/agents/v1/fx/latest","decision":"trust","trust_score":87,"reasons":["a2a_card:not_measured","domain_reputation:ko","erc8004_feedback:ko"],"checks":[{"id":"x402_offer","label":"Valid x402 offer (402, known USDC, network, payTo)","state":"ok","weight":3,"detail":"payable_looks_safe · score 100","measure":{"price_usd":0.002,"networks":["eip155:8453"],"pay_to":"0xe414aD5c7542CE63D890526f0e2133ff8da6F22D"}},{"id":"mcp_server","label":"MCP server answers initialize + tools/list","state":"ok","weight":1,"detail":"healthy · 42 tools","measure":{"url":"https://gogeta2-u35175.vm.elestio.app/agents/mcp"}},{"id":"a2a_card","label":"A2A Agent Card at the domain root (optional)","state":"not_measured","weight":1,"detail":"no A2A card published at the domain root (optional for an API)"},{"id":"payee_not_sanctioned","label":"Payment address (payTo) not on OFAC SDN crypto list","state":"ok","weight":3,"detail":"not_listed · 506 addresses checked"},{"id":"domain_reputation","label":"Domain reputation (age, TLS, DNS, phishing lists)","state":"ko","weight":2,"detail":"verify_before_paying · score 44 · no_email_mx, homepage_unreachable","measure":{"score":44}},{"id":"availability","label":"3/3 unpaid probes answered (< 500) in < 5 s","state":"ok","weight":2,"detail":"statuses [402, 402, 402] · median 13 ms","measure":{"statuses":[402,402,402],"latency_ms":[19,13,9],"median_ms":13}}],"not_measured":["a2a_card"],"facts":{"url":"https://gogeta2-u35175.vm.elestio.app/agents/v1/fx/latest","price_usd":0.002,"pay_to":"0xe414aD5c7542CE63D890526f0e2133ff8da6F22D","networks":["eip155:8453"],"erc8004":{"registry":"eip155:8453:0x8004A169FB4a3325136EB29fA0ceB6D2e539a432","agent_id":"1122322","owner":"0xf5fc60ad53b294f7e9d471b7a3cf2d551916f182","exists":true,"agent_wallet":"0xe414ad5c7542ce63d890526f0e2133ff8da6f22d","agent_uri_kind":"data","registration":{"name":"Novarithm Agent Services","description":"Pay-per-call tools for AI agents: sanctions screening, email and domain checks, ECB/CFA FX rates, product recalls, seller reputation, pre-purchase and EU-ready checks, SEO/GEO audits, US/UK geocoding,","services":[{"name":"web","endpoint":"https://gogeta2-u35175.vm.elestio.app/agents/catalog"},{"name":"A2A","endpoint":"https://gogeta2-u35175.vm.elestio.app/agents/.well-known/agent-card.json"},{"name":"MCP","endpoint":"https://gogeta2-u35175.vm.elestio.app/agents/mcp"},{"name":"agentWallet","endpoint":"eip155:8453:0xe414aD5c7542CE63D890526f0e2133ff8da6F22D"}],"x402Support":true,"active":true},"feedback_clients":0}},"checked_at":"2026-10-25T00:10:43Z","note":"Pre-payment trust decision from measured signals; no payment was made to the provider. It does not prove that a paid answer will be correct. For continuous checks use Agent Monitor (hourly re-checks).","built_on":["agent_check (x402_probe, mcp_probe, a2a_card_check)","trust_trio","agent_monitor probe method","seller_reputation","sanctions_crypto_address (OFAC)","ERC-8004 Identity + Reputation registries (Base, read-only)"],"generated_at":"2026-10-25T00:10:43Z"}}}}},"400":{"description":"Invalid request; no settlement"},"402":{"description":"Payment required; same x402 v2 offer in JSON body and PAYMENT-REQUIRED header","content":{"application/json":{"schema":{"type":"object","required":["x402Version","accepts"],"properties":{"x402Version":{"const":2},"accepts":{"type":"array","items":{"type":"object"}}}}}}},"502":{"description":"Upstream unavailable; no settlement"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","description":"Provider paid endpoint URL (x402) or agent base URL"},"agent_id":{"type":"integer","minimum":0,"description":"ERC-8004 agentId on Base (optional)"},"mcp_url":{"type":"string","description":"MCP endpoint (default: <url>/mcp)"},"method":{"type":"string","enum":["GET","POST"],"default":"GET","description":"HTTP method of the paid endpoint"}},"required":["url"]},"example":{"url":"https://gogeta2-u35175.vm.elestio.app/agents/v1/fx/latest","agent_id":1122322}}}}}},"/v1/trust/compare":{"get":{"operationId":"compare_quality","summary":"Trust Check: Compare Providers","description":"Compare 2-5 paid agent providers with the same measured checks and rank them (decision, budget, trust score, price, latency); returns the recommended provider and why.","parameters":[{"name":"urls","in":"query","required":true,"schema":{"type":"string","description":"2-5 provider URLs, comma-separated"},"example":"https://gogeta2-u35175.vm.elestio.app/agents/v1/fx/latest,https://gogeta2-u35175.vm.elestio.app/agents/v1/sanctions/screen"},{"name":"max_price_usd","in":"query","required":false,"schema":{"type":"number","minimum":0,"description":"Budget per call in USD (optional)"},"example":0.05}],"x-payment-info":{"protocol":"x402","version":2,"network":"eip155:8453","payTo":"0xe414aD5c7542CE63D890526f0e2133ff8da6F22D","price":"$2","currency":"USDC"},"responses":{"200":{"description":"Successful result after verified payment. Scores are indicative, not certifications.","content":{"application/json":{"schema":{"type":"object","required":["service","data"],"properties":{"service":{"const":"compare_quality"},"data":{"type":"object"}}},"example":{"service":"compare_quality","data":{"ranking":[{"provider":"https://gogeta2-u35175.vm.elestio.app/agents/v1/fx/latest","decision":"trust","trust_score":82,"price_usd":0.002,"median_latency_ms":10,"within_budget":true,"not_measured":["mcp_server","a2a_card","erc8004_identity"],"reasons":["mcp_server:not_measured","a2a_card:not_measured","domain_reputation:ko","erc8004_identity:not_measured"],"rank":1},{"provider":"https://gogeta2-u35175.vm.elestio.app/agents/v1/sanctions/screen","decision":"trust","trust_score":82,"price_usd":0.01,"median_latency_ms":11,"within_budget":true,"not_measured":["mcp_server","a2a_card","erc8004_identity"],"reasons":["mcp_server:not_measured","a2a_card:not_measured","domain_reputation:ko","erc8004_identity:not_measured"],"rank":2}],"recommended":"https://gogeta2-u35175.vm.elestio.app/agents/v1/fx/latest","recommendation_reason":"best measured trust (82) with decision 'trust'","budget_usd":0.05,"criteria":"decision > within budget > trust score > lower price > lower latency","details":[{"provider":"https://gogeta2-u35175.vm.elestio.app/agents/v1/fx/latest","decision":"trust","trust_score":82,"reasons":["mcp_server:not_measured","a2a_card:not_measured","domain_reputation:ko","erc8004_identity:not_measured"],"checks":[{"id":"x402_offer","label":"Valid x402 offer (402, known USDC, network, payTo)","state":"ok","weight":3,"detail":"payable_looks_safe · score 100","measure":{"price_usd":0.002,"networks":["eip155:8453"],"pay_to":"0xe414aD5c7542CE63D890526f0e2133ff8da6F22D"}},{"id":"mcp_server","label":"MCP server answers initialize + tools/list (optional)","state":"not_measured","weight":1,"detail":"no MCP server at the default path https://gogeta2-u35175.vm.elestio.app/agents/v1/fx/latest/mcp; pass mcp_url to test one","measure":{"url":"https://gogeta2-u35175.vm.elestio.app/agents/v1/fx/latest/mcp"}},{"id":"a2a_card","label":"A2A Agent Card at the domain root (optional)","state":"not_measured","weight":1,"detail":"no A2A card published at the domain root (optional for an API)"},{"id":"payee_not_sanctioned","label":"Payment address (payTo) not on OFAC SDN crypto list","state":"ok","weight":3,"detail":"not_listed · 506 addresses checked"},{"id":"domain_reputation","label":"Domain reputation (age, TLS, DNS, phishing lists)","state":"ko","weight":2,"detail":"verify_before_paying · score 44 · no_email_mx, homepage_unreachable","measure":{"score":44}},{"id":"availability","label":"3/3 unpaid probes answered (< 500) in < 5 s","state":"ok","weight":2,"detail":"statuses [402, 402, 402] · median 10 ms","measure":{"statuses":[402,402,402],"latency_ms":[25,10,10],"median_ms":10}}],"not_measured":["mcp_server","a2a_card","erc8004_identity"],"facts":{"url":"https://gogeta2-u35175.vm.elestio.app/agents/v1/fx/latest","price_usd":0.002,"pay_to":"0xe414aD5c7542CE63D890526f0e2133ff8da6F22D","networks":["eip155:8453"],"erc8004":null},"checked_at":"2026-10-25T00:10:46Z"},{"provider":"https://gogeta2-u35175.vm.elestio.app/agents/v1/sanctions/screen","decision":"trust","trust_score":82,"reasons":["mcp_server:not_measured","a2a_card:not_measured","domain_reputation:ko","erc8004_identity:not_measured"],"checks":[{"id":"x402_offer","label":"Valid x402 offer (402, known USDC, network, payTo)","state":"ok","weight":3,"detail":"payable_looks_safe · score 100","measure":{"price_usd":0.01,"networks":["eip155:8453"],"pay_to":"0xe414aD5c7542CE63D890526f0e2133ff8da6F22D"}},{"id":"mcp_server","label":"MCP server answers initialize + tools/list (optional)","state":"not_measured","weight":1,"detail":"no MCP server at the default path https://gogeta2-u35175.vm.elestio.app/agents/v1/sanctions/screen/mcp; pass mcp_url to test one","measure":{"url":"https://gogeta2-u35175.vm.elestio.app/agents/v1/sanctions/screen/mcp"}},{"id":"a2a_card","label":"A2A Agent Card at the domain root (optional)","state":"not_measured","weight":1,"detail":"no A2A card published at the domain root (optional for an API)"},{"id":"payee_not_sanctioned","label":"Payment address (payTo) not on OFAC SDN crypto list","state":"ok","weight":3,"detail":"not_listed · 506 addresses checked"},{"id":"domain_reputation","label":"Domain reputation (age, TLS, DNS, phishing lists)","state":"ko","weight":2,"detail":"verify_before_paying · score 44 · no_email_mx, homepage_unreachable","measure":{"score":44}},{"id":"availability","label":"3/3 unpaid probes answered (< 500) in < 5 s","state":"ok","weight":2,"detail":"statuses [402, 402, 402] · median 11 ms","measure":{"statuses":[402,402,402],"latency_ms":[27,11,10],"median_ms":11}}],"not_measured":["mcp_server","a2a_card","erc8004_identity"],"facts":{"url":"https://gogeta2-u35175.vm.elestio.app/agents/v1/sanctions/screen","price_usd":0.01,"pay_to":"0xe414aD5c7542CE63D890526f0e2133ff8da6F22D","networks":["eip155:8453"],"erc8004":null},"checked_at":"2026-10-25T00:10:46Z"}],"checked_at":"2026-10-25T00:10:46Z","note":"Measured, unpaid comparison. Answer quality of paid calls is not sampled (no payment is made to compared providers).","generated_at":"2026-10-25T00:10:46Z"}}}}},"400":{"description":"Invalid request; no settlement"},"402":{"description":"Payment required; same x402 v2 offer in JSON body and PAYMENT-REQUIRED header","content":{"application/json":{"schema":{"type":"object","required":["x402Version","accepts"],"properties":{"x402Version":{"const":2},"accepts":{"type":"array","items":{"type":"object"}}}}}}},"502":{"description":"Upstream unavailable; no settlement"}}},"post":{"operationId":"compare_quality_post","summary":"Trust Check: Compare Providers","description":"Compare 2-5 paid agent providers with the same measured checks and rank them (decision, budget, trust score, price, latency); returns the recommended provider and why. Also accepts POST with the same parameters as a JSON body.","x-payment-info":{"protocol":"x402","version":2,"network":"eip155:8453","payTo":"0xe414aD5c7542CE63D890526f0e2133ff8da6F22D","price":"$2","currency":"USDC"},"responses":{"200":{"description":"Successful result after verified payment. Scores are indicative, not certifications.","content":{"application/json":{"schema":{"type":"object","required":["service","data"],"properties":{"service":{"const":"compare_quality"},"data":{"type":"object"}}},"example":{"service":"compare_quality","data":{"ranking":[{"provider":"https://gogeta2-u35175.vm.elestio.app/agents/v1/fx/latest","decision":"trust","trust_score":82,"price_usd":0.002,"median_latency_ms":10,"within_budget":true,"not_measured":["mcp_server","a2a_card","erc8004_identity"],"reasons":["mcp_server:not_measured","a2a_card:not_measured","domain_reputation:ko","erc8004_identity:not_measured"],"rank":1},{"provider":"https://gogeta2-u35175.vm.elestio.app/agents/v1/sanctions/screen","decision":"trust","trust_score":82,"price_usd":0.01,"median_latency_ms":11,"within_budget":true,"not_measured":["mcp_server","a2a_card","erc8004_identity"],"reasons":["mcp_server:not_measured","a2a_card:not_measured","domain_reputation:ko","erc8004_identity:not_measured"],"rank":2}],"recommended":"https://gogeta2-u35175.vm.elestio.app/agents/v1/fx/latest","recommendation_reason":"best measured trust (82) with decision 'trust'","budget_usd":0.05,"criteria":"decision > within budget > trust score > lower price > lower latency","details":[{"provider":"https://gogeta2-u35175.vm.elestio.app/agents/v1/fx/latest","decision":"trust","trust_score":82,"reasons":["mcp_server:not_measured","a2a_card:not_measured","domain_reputation:ko","erc8004_identity:not_measured"],"checks":[{"id":"x402_offer","label":"Valid x402 offer (402, known USDC, network, payTo)","state":"ok","weight":3,"detail":"payable_looks_safe · score 100","measure":{"price_usd":0.002,"networks":["eip155:8453"],"pay_to":"0xe414aD5c7542CE63D890526f0e2133ff8da6F22D"}},{"id":"mcp_server","label":"MCP server answers initialize + tools/list (optional)","state":"not_measured","weight":1,"detail":"no MCP server at the default path https://gogeta2-u35175.vm.elestio.app/agents/v1/fx/latest/mcp; pass mcp_url to test one","measure":{"url":"https://gogeta2-u35175.vm.elestio.app/agents/v1/fx/latest/mcp"}},{"id":"a2a_card","label":"A2A Agent Card at the domain root (optional)","state":"not_measured","weight":1,"detail":"no A2A card published at the domain root (optional for an API)"},{"id":"payee_not_sanctioned","label":"Payment address (payTo) not on OFAC SDN crypto list","state":"ok","weight":3,"detail":"not_listed · 506 addresses checked"},{"id":"domain_reputation","label":"Domain reputation (age, TLS, DNS, phishing lists)","state":"ko","weight":2,"detail":"verify_before_paying · score 44 · no_email_mx, homepage_unreachable","measure":{"score":44}},{"id":"availability","label":"3/3 unpaid probes answered (< 500) in < 5 s","state":"ok","weight":2,"detail":"statuses [402, 402, 402] · median 10 ms","measure":{"statuses":[402,402,402],"latency_ms":[25,10,10],"median_ms":10}}],"not_measured":["mcp_server","a2a_card","erc8004_identity"],"facts":{"url":"https://gogeta2-u35175.vm.elestio.app/agents/v1/fx/latest","price_usd":0.002,"pay_to":"0xe414aD5c7542CE63D890526f0e2133ff8da6F22D","networks":["eip155:8453"],"erc8004":null},"checked_at":"2026-10-25T00:10:46Z"},{"provider":"https://gogeta2-u35175.vm.elestio.app/agents/v1/sanctions/screen","decision":"trust","trust_score":82,"reasons":["mcp_server:not_measured","a2a_card:not_measured","domain_reputation:ko","erc8004_identity:not_measured"],"checks":[{"id":"x402_offer","label":"Valid x402 offer (402, known USDC, network, payTo)","state":"ok","weight":3,"detail":"payable_looks_safe · score 100","measure":{"price_usd":0.01,"networks":["eip155:8453"],"pay_to":"0xe414aD5c7542CE63D890526f0e2133ff8da6F22D"}},{"id":"mcp_server","label":"MCP server answers initialize + tools/list (optional)","state":"not_measured","weight":1,"detail":"no MCP server at the default path https://gogeta2-u35175.vm.elestio.app/agents/v1/sanctions/screen/mcp; pass mcp_url to test one","measure":{"url":"https://gogeta2-u35175.vm.elestio.app/agents/v1/sanctions/screen/mcp"}},{"id":"a2a_card","label":"A2A Agent Card at the domain root (optional)","state":"not_measured","weight":1,"detail":"no A2A card published at the domain root (optional for an API)"},{"id":"payee_not_sanctioned","label":"Payment address (payTo) not on OFAC SDN crypto list","state":"ok","weight":3,"detail":"not_listed · 506 addresses checked"},{"id":"domain_reputation","label":"Domain reputation (age, TLS, DNS, phishing lists)","state":"ko","weight":2,"detail":"verify_before_paying · score 44 · no_email_mx, homepage_unreachable","measure":{"score":44}},{"id":"availability","label":"3/3 unpaid probes answered (< 500) in < 5 s","state":"ok","weight":2,"detail":"statuses [402, 402, 402] · median 11 ms","measure":{"statuses":[402,402,402],"latency_ms":[27,11,10],"median_ms":11}}],"not_measured":["mcp_server","a2a_card","erc8004_identity"],"facts":{"url":"https://gogeta2-u35175.vm.elestio.app/agents/v1/sanctions/screen","price_usd":0.01,"pay_to":"0xe414aD5c7542CE63D890526f0e2133ff8da6F22D","networks":["eip155:8453"],"erc8004":null},"checked_at":"2026-10-25T00:10:46Z"}],"checked_at":"2026-10-25T00:10:46Z","note":"Measured, unpaid comparison. Answer quality of paid calls is not sampled (no payment is made to compared providers).","generated_at":"2026-10-25T00:10:46Z"}}}}},"400":{"description":"Invalid request; no settlement"},"402":{"description":"Payment required; same x402 v2 offer in JSON body and PAYMENT-REQUIRED header","content":{"application/json":{"schema":{"type":"object","required":["x402Version","accepts"],"properties":{"x402Version":{"const":2},"accepts":{"type":"array","items":{"type":"object"}}}}}}},"502":{"description":"Upstream unavailable; no settlement"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"urls":{"type":"string","description":"2-5 provider URLs, comma-separated"},"max_price_usd":{"type":"number","minimum":0,"description":"Budget per call in USD (optional)"}},"required":["urls"]},"example":{"urls":"https://gogeta2-u35175.vm.elestio.app/agents/v1/fx/latest,https://gogeta2-u35175.vm.elestio.app/agents/v1/sanctions/screen","max_price_usd":0.05}}}}}},"/v1/seller/due-diligence-report":{"get":{"operationId":"vendor_report","summary":"Vendor Due Diligence Report","description":"Readable vendor due-diligence report: reputation, sanctions (OFAC/UN/EU/UK), product recalls, EU-Ready, email authentication, product offer; proceed/review/block, Markdown report, signed evidence hash. Async if slow (job_id + free result_url), cached 24 h.","parameters":[{"name":"domain","in":"query","required":true,"schema":{"type":"string","description":"Seller website domain or URL, e.g. allbirds.com"},"example":"allbirds.com"},{"name":"seller","in":"query","required":false,"schema":{"type":"string","description":"Seller legal name to screen (default: from the domain)"},"example":"Allbirds Inc"},{"name":"product_url","in":"query","required":false,"schema":{"type":"string","description":"Product page URL (EU-Ready + offer)"},"example":"https://www.allbirds.com/products/mens-tree-runners"},{"name":"gtin","in":"query","required":false,"schema":{"type":"string","description":"EAN/UPC barcode (exact recalls / Safety Gate)"}},{"name":"query","in":"query","required":false,"schema":{"type":"string","description":"Product words for keyword recall search"}},{"name":"market","in":"query","required":false,"schema":{"type":"string","enum":["all","us","fr"],"default":"all","description":"Recall market"}}],"x-payment-info":{"protocol":"x402","version":2,"network":"eip155:8453","payTo":"0xe414aD5c7542CE63D890526f0e2133ff8da6F22D","price":"$9","currency":"USDC"},"responses":{"200":{"description":"Successful result after verified payment. Scores are indicative, not certifications.","content":{"application/json":{"schema":{"type":"object","required":["service","data"],"properties":{"service":{"const":"vendor_report"},"data":{"type":"object"}}},"example":{"service":"vendor_report","data":{"job_id":"Lh_Ftk8xk_dzK4JhWE5Dcemc","status":"done","kind":"report","result_url":"https://gogeta2-u35175.vm.elestio.app/agents/v1/jobs/due-diligence-report/Lh_Ftk8xk_dzK4JhWE5Dcemc","created_at":"2026-10-25T00:10:46Z","results_kept_days":7,"input":{"domain":"jboultdesigns.com","seller":"Rosoboronexport","product_url":null,"gtin":null,"query":null,"market":"all"},"finished_at":"2026-10-25T00:10:46Z","duration_s":0.2,"result":{"title":"Vendor due diligence — jboultdesigns.com (Rosoboronexport)","decision":"block","reasons":["reputation_medium_risk","sanctions_potential_match:100.0"],"sections":[{"section":"Domain reputation","state":"ko","detail":"score 62/100, risk medium, advice verify_before_paying; signals: domain_age_10y, return_policy_found"},{"section":"Sanctions (OFAC, UN, EU, UK)","state":"ko","detail":"name screened: « Rosoboronexport »; result potential_match, top score 100.0; best match: ROSOBORONEKSPORT OAO (OFAC SDN (US))"},{"section":"Product recalls (CPSC, openFDA, RappelConso)","state":"not_checked","detail":"give gtin or query to check product recalls"},{"section":"EU-Ready (Safety Gate, GPSR, ECB price)","state":"not_checked","detail":"give product_url, gtin or query for the EU-Ready check"},{"section":"Email authentication (anti-spoofing)","state":"ko","detail":"grade C; SPF no; DMARC policy none; provider Google Workspace / Gmail"}],"report_markdown":"# Vendor due diligence — jboultdesigns.com (Rosoboronexport)\n\n**Decision: BLOCK**  ·  generated 2026-10-25T00:10:46Z\n\n| Check | Result | Detail |\n|---|---|---|\n| Domain reputation | ❌ ko | score 62/100, risk medium, advice verify_before_paying; signals: domain_age_10y, return_policy_found |\n| Sanctions (OFAC, UN, EU, UK) | ❌ ko | name screened: « Rosoboronexport »; result potential_match, top s...","evidence":{"sha256":"b1c7b026c05d9c12ad01df58254b99ef071f706091060be2159572b7dc67aa5c","attestation":{"status":"signed","signer":"0xD999A24d377086a2Fa887491f2986033Bfc3E26C","standard":"EIP-712","digest":"0xde34df66cb2cc4d4a3597c12ba2b9a951a57767f5ddfc450dba1e6f8a1eeaaee","signature":"0x1e5c85416a05b22c3b94b68e0b99da85808ce5b310547a1e40b1949548a7a8980128fd91c8b724c6c6e0a7a91c0209760dc53aab86967d3e06825b64dac78d691c","evidence_json":"{\"decision\":\"block\",\"domain\":\"jboultdesigns.com\",\"generated_at\":\"2026-10-25T00:10:46Z\",\"reasons\":[\"reputation_medium_risk\",\"sanctions_potential_match:100.0\"],\"sections\":{\"Domain reputation\":\"ko\",\"EU-Ready (Safety Gate, GPSR, ECB price)\":\"not_checked\",\"Email authentication (anti-spoofing)\":\"ko\",\"Product recalls (CPSC, openFDA, RappelConso)\":\"not_checked\",\"Sanctions (OFAC, UN, EU, UK)\":\"ko\"},\"sel...","meaning":"Proves this evidence summary was produced by Novarithm's evaluator at that time and was not altered. Not a legal opinion."}},"raw_checks":{"reputation":{"status":"ok","score":62,"risk":"medium","advice":"verify_before_paying","red_flags":[],"reasons":["domain_age_10y","return_policy_found"],"signals":{"domain_created":"2016-08-12","domain_age_days":3725,"registrar":"1API GmbH","https":{"valid":true,"issuer":"Let's Encrypt","days_left":60},"email":{"mx":true,"spf":false,"dmarc":"none"},"popularity_rank":null,"phishing_listed":false,"platform":"shopify","policies":{"returns":true,"privacy":true,"terms":false,"contact":true,"shipping":true},"contact_details":{"phone":false,"address":false},"homepage":{"read":true,"robots":"allowed","status":200}}},"sanctions":{"status":"ok","screened_name":"Rosoboronexport","name_inferred_from_domain":false,"result":"potential_match","top_score":100,"matches":[{"list":"OFAC SDN (US)","list_id":"ofac","entity_id":"ofac:18782","name":"ROSOBORONEKSPORT OAO","matched_name":"ROSOBORONEXPORT JSC","score":100,"type":"entity","programs":["UKRAINE-EO13662","IRAN-CON-ARMS-EO","RUSSIA-EO14024"],"countries":["RU"],"birth_years":[],"listed_on":null,"aliases_count":3,"remarks":"Website www.roe.ru; Executive Order 13662 Directive Determination - Subject to Directive 3; Secondary sanctions risk: Ukraine-/Russia-Related Sanctions Regulations, 31 CFR 589.201 and/or 589.209; alt. Secondary sanctions risk: See Section 11 of Executive Order 14024.; Registration ID 1117746521452 (Russia); Tax ID No. 7718852163 (Russia); Government Gazette Number 56467052 (Russia); For more infor","flags":[]},{"list":"EU Consolidated Financial Sanctions List","list_id":"eu","entity_id":"eu:EU.7808.66","name":"JSC ROSOBORONEXPORT","matched_name":"JSC ROSOBORONEXPORT","score":100,"type":"entity","programs":["UKR"],"countries":["RU"],"birth_years":[],"listed_on":"2023-03-14","aliases_count":2,"remarks":"(Date of UN designation: 2022-03-15)","flags":[]}],"lists_checked":["OFAC SDN (US)","UN Security Council Consolidated List","EU Consolidated Financial Sanctions List","UK Sanctions List (FCDO)"]},"recalls":{"status":"not_checked","reason":"give gtin or query to check product recalls"},"eu_ready":{"status":"not_checked","reason":"give product_url, gtin or query for the EU-Ready check"},"checks_run":["reputation","sanctions"],"checks_not_run":["recalls","eu_ready"]},"email_auth":{"grade":"C","checks":{"accepts_mail":true,"spf":false,"dmarc":true,"dkim_selectors_found":["google","k1"],"mta_sts":false,"tls_rpt":false,"bimi":false},"dmarc":{"record":"v=DMARC1; p=none; rua=mailto:sales@jboultdesigns.com","policy":"none","subdomain_policy":null,"pct":100,"aggregate_reports":true},"spf":{"record":null,"all":null,"dns_lookup_mechanisms":null,"records":0},"mail_provider":"Google Workspace / Gmail"},"product_offer":null,"sources":["seller-reputation (RDAP, DNS, TLS, Tranco, phishing lists)","sanctions-screen (OFAC, UN, EU, UK)","recall-check (CPSC, openFDA, RappelConso)","eu-ready-check (EU Safety Gate, GPSR, ECB)","email-check (public DNS)","price-availability (schema.org on the product page)"],"cache":{"hit":false,"age_s":0}},"generated_at":"2026-10-25T00:10:46Z"}}}}},"400":{"description":"Invalid request; no settlement"},"402":{"description":"Payment required; same x402 v2 offer in JSON body and PAYMENT-REQUIRED header","content":{"application/json":{"schema":{"type":"object","required":["x402Version","accepts"],"properties":{"x402Version":{"const":2},"accepts":{"type":"array","items":{"type":"object"}}}}}}},"502":{"description":"Upstream unavailable; no settlement"}}},"post":{"operationId":"vendor_report_post","summary":"Vendor Due Diligence Report","description":"Readable vendor due-diligence report: reputation, sanctions (OFAC/UN/EU/UK), product recalls, EU-Ready, email authentication, product offer; proceed/review/block, Markdown report, signed evidence hash. Async if slow (job_id + free result_url), cached 24 h. Also accepts POST with the same parameters as a JSON body.","x-payment-info":{"protocol":"x402","version":2,"network":"eip155:8453","payTo":"0xe414aD5c7542CE63D890526f0e2133ff8da6F22D","price":"$9","currency":"USDC"},"responses":{"200":{"description":"Successful result after verified payment. Scores are indicative, not certifications.","content":{"application/json":{"schema":{"type":"object","required":["service","data"],"properties":{"service":{"const":"vendor_report"},"data":{"type":"object"}}},"example":{"service":"vendor_report","data":{"job_id":"Lh_Ftk8xk_dzK4JhWE5Dcemc","status":"done","kind":"report","result_url":"https://gogeta2-u35175.vm.elestio.app/agents/v1/jobs/due-diligence-report/Lh_Ftk8xk_dzK4JhWE5Dcemc","created_at":"2026-10-25T00:10:46Z","results_kept_days":7,"input":{"domain":"jboultdesigns.com","seller":"Rosoboronexport","product_url":null,"gtin":null,"query":null,"market":"all"},"finished_at":"2026-10-25T00:10:46Z","duration_s":0.2,"result":{"title":"Vendor due diligence — jboultdesigns.com (Rosoboronexport)","decision":"block","reasons":["reputation_medium_risk","sanctions_potential_match:100.0"],"sections":[{"section":"Domain reputation","state":"ko","detail":"score 62/100, risk medium, advice verify_before_paying; signals: domain_age_10y, return_policy_found"},{"section":"Sanctions (OFAC, UN, EU, UK)","state":"ko","detail":"name screened: « Rosoboronexport »; result potential_match, top score 100.0; best match: ROSOBORONEKSPORT OAO (OFAC SDN (US))"},{"section":"Product recalls (CPSC, openFDA, RappelConso)","state":"not_checked","detail":"give gtin or query to check product recalls"},{"section":"EU-Ready (Safety Gate, GPSR, ECB price)","state":"not_checked","detail":"give product_url, gtin or query for the EU-Ready check"},{"section":"Email authentication (anti-spoofing)","state":"ko","detail":"grade C; SPF no; DMARC policy none; provider Google Workspace / Gmail"}],"report_markdown":"# Vendor due diligence — jboultdesigns.com (Rosoboronexport)\n\n**Decision: BLOCK**  ·  generated 2026-10-25T00:10:46Z\n\n| Check | Result | Detail |\n|---|---|---|\n| Domain reputation | ❌ ko | score 62/100, risk medium, advice verify_before_paying; signals: domain_age_10y, return_policy_found |\n| Sanctions (OFAC, UN, EU, UK) | ❌ ko | name screened: « Rosoboronexport »; result potential_match, top s...","evidence":{"sha256":"b1c7b026c05d9c12ad01df58254b99ef071f706091060be2159572b7dc67aa5c","attestation":{"status":"signed","signer":"0xD999A24d377086a2Fa887491f2986033Bfc3E26C","standard":"EIP-712","digest":"0xde34df66cb2cc4d4a3597c12ba2b9a951a57767f5ddfc450dba1e6f8a1eeaaee","signature":"0x1e5c85416a05b22c3b94b68e0b99da85808ce5b310547a1e40b1949548a7a8980128fd91c8b724c6c6e0a7a91c0209760dc53aab86967d3e06825b64dac78d691c","evidence_json":"{\"decision\":\"block\",\"domain\":\"jboultdesigns.com\",\"generated_at\":\"2026-10-25T00:10:46Z\",\"reasons\":[\"reputation_medium_risk\",\"sanctions_potential_match:100.0\"],\"sections\":{\"Domain reputation\":\"ko\",\"EU-Ready (Safety Gate, GPSR, ECB price)\":\"not_checked\",\"Email authentication (anti-spoofing)\":\"ko\",\"Product recalls (CPSC, openFDA, RappelConso)\":\"not_checked\",\"Sanctions (OFAC, UN, EU, UK)\":\"ko\"},\"sel...","meaning":"Proves this evidence summary was produced by Novarithm's evaluator at that time and was not altered. Not a legal opinion."}},"raw_checks":{"reputation":{"status":"ok","score":62,"risk":"medium","advice":"verify_before_paying","red_flags":[],"reasons":["domain_age_10y","return_policy_found"],"signals":{"domain_created":"2016-08-12","domain_age_days":3725,"registrar":"1API GmbH","https":{"valid":true,"issuer":"Let's Encrypt","days_left":60},"email":{"mx":true,"spf":false,"dmarc":"none"},"popularity_rank":null,"phishing_listed":false,"platform":"shopify","policies":{"returns":true,"privacy":true,"terms":false,"contact":true,"shipping":true},"contact_details":{"phone":false,"address":false},"homepage":{"read":true,"robots":"allowed","status":200}}},"sanctions":{"status":"ok","screened_name":"Rosoboronexport","name_inferred_from_domain":false,"result":"potential_match","top_score":100,"matches":[{"list":"OFAC SDN (US)","list_id":"ofac","entity_id":"ofac:18782","name":"ROSOBORONEKSPORT OAO","matched_name":"ROSOBORONEXPORT JSC","score":100,"type":"entity","programs":["UKRAINE-EO13662","IRAN-CON-ARMS-EO","RUSSIA-EO14024"],"countries":["RU"],"birth_years":[],"listed_on":null,"aliases_count":3,"remarks":"Website www.roe.ru; Executive Order 13662 Directive Determination - Subject to Directive 3; Secondary sanctions risk: Ukraine-/Russia-Related Sanctions Regulations, 31 CFR 589.201 and/or 589.209; alt. Secondary sanctions risk: See Section 11 of Executive Order 14024.; Registration ID 1117746521452 (Russia); Tax ID No. 7718852163 (Russia); Government Gazette Number 56467052 (Russia); For more infor","flags":[]},{"list":"EU Consolidated Financial Sanctions List","list_id":"eu","entity_id":"eu:EU.7808.66","name":"JSC ROSOBORONEXPORT","matched_name":"JSC ROSOBORONEXPORT","score":100,"type":"entity","programs":["UKR"],"countries":["RU"],"birth_years":[],"listed_on":"2023-03-14","aliases_count":2,"remarks":"(Date of UN designation: 2022-03-15)","flags":[]}],"lists_checked":["OFAC SDN (US)","UN Security Council Consolidated List","EU Consolidated Financial Sanctions List","UK Sanctions List (FCDO)"]},"recalls":{"status":"not_checked","reason":"give gtin or query to check product recalls"},"eu_ready":{"status":"not_checked","reason":"give product_url, gtin or query for the EU-Ready check"},"checks_run":["reputation","sanctions"],"checks_not_run":["recalls","eu_ready"]},"email_auth":{"grade":"C","checks":{"accepts_mail":true,"spf":false,"dmarc":true,"dkim_selectors_found":["google","k1"],"mta_sts":false,"tls_rpt":false,"bimi":false},"dmarc":{"record":"v=DMARC1; p=none; rua=mailto:sales@jboultdesigns.com","policy":"none","subdomain_policy":null,"pct":100,"aggregate_reports":true},"spf":{"record":null,"all":null,"dns_lookup_mechanisms":null,"records":0},"mail_provider":"Google Workspace / Gmail"},"product_offer":null,"sources":["seller-reputation (RDAP, DNS, TLS, Tranco, phishing lists)","sanctions-screen (OFAC, UN, EU, UK)","recall-check (CPSC, openFDA, RappelConso)","eu-ready-check (EU Safety Gate, GPSR, ECB)","email-check (public DNS)","price-availability (schema.org on the product page)"],"cache":{"hit":false,"age_s":0}},"generated_at":"2026-10-25T00:10:46Z"}}}}},"400":{"description":"Invalid request; no settlement"},"402":{"description":"Payment required; same x402 v2 offer in JSON body and PAYMENT-REQUIRED header","content":{"application/json":{"schema":{"type":"object","required":["x402Version","accepts"],"properties":{"x402Version":{"const":2},"accepts":{"type":"array","items":{"type":"object"}}}}}}},"502":{"description":"Upstream unavailable; no settlement"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"domain":{"type":"string","description":"Seller website domain or URL, e.g. allbirds.com"},"seller":{"type":"string","description":"Seller legal name to screen (default: from the domain)"},"product_url":{"type":"string","description":"Product page URL (EU-Ready + offer)"},"gtin":{"type":"string","description":"EAN/UPC barcode (exact recalls / Safety Gate)"},"query":{"type":"string","description":"Product words for keyword recall search"},"market":{"type":"string","enum":["all","us","fr"],"default":"all","description":"Recall market"}},"required":["domain"]},"example":{"domain":"allbirds.com","seller":"Allbirds Inc","product_url":"https://www.allbirds.com/products/mens-tree-runners"}}}}}},"/v1/geo/us-address":{"get":{"operationId":"us_geocode","summary":"US Address Geocoder","description":"Geocode one US street address with the U.S. Census Bureau: standardised address, lat/lon, state, county, census tract, block group, ZCTA, metro area, congressional district (official GEOIDs). No match = not charged.","parameters":[{"name":"address","in":"query","required":true,"schema":{"type":"string","description":"One-line US address with house number, e.g. 350 5th Ave, New York, NY 10118"},"example":"350 5th Ave, New York, NY 10118"}],"x-payment-info":{"protocol":"x402","version":2,"network":"eip155:8453","payTo":"0xe414aD5c7542CE63D890526f0e2133ff8da6F22D","price":"$0.003","currency":"USDC"},"responses":{"200":{"description":"Successful result after verified payment. Scores are indicative, not certifications.","content":{"application/json":{"schema":{"type":"object","required":["service","data"],"properties":{"service":{"const":"us_geocode"},"data":{"type":"object"}}},"example":{"service":"us_geocode","data":{"input":"350 5th Ave, New York, NY 10118","matched":true,"matched_address":"350 5TH AVE, NEW YORK, NY, 10118","lat":40.747851,"lon":-73.985076,"components":{"house_range":"350-356","street":"5TH AVE","city":"NEW YORK","state":"NY","zip":"10118"},"geographies":{"state":{"name":"New York","geoid":"36"},"county":{"name":"New York County","geoid":"36061"},"county_subdivision":{"name":"Manhattan borough","geoid":"3606144919"},"place":{"name":"New York city","geoid":"3651000"},"census_tract":{"name":"Census Tract 76","geoid":"36061007600"},"block_group":{"name":"Block Group 1","geoid":"360610076001"},"block":{"name":"Block 1001","geoid":"360610076001001"},"zcta":{"name":"ZCTA5 10001","geoid":"10001"},"metro_area":{"name":"New York-Newark-Jersey City, NY-NJ Metro Area","geoid":"35620"},"urban_area":{"name":"New York--Jersey City--Newark, NY--NJ Urban Area","geoid":"63217"},"school_district":{"name":"New York City Department Of Education","geoid":"3620580"},"congressional_district":{"name":"Congressional District 12","geoid":"3612","congress":"120th"}},"other_candidates":0,"precision":"interpolated on Census address ranges (TIGER), not a rooftop point","source":"U.S. Census Bureau Geocoder, benchmark Public_AR_Current / vintage Current_Current","generated_at":"2026-10-23T10:03:29Z","price_usd":0.003,"billing_unit":"address","sources":[{"name":"U.S. Census Bureau Geocoder","url":"https://geocoding.geo.census.gov/geocoder/","licence":"U.S. government work, public domain"},{"name":"postcodes.io (ONS Postcode Directory, Ordnance Survey)","url":"https://postcodes.io/","licence":"Open Government Licence v3 (ONS / OS data); postcodes.io MIT"}],"response_time_ms":772}}}}},"400":{"description":"Invalid request; no settlement"},"402":{"description":"Payment required; same x402 v2 offer in JSON body and PAYMENT-REQUIRED header","content":{"application/json":{"schema":{"type":"object","required":["x402Version","accepts"],"properties":{"x402Version":{"const":2},"accepts":{"type":"array","items":{"type":"object"}}}}}}},"502":{"description":"Upstream unavailable; no settlement"}}},"post":{"operationId":"us_geocode_post","summary":"US Address Geocoder","description":"Geocode one US street address with the U.S. Census Bureau: standardised address, lat/lon, state, county, census tract, block group, ZCTA, metro area, congressional district (official GEOIDs). No match = not charged. Also accepts POST with the same parameters as a JSON body.","x-payment-info":{"protocol":"x402","version":2,"network":"eip155:8453","payTo":"0xe414aD5c7542CE63D890526f0e2133ff8da6F22D","price":"$0.003","currency":"USDC"},"responses":{"200":{"description":"Successful result after verified payment. Scores are indicative, not certifications.","content":{"application/json":{"schema":{"type":"object","required":["service","data"],"properties":{"service":{"const":"us_geocode"},"data":{"type":"object"}}},"example":{"service":"us_geocode","data":{"input":"350 5th Ave, New York, NY 10118","matched":true,"matched_address":"350 5TH AVE, NEW YORK, NY, 10118","lat":40.747851,"lon":-73.985076,"components":{"house_range":"350-356","street":"5TH AVE","city":"NEW YORK","state":"NY","zip":"10118"},"geographies":{"state":{"name":"New York","geoid":"36"},"county":{"name":"New York County","geoid":"36061"},"county_subdivision":{"name":"Manhattan borough","geoid":"3606144919"},"place":{"name":"New York city","geoid":"3651000"},"census_tract":{"name":"Census Tract 76","geoid":"36061007600"},"block_group":{"name":"Block Group 1","geoid":"360610076001"},"block":{"name":"Block 1001","geoid":"360610076001001"},"zcta":{"name":"ZCTA5 10001","geoid":"10001"},"metro_area":{"name":"New York-Newark-Jersey City, NY-NJ Metro Area","geoid":"35620"},"urban_area":{"name":"New York--Jersey City--Newark, NY--NJ Urban Area","geoid":"63217"},"school_district":{"name":"New York City Department Of Education","geoid":"3620580"},"congressional_district":{"name":"Congressional District 12","geoid":"3612","congress":"120th"}},"other_candidates":0,"precision":"interpolated on Census address ranges (TIGER), not a rooftop point","source":"U.S. Census Bureau Geocoder, benchmark Public_AR_Current / vintage Current_Current","generated_at":"2026-10-23T10:03:29Z","price_usd":0.003,"billing_unit":"address","sources":[{"name":"U.S. Census Bureau Geocoder","url":"https://geocoding.geo.census.gov/geocoder/","licence":"U.S. government work, public domain"},{"name":"postcodes.io (ONS Postcode Directory, Ordnance Survey)","url":"https://postcodes.io/","licence":"Open Government Licence v3 (ONS / OS data); postcodes.io MIT"}],"response_time_ms":772}}}}},"400":{"description":"Invalid request; no settlement"},"402":{"description":"Payment required; same x402 v2 offer in JSON body and PAYMENT-REQUIRED header","content":{"application/json":{"schema":{"type":"object","required":["x402Version","accepts"],"properties":{"x402Version":{"const":2},"accepts":{"type":"array","items":{"type":"object"}}}}}}},"502":{"description":"Upstream unavailable; no settlement"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"One-line US address with house number, e.g. 350 5th Ave, New York, NY 10118"}},"required":["address"]},"example":{"address":"350 5th Ave, New York, NY 10118"}}}}}},"/v1/geo/uk-postcode":{"get":{"operationId":"uk_postcode","summary":"UK Postcode Lookup","description":"UK postcode lookup (ONS Postcode Directory via postcodes.io): lat/lon, country, region, local authority, ward, parliamentary constituency, NHS ICB, police force, LSOA. Unknown postcode = not charged.","parameters":[{"name":"postcode","in":"query","required":true,"schema":{"type":"string","description":"UK postcode, e.g. SW1A 2AA"},"example":"SW1A 2AA"}],"x-payment-info":{"protocol":"x402","version":2,"network":"eip155:8453","payTo":"0xe414aD5c7542CE63D890526f0e2133ff8da6F22D","price":"$0.002","currency":"USDC"},"responses":{"200":{"description":"Successful result after verified payment. Scores are indicative, not certifications.","content":{"application/json":{"schema":{"type":"object","required":["service","data"],"properties":{"service":{"const":"uk_postcode"},"data":{"type":"object"}}},"example":{"service":"uk_postcode","data":{"postcode":"SW1A 2AA","matched":true,"lat":51.503541,"lon":-0.12767,"country":"England","region":"London","admin_district":"Westminster","admin_county":null,"admin_ward":"St James's","parish":"Westminster, unparished area","parliamentary_constituency":"Cities of London and Westminster","nhs_icb":"NHS West and North London Integrated Care Board","police_force":"Metropolitan Police","built_up_area":"City of Westminster","lsoa":"Westminster 018C","outcode":"SW1A","incode":"2AA","eastings":530047,"northings":179951,"positional_quality":1,"codes":{"admin_district":"E09000033","admin_county":"E99999999","admin_ward":"E05013806","parish":"E43000236","parliamentary_constituency":"E14001172","parliamentary_constituency_2024":"E14001172","ccg":"E38000256","ccg_id":"W2U3Z","ced":"E99999999","nuts":"TLI35","lsoa":"E01004736","msoa":"E02000977","lau2":"E09000033","pfa":"E23000001","nhs_region":"E40000003","ttwa":"E30000234","national_park":"E65000001","bua":"E63012036","icb":"E54000071","cancer_alliance":"E56000021","lsoa11":"E01004736","msoa11":"E02000977","lsoa21":"E01004736","msoa21":"E02000977","oa21":"E00023936"},"source":"postcodes.io (ONS Postcode Directory, Ordnance Survey; Open Government Licence)","generated_at":"2026-10-23T10:03:29Z","price_usd":0.002,"billing_unit":"postcode"}}}}},"400":{"description":"Invalid request; no settlement"},"402":{"description":"Payment required; same x402 v2 offer in JSON body and PAYMENT-REQUIRED header","content":{"application/json":{"schema":{"type":"object","required":["x402Version","accepts"],"properties":{"x402Version":{"const":2},"accepts":{"type":"array","items":{"type":"object"}}}}}}},"502":{"description":"Upstream unavailable; no settlement"}}},"post":{"operationId":"uk_postcode_post","summary":"UK Postcode Lookup","description":"UK postcode lookup (ONS Postcode Directory via postcodes.io): lat/lon, country, region, local authority, ward, parliamentary constituency, NHS ICB, police force, LSOA. Unknown postcode = not charged. Also accepts POST with the same parameters as a JSON body.","x-payment-info":{"protocol":"x402","version":2,"network":"eip155:8453","payTo":"0xe414aD5c7542CE63D890526f0e2133ff8da6F22D","price":"$0.002","currency":"USDC"},"responses":{"200":{"description":"Successful result after verified payment. Scores are indicative, not certifications.","content":{"application/json":{"schema":{"type":"object","required":["service","data"],"properties":{"service":{"const":"uk_postcode"},"data":{"type":"object"}}},"example":{"service":"uk_postcode","data":{"postcode":"SW1A 2AA","matched":true,"lat":51.503541,"lon":-0.12767,"country":"England","region":"London","admin_district":"Westminster","admin_county":null,"admin_ward":"St James's","parish":"Westminster, unparished area","parliamentary_constituency":"Cities of London and Westminster","nhs_icb":"NHS West and North London Integrated Care Board","police_force":"Metropolitan Police","built_up_area":"City of Westminster","lsoa":"Westminster 018C","outcode":"SW1A","incode":"2AA","eastings":530047,"northings":179951,"positional_quality":1,"codes":{"admin_district":"E09000033","admin_county":"E99999999","admin_ward":"E05013806","parish":"E43000236","parliamentary_constituency":"E14001172","parliamentary_constituency_2024":"E14001172","ccg":"E38000256","ccg_id":"W2U3Z","ced":"E99999999","nuts":"TLI35","lsoa":"E01004736","msoa":"E02000977","lau2":"E09000033","pfa":"E23000001","nhs_region":"E40000003","ttwa":"E30000234","national_park":"E65000001","bua":"E63012036","icb":"E54000071","cancer_alliance":"E56000021","lsoa11":"E01004736","msoa11":"E02000977","lsoa21":"E01004736","msoa21":"E02000977","oa21":"E00023936"},"source":"postcodes.io (ONS Postcode Directory, Ordnance Survey; Open Government Licence)","generated_at":"2026-10-23T10:03:29Z","price_usd":0.002,"billing_unit":"postcode"}}}}},"400":{"description":"Invalid request; no settlement"},"402":{"description":"Payment required; same x402 v2 offer in JSON body and PAYMENT-REQUIRED header","content":{"application/json":{"schema":{"type":"object","required":["x402Version","accepts"],"properties":{"x402Version":{"const":2},"accepts":{"type":"array","items":{"type":"object"}}}}}}},"502":{"description":"Upstream unavailable; no settlement"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"postcode":{"type":"string","description":"UK postcode, e.g. SW1A 2AA"}},"required":["postcode"]},"example":{"postcode":"SW1A 2AA"}}}}}},"/v1/agent/a2a-card":{"get":{"operationId":"a2a_card_check","summary":"A2A Agent Card Check","description":"Fetch and validate a peer agent's A2A Agent Card (v1.0 / v0.3): fields, skills, interfaces, auth, signature, reachability. Score 0-100 + issues.","parameters":[{"name":"url","in":"query","required":true,"schema":{"type":"string","description":"Agent base URL/domain or direct card URL, e.g. https://sabli.app"},"example":"https://sabli.app"}],"x-payment-info":{"protocol":"x402","version":2,"network":"eip155:8453","payTo":"0xe414aD5c7542CE63D890526f0e2133ff8da6F22D","price":"$0.01","currency":"USDC"},"responses":{"200":{"description":"Successful result after verified payment. Scores are indicative, not certifications.","content":{"application/json":{"schema":{"type":"object","required":["service","data"],"properties":{"service":{"const":"a2a_card_check"},"data":{"type":"object"}}},"example":{"service":"a2a_card_check","data":{"card_url":"https://sabli.app/.well-known/agent-card.json","found":true,"card_flavour":"v0.3","protocol_version":"0.3.0","name":"Sabli","agent_version":"1.0.0","provider":"Sabli","skills_count":21,"skills":["list_minds","role:researcher"],"interfaces":[{"url":"https://sabli.app/api/a2a","binding":"JSONRPC","version":"0.3.0"}],"auth_schemes":["sabli_key","sabli_oauth"],"signed":false,"capabilities":{"streaming":false,"pushNotifications":false,"stateTransitionHistory":false},"interface_probe":{"url":"https://sabli.app/api/a2a","status":405,"latency_ms":178,"reachable":true},"fetch_latency_ms":445,"score":95,"grade":"A","verdict":"conformant","issues":[],"warnings":["card_not_signed (A2A 1.0 Signed Agent Card absent)"],"checked":[{"url":"https://sabli.app/.well-known/agent-card.json","status":200,"content_type":"application/json"}],"generated_at":"2026-10-23T10:03:30Z","price_usd":0.01,"billing_unit":"card check","sources":[{"name":"A2A Protocol specification (Linux Foundation)","url":"https://a2a-protocol.org/latest/specification","licence":"Apache-2.0 specification"},{"name":"Model Context Protocol specification","url":"https://modelcontextprotocol.io/specification","licence":"Open specification (MIT)"}]}}}}},"400":{"description":"Invalid request; no settlement"},"402":{"description":"Payment required; same x402 v2 offer in JSON body and PAYMENT-REQUIRED header","content":{"application/json":{"schema":{"type":"object","required":["x402Version","accepts"],"properties":{"x402Version":{"const":2},"accepts":{"type":"array","items":{"type":"object"}}}}}}},"502":{"description":"Upstream unavailable; no settlement"}}},"post":{"operationId":"a2a_card_check_post","summary":"A2A Agent Card Check","description":"Fetch and validate a peer agent's A2A Agent Card (v1.0 / v0.3): fields, skills, interfaces, auth, signature, reachability. Score 0-100 + issues. Also accepts POST with the same parameters as a JSON body.","x-payment-info":{"protocol":"x402","version":2,"network":"eip155:8453","payTo":"0xe414aD5c7542CE63D890526f0e2133ff8da6F22D","price":"$0.01","currency":"USDC"},"responses":{"200":{"description":"Successful result after verified payment. Scores are indicative, not certifications.","content":{"application/json":{"schema":{"type":"object","required":["service","data"],"properties":{"service":{"const":"a2a_card_check"},"data":{"type":"object"}}},"example":{"service":"a2a_card_check","data":{"card_url":"https://sabli.app/.well-known/agent-card.json","found":true,"card_flavour":"v0.3","protocol_version":"0.3.0","name":"Sabli","agent_version":"1.0.0","provider":"Sabli","skills_count":21,"skills":["list_minds","role:researcher"],"interfaces":[{"url":"https://sabli.app/api/a2a","binding":"JSONRPC","version":"0.3.0"}],"auth_schemes":["sabli_key","sabli_oauth"],"signed":false,"capabilities":{"streaming":false,"pushNotifications":false,"stateTransitionHistory":false},"interface_probe":{"url":"https://sabli.app/api/a2a","status":405,"latency_ms":178,"reachable":true},"fetch_latency_ms":445,"score":95,"grade":"A","verdict":"conformant","issues":[],"warnings":["card_not_signed (A2A 1.0 Signed Agent Card absent)"],"checked":[{"url":"https://sabli.app/.well-known/agent-card.json","status":200,"content_type":"application/json"}],"generated_at":"2026-10-23T10:03:30Z","price_usd":0.01,"billing_unit":"card check","sources":[{"name":"A2A Protocol specification (Linux Foundation)","url":"https://a2a-protocol.org/latest/specification","licence":"Apache-2.0 specification"},{"name":"Model Context Protocol specification","url":"https://modelcontextprotocol.io/specification","licence":"Open specification (MIT)"}]}}}}},"400":{"description":"Invalid request; no settlement"},"402":{"description":"Payment required; same x402 v2 offer in JSON body and PAYMENT-REQUIRED header","content":{"application/json":{"schema":{"type":"object","required":["x402Version","accepts"],"properties":{"x402Version":{"const":2},"accepts":{"type":"array","items":{"type":"object"}}}}}}},"502":{"description":"Upstream unavailable; no settlement"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","description":"Agent base URL/domain or direct card URL, e.g. https://sabli.app"}},"required":["url"]},"example":{"url":"https://sabli.app"}}}}}},"/v1/agent/mcp-probe":{"get":{"operationId":"mcp_probe","summary":"MCP Server Probe","description":"Real MCP Streamable HTTP handshake (initialize + tools/list, no tool call): reachability, protocol version, tools, schemas, latency, OAuth metadata.","parameters":[{"name":"url","in":"query","required":true,"schema":{"type":"string","description":"Remote MCP endpoint, e.g. https://mcp.deepwiki.com/mcp"},"example":"https://mcp.deepwiki.com/mcp"}],"x-payment-info":{"protocol":"x402","version":2,"network":"eip155:8453","payTo":"0xe414aD5c7542CE63D890526f0e2133ff8da6F22D","price":"$0.01","currency":"USDC"},"responses":{"200":{"description":"Successful result after verified payment. Scores are indicative, not certifications.","content":{"application/json":{"schema":{"type":"object","required":["service","data"],"properties":{"service":{"const":"mcp_probe"},"data":{"type":"object"}}},"example":{"service":"mcp_probe","data":{"url":"https://mcp.deepwiki.com/mcp","reachable":true,"auth_required":false,"issues":[],"warnings":[],"initialize_latency_ms":502,"http_status":200,"protocol_version":"2025-06-18","server_info":{"name":"DeepWiki","version":"2.14.3"},"capabilities":["experimental","prompts"],"has_instructions":true,"transport":"streamable_http","session_id_issued":false,"tools_list_latency_ms":170,"tools_count":3,"tools":["ask_wiki_question","read_wiki_contents"],"score":100,"verdict":"healthy","generated_at":"2026-10-23T10:03:31Z","price_usd":0.01,"billing_unit":"server probe","sources":[{"name":"A2A Protocol specification (Linux Foundation)","url":"https://a2a-protocol.org/latest/specification","licence":"Apache-2.0 specification"},{"name":"Model Context Protocol specification","url":"https://modelcontextprotocol.io/specification","licence":"Open specification (MIT)"}],"response_time_ms":850}}}}},"400":{"description":"Invalid request; no settlement"},"402":{"description":"Payment required; same x402 v2 offer in JSON body and PAYMENT-REQUIRED header","content":{"application/json":{"schema":{"type":"object","required":["x402Version","accepts"],"properties":{"x402Version":{"const":2},"accepts":{"type":"array","items":{"type":"object"}}}}}}},"502":{"description":"Upstream unavailable; no settlement"}}},"post":{"operationId":"mcp_probe_post","summary":"MCP Server Probe","description":"Real MCP Streamable HTTP handshake (initialize + tools/list, no tool call): reachability, protocol version, tools, schemas, latency, OAuth metadata. Also accepts POST with the same parameters as a JSON body.","x-payment-info":{"protocol":"x402","version":2,"network":"eip155:8453","payTo":"0xe414aD5c7542CE63D890526f0e2133ff8da6F22D","price":"$0.01","currency":"USDC"},"responses":{"200":{"description":"Successful result after verified payment. Scores are indicative, not certifications.","content":{"application/json":{"schema":{"type":"object","required":["service","data"],"properties":{"service":{"const":"mcp_probe"},"data":{"type":"object"}}},"example":{"service":"mcp_probe","data":{"url":"https://mcp.deepwiki.com/mcp","reachable":true,"auth_required":false,"issues":[],"warnings":[],"initialize_latency_ms":502,"http_status":200,"protocol_version":"2025-06-18","server_info":{"name":"DeepWiki","version":"2.14.3"},"capabilities":["experimental","prompts"],"has_instructions":true,"transport":"streamable_http","session_id_issued":false,"tools_list_latency_ms":170,"tools_count":3,"tools":["ask_wiki_question","read_wiki_contents"],"score":100,"verdict":"healthy","generated_at":"2026-10-23T10:03:31Z","price_usd":0.01,"billing_unit":"server probe","sources":[{"name":"A2A Protocol specification (Linux Foundation)","url":"https://a2a-protocol.org/latest/specification","licence":"Apache-2.0 specification"},{"name":"Model Context Protocol specification","url":"https://modelcontextprotocol.io/specification","licence":"Open specification (MIT)"}],"response_time_ms":850}}}}},"400":{"description":"Invalid request; no settlement"},"402":{"description":"Payment required; same x402 v2 offer in JSON body and PAYMENT-REQUIRED header","content":{"application/json":{"schema":{"type":"object","required":["x402Version","accepts"],"properties":{"x402Version":{"const":2},"accepts":{"type":"array","items":{"type":"object"}}}}}}},"502":{"description":"Upstream unavailable; no settlement"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","description":"Remote MCP endpoint, e.g. https://mcp.deepwiki.com/mcp"}},"required":["url"]},"example":{"url":"https://mcp.deepwiki.com/mcp"}}}}}},"/v1/agent/x402-probe":{"get":{"operationId":"x402_probe","summary":"x402 Endpoint Probe","description":"Pre-payment check of an x402 endpoint: one unpaid request, decodes the 402 offer (v1/v2): network, USDC or not, USD price, payTo, testnet, red flags.","parameters":[{"name":"url","in":"query","required":true,"schema":{"type":"string","description":"Paid endpoint URL"},"example":"https://www.x402financialdata.com/producer-prices"},{"name":"method","in":"query","required":false,"schema":{"type":"string","default":"GET","enum":["GET","POST"],"description":"HTTP method the endpoint expects (default GET)"}}],"x-payment-info":{"protocol":"x402","version":2,"network":"eip155:8453","payTo":"0xe414aD5c7542CE63D890526f0e2133ff8da6F22D","price":"$0.01","currency":"USDC"},"responses":{"200":{"description":"Successful result after verified payment. Scores are indicative, not certifications.","content":{"application/json":{"schema":{"type":"object","required":["service","data"],"properties":{"service":{"const":"x402_probe"},"data":{"type":"object"}}},"example":{"service":"x402_probe","data":{"url":"https://www.x402financialdata.com/producer-prices","method":"GET","issues":[],"warnings":[],"latency_ms":148,"http_status":402,"reachable":true,"is_x402":true,"x402_format":"v2_header","x402_version":2,"service_name":"US Producer Price Index (PPI)","description":"US Producer Price Index (PPI) in one call, live from FRED: headline Final Demand PPI and core PPI (ex food & energy), both YoY -- a leading inflation indicat...","offers":[{"scheme":"exact","network":"eip155:8453","testnet":false,"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","asset_is_known_usdc":true,"amount_atomic":"10000","price_usd":0.01,"pay_to":"0xe4181c7de066959bcca010525304ba68a84768e0","resource":null,"description":"US Producer Price Index (PPI) in one call, live from FRED: headline Final Demand PPI and core PPI (ex food & energy), both YoY -- a leading inflation indicat...","has_output_schema":false,"max_timeout_s":300},{"scheme":"exact","network":"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp","testnet":false,"asset":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","asset_is_known_usdc":true,"amount_atomic":"10000","price_usd":0.01,"pay_to":"GJ1fu5pi1WaMHWy9nR1Fh67FEtrWXKrY2Ud6fdGbq33b","resource":null,"description":"US Producer Price Index (PPI) in one call, live from FRED: headline Final Demand PPI and core PPI (ex food & energy), both YoY -- a leading inflation indicat...","has_output_schema":false,"max_timeout_s":300}],"cheapest_price_usd":0.01,"https":true,"score":100,"verdict":"payable_looks_safe","note":"Static pre-payment check: no payment made. It does not prove the paid response is good.","generated_at":"2026-10-23T10:03:31Z","price_usd":0.01,"billing_unit":"endpoint probe","sources":[{"name":"A2A Protocol specification (Linux Foundation)","url":"https://a2a-protocol.org/latest/specification","licence":"Apache-2.0 specification"},{"name":"Model Context Protocol specification","url":"https://modelcontextprotocol.io/specification","licence":"Open specification (MIT)"}],"response_time_ms":205}}}}},"400":{"description":"Invalid request; no settlement"},"402":{"description":"Payment required; same x402 v2 offer in JSON body and PAYMENT-REQUIRED header","content":{"application/json":{"schema":{"type":"object","required":["x402Version","accepts"],"properties":{"x402Version":{"const":2},"accepts":{"type":"array","items":{"type":"object"}}}}}}},"502":{"description":"Upstream unavailable; no settlement"}}},"post":{"operationId":"x402_probe_post","summary":"x402 Endpoint Probe","description":"Pre-payment check of an x402 endpoint: one unpaid request, decodes the 402 offer (v1/v2): network, USDC or not, USD price, payTo, testnet, red flags. Also accepts POST with the same parameters as a JSON body.","x-payment-info":{"protocol":"x402","version":2,"network":"eip155:8453","payTo":"0xe414aD5c7542CE63D890526f0e2133ff8da6F22D","price":"$0.01","currency":"USDC"},"responses":{"200":{"description":"Successful result after verified payment. Scores are indicative, not certifications.","content":{"application/json":{"schema":{"type":"object","required":["service","data"],"properties":{"service":{"const":"x402_probe"},"data":{"type":"object"}}},"example":{"service":"x402_probe","data":{"url":"https://www.x402financialdata.com/producer-prices","method":"GET","issues":[],"warnings":[],"latency_ms":148,"http_status":402,"reachable":true,"is_x402":true,"x402_format":"v2_header","x402_version":2,"service_name":"US Producer Price Index (PPI)","description":"US Producer Price Index (PPI) in one call, live from FRED: headline Final Demand PPI and core PPI (ex food & energy), both YoY -- a leading inflation indicat...","offers":[{"scheme":"exact","network":"eip155:8453","testnet":false,"asset":"0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913","asset_is_known_usdc":true,"amount_atomic":"10000","price_usd":0.01,"pay_to":"0xe4181c7de066959bcca010525304ba68a84768e0","resource":null,"description":"US Producer Price Index (PPI) in one call, live from FRED: headline Final Demand PPI and core PPI (ex food & energy), both YoY -- a leading inflation indicat...","has_output_schema":false,"max_timeout_s":300},{"scheme":"exact","network":"solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp","testnet":false,"asset":"EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v","asset_is_known_usdc":true,"amount_atomic":"10000","price_usd":0.01,"pay_to":"GJ1fu5pi1WaMHWy9nR1Fh67FEtrWXKrY2Ud6fdGbq33b","resource":null,"description":"US Producer Price Index (PPI) in one call, live from FRED: headline Final Demand PPI and core PPI (ex food & energy), both YoY -- a leading inflation indicat...","has_output_schema":false,"max_timeout_s":300}],"cheapest_price_usd":0.01,"https":true,"score":100,"verdict":"payable_looks_safe","note":"Static pre-payment check: no payment made. It does not prove the paid response is good.","generated_at":"2026-10-23T10:03:31Z","price_usd":0.01,"billing_unit":"endpoint probe","sources":[{"name":"A2A Protocol specification (Linux Foundation)","url":"https://a2a-protocol.org/latest/specification","licence":"Apache-2.0 specification"},{"name":"Model Context Protocol specification","url":"https://modelcontextprotocol.io/specification","licence":"Open specification (MIT)"}],"response_time_ms":205}}}}},"400":{"description":"Invalid request; no settlement"},"402":{"description":"Payment required; same x402 v2 offer in JSON body and PAYMENT-REQUIRED header","content":{"application/json":{"schema":{"type":"object","required":["x402Version","accepts"],"properties":{"x402Version":{"const":2},"accepts":{"type":"array","items":{"type":"object"}}}}}}},"502":{"description":"Upstream unavailable; no settlement"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","description":"Paid endpoint URL"},"method":{"type":"string","default":"GET","enum":["GET","POST"],"description":"HTTP method the endpoint expects (default GET)"}},"required":["url"]},"example":{"url":"https://www.x402financialdata.com/producer-prices"}}}}}},"/v1/agent/ready-score":{"get":{"operationId":"agent_ready_score","summary":"Agent-Ready Score","description":"Agent-ready score 0-100 (A-F) of a website or API: AI-bot access, llms.txt, A2A agent card, MCP manifest, x402 discovery, OpenAPI and agentic-commerce markup, with fixes ranked by impact.","parameters":[{"name":"url","in":"query","required":true,"schema":{"type":"string","description":"Site or API base URL (files also looked up under its path)"},"example":"https://gogeta2-u35175.vm.elestio.app/agents"}],"x-payment-info":{"protocol":"x402","version":2,"network":"eip155:8453","payTo":"0xe414aD5c7542CE63D890526f0e2133ff8da6F22D","price":"$0.05","currency":"USDC"},"responses":{"200":{"description":"Successful result after verified payment. Scores are indicative, not certifications.","content":{"application/json":{"schema":{"type":"object","required":["service","data"],"properties":{"service":{"const":"agent_ready_score"},"data":{"type":"object"}}},"example":{"service":"agent_ready_score","data":{"url":"https://gogeta2-u35175.vm.elestio.app/agents","score":73,"grade":"B","score_is_partial":false,"verdict":"agent_ready","components":"(truncated)","fixes":["Improve AI visibility (no-JS text, schema.org JSON-LD, metadata): run seo ai-visibility for details","Serve the A2A Agent Card at the domain root /.well-known/agent-card.json (strict A2A clients only look there)"],"checked_at":"2026-10-24T23:33:07+00:00","note":"Read-only GET checks of public discovery files (robots.txt respected) plus the AI-visibility audit. A score, not a certification.","pack":{"includes":["geo_ai_visibility","a2a_card_check"],"price_usd":0.05}}}}}},"400":{"description":"Invalid request; no settlement"},"402":{"description":"Payment required; same x402 v2 offer in JSON body and PAYMENT-REQUIRED header","content":{"application/json":{"schema":{"type":"object","required":["x402Version","accepts"],"properties":{"x402Version":{"const":2},"accepts":{"type":"array","items":{"type":"object"}}}}}}},"502":{"description":"Upstream unavailable; no settlement"}}},"post":{"operationId":"agent_ready_score_post","summary":"Agent-Ready Score","description":"Agent-ready score 0-100 (A-F) of a website or API: AI-bot access, llms.txt, A2A agent card, MCP manifest, x402 discovery, OpenAPI and agentic-commerce markup, with fixes ranked by impact. Also accepts POST with the same parameters as a JSON body.","x-payment-info":{"protocol":"x402","version":2,"network":"eip155:8453","payTo":"0xe414aD5c7542CE63D890526f0e2133ff8da6F22D","price":"$0.05","currency":"USDC"},"responses":{"200":{"description":"Successful result after verified payment. Scores are indicative, not certifications.","content":{"application/json":{"schema":{"type":"object","required":["service","data"],"properties":{"service":{"const":"agent_ready_score"},"data":{"type":"object"}}},"example":{"service":"agent_ready_score","data":{"url":"https://gogeta2-u35175.vm.elestio.app/agents","score":73,"grade":"B","score_is_partial":false,"verdict":"agent_ready","components":"(truncated)","fixes":["Improve AI visibility (no-JS text, schema.org JSON-LD, metadata): run seo ai-visibility for details","Serve the A2A Agent Card at the domain root /.well-known/agent-card.json (strict A2A clients only look there)"],"checked_at":"2026-10-24T23:33:07+00:00","note":"Read-only GET checks of public discovery files (robots.txt respected) plus the AI-visibility audit. A score, not a certification.","pack":{"includes":["geo_ai_visibility","a2a_card_check"],"price_usd":0.05}}}}}},"400":{"description":"Invalid request; no settlement"},"402":{"description":"Payment required; same x402 v2 offer in JSON body and PAYMENT-REQUIRED header","content":{"application/json":{"schema":{"type":"object","required":["x402Version","accepts"],"properties":{"x402Version":{"const":2},"accepts":{"type":"array","items":{"type":"object"}}}}}}},"502":{"description":"Upstream unavailable; no settlement"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","description":"Site or API base URL (files also looked up under its path)"}},"required":["url"]},"example":{"url":"https://gogeta2-u35175.vm.elestio.app/agents"}}}}}},"/v1/clones/blueprint":{"get":{"operationId":"clone_blueprint","summary":"Clone Blueprint","description":"Architecture plan + installation checklist for one AI-run business: clone=agency (AI sales-agent agency), trading-house (AI B2B trading house) or api-store (API store for AI agents). Components, data flows, build phases, done-when checklist, go-live checks. No source code, no revenue promise. Unknown clone = not charged.","parameters":[{"name":"clone","in":"query","required":true,"schema":{"type":"string","description":"agency | trading-house | api-store"},"example":"api-store"}],"x-payment-info":{"protocol":"x402","version":2,"network":"eip155:8453","payTo":"0xe414aD5c7542CE63D890526f0e2133ff8da6F22D","price":"$49","currency":"USDC"},"responses":{"200":{"description":"Successful result after verified payment. Scores are indicative, not certifications.","content":{"application/json":{"schema":{"type":"object","required":["service","data"],"properties":{"service":{"const":"clone_blueprint"},"data":{"type":"object"}}},"example":{"clone":"agency","title":"AI sales-agent agency (turnkey, resellable under your brand)","components":[{"name":"AI sales rep","role":"Answers inbound prospects on the client's business messaging channel and website chat in s"},{"name":"AI phone receptionist","role":"Picks up the client's phone line, answers common questions, takes appointments in the clie"}],"build_phases":[{"phase":"1. Foundations","days":"1-2"},{"phase":"2. Demo instance","days":"3-5"}],"install_checklist":[{"id":"A1","step":"Business entity, invoicing and a dedicated business phone number ready","done_when":"you can issue an invoice and receive calls on a business lin"},{"id":"A2","step":"Secret store created; no key appears in any workflow, page or log","done_when":"a search of all configs for keys returns nothing"}],"disclaimer":"Architecture plan and checklist, not source code. No revenue promised."}}}},"400":{"description":"Invalid request; no settlement"},"402":{"description":"Payment required; same x402 v2 offer in JSON body and PAYMENT-REQUIRED header","content":{"application/json":{"schema":{"type":"object","required":["x402Version","accepts"],"properties":{"x402Version":{"const":2},"accepts":{"type":"array","items":{"type":"object"}}}}}}},"502":{"description":"Upstream unavailable; no settlement"}}},"post":{"operationId":"clone_blueprint_post","summary":"Clone Blueprint","description":"Architecture plan + installation checklist for one AI-run business: clone=agency (AI sales-agent agency), trading-house (AI B2B trading house) or api-store (API store for AI agents). Components, data flows, build phases, done-when checklist, go-live checks. No source code, no revenue promise. Unknown clone = not charged. Also accepts POST with the same parameters as a JSON body.","x-payment-info":{"protocol":"x402","version":2,"network":"eip155:8453","payTo":"0xe414aD5c7542CE63D890526f0e2133ff8da6F22D","price":"$49","currency":"USDC"},"responses":{"200":{"description":"Successful result after verified payment. Scores are indicative, not certifications.","content":{"application/json":{"schema":{"type":"object","required":["service","data"],"properties":{"service":{"const":"clone_blueprint"},"data":{"type":"object"}}},"example":{"clone":"agency","title":"AI sales-agent agency (turnkey, resellable under your brand)","components":[{"name":"AI sales rep","role":"Answers inbound prospects on the client's business messaging channel and website chat in s"},{"name":"AI phone receptionist","role":"Picks up the client's phone line, answers common questions, takes appointments in the clie"}],"build_phases":[{"phase":"1. Foundations","days":"1-2"},{"phase":"2. Demo instance","days":"3-5"}],"install_checklist":[{"id":"A1","step":"Business entity, invoicing and a dedicated business phone number ready","done_when":"you can issue an invoice and receive calls on a business lin"},{"id":"A2","step":"Secret store created; no key appears in any workflow, page or log","done_when":"a search of all configs for keys returns nothing"}],"disclaimer":"Architecture plan and checklist, not source code. No revenue promised."}}}},"400":{"description":"Invalid request; no settlement"},"402":{"description":"Payment required; same x402 v2 offer in JSON body and PAYMENT-REQUIRED header","content":{"application/json":{"schema":{"type":"object","required":["x402Version","accepts"],"properties":{"x402Version":{"const":2},"accepts":{"type":"array","items":{"type":"object"}}}}}}},"502":{"description":"Upstream unavailable; no settlement"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"clone":{"type":"string","description":"agency | trading-house | api-store"}},"required":["clone"]},"example":{"clone":"api-store"}}}}}},"/v1/email/check":{"get":{"operationId":"email_check","summary":"Email Address Validator","description":"Validate one email address without sending mail: syntax, MX, disposable, free webmail, role account, SPF/DMARC. Returns deliverable/risky/undeliverable/invalid with score.","parameters":[{"name":"email","in":"query","required":true,"schema":{"type":"string","description":"Email address to check"},"example":"sales@stripe.com"}],"x-payment-info":{"protocol":"x402","version":2,"network":"eip155:8453","payTo":"0xe414aD5c7542CE63D890526f0e2133ff8da6F22D","price":"$0.003","currency":"USDC"},"responses":{"200":{"description":"Successful result after verified payment. Scores are indicative, not certifications.","content":{"application/json":{"schema":{"type":"object","required":["service","data"],"properties":{"service":{"const":"email_check"},"data":{"type":"object"}}},"example":{"service":"email_check","data":{"email":"sales@stripe.com","normalized":"sales@stripe.com","verdict":"deliverable","score":85,"reasons":["role_account"],"syntax_valid":true,"domain":"stripe.com","disposable":false,"free_provider":false,"role_account":true,"mx_found":true,"mx":[{"priority":10,"host":"aspmx.l.google.com"},{"priority":20,"host":"alt1.aspmx.l.google.com"}],"mail_provider":"Google Workspace / Gmail","spf":true,"dmarc_policy":"reject","mailbox_verified":false,"note":"No SMTP probe is performed: the domain can receive mail, the individual mailbox is not verified.","disposable_list_size":9917,"generated_at":"2026-10-23T10:03:31Z","price_usd":0.003,"billing_unit":"address checked","sources":[{"name":"Public DNS (MX, TXT records)","url":"https://www.rfc-editor.org/rfc/rfc7208","licence":"Public DNS data queried live"},{"name":"RDAP (domain registration data)","url":"https://rdap.org","licence":"Public registry data (RFC 9083)"}],"response_time_ms":201}}}}},"400":{"description":"Invalid request; no settlement"},"402":{"description":"Payment required; same x402 v2 offer in JSON body and PAYMENT-REQUIRED header","content":{"application/json":{"schema":{"type":"object","required":["x402Version","accepts"],"properties":{"x402Version":{"const":2},"accepts":{"type":"array","items":{"type":"object"}}}}}}},"502":{"description":"Upstream unavailable; no settlement"}}},"post":{"operationId":"email_check_post","summary":"Email Address Validator","description":"Validate one email address without sending mail: syntax, MX, disposable, free webmail, role account, SPF/DMARC. Returns deliverable/risky/undeliverable/invalid with score. Also accepts POST with the same parameters as a JSON body.","x-payment-info":{"protocol":"x402","version":2,"network":"eip155:8453","payTo":"0xe414aD5c7542CE63D890526f0e2133ff8da6F22D","price":"$0.003","currency":"USDC"},"responses":{"200":{"description":"Successful result after verified payment. Scores are indicative, not certifications.","content":{"application/json":{"schema":{"type":"object","required":["service","data"],"properties":{"service":{"const":"email_check"},"data":{"type":"object"}}},"example":{"service":"email_check","data":{"email":"sales@stripe.com","normalized":"sales@stripe.com","verdict":"deliverable","score":85,"reasons":["role_account"],"syntax_valid":true,"domain":"stripe.com","disposable":false,"free_provider":false,"role_account":true,"mx_found":true,"mx":[{"priority":10,"host":"aspmx.l.google.com"},{"priority":20,"host":"alt1.aspmx.l.google.com"}],"mail_provider":"Google Workspace / Gmail","spf":true,"dmarc_policy":"reject","mailbox_verified":false,"note":"No SMTP probe is performed: the domain can receive mail, the individual mailbox is not verified.","disposable_list_size":9917,"generated_at":"2026-10-23T10:03:31Z","price_usd":0.003,"billing_unit":"address checked","sources":[{"name":"Public DNS (MX, TXT records)","url":"https://www.rfc-editor.org/rfc/rfc7208","licence":"Public DNS data queried live"},{"name":"RDAP (domain registration data)","url":"https://rdap.org","licence":"Public registry data (RFC 9083)"}],"response_time_ms":201}}}}},"400":{"description":"Invalid request; no settlement"},"402":{"description":"Payment required; same x402 v2 offer in JSON body and PAYMENT-REQUIRED header","content":{"application/json":{"schema":{"type":"object","required":["x402Version","accepts"],"properties":{"x402Version":{"const":2},"accepts":{"type":"array","items":{"type":"object"}}}}}}},"502":{"description":"Upstream unavailable; no settlement"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"email":{"type":"string","description":"Email address to check"}},"required":["email"]},"example":{"email":"sales@stripe.com"}}}}}},"/v1/email/domain-health":{"get":{"operationId":"domain_email_health","summary":"Domain Email Auth Audit","description":"Audit a domain's email authentication: MX, SPF, DMARC, DKIM (20 selectors), MTA-STS, TLS-RPT, BIMI and domain age. Returns an A-F grade with concrete fixes.","parameters":[{"name":"domain","in":"query","required":true,"schema":{"type":"string","description":"Domain, e.g. example.com (URL accepted)"},"example":"stripe.com"}],"x-payment-info":{"protocol":"x402","version":2,"network":"eip155:8453","payTo":"0xe414aD5c7542CE63D890526f0e2133ff8da6F22D","price":"$0.01","currency":"USDC"},"responses":{"200":{"description":"Successful result after verified payment. Scores are indicative, not certifications.","content":{"application/json":{"schema":{"type":"object","required":["service","data"],"properties":{"service":{"const":"domain_email_health"},"data":{"type":"object"}}},"example":{"service":"domain_email_health","data":{"domain":"stripe.com","score":90,"grade":"A","mail_provider":"Google Workspace / Gmail","mx":[{"priority":10,"host":"aspmx.l.google.com"},{"priority":20,"host":"alt2.aspmx.l.google.com"}],"null_mx":false,"checks":{"accepts_mail":true,"spf":true,"dmarc":true,"dkim_selectors_found":["google","s1"],"mta_sts":false,"tls_rpt":false,"bimi":false},"spf":{"record":"v=spf1 ip4:198.2.180.60/32 ip4:13.111.2.227/32 include:spf1.stripe.com include:greenhouse-outbound-mail.stripe.com include:_spf.qualtrics.com ~all","all":"~all","dns_lookup_mechanisms":3,"records":1},"dmarc":{"record":"v=DMARC1; p=reject; pct=100; fo=1; rua=mailto:dmarc-reports@stripe.com; ruf=mailto:dmarc-forensics@stripe.com;","policy":"reject","subdomain_policy":null,"pct":100,"aggregate_reports":true},"registration":{"created":"1995-09-12","age_days":11364,"registrar":"SafeNames Ltd."},"disposable":false,"risk_signals":[],"recommendations":[],"note":"DKIM is checked on common selectors only; a custom selector can exist without being detected.","generated_at":"2026-10-23T10:03:31Z","price_usd":0.01,"billing_unit":"domain audit","sources":[{"name":"Public DNS (MX, TXT records)","url":"https://www.rfc-editor.org/rfc/rfc7208","licence":"Public DNS data queried live"},{"name":"RDAP (domain registration data)","url":"https://rdap.org","licence":"Public registry data (RFC 9083)"}],"response_time_ms":352}}}}},"400":{"description":"Invalid request; no settlement"},"402":{"description":"Payment required; same x402 v2 offer in JSON body and PAYMENT-REQUIRED header","content":{"application/json":{"schema":{"type":"object","required":["x402Version","accepts"],"properties":{"x402Version":{"const":2},"accepts":{"type":"array","items":{"type":"object"}}}}}}},"502":{"description":"Upstream unavailable; no settlement"}}},"post":{"operationId":"domain_email_health_post","summary":"Domain Email Auth Audit","description":"Audit a domain's email authentication: MX, SPF, DMARC, DKIM (20 selectors), MTA-STS, TLS-RPT, BIMI and domain age. Returns an A-F grade with concrete fixes. Also accepts POST with the same parameters as a JSON body.","x-payment-info":{"protocol":"x402","version":2,"network":"eip155:8453","payTo":"0xe414aD5c7542CE63D890526f0e2133ff8da6F22D","price":"$0.01","currency":"USDC"},"responses":{"200":{"description":"Successful result after verified payment. Scores are indicative, not certifications.","content":{"application/json":{"schema":{"type":"object","required":["service","data"],"properties":{"service":{"const":"domain_email_health"},"data":{"type":"object"}}},"example":{"service":"domain_email_health","data":{"domain":"stripe.com","score":90,"grade":"A","mail_provider":"Google Workspace / Gmail","mx":[{"priority":10,"host":"aspmx.l.google.com"},{"priority":20,"host":"alt2.aspmx.l.google.com"}],"null_mx":false,"checks":{"accepts_mail":true,"spf":true,"dmarc":true,"dkim_selectors_found":["google","s1"],"mta_sts":false,"tls_rpt":false,"bimi":false},"spf":{"record":"v=spf1 ip4:198.2.180.60/32 ip4:13.111.2.227/32 include:spf1.stripe.com include:greenhouse-outbound-mail.stripe.com include:_spf.qualtrics.com ~all","all":"~all","dns_lookup_mechanisms":3,"records":1},"dmarc":{"record":"v=DMARC1; p=reject; pct=100; fo=1; rua=mailto:dmarc-reports@stripe.com; ruf=mailto:dmarc-forensics@stripe.com;","policy":"reject","subdomain_policy":null,"pct":100,"aggregate_reports":true},"registration":{"created":"1995-09-12","age_days":11364,"registrar":"SafeNames Ltd."},"disposable":false,"risk_signals":[],"recommendations":[],"note":"DKIM is checked on common selectors only; a custom selector can exist without being detected.","generated_at":"2026-10-23T10:03:31Z","price_usd":0.01,"billing_unit":"domain audit","sources":[{"name":"Public DNS (MX, TXT records)","url":"https://www.rfc-editor.org/rfc/rfc7208","licence":"Public DNS data queried live"},{"name":"RDAP (domain registration data)","url":"https://rdap.org","licence":"Public registry data (RFC 9083)"}],"response_time_ms":352}}}}},"400":{"description":"Invalid request; no settlement"},"402":{"description":"Payment required; same x402 v2 offer in JSON body and PAYMENT-REQUIRED header","content":{"application/json":{"schema":{"type":"object","required":["x402Version","accepts"],"properties":{"x402Version":{"const":2},"accepts":{"type":"array","items":{"type":"object"}}}}}}},"502":{"description":"Upstream unavailable; no settlement"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"domain":{"type":"string","description":"Domain, e.g. example.com (URL accepted)"}},"required":["domain"]},"example":{"domain":"stripe.com"}}}}}},"/v1/escrow/evaluate":{"get":{"operationId":"evaluate_deliverable","summary":"Escrow Evaluator","description":"Evaluate a deliverable (text, JSON or URL) against a job spec (free text or JSON criteria): verdict pass/partial/fail, score, checked criteria, and a signed EIP-712 attestation whose digest is the ERC-8183 complete/reject reason. No funds held.","parameters":[{"name":"spec","in":"query","required":true,"schema":{"type":"string","description":"Job spec: free text with measurable requirements, or JSON {\"criteria\":[{\"type\":\"min_words\",\"value\":300},...]}"},"example":"Write a product description in English of at least 40 words. It must mention \"waterproof\" and \"lightweight\". Include a title."},{"name":"deliverable","in":"query","required":true,"schema":{"type":"string","description":"Deliverable text or JSON, or a public URL to fetch"},"example":"# TrailLite Jacket\n\nThe TrailLite is a waterproof, lightweight shell built for hikers who move fast. It packs into its own pocket, weighs 280 g and keeps you dry in sudden storms. The price is $129 with free returns for 30 days, and it comes in four colours for men and women."},{"name":"job_id","in":"query","required":false,"schema":{"type":"string","description":"ERC-8183 jobId (uint256, default 0)"},"example":"42"},{"name":"contract","in":"query","required":false,"schema":{"type":"string","description":"ERC-8183 job contract address (0x…, default zero address)"}},{"name":"chain_id","in":"query","required":false,"schema":{"type":"integer","description":"8453 Base mainnet (default), 84532 Base Sepolia, 1 Ethereum, 11155111 Sepolia"}},{"name":"threshold","in":"query","required":false,"schema":{"type":"integer","minimum":1,"maximum":100,"description":"Pass score (default 80)"}}],"x-payment-info":{"protocol":"x402","version":2,"network":"eip155:8453","payTo":"0xe414aD5c7542CE63D890526f0e2133ff8da6F22D","price":"$0.25","currency":"USDC"},"responses":{"200":{"description":"Successful result after verified payment. Scores are indicative, not certifications.","content":{"application/json":{"schema":{"type":"object","required":["service","data"],"properties":{"service":{"const":"evaluate_deliverable"},"data":{"type":"object"}}},"example":{"service":"evaluate_deliverable","data":{"verdict":"pass","score":100,"threshold":80,"spec_mode":"free_text","criteria_total":4,"criteria_passed":4,"hard_failed":[],"soft_criteria":0,"criteria":[{"id":"c1","type":"min_words","hard":true,"pass":true,"detail":"51 words (>= 40)"},{"id":"c2","type":"language","hard":true,"pass":true,"detail":"detected en"}],"deliverable":{"kind":"text"},"erc8183":{"job_id":"42","reason":"0xfd11f337b7eb0355476e574e663600260fae6ebd5c96778cfe695b70125847d5","recommended_call":"complete(uint256 jobId, bytes32 reason, bytes optParams)","funds_held_by_evaluator":false},"attestation":{"standard":"EIP-712","signer":"0xD999A24d377086a2Fa887491f2986033Bfc3E26C","key":"production","chain_id":8453,"contract":"0x0000000000000000000000000000000000000000","digest":"0xfd11f337b7eb0355476e574e663600260fae6ebd5c96778cfe695b70125847d5","signature":"0x0a818b0a267edfc8b30105a45b73ef30277d8c50273fa93650592b6b8b7253717034322e15ca07c0cea5ea32da282d4911d981622826276fe9f0fe0230bb967e1b","evaluated_at":1792729397,"token":"eyJ0eXBlZF9kYXRhIjp7InR5cGVzIjp7IkVJUDcxMkRvbWFpbiI6W3sibmFtZSI6Im5hbWUiLCJ0eXBlIjoic3RyaW5nIn0seyJuYW1lIjoidmVyc2lvbiIsInR5cGUiOiJzdHJpbmcifSx7Im5hbWUiOiJja..."},"report_hash":"0x80d3f838c661d4fca5a16633d12f37381fb8c58468c4eb21e6deef39d5d8160b","note":"Rule-based evaluation; requirements that rules cannot verify are marked hard=false (soft). No funds held, no transaction sent.","cache":{"hit":true,"age_s":20413},"generated_at":"2026-10-23T10:03:31Z","price_usd":0.25,"billing_unit":"evaluation","sources":[{"name":"ERC-8183 Agentic Commerce (evaluator role, complete/reject reason)","url":"https://eips.ethereum.org/EIPS/eip-8183","licence":"CC0 standard text"},{"name":"EIP-712 typed structured data signing","url":"https://eips.ethereum.org/EIPS/eip-712","licence":"CC0 standard text"}],"response_time_ms":7}}}}},"400":{"description":"Invalid request; no settlement"},"402":{"description":"Payment required; same x402 v2 offer in JSON body and PAYMENT-REQUIRED header","content":{"application/json":{"schema":{"type":"object","required":["x402Version","accepts"],"properties":{"x402Version":{"const":2},"accepts":{"type":"array","items":{"type":"object"}}}}}}},"502":{"description":"Upstream unavailable; no settlement"}}},"post":{"operationId":"evaluate_deliverable_post","summary":"Escrow Evaluator","description":"Evaluate a deliverable (text, JSON or URL) against a job spec (free text or JSON criteria): verdict pass/partial/fail, score, checked criteria, and a signed EIP-712 attestation whose digest is the ERC-8183 complete/reject reason. No funds held. Also accepts POST with the same parameters as a JSON body.","x-payment-info":{"protocol":"x402","version":2,"network":"eip155:8453","payTo":"0xe414aD5c7542CE63D890526f0e2133ff8da6F22D","price":"$0.25","currency":"USDC"},"responses":{"200":{"description":"Successful result after verified payment. Scores are indicative, not certifications.","content":{"application/json":{"schema":{"type":"object","required":["service","data"],"properties":{"service":{"const":"evaluate_deliverable"},"data":{"type":"object"}}},"example":{"service":"evaluate_deliverable","data":{"verdict":"pass","score":100,"threshold":80,"spec_mode":"free_text","criteria_total":4,"criteria_passed":4,"hard_failed":[],"soft_criteria":0,"criteria":[{"id":"c1","type":"min_words","hard":true,"pass":true,"detail":"51 words (>= 40)"},{"id":"c2","type":"language","hard":true,"pass":true,"detail":"detected en"}],"deliverable":{"kind":"text"},"erc8183":{"job_id":"42","reason":"0xfd11f337b7eb0355476e574e663600260fae6ebd5c96778cfe695b70125847d5","recommended_call":"complete(uint256 jobId, bytes32 reason, bytes optParams)","funds_held_by_evaluator":false},"attestation":{"standard":"EIP-712","signer":"0xD999A24d377086a2Fa887491f2986033Bfc3E26C","key":"production","chain_id":8453,"contract":"0x0000000000000000000000000000000000000000","digest":"0xfd11f337b7eb0355476e574e663600260fae6ebd5c96778cfe695b70125847d5","signature":"0x0a818b0a267edfc8b30105a45b73ef30277d8c50273fa93650592b6b8b7253717034322e15ca07c0cea5ea32da282d4911d981622826276fe9f0fe0230bb967e1b","evaluated_at":1792729397,"token":"eyJ0eXBlZF9kYXRhIjp7InR5cGVzIjp7IkVJUDcxMkRvbWFpbiI6W3sibmFtZSI6Im5hbWUiLCJ0eXBlIjoic3RyaW5nIn0seyJuYW1lIjoidmVyc2lvbiIsInR5cGUiOiJzdHJpbmcifSx7Im5hbWUiOiJja..."},"report_hash":"0x80d3f838c661d4fca5a16633d12f37381fb8c58468c4eb21e6deef39d5d8160b","note":"Rule-based evaluation; requirements that rules cannot verify are marked hard=false (soft). No funds held, no transaction sent.","cache":{"hit":true,"age_s":20413},"generated_at":"2026-10-23T10:03:31Z","price_usd":0.25,"billing_unit":"evaluation","sources":[{"name":"ERC-8183 Agentic Commerce (evaluator role, complete/reject reason)","url":"https://eips.ethereum.org/EIPS/eip-8183","licence":"CC0 standard text"},{"name":"EIP-712 typed structured data signing","url":"https://eips.ethereum.org/EIPS/eip-712","licence":"CC0 standard text"}],"response_time_ms":7}}}}},"400":{"description":"Invalid request; no settlement"},"402":{"description":"Payment required; same x402 v2 offer in JSON body and PAYMENT-REQUIRED header","content":{"application/json":{"schema":{"type":"object","required":["x402Version","accepts"],"properties":{"x402Version":{"const":2},"accepts":{"type":"array","items":{"type":"object"}}}}}}},"502":{"description":"Upstream unavailable; no settlement"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"spec":{"type":"string","description":"Job spec: free text with measurable requirements, or JSON {\"criteria\":[{\"type\":\"min_words\",\"value\":300},...]}"},"deliverable":{"type":"string","description":"Deliverable text or JSON, or a public URL to fetch"},"job_id":{"type":"string","description":"ERC-8183 jobId (uint256, default 0)"},"contract":{"type":"string","description":"ERC-8183 job contract address (0x…, default zero address)"},"chain_id":{"type":"integer","description":"8453 Base mainnet (default), 84532 Base Sepolia, 1 Ethereum, 11155111 Sepolia"},"threshold":{"type":"integer","minimum":1,"maximum":100,"description":"Pass score (default 80)"}},"required":["spec","deliverable"]},"example":{"spec":"Write a product description in English of at least 40 words. It must mention \"waterproof\" and \"lightweight\". Include a title.","deliverable":"# TrailLite Jacket\n\nThe TrailLite is a waterproof, lightweight shell built for hikers who move fast. It packs into its own pocket, weighs 280 g and keeps you dry in sudden storms. The price is $129 with free returns for 30 days, and it comes in four colours for men and women.","job_id":"42"}}}}}},"/v1/escrow/verify":{"get":{"operationId":"verify_attestation","summary":"Escrow Attestation Verify","description":"Verify an attestation token issued by evaluate_deliverable: recovers the EIP-712 signer, checks it is our evaluator, returns verdict, score, jobId and the bytes32 reason.","parameters":[{"name":"token","in":"query","required":true,"schema":{"type":"string","description":"attestation.token from evaluate_deliverable"},"example":"eyJ0eXBlZF9kYXRhIjp7InR5cGVzIjp7IkVJUDcxMkRvbWFpbiI6W3sibmFtZSI6Im5hbWUiLCJ0eXBlIjoic3RyaW5nIn0seyJuYW1lIjoidmVyc2lvbiIsInR5cGUiOiJzdHJpbmcifSx7Im5hbWUiOiJjaGFpbklkIiwidHlwZSI6InVpbnQyNTYifSx7Im5hbWUiOiJ2ZXJpZnlpbmdDb250cmFjdCIsInR5cGUiOiJhZGRyZXNzIn1dLCJFdmFsdWF0aW9uQXR0ZXN0YXRpb24iOlt7Im5hbWUiOiJqb2JJZCIsInR5cGUiOiJ1aW50MjU2In0seyJuYW1lIjoic3BlY0hhc2giLCJ0eXBlIjoiYnl0ZXMzMiJ9LHsibmFtZSI6ImRlbGl2ZXJhYmxlSGFzaCIsInR5cGUiOiJieXRlczMyIn0seyJuYW1lIjoidmVyZGljdCIsInR5cGUiOiJ1aW50OCJ9LHsibmFtZSI6InNjb3JlIiwidHlwZSI6InVpbnQ4In0seyJuYW1lIjoicmVwb3J0SGFzaCIsInR5cGUiOiJieXRlczMyIn0seyJuYW1lIjoiZXZhbHVhdGVkQXQiLCJ0eXBlIjoidWludDY0In1dfSwicHJpbWFyeVR5cGUiOiJFdmFsdWF0aW9uQXR0ZXN0YXRpb24iLCJkb21haW4iOnsibmFtZSI6Ik5vdmFyaXRobSBFdmFsdWF0b3IiLCJ2ZXJzaW9uIjoiMSIsImNoYWluSWQiOjg0NTMsInZlcmlmeWluZ0NvbnRyYWN0IjoiMHgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwIn0sIm1lc3NhZ2UiOnsiam9iSWQiOjQyLCJzcGVjSGFzaCI6IjB4N2Q4ZDBiNTcyYTgwODg2NTdhZmYwZTE3MDNlM2E3Njg0MTM4NDQ0YTU2ZTVjMjU3NDc3NTMzNGFhYTJiMjA0ZCIsImRlbGl2ZXJhYmxlSGFzaCI6IjB4MDlkMTliZmRhZWEzZmY0ZmMwZmMxYjk0MWI0MGIzNDA4MGRkYTFjOWU4ODJmMThlNmMyNWYzMWNjNDNjNmRiNSIsInZlcmRpY3QiOjEsInNjb3JlIjoxMDAsInJlcG9ydEhhc2giOiIweDgwZDNmODM4YzY2MWQ0ZmNhNWExNjYzM2QxMmYzNzM4MWZiOGM1ODQ2OGM0ZWIyMWU2ZGVlZjM5ZDVkODE2MGIiLCJldmFsdWF0ZWRBdCI6MTc5MjcyOTM5N319LCJzaWduYXR1cmUiOiIweDBhODE4YjBhMjY3ZWRmYzhiMzAxMDVhNDViNzNlZjMwMjc3ZDhjNTAyNzNmYTkzNjUwNTkyYjZiOGI3MjUzNzE3MDM0MzIyZTE1Y2EwN2MwY2VhNWVhMzJkYTI4MmQ0OTExZDk4MTYyMjgyNjI3NmZlOWYwZmUwMjMwYmI5NjdlMWIifQ"}],"x-payment-info":{"protocol":"x402","version":2,"network":"eip155:8453","payTo":"0xe414aD5c7542CE63D890526f0e2133ff8da6F22D","price":"$0.001","currency":"USDC"},"responses":{"200":{"description":"Successful result after verified payment. Scores are indicative, not certifications.","content":{"application/json":{"schema":{"type":"object","required":["service","data"],"properties":{"service":{"const":"verify_attestation"},"data":{"type":"object"}}},"example":{"service":"verify_attestation","data":{"valid":true,"signer":"0xD999A24d377086a2Fa887491f2986033Bfc3E26C","expected_signer":"0xD999A24d377086a2Fa887491f2986033Bfc3E26C","key":"production","verdict":"pass","score":100,"job_id":"42","chain_id":8453,"contract":"0x0000000000000000000000000000000000000000","reason":"0xfd11f337b7eb0355476e574e663600260fae6ebd5c96778cfe695b70125847d5","evaluated_at":1792729397,"generated_at":"2026-10-23T10:03:31Z","price_usd":0.001,"billing_unit":"verification","sources":[{"name":"ERC-8183 Agentic Commerce (evaluator role, complete/reject reason)","url":"https://eips.ethereum.org/EIPS/eip-8183","licence":"CC0 standard text"},{"name":"EIP-712 typed structured data signing","url":"https://eips.ethereum.org/EIPS/eip-712","licence":"CC0 standard text"}],"response_time_ms":9}}}}},"400":{"description":"Invalid request; no settlement"},"402":{"description":"Payment required; same x402 v2 offer in JSON body and PAYMENT-REQUIRED header","content":{"application/json":{"schema":{"type":"object","required":["x402Version","accepts"],"properties":{"x402Version":{"const":2},"accepts":{"type":"array","items":{"type":"object"}}}}}}},"502":{"description":"Upstream unavailable; no settlement"}}},"post":{"operationId":"verify_attestation_post","summary":"Escrow Attestation Verify","description":"Verify an attestation token issued by evaluate_deliverable: recovers the EIP-712 signer, checks it is our evaluator, returns verdict, score, jobId and the bytes32 reason. Also accepts POST with the same parameters as a JSON body.","x-payment-info":{"protocol":"x402","version":2,"network":"eip155:8453","payTo":"0xe414aD5c7542CE63D890526f0e2133ff8da6F22D","price":"$0.001","currency":"USDC"},"responses":{"200":{"description":"Successful result after verified payment. Scores are indicative, not certifications.","content":{"application/json":{"schema":{"type":"object","required":["service","data"],"properties":{"service":{"const":"verify_attestation"},"data":{"type":"object"}}},"example":{"service":"verify_attestation","data":{"valid":true,"signer":"0xD999A24d377086a2Fa887491f2986033Bfc3E26C","expected_signer":"0xD999A24d377086a2Fa887491f2986033Bfc3E26C","key":"production","verdict":"pass","score":100,"job_id":"42","chain_id":8453,"contract":"0x0000000000000000000000000000000000000000","reason":"0xfd11f337b7eb0355476e574e663600260fae6ebd5c96778cfe695b70125847d5","evaluated_at":1792729397,"generated_at":"2026-10-23T10:03:31Z","price_usd":0.001,"billing_unit":"verification","sources":[{"name":"ERC-8183 Agentic Commerce (evaluator role, complete/reject reason)","url":"https://eips.ethereum.org/EIPS/eip-8183","licence":"CC0 standard text"},{"name":"EIP-712 typed structured data signing","url":"https://eips.ethereum.org/EIPS/eip-712","licence":"CC0 standard text"}],"response_time_ms":9}}}}},"400":{"description":"Invalid request; no settlement"},"402":{"description":"Payment required; same x402 v2 offer in JSON body and PAYMENT-REQUIRED header","content":{"application/json":{"schema":{"type":"object","required":["x402Version","accepts"],"properties":{"x402Version":{"const":2},"accepts":{"type":"array","items":{"type":"object"}}}}}}},"502":{"description":"Upstream unavailable; no settlement"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"token":{"type":"string","description":"attestation.token from evaluate_deliverable"}},"required":["token"]},"example":{"token":"eyJ0eXBlZF9kYXRhIjp7InR5cGVzIjp7IkVJUDcxMkRvbWFpbiI6W3sibmFtZSI6Im5hbWUiLCJ0eXBlIjoic3RyaW5nIn0seyJuYW1lIjoidmVyc2lvbiIsInR5cGUiOiJzdHJpbmcifSx7Im5hbWUiOiJjaGFpbklkIiwidHlwZSI6InVpbnQyNTYifSx7Im5hbWUiOiJ2ZXJpZnlpbmdDb250cmFjdCIsInR5cGUiOiJhZGRyZXNzIn1dLCJFdmFsdWF0aW9uQXR0ZXN0YXRpb24iOlt7Im5hbWUiOiJqb2JJZCIsInR5cGUiOiJ1aW50MjU2In0seyJuYW1lIjoic3BlY0hhc2giLCJ0eXBlIjoiYnl0ZXMzMiJ9LHsibmFtZSI6ImRlbGl2ZXJhYmxlSGFzaCIsInR5cGUiOiJieXRlczMyIn0seyJuYW1lIjoidmVyZGljdCIsInR5cGUiOiJ1aW50OCJ9LHsibmFtZSI6InNjb3JlIiwidHlwZSI6InVpbnQ4In0seyJuYW1lIjoicmVwb3J0SGFzaCIsInR5cGUiOiJieXRlczMyIn0seyJuYW1lIjoiZXZhbHVhdGVkQXQiLCJ0eXBlIjoidWludDY0In1dfSwicHJpbWFyeVR5cGUiOiJFdmFsdWF0aW9uQXR0ZXN0YXRpb24iLCJkb21haW4iOnsibmFtZSI6Ik5vdmFyaXRobSBFdmFsdWF0b3IiLCJ2ZXJzaW9uIjoiMSIsImNoYWluSWQiOjg0NTMsInZlcmlmeWluZ0NvbnRyYWN0IjoiMHgwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwIn0sIm1lc3NhZ2UiOnsiam9iSWQiOjQyLCJzcGVjSGFzaCI6IjB4N2Q4ZDBiNTcyYTgwODg2NTdhZmYwZTE3MDNlM2E3Njg0MTM4NDQ0YTU2ZTVjMjU3NDc3NTMzNGFhYTJiMjA0ZCIsImRlbGl2ZXJhYmxlSGFzaCI6IjB4MDlkMTliZmRhZWEzZmY0ZmMwZmMxYjk0MWI0MGIzNDA4MGRkYTFjOWU4ODJmMThlNmMyNWYzMWNjNDNjNmRiNSIsInZlcmRpY3QiOjEsInNjb3JlIjoxMDAsInJlcG9ydEhhc2giOiIweDgwZDNmODM4YzY2MWQ0ZmNhNWExNjYzM2QxMmYzNzM4MWZiOGM1ODQ2OGM0ZWIyMWU2ZGVlZjM5ZDVkODE2MGIiLCJldmFsdWF0ZWRBdCI6MTc5MjcyOTM5N319LCJzaWduYXR1cmUiOiIweDBhODE4YjBhMjY3ZWRmYzhiMzAxMDVhNDViNzNlZjMwMjc3ZDhjNTAyNzNmYTkzNjUwNTkyYjZiOGI3MjUzNzE3MDM0MzIyZTE1Y2EwN2MwY2VhNWVhMzJkYTI4MmQ0OTExZDk4MTYyMjgyNjI3NmZlOWYwZmUwMjMwYmI5NjdlMWIifQ"}}}}}},"/v1/checkout/eu-ready":{"get":{"operationId":"eu_ready_check","summary":"EU-Ready Pre-Purchase Check","description":"Before buying or selling a product in the EU: Safety Gate alerts (barcode or brand+words), GPSR manufacturer / EU responsible person on the page, seller sanctions (OFAC/UN/EU/UK) and price at the ECB rate, with a ready/review/block decision.","parameters":[{"name":"url","in":"query","required":false,"schema":{"type":"string","description":"Product page URL (optional if gtin or query + seller are given)"},"example":"https://www.allbirds.com/products/mens-tree-runners"},{"name":"gtin","in":"query","required":false,"schema":{"type":"string","description":"EAN/UPC/GTIN barcode for an exact Safety Gate match"}},{"name":"query","in":"query","required":false,"schema":{"type":"string","description":"Product name / brand words when there is no page or barcode"}},{"name":"seller","in":"query","required":false,"schema":{"type":"string","description":"Seller or brand legal name to screen (default: seller found on the page)"}},{"name":"price","in":"query","required":false,"schema":{"type":"number","minimum":0,"description":"Price to convert when there is no page"}},{"name":"currency","in":"query","required":false,"schema":{"type":"string","description":"ISO 4217 currency of price"}},{"name":"to","in":"query","required":false,"schema":{"type":"string","default":"EUR","description":"Target currency (default EUR)"}}],"x-payment-info":{"protocol":"x402","version":2,"network":"eip155:8453","payTo":"0xe414aD5c7542CE63D890526f0e2133ff8da6F22D","price":"$0.12","currency":"USDC"},"responses":{"200":{"description":"Successful result after verified payment. Scores are indicative, not certifications.","content":{"application/json":{"schema":{"type":"object","required":["service","data"],"properties":{"service":{"const":"eu_ready_check"},"data":{"type":"object"}}},"example":{"service":"eu_ready_check","data":{"decision":"ready","reasons":["no_safety_gate_alert_found","gpsr_info_present"],"url":"https://www.jboultdesigns.com/products/shotgun-cartridge-key-fob","page":{"status":"ok","final_url":"https://www.jboultdesigns.com/products/shotgun-cartridge-key-fob","page_latency_ms":919},"product":{"name":"Shotgun Cartridge Key Fob","brand":"J Boult Designs","price":18,"currency":"GBP","seller":"J Boult Designs"},"safety_gate":{"status":"ok","matched_by":null,"alerts":[],"searched":{"gtin":null,"brand":"J Boult Designs","name":"Shotgun Cartridge Key Fob"},"coverage":{"weekly_reports":104,"from":"18/10/2024","to":"23/10/2026","alerts":8781}},"gpsr":{"manufacturer_found":true,"eu_responsible_person_found":true,"contact_found":true,"eu_address_found":false,"status":"present","note":"Text heuristic on the product page: GPSR (EU 2023/988) asks online listings to show the manufacturer, the EU responsible person (when the...","checked_page":"product_page"},"seller_sanctions":{"status":"ok","screened_name":"J Boult Designs","result":"no_match","top_score":null,"matches":[]},"fx":{"status":"ok","from":"GBP","to":"EUR","amount":18,"converted":21.498185,"rate":1.19434359,"rate_date":"2026-10-23","method":"ecb_direct","source":"ECB euro reference rates"},"checked_at":"2026-10-24T05:56:12+00:00"}}}}},"400":{"description":"Invalid request; no settlement"},"402":{"description":"Payment required; same x402 v2 offer in JSON body and PAYMENT-REQUIRED header","content":{"application/json":{"schema":{"type":"object","required":["x402Version","accepts"],"properties":{"x402Version":{"const":2},"accepts":{"type":"array","items":{"type":"object"}}}}}}},"502":{"description":"Upstream unavailable; no settlement"}}},"post":{"operationId":"eu_ready_check_post","summary":"EU-Ready Pre-Purchase Check","description":"Before buying or selling a product in the EU: Safety Gate alerts (barcode or brand+words), GPSR manufacturer / EU responsible person on the page, seller sanctions (OFAC/UN/EU/UK) and price at the ECB rate, with a ready/review/block decision. Also accepts POST with the same parameters as a JSON body.","x-payment-info":{"protocol":"x402","version":2,"network":"eip155:8453","payTo":"0xe414aD5c7542CE63D890526f0e2133ff8da6F22D","price":"$0.12","currency":"USDC"},"responses":{"200":{"description":"Successful result after verified payment. Scores are indicative, not certifications.","content":{"application/json":{"schema":{"type":"object","required":["service","data"],"properties":{"service":{"const":"eu_ready_check"},"data":{"type":"object"}}},"example":{"service":"eu_ready_check","data":{"decision":"ready","reasons":["no_safety_gate_alert_found","gpsr_info_present"],"url":"https://www.jboultdesigns.com/products/shotgun-cartridge-key-fob","page":{"status":"ok","final_url":"https://www.jboultdesigns.com/products/shotgun-cartridge-key-fob","page_latency_ms":919},"product":{"name":"Shotgun Cartridge Key Fob","brand":"J Boult Designs","price":18,"currency":"GBP","seller":"J Boult Designs"},"safety_gate":{"status":"ok","matched_by":null,"alerts":[],"searched":{"gtin":null,"brand":"J Boult Designs","name":"Shotgun Cartridge Key Fob"},"coverage":{"weekly_reports":104,"from":"18/10/2024","to":"23/10/2026","alerts":8781}},"gpsr":{"manufacturer_found":true,"eu_responsible_person_found":true,"contact_found":true,"eu_address_found":false,"status":"present","note":"Text heuristic on the product page: GPSR (EU 2023/988) asks online listings to show the manufacturer, the EU responsible person (when the...","checked_page":"product_page"},"seller_sanctions":{"status":"ok","screened_name":"J Boult Designs","result":"no_match","top_score":null,"matches":[]},"fx":{"status":"ok","from":"GBP","to":"EUR","amount":18,"converted":21.498185,"rate":1.19434359,"rate_date":"2026-10-23","method":"ecb_direct","source":"ECB euro reference rates"},"checked_at":"2026-10-24T05:56:12+00:00"}}}}},"400":{"description":"Invalid request; no settlement"},"402":{"description":"Payment required; same x402 v2 offer in JSON body and PAYMENT-REQUIRED header","content":{"application/json":{"schema":{"type":"object","required":["x402Version","accepts"],"properties":{"x402Version":{"const":2},"accepts":{"type":"array","items":{"type":"object"}}}}}}},"502":{"description":"Upstream unavailable; no settlement"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","description":"Product page URL (optional if gtin or query + seller are given)"},"gtin":{"type":"string","description":"EAN/UPC/GTIN barcode for an exact Safety Gate match"},"query":{"type":"string","description":"Product name / brand words when there is no page or barcode"},"seller":{"type":"string","description":"Seller or brand legal name to screen (default: seller found on the page)"},"price":{"type":"number","minimum":0,"description":"Price to convert when there is no page"},"currency":{"type":"string","description":"ISO 4217 currency of price"},"to":{"type":"string","default":"EUR","description":"Target currency (default EUR)"}}},"example":{"url":"https://www.allbirds.com/products/mens-tree-runners"}}}}}},"/v1/fragrance/authenticity":{"get":{"operationId":"fragrance_check","summary":"Fragrance Listing Risk Check","description":"Risk signals for a fragrance listing: sales channel, price per ml, listing words, seller domain and EU Safety Gate. Does not authenticate a physical bottle. Provide url, or brand and seller_domain.","parameters":[{"name":"url","in":"query","required":false,"schema":{"type":"string","description":"Listing / product page URL"}},{"name":"brand","in":"query","required":false,"schema":{"type":"string","description":"Brand (when no url)"},"example":"Dior"},{"name":"product","in":"query","required":false,"schema":{"type":"string","description":"Product title as listed, e.g. Sauvage EDT 100 ml"},"example":"Synthetic test listing replica 1:1 100 ml"},{"name":"seller_domain","in":"query","required":false,"schema":{"type":"string","description":"Seller website domain (when no url)"},"example":"example.com"},{"name":"price","in":"query","required":false,"schema":{"type":"number","minimum":0,"description":"Listed price"},"example":25},{"name":"currency","in":"query","required":false,"schema":{"type":"string","description":"ISO 4217 currency of price"},"example":"EUR"},{"name":"size_ml","in":"query","required":false,"schema":{"type":"number","minimum":1,"maximum":1000,"description":"Bottle size in ml (else read from the title)"},"example":100},{"name":"batch_code","in":"query","required":false,"schema":{"type":"string","description":"Batch code printed on box/bottle"}}],"x-payment-info":{"protocol":"x402","version":2,"network":"eip155:8453","payTo":"0xe414aD5c7542CE63D890526f0e2133ff8da6F22D","price":"$0.15","currency":"USDC"},"responses":{"200":{"description":"Successful result after verified payment. Scores are indicative, not certifications.","content":{"application/json":{"schema":{"type":"object","required":["service","data"],"properties":{"service":{"const":"fragrance_check"},"data":{"type":"object"}}},"example":{"service":"fragrance_check","data":{"verdict":"high_risk","signals":["channel:independent_shop","listing_words:1:1,replica","price_abnormally_low","seller_medium_risk:64"],"brand":"dior","product":{"name":"Synthetic test listing replica 1:1 100 ml"},"page":{"status":"not_requested"},"channel":{"type":"independent_shop","domain":"example.com"},"price_check":{"status":"ok","price":25,"currency":"EUR","size_ml":100,"usd_per_ml":0.28,"brand_tier":"designer","indicative_floor_usd_per_ml":0.35,"below_floor":true,"note":"Indicative floor chosen by Novarithm for new full-size bottles; not an official reference price."},"listing_text":{"counterfeit_words":["1:1","replica"],"misspelled_brand":[]},"seller_reputation":{"status":"ok","score":64,"risk":"medium","red_flags":["no_email_mx","no_return_policy_link","no_contact_page"],"domain_age_days":11394},"batch_code":{"status":"not_given"},"safety_gate":{"status":"ok","alerts_for_brand":2,"examples":[{"case":"A12/03365/24","date":"06/12/2024","product":"Eau de toilette","brand":"Dior","name":"Poison","risk":"Chemical","level":"Serious risk","url":"https://ec.europa.eu/safety-gate-alerts/screen/webReport/alertDetail/10013587"},{"case":"A12/03381/24","date":"06/12/2024","product":"Eau de toilette","brand":"Dior","name":"Dior Homme","risk":"Chemical","level":"Serious risk","url":"https://ec.europa.eu/safety-gate-alerts/screen/webReport/alertDetail/10013745"}],"coverage":{"from":"18/10/2024","to":"23/10/2026","cosmetics_alerts":2675},"note":"Alerts on products bearing this brand name, often counterfeits or non-compliant imports; not about the listing itself."},"checked_at":"2026-10-24T17:50:07+00:00","cache":{"hit":true,"age_s":101},"note":"Risk signals from public data, not an authenticity certificate. Only the brand or its authorised distributor can confirm a bottle is genuine.","generated_at":"2026-10-24T17:51:48Z","price_usd":0.15,"billing_unit":"listing check","sources":[{"name":"Listing page (schema.org JSON-LD, visible text)","url":"https://schema.org/Product","licence":"Public page, robots.txt respected, no block bypass"},{"name":"Brand official domains and retailer classes (Novarithm curated table, public brand sites)","url":"https://gogeta2-u35175.vm.elestio.app/agents/catalog","licence":"Novarithm"},{"name":"Seller domain trust via Novarithm seller-reputation (RDAP, TLS, DNS, Tranco, Phishing.Database)","url":"https://about.rdap.org/","licence":"Public protocol data / MIT"},{"name":"EU Safety Gate weekly reports (cosmetics / perfumes)","url":"https://ec.europa.eu/safety-gate-alerts/api/download/weeklyReport/list/xml/en","licence":"© European Union; reuse authorised with acknowledgement"},{"name":"ECB reference rates (via Novarithm fx-rates) for price per ml in USD","url":"https://www.ecb.europa.eu/","licence":"ECB statistics, free reuse with acknowledgement"}],"response_time_ms":0}}}}},"400":{"description":"Invalid request; no settlement"},"402":{"description":"Payment required; same x402 v2 offer in JSON body and PAYMENT-REQUIRED header","content":{"application/json":{"schema":{"type":"object","required":["x402Version","accepts"],"properties":{"x402Version":{"const":2},"accepts":{"type":"array","items":{"type":"object"}}}}}}},"502":{"description":"Upstream unavailable; no settlement"}}},"post":{"operationId":"fragrance_check_post","summary":"Fragrance Listing Risk Check","description":"Risk signals for a fragrance listing: sales channel, price per ml, listing words, seller domain and EU Safety Gate. Does not authenticate a physical bottle. Provide url, or brand and seller_domain. Also accepts POST with the same parameters as a JSON body.","x-payment-info":{"protocol":"x402","version":2,"network":"eip155:8453","payTo":"0xe414aD5c7542CE63D890526f0e2133ff8da6F22D","price":"$0.15","currency":"USDC"},"responses":{"200":{"description":"Successful result after verified payment. Scores are indicative, not certifications.","content":{"application/json":{"schema":{"type":"object","required":["service","data"],"properties":{"service":{"const":"fragrance_check"},"data":{"type":"object"}}},"example":{"service":"fragrance_check","data":{"verdict":"high_risk","signals":["channel:independent_shop","listing_words:1:1,replica","price_abnormally_low","seller_medium_risk:64"],"brand":"dior","product":{"name":"Synthetic test listing replica 1:1 100 ml"},"page":{"status":"not_requested"},"channel":{"type":"independent_shop","domain":"example.com"},"price_check":{"status":"ok","price":25,"currency":"EUR","size_ml":100,"usd_per_ml":0.28,"brand_tier":"designer","indicative_floor_usd_per_ml":0.35,"below_floor":true,"note":"Indicative floor chosen by Novarithm for new full-size bottles; not an official reference price."},"listing_text":{"counterfeit_words":["1:1","replica"],"misspelled_brand":[]},"seller_reputation":{"status":"ok","score":64,"risk":"medium","red_flags":["no_email_mx","no_return_policy_link","no_contact_page"],"domain_age_days":11394},"batch_code":{"status":"not_given"},"safety_gate":{"status":"ok","alerts_for_brand":2,"examples":[{"case":"A12/03365/24","date":"06/12/2024","product":"Eau de toilette","brand":"Dior","name":"Poison","risk":"Chemical","level":"Serious risk","url":"https://ec.europa.eu/safety-gate-alerts/screen/webReport/alertDetail/10013587"},{"case":"A12/03381/24","date":"06/12/2024","product":"Eau de toilette","brand":"Dior","name":"Dior Homme","risk":"Chemical","level":"Serious risk","url":"https://ec.europa.eu/safety-gate-alerts/screen/webReport/alertDetail/10013745"}],"coverage":{"from":"18/10/2024","to":"23/10/2026","cosmetics_alerts":2675},"note":"Alerts on products bearing this brand name, often counterfeits or non-compliant imports; not about the listing itself."},"checked_at":"2026-10-24T17:50:07+00:00","cache":{"hit":true,"age_s":101},"note":"Risk signals from public data, not an authenticity certificate. Only the brand or its authorised distributor can confirm a bottle is genuine.","generated_at":"2026-10-24T17:51:48Z","price_usd":0.15,"billing_unit":"listing check","sources":[{"name":"Listing page (schema.org JSON-LD, visible text)","url":"https://schema.org/Product","licence":"Public page, robots.txt respected, no block bypass"},{"name":"Brand official domains and retailer classes (Novarithm curated table, public brand sites)","url":"https://gogeta2-u35175.vm.elestio.app/agents/catalog","licence":"Novarithm"},{"name":"Seller domain trust via Novarithm seller-reputation (RDAP, TLS, DNS, Tranco, Phishing.Database)","url":"https://about.rdap.org/","licence":"Public protocol data / MIT"},{"name":"EU Safety Gate weekly reports (cosmetics / perfumes)","url":"https://ec.europa.eu/safety-gate-alerts/api/download/weeklyReport/list/xml/en","licence":"© European Union; reuse authorised with acknowledgement"},{"name":"ECB reference rates (via Novarithm fx-rates) for price per ml in USD","url":"https://www.ecb.europa.eu/","licence":"ECB statistics, free reuse with acknowledgement"}],"response_time_ms":0}}}}},"400":{"description":"Invalid request; no settlement"},"402":{"description":"Payment required; same x402 v2 offer in JSON body and PAYMENT-REQUIRED header","content":{"application/json":{"schema":{"type":"object","required":["x402Version","accepts"],"properties":{"x402Version":{"const":2},"accepts":{"type":"array","items":{"type":"object"}}}}}}},"502":{"description":"Upstream unavailable; no settlement"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","description":"Listing / product page URL"},"brand":{"type":"string","description":"Brand (when no url)"},"product":{"type":"string","description":"Product title as listed, e.g. Sauvage EDT 100 ml"},"seller_domain":{"type":"string","description":"Seller website domain (when no url)"},"price":{"type":"number","minimum":0,"description":"Listed price"},"currency":{"type":"string","description":"ISO 4217 currency of price"},"size_ml":{"type":"number","minimum":1,"maximum":1000,"description":"Bottle size in ml (else read from the title)"},"batch_code":{"type":"string","description":"Batch code printed on box/bottle"}}},"example":{"brand":"Dior","seller_domain":"example.com","product":"Synthetic test listing replica 1:1 100 ml","price":25,"currency":"EUR","size_ml":100}}}}}},"/v1/fx/convert":{"get":{"operationId":"fx_convert","summary":"ECB FX Converter","description":"Convert an amount between two currencies at the official ECB reference rate, today or any date since 1999, incl. CFA franc and Gulf pegs. Returns rate, amount, rate date.","parameters":[{"name":"from","in":"query","required":true,"schema":{"type":"string","description":"ISO 4217 source currency, e.g. USD"},"example":"USD"},{"name":"to","in":"query","required":true,"schema":{"type":"string","description":"ISO 4217 target currency, e.g. EUR, XOF, AED"},"example":"EUR"},{"name":"amount","in":"query","required":false,"schema":{"type":"number","default":1,"minimum":0,"description":"Amount to convert (default 1)"},"example":1250},{"name":"date","in":"query","required":false,"schema":{"type":"string","description":"YYYY-MM-DD (default: latest ECB fixing)"}}],"x-payment-info":{"protocol":"x402","version":2,"network":"eip155:8453","payTo":"0xe414aD5c7542CE63D890526f0e2133ff8da6F22D","price":"$0.002","currency":"USDC"},"responses":{"200":{"description":"Successful result after verified payment. Scores are indicative, not certifications.","content":{"application/json":{"schema":{"type":"object","required":["service","data"],"properties":{"service":{"const":"fx_convert"},"data":{"type":"object"}}},"example":{"service":"fx_convert","data":{"from":"USD","to":"EUR","amount":1250,"rate":0.89245872,"converted":1115.573405,"inverse_rate":1.1205,"rate_date":"2026-10-22","requested_date":null,"method":"ecb_direct","is_latest":true,"explanation":"1 USD = 0.892459 EUR (ECB reference rate of 2026-10-22)","data_age_days":1,"disclaimer":"ECB reference rates are published for information purposes only (around 16:00 CET on TARGET business days).","generated_at":"2026-10-23T10:03:31Z","price_usd":0.002,"billing_unit":"conversion","sources":[{"name":"ECB euro foreign exchange reference rates","url":"https://www.ecb.europa.eu/stats/policy_and_exchange_rates/euro_reference_exchange_rates/html/index.en.html","licence":"ECB statistics: free reuse with source acknowledgement"},{"name":"BCEAO — franc CFA (XOF), parité fixe 655,957 XOF = 1 EUR","url":"https://www.bceao.int/fr/content/le-franc-cfa","licence":"Parité publique fixée par traité"}],"response_time_ms":47}}}}},"400":{"description":"Invalid request; no settlement"},"402":{"description":"Payment required; same x402 v2 offer in JSON body and PAYMENT-REQUIRED header","content":{"application/json":{"schema":{"type":"object","required":["x402Version","accepts"],"properties":{"x402Version":{"const":2},"accepts":{"type":"array","items":{"type":"object"}}}}}}},"502":{"description":"Upstream unavailable; no settlement"}}},"post":{"operationId":"fx_convert_post","summary":"ECB FX Converter","description":"Convert an amount between two currencies at the official ECB reference rate, today or any date since 1999, incl. CFA franc and Gulf pegs. Returns rate, amount, rate date. Also accepts POST with the same parameters as a JSON body.","x-payment-info":{"protocol":"x402","version":2,"network":"eip155:8453","payTo":"0xe414aD5c7542CE63D890526f0e2133ff8da6F22D","price":"$0.002","currency":"USDC"},"responses":{"200":{"description":"Successful result after verified payment. Scores are indicative, not certifications.","content":{"application/json":{"schema":{"type":"object","required":["service","data"],"properties":{"service":{"const":"fx_convert"},"data":{"type":"object"}}},"example":{"service":"fx_convert","data":{"from":"USD","to":"EUR","amount":1250,"rate":0.89245872,"converted":1115.573405,"inverse_rate":1.1205,"rate_date":"2026-10-22","requested_date":null,"method":"ecb_direct","is_latest":true,"explanation":"1 USD = 0.892459 EUR (ECB reference rate of 2026-10-22)","data_age_days":1,"disclaimer":"ECB reference rates are published for information purposes only (around 16:00 CET on TARGET business days).","generated_at":"2026-10-23T10:03:31Z","price_usd":0.002,"billing_unit":"conversion","sources":[{"name":"ECB euro foreign exchange reference rates","url":"https://www.ecb.europa.eu/stats/policy_and_exchange_rates/euro_reference_exchange_rates/html/index.en.html","licence":"ECB statistics: free reuse with source acknowledgement"},{"name":"BCEAO — franc CFA (XOF), parité fixe 655,957 XOF = 1 EUR","url":"https://www.bceao.int/fr/content/le-franc-cfa","licence":"Parité publique fixée par traité"}],"response_time_ms":47}}}}},"400":{"description":"Invalid request; no settlement"},"402":{"description":"Payment required; same x402 v2 offer in JSON body and PAYMENT-REQUIRED header","content":{"application/json":{"schema":{"type":"object","required":["x402Version","accepts"],"properties":{"x402Version":{"const":2},"accepts":{"type":"array","items":{"type":"object"}}}}}}},"502":{"description":"Upstream unavailable; no settlement"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"from":{"type":"string","description":"ISO 4217 source currency, e.g. USD"},"to":{"type":"string","description":"ISO 4217 target currency, e.g. EUR, XOF, AED"},"amount":{"type":"number","default":1,"minimum":0,"description":"Amount to convert (default 1)"},"date":{"type":"string","description":"YYYY-MM-DD (default: latest ECB fixing)"}},"required":["from","to"]},"example":{"from":"USD","to":"EUR","amount":1250}}}}}},"/v1/fx/timeseries":{"get":{"operationId":"fx_timeseries","summary":"ECB FX Time Series","description":"Daily official ECB exchange rates for a currency pair over up to 366 days, with min, max, mean and % change. Useful for invoicing, hedging checks and reporting.","parameters":[{"name":"from","in":"query","required":true,"schema":{"type":"string","description":"ISO 4217 base currency"},"example":"GBP"},{"name":"to","in":"query","required":true,"schema":{"type":"string","description":"ISO 4217 quote currency"},"example":"USD"},{"name":"start","in":"query","required":false,"schema":{"type":"string","description":"YYYY-MM-DD (default: end - 30 days)"},"example":"2026-01-01"},{"name":"end","in":"query","required":false,"schema":{"type":"string","description":"YYYY-MM-DD (default: today)"},"example":"2026-03-31"}],"x-payment-info":{"protocol":"x402","version":2,"network":"eip155:8453","payTo":"0xe414aD5c7542CE63D890526f0e2133ff8da6F22D","price":"$0.005","currency":"USDC"},"responses":{"200":{"description":"Successful result after verified payment. Scores are indicative, not certifications.","content":{"application/json":{"schema":{"type":"object","required":["service","data"],"properties":{"service":{"const":"fx_timeseries"},"data":{"type":"object"}}},"example":{"service":"fx_timeseries","data":{"from":"GBP","to":"USD","start":"2026-01-02","end":"2026-03-31","method":"ecb_cross_via_eur","points":[{"date":"2026-01-02","rate":1.34430554},{"date":"2026-01-05","rate":1.34439834}],"count":63,"stats":{"min":1.32299575,"max":1.38166705,"first":1.34430554,"last":1.32415096,"change_pct":-1.4993,"mean":1.34785121},"generated_at":"2026-10-23T10:03:31Z","price_usd":0.005,"billing_unit":"series (≤ 366 days)","sources":[{"name":"ECB euro foreign exchange reference rates","url":"https://www.ecb.europa.eu/stats/policy_and_exchange_rates/euro_reference_exchange_rates/html/index.en.html","licence":"ECB statistics: free reuse with source acknowledgement"},{"name":"BCEAO — franc CFA (XOF), parité fixe 655,957 XOF = 1 EUR","url":"https://www.bceao.int/fr/content/le-franc-cfa","licence":"Parité publique fixée par traité"}],"response_time_ms":4}}}}},"400":{"description":"Invalid request; no settlement"},"402":{"description":"Payment required; same x402 v2 offer in JSON body and PAYMENT-REQUIRED header","content":{"application/json":{"schema":{"type":"object","required":["x402Version","accepts"],"properties":{"x402Version":{"const":2},"accepts":{"type":"array","items":{"type":"object"}}}}}}},"502":{"description":"Upstream unavailable; no settlement"}}},"post":{"operationId":"fx_timeseries_post","summary":"ECB FX Time Series","description":"Daily official ECB exchange rates for a currency pair over up to 366 days, with min, max, mean and % change. Useful for invoicing, hedging checks and reporting. Also accepts POST with the same parameters as a JSON body.","x-payment-info":{"protocol":"x402","version":2,"network":"eip155:8453","payTo":"0xe414aD5c7542CE63D890526f0e2133ff8da6F22D","price":"$0.005","currency":"USDC"},"responses":{"200":{"description":"Successful result after verified payment. Scores are indicative, not certifications.","content":{"application/json":{"schema":{"type":"object","required":["service","data"],"properties":{"service":{"const":"fx_timeseries"},"data":{"type":"object"}}},"example":{"service":"fx_timeseries","data":{"from":"GBP","to":"USD","start":"2026-01-02","end":"2026-03-31","method":"ecb_cross_via_eur","points":[{"date":"2026-01-02","rate":1.34430554},{"date":"2026-01-05","rate":1.34439834}],"count":63,"stats":{"min":1.32299575,"max":1.38166705,"first":1.34430554,"last":1.32415096,"change_pct":-1.4993,"mean":1.34785121},"generated_at":"2026-10-23T10:03:31Z","price_usd":0.005,"billing_unit":"series (≤ 366 days)","sources":[{"name":"ECB euro foreign exchange reference rates","url":"https://www.ecb.europa.eu/stats/policy_and_exchange_rates/euro_reference_exchange_rates/html/index.en.html","licence":"ECB statistics: free reuse with source acknowledgement"},{"name":"BCEAO — franc CFA (XOF), parité fixe 655,957 XOF = 1 EUR","url":"https://www.bceao.int/fr/content/le-franc-cfa","licence":"Parité publique fixée par traité"}],"response_time_ms":4}}}}},"400":{"description":"Invalid request; no settlement"},"402":{"description":"Payment required; same x402 v2 offer in JSON body and PAYMENT-REQUIRED header","content":{"application/json":{"schema":{"type":"object","required":["x402Version","accepts"],"properties":{"x402Version":{"const":2},"accepts":{"type":"array","items":{"type":"object"}}}}}}},"502":{"description":"Upstream unavailable; no settlement"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"from":{"type":"string","description":"ISO 4217 base currency"},"to":{"type":"string","description":"ISO 4217 quote currency"},"start":{"type":"string","description":"YYYY-MM-DD (default: end - 30 days)"},"end":{"type":"string","description":"YYYY-MM-DD (default: today)"}},"required":["from","to"]},"example":{"from":"GBP","to":"USD","start":"2026-01-01","end":"2026-03-31"}}}}}},"/v1/fx/latest":{"get":{"operationId":"fx_latest","summary":"ECB FX Latest Rates","description":"All official ECB reference rates for any base currency on the latest or a given fixing date, including pegged currencies (XOF, XAF, AED, SAR). One call, full rate table.","parameters":[{"name":"base","in":"query","required":false,"schema":{"type":"string","default":"EUR","description":"ISO 4217 base currency (default EUR)"},"example":"USD"},{"name":"symbols","in":"query","required":false,"schema":{"type":"string","description":"Comma-separated ISO codes to return (default: all)"},"example":"EUR,GBP,AED,XOF,JPY"},{"name":"date","in":"query","required":false,"schema":{"type":"string","description":"YYYY-MM-DD (default: latest)"}}],"x-payment-info":{"protocol":"x402","version":2,"network":"eip155:8453","payTo":"0xe414aD5c7542CE63D890526f0e2133ff8da6F22D","price":"$0.002","currency":"USDC"},"responses":{"200":{"description":"Successful result after verified payment. Scores are indicative, not certifications.","content":{"application/json":{"schema":{"type":"object","required":["service","data"],"properties":{"service":{"const":"fx_latest"},"data":{"type":"object"}}},"example":{"service":"fx_latest","data":{"base":"USD","rate_date":"2026-10-22","rates":{"EUR":0.89245872,"GBP":0.74761267,"AED":3.6725,"XOF":585.41454708,"JPY":157.04596162},"count":5,"unavailable":[],"pegged_currencies":["AED","BHD"],"is_latest":true,"generated_at":"2026-10-23T10:03:32Z","price_usd":0.002,"billing_unit":"rate table","sources":[{"name":"ECB euro foreign exchange reference rates","url":"https://www.ecb.europa.eu/stats/policy_and_exchange_rates/euro_reference_exchange_rates/html/index.en.html","licence":"ECB statistics: free reuse with source acknowledgement"},{"name":"BCEAO — franc CFA (XOF), parité fixe 655,957 XOF = 1 EUR","url":"https://www.bceao.int/fr/content/le-franc-cfa","licence":"Parité publique fixée par traité"}],"response_time_ms":2}}}}},"400":{"description":"Invalid request; no settlement"},"402":{"description":"Payment required; same x402 v2 offer in JSON body and PAYMENT-REQUIRED header","content":{"application/json":{"schema":{"type":"object","required":["x402Version","accepts"],"properties":{"x402Version":{"const":2},"accepts":{"type":"array","items":{"type":"object"}}}}}}},"502":{"description":"Upstream unavailable; no settlement"}}},"post":{"operationId":"fx_latest_post","summary":"ECB FX Latest Rates","description":"All official ECB reference rates for any base currency on the latest or a given fixing date, including pegged currencies (XOF, XAF, AED, SAR). One call, full rate table. Also accepts POST with the same parameters as a JSON body.","x-payment-info":{"protocol":"x402","version":2,"network":"eip155:8453","payTo":"0xe414aD5c7542CE63D890526f0e2133ff8da6F22D","price":"$0.002","currency":"USDC"},"responses":{"200":{"description":"Successful result after verified payment. Scores are indicative, not certifications.","content":{"application/json":{"schema":{"type":"object","required":["service","data"],"properties":{"service":{"const":"fx_latest"},"data":{"type":"object"}}},"example":{"service":"fx_latest","data":{"base":"USD","rate_date":"2026-10-22","rates":{"EUR":0.89245872,"GBP":0.74761267,"AED":3.6725,"XOF":585.41454708,"JPY":157.04596162},"count":5,"unavailable":[],"pegged_currencies":["AED","BHD"],"is_latest":true,"generated_at":"2026-10-23T10:03:32Z","price_usd":0.002,"billing_unit":"rate table","sources":[{"name":"ECB euro foreign exchange reference rates","url":"https://www.ecb.europa.eu/stats/policy_and_exchange_rates/euro_reference_exchange_rates/html/index.en.html","licence":"ECB statistics: free reuse with source acknowledgement"},{"name":"BCEAO — franc CFA (XOF), parité fixe 655,957 XOF = 1 EUR","url":"https://www.bceao.int/fr/content/le-franc-cfa","licence":"Parité publique fixée par traité"}],"response_time_ms":2}}}}},"400":{"description":"Invalid request; no settlement"},"402":{"description":"Payment required; same x402 v2 offer in JSON body and PAYMENT-REQUIRED header","content":{"application/json":{"schema":{"type":"object","required":["x402Version","accepts"],"properties":{"x402Version":{"const":2},"accepts":{"type":"array","items":{"type":"object"}}}}}}},"502":{"description":"Upstream unavailable; no settlement"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"base":{"type":"string","default":"EUR","description":"ISO 4217 base currency (default EUR)"},"symbols":{"type":"string","description":"Comma-separated ISO codes to return (default: all)"},"date":{"type":"string","description":"YYYY-MM-DD (default: latest)"}}},"example":{"base":"USD","symbols":"EUR,GBP,AED,XOF,JPY"}}}}}},"/v1/checkout/pre-purchase":{"get":{"operationId":"pre_purchase_check","summary":"Pre-Purchase Check","description":"Bundle before paying: verified price/stock (schema.org), seller trust score (RDAP, TLS, DMARC, policies, phishing lists) and recall status (CPSC, openFDA, RappelConso) for a product URL, with a proceed/caution/stop decision.","parameters":[{"name":"url","in":"query","required":true,"schema":{"type":"string","description":"Product page URL"},"example":"https://www.allbirds.com/products/mens-tree-runners"},{"name":"gtin","in":"query","required":false,"schema":{"type":"string","description":"Optional EAN/UPC/GTIN for an exact recall match (else taken from the page if present)"}},{"name":"query","in":"query","required":false,"schema":{"type":"string","description":"Optional recall keywords (product/brand/model) when no GTIN"}},{"name":"market","in":"query","required":false,"schema":{"type":"string","default":"us","enum":["us","fr","all"],"description":"Recall market (default us)"}}],"x-payment-info":{"protocol":"x402","version":2,"network":"eip155:8453","payTo":"0xe414aD5c7542CE63D890526f0e2133ff8da6F22D","price":"$0.08","currency":"USDC"},"responses":{"200":{"description":"Successful result after verified payment. Scores are indicative, not certifications.","content":{"application/json":{"schema":{"type":"object","required":["service","data"],"properties":{"service":{"const":"pre_purchase_check"},"data":{"type":"object"}}},"example":{"service":"pre_purchase_check","data":{"url":"https://www.allbirds.com/products/mens-tree-runners","seller_domain":"allbirds.com","decision":"caution","reasons":["seller_low_risk:71","price_unverified:blocked_by_site"],"price":{"status":"unavailable","reason":"blocked_by_site"},"seller":{"domain":"allbirds.com","score":71,"risk":"low","red_flags":[],"domain_age_days":9052,"return_policy":null},"recall":{"status":"not_checked","reason":"no gtin or product name available; pass query="},"cache":{"hit":false,"age_s":0},"note":"Deterministic rules over public data; decision is advisory. Keyword recall matches need model/lot confirmation.","generated_at":"2026-10-23T10:03:32Z","price_usd":0.08,"billing_unit":"product check","sources":[{"name":"Merchant product page structured data (schema.org JSON-LD / microdata, OpenGraph)","url":"https://schema.org/Offer","licence":"Public page, robots.txt respected (RFC 9309), no block bypass"},{"name":"RDAP (rdap.org bootstrap → registries)","url":"https://about.rdap.org/","licence":"Public registration data (RDAP, RFC 9083)"}],"response_time_ms":389}}}}},"400":{"description":"Invalid request; no settlement"},"402":{"description":"Payment required; same x402 v2 offer in JSON body and PAYMENT-REQUIRED header","content":{"application/json":{"schema":{"type":"object","required":["x402Version","accepts"],"properties":{"x402Version":{"const":2},"accepts":{"type":"array","items":{"type":"object"}}}}}}},"502":{"description":"Upstream unavailable; no settlement"}}},"post":{"operationId":"pre_purchase_check_post","summary":"Pre-Purchase Check","description":"Bundle before paying: verified price/stock (schema.org), seller trust score (RDAP, TLS, DMARC, policies, phishing lists) and recall status (CPSC, openFDA, RappelConso) for a product URL, with a proceed/caution/stop decision. Also accepts POST with the same parameters as a JSON body.","x-payment-info":{"protocol":"x402","version":2,"network":"eip155:8453","payTo":"0xe414aD5c7542CE63D890526f0e2133ff8da6F22D","price":"$0.08","currency":"USDC"},"responses":{"200":{"description":"Successful result after verified payment. Scores are indicative, not certifications.","content":{"application/json":{"schema":{"type":"object","required":["service","data"],"properties":{"service":{"const":"pre_purchase_check"},"data":{"type":"object"}}},"example":{"service":"pre_purchase_check","data":{"url":"https://www.allbirds.com/products/mens-tree-runners","seller_domain":"allbirds.com","decision":"caution","reasons":["seller_low_risk:71","price_unverified:blocked_by_site"],"price":{"status":"unavailable","reason":"blocked_by_site"},"seller":{"domain":"allbirds.com","score":71,"risk":"low","red_flags":[],"domain_age_days":9052,"return_policy":null},"recall":{"status":"not_checked","reason":"no gtin or product name available; pass query="},"cache":{"hit":false,"age_s":0},"note":"Deterministic rules over public data; decision is advisory. Keyword recall matches need model/lot confirmation.","generated_at":"2026-10-23T10:03:32Z","price_usd":0.08,"billing_unit":"product check","sources":[{"name":"Merchant product page structured data (schema.org JSON-LD / microdata, OpenGraph)","url":"https://schema.org/Offer","licence":"Public page, robots.txt respected (RFC 9309), no block bypass"},{"name":"RDAP (rdap.org bootstrap → registries)","url":"https://about.rdap.org/","licence":"Public registration data (RDAP, RFC 9083)"}],"response_time_ms":389}}}}},"400":{"description":"Invalid request; no settlement"},"402":{"description":"Payment required; same x402 v2 offer in JSON body and PAYMENT-REQUIRED header","content":{"application/json":{"schema":{"type":"object","required":["x402Version","accepts"],"properties":{"x402Version":{"const":2},"accepts":{"type":"array","items":{"type":"object"}}}}}}},"502":{"description":"Upstream unavailable; no settlement"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","description":"Product page URL"},"gtin":{"type":"string","description":"Optional EAN/UPC/GTIN for an exact recall match (else taken from the page if present)"},"query":{"type":"string","description":"Optional recall keywords (product/brand/model) when no GTIN"},"market":{"type":"string","default":"us","enum":["us","fr","all"],"description":"Recall market (default us)"}},"required":["url"]},"example":{"url":"https://www.allbirds.com/products/mens-tree-runners"}}}}}},"/v1/product/price":{"get":{"operationId":"price_availability","summary":"Price and Availability","description":"Verified price, currency, availability and seller of a product page URL from its schema.org JSON-LD / microdata / OpenGraph data. robots.txt respected; blocked or unpriced pages return 'unavailable' (not charged).","parameters":[{"name":"url","in":"query","required":true,"schema":{"type":"string","description":"Product page URL, e.g. https://www.allbirds.com/products/mens-tree-runners"},"example":"https://www.allbirds.com/products/mens-tree-runners"}],"x-payment-info":{"protocol":"x402","version":2,"network":"eip155:8453","payTo":"0xe414aD5c7542CE63D890526f0e2133ff8da6F22D","price":"$0.03","currency":"USDC"},"responses":{"200":{"description":"Successful result after verified payment. Scores are indicative, not certifications.","content":{"application/json":{"schema":{"type":"object","required":["service","data"],"properties":{"service":{"const":"price_availability"},"data":{"type":"object"}}},"example":{"service":"price_availability","data":{"name":"Men's Tree Runner","brand":"Allbirds","sku":"MENS_TREE_RUNNERS","price":100,"currency":"USD","availability":"in_stock","condition":"NewCondition","seller":"Allbirds","variants":{"count":7,"in_stock":1},"seller_domain":"allbirds.com","status":"ok","url":"https://www.allbirds.com/products/mens-tree-runners","extraction":"schema.org_json-ld","robots":"allowed","page_latency_ms":579,"cache":{"hit":false,"age_s":0},"generated_at":"2026-10-23T10:03:33Z","price_usd":0.03,"billing_unit":"product page","sources":[{"name":"Merchant product page structured data (schema.org JSON-LD / microdata, OpenGraph)","url":"https://schema.org/Offer","licence":"Public page, robots.txt respected (RFC 9309), no block bypass"}],"response_time_ms":730}}}}},"400":{"description":"Invalid request; no settlement"},"402":{"description":"Payment required; same x402 v2 offer in JSON body and PAYMENT-REQUIRED header","content":{"application/json":{"schema":{"type":"object","required":["x402Version","accepts"],"properties":{"x402Version":{"const":2},"accepts":{"type":"array","items":{"type":"object"}}}}}}},"502":{"description":"Upstream unavailable; no settlement"}}},"post":{"operationId":"price_availability_post","summary":"Price and Availability","description":"Verified price, currency, availability and seller of a product page URL from its schema.org JSON-LD / microdata / OpenGraph data. robots.txt respected; blocked or unpriced pages return 'unavailable' (not charged). Also accepts POST with the same parameters as a JSON body.","x-payment-info":{"protocol":"x402","version":2,"network":"eip155:8453","payTo":"0xe414aD5c7542CE63D890526f0e2133ff8da6F22D","price":"$0.03","currency":"USDC"},"responses":{"200":{"description":"Successful result after verified payment. Scores are indicative, not certifications.","content":{"application/json":{"schema":{"type":"object","required":["service","data"],"properties":{"service":{"const":"price_availability"},"data":{"type":"object"}}},"example":{"service":"price_availability","data":{"name":"Men's Tree Runner","brand":"Allbirds","sku":"MENS_TREE_RUNNERS","price":100,"currency":"USD","availability":"in_stock","condition":"NewCondition","seller":"Allbirds","variants":{"count":7,"in_stock":1},"seller_domain":"allbirds.com","status":"ok","url":"https://www.allbirds.com/products/mens-tree-runners","extraction":"schema.org_json-ld","robots":"allowed","page_latency_ms":579,"cache":{"hit":false,"age_s":0},"generated_at":"2026-10-23T10:03:33Z","price_usd":0.03,"billing_unit":"product page","sources":[{"name":"Merchant product page structured data (schema.org JSON-LD / microdata, OpenGraph)","url":"https://schema.org/Offer","licence":"Public page, robots.txt respected (RFC 9309), no block bypass"}],"response_time_ms":730}}}}},"400":{"description":"Invalid request; no settlement"},"402":{"description":"Payment required; same x402 v2 offer in JSON body and PAYMENT-REQUIRED header","content":{"application/json":{"schema":{"type":"object","required":["x402Version","accepts"],"properties":{"x402Version":{"const":2},"accepts":{"type":"array","items":{"type":"object"}}}}}}},"502":{"description":"Upstream unavailable; no settlement"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","description":"Product page URL, e.g. https://www.allbirds.com/products/mens-tree-runners"}},"required":["url"]},"example":{"url":"https://www.allbirds.com/products/mens-tree-runners"}}}}}},"/v1/recalls/search":{"get":{"operationId":"recall_search","summary":"Product Recall Search","description":"Search official recall notices (CPSC, openFDA food/drug/device, RappelConso FR) by product, brand or model; filter by market and period.","parameters":[{"name":"query","in":"query","required":true,"schema":{"type":"string","description":"Product, brand or model, e.g. stroller, peanut butter, Facom"},"example":"stroller"},{"name":"market","in":"query","required":false,"schema":{"type":"string","default":"all","enum":["all","us","fr"],"description":"all (default), us or fr"},"example":"us"},{"name":"days","in":"query","required":false,"schema":{"type":"integer","default":365,"minimum":1,"maximum":3650,"description":"Look-back period in days (default 365)"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","default":10,"minimum":1,"maximum":25,"description":"Max results per source (default 10)"}}],"x-payment-info":{"protocol":"x402","version":2,"network":"eip155:8453","payTo":"0xe414aD5c7542CE63D890526f0e2133ff8da6F22D","price":"$0.01","currency":"USDC"},"responses":{"200":{"description":"Successful result after verified payment. Scores are indicative, not certifications.","content":{"application/json":{"schema":{"type":"object","required":["service","data"],"properties":{"service":{"const":"recall_search"},"data":{"type":"object"}}},"example":{"service":"recall_search","data":{"query":"stroller","market":"us","since":"2025-10-23","recalled":true,"count":6,"results":[{"source":"CPSC (US)","country":"US","date":"2026-07-23","title":"Peony Design Recalls Personalized Baby Bibs and Stroller Bags Due to Risk of Serious Injury or Death from Choking Hazard","brand":"Peony Design Co., of Howell, MI","category":null,"reason":"The snap can detach from the recalled bibs and stroller bags, posing a risk of serious injury or death from a choking hazard to young children.","hazard":"The snap can detach from the recalled bibs and stroller bags, posing a risk of serious injury or death from a choking hazard to young children.","consumer_action":"Consumers should take the recalled baby bibs and stroller bags away from children immediately, stop using them, and contact Peony Design to receive a full re...","units":"About 52","identifiers":[],"url":"https://www.cpsc.gov/Recalls/2026/Peony-Design-Recalls-Personalized-Baby-Bibs-and-Stroller-Bags-Due-to-Risk-of-Serious-Injury-or-Death-from-Choking-Hazard","image":"https://www.cpsc.gov/s3fs-public/peony-1.png"},{"source":"CPSC (US)","country":"US","date":"2026-06-18","title":"BABESIDE Doll and Stroller Children's Toys Recalled Due to Risk of Serious Injury or Death from Choking Hazard; Violate Small Parts Ban; Sold on Amazon by HY...","brand":"Huizhou Huitong Crafts Co. Ltd., of China","category":null,"reason":"The recalled toys violate the small parts ban because they are intended for children under three and the small pacifier poses a deadly choking hazard to youn...","hazard":"The recalled toys violate the small parts ban because they are intended for children under three and the small pacifier poses a deadly choking hazard to youn...","consumer_action":"Consumers should stop using the recalled toys' plush bear and pacifier immediately, take them away from children and contact HYBDOLLS for free replacement si...","units":"About 2,200","identifiers":[],"url":"https://www.cpsc.gov/Recalls/2026/BABESIDE-Doll-and-Stroller-Childrens-Toys-Recalled-Due-to-Risk-of-Serious-Injury-or-Death-from-Choking-Hazard-Violate-Small...","image":"https://www.cpsc.gov/s3fs-public/babeside.jpg"}],"by_source":{"RappelConso":0,"CPSC":6,"openFDA":0},"sources_failed":[],"note":"Keyword match on official recall notices: confirm the exact model/lot/date before telling a buyer the item is affected.","generated_at":"2026-10-23T10:03:34Z","price_usd":0.01,"billing_unit":"search","sources":[{"name":"U.S. CPSC Recalls API (SaferProducts.gov)","url":"https://www.saferproducts.gov/RestWebServices","licence":"U.S. government work, public domain"},{"name":"openFDA enforcement reports (food, drug, device)","url":"https://open.fda.gov/apis/","licence":"Public domain (CC0)"}],"response_time_ms":1402}}}}},"400":{"description":"Invalid request; no settlement"},"402":{"description":"Payment required; same x402 v2 offer in JSON body and PAYMENT-REQUIRED header","content":{"application/json":{"schema":{"type":"object","required":["x402Version","accepts"],"properties":{"x402Version":{"const":2},"accepts":{"type":"array","items":{"type":"object"}}}}}}},"502":{"description":"Upstream unavailable; no settlement"}}},"post":{"operationId":"recall_search_post","summary":"Product Recall Search","description":"Search official recall notices (CPSC, openFDA food/drug/device, RappelConso FR) by product, brand or model; filter by market and period. Also accepts POST with the same parameters as a JSON body.","x-payment-info":{"protocol":"x402","version":2,"network":"eip155:8453","payTo":"0xe414aD5c7542CE63D890526f0e2133ff8da6F22D","price":"$0.01","currency":"USDC"},"responses":{"200":{"description":"Successful result after verified payment. Scores are indicative, not certifications.","content":{"application/json":{"schema":{"type":"object","required":["service","data"],"properties":{"service":{"const":"recall_search"},"data":{"type":"object"}}},"example":{"service":"recall_search","data":{"query":"stroller","market":"us","since":"2025-10-23","recalled":true,"count":6,"results":[{"source":"CPSC (US)","country":"US","date":"2026-07-23","title":"Peony Design Recalls Personalized Baby Bibs and Stroller Bags Due to Risk of Serious Injury or Death from Choking Hazard","brand":"Peony Design Co., of Howell, MI","category":null,"reason":"The snap can detach from the recalled bibs and stroller bags, posing a risk of serious injury or death from a choking hazard to young children.","hazard":"The snap can detach from the recalled bibs and stroller bags, posing a risk of serious injury or death from a choking hazard to young children.","consumer_action":"Consumers should take the recalled baby bibs and stroller bags away from children immediately, stop using them, and contact Peony Design to receive a full re...","units":"About 52","identifiers":[],"url":"https://www.cpsc.gov/Recalls/2026/Peony-Design-Recalls-Personalized-Baby-Bibs-and-Stroller-Bags-Due-to-Risk-of-Serious-Injury-or-Death-from-Choking-Hazard","image":"https://www.cpsc.gov/s3fs-public/peony-1.png"},{"source":"CPSC (US)","country":"US","date":"2026-06-18","title":"BABESIDE Doll and Stroller Children's Toys Recalled Due to Risk of Serious Injury or Death from Choking Hazard; Violate Small Parts Ban; Sold on Amazon by HY...","brand":"Huizhou Huitong Crafts Co. Ltd., of China","category":null,"reason":"The recalled toys violate the small parts ban because they are intended for children under three and the small pacifier poses a deadly choking hazard to youn...","hazard":"The recalled toys violate the small parts ban because they are intended for children under three and the small pacifier poses a deadly choking hazard to youn...","consumer_action":"Consumers should stop using the recalled toys' plush bear and pacifier immediately, take them away from children and contact HYBDOLLS for free replacement si...","units":"About 2,200","identifiers":[],"url":"https://www.cpsc.gov/Recalls/2026/BABESIDE-Doll-and-Stroller-Childrens-Toys-Recalled-Due-to-Risk-of-Serious-Injury-or-Death-from-Choking-Hazard-Violate-Small...","image":"https://www.cpsc.gov/s3fs-public/babeside.jpg"}],"by_source":{"RappelConso":0,"CPSC":6,"openFDA":0},"sources_failed":[],"note":"Keyword match on official recall notices: confirm the exact model/lot/date before telling a buyer the item is affected.","generated_at":"2026-10-23T10:03:34Z","price_usd":0.01,"billing_unit":"search","sources":[{"name":"U.S. CPSC Recalls API (SaferProducts.gov)","url":"https://www.saferproducts.gov/RestWebServices","licence":"U.S. government work, public domain"},{"name":"openFDA enforcement reports (food, drug, device)","url":"https://open.fda.gov/apis/","licence":"Public domain (CC0)"}],"response_time_ms":1402}}}}},"400":{"description":"Invalid request; no settlement"},"402":{"description":"Payment required; same x402 v2 offer in JSON body and PAYMENT-REQUIRED header","content":{"application/json":{"schema":{"type":"object","required":["x402Version","accepts"],"properties":{"x402Version":{"const":2},"accepts":{"type":"array","items":{"type":"object"}}}}}}},"502":{"description":"Upstream unavailable; no settlement"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"query":{"type":"string","description":"Product, brand or model, e.g. stroller, peanut butter, Facom"},"market":{"type":"string","default":"all","enum":["all","us","fr"],"description":"all (default), us or fr"},"days":{"type":"integer","default":365,"minimum":1,"maximum":3650,"description":"Look-back period in days (default 365)"},"limit":{"type":"integer","default":10,"minimum":1,"maximum":25,"description":"Max results per source (default 10)"}},"required":["query"]},"example":{"query":"stroller","market":"us"}}}}}},"/v1/recalls/gtin":{"get":{"operationId":"gtin_recall","summary":"GTIN Barcode Recall Check","description":"Exact recall check for one EAN/UPC/GTIN barcode (check digit validated) across RappelConso, CPSC and openFDA.","parameters":[{"name":"gtin","in":"query","required":true,"schema":{"type":"string","description":"8/12/13/14-digit barcode, e.g. 3662424096594"},"example":"3662424096594"}],"x-payment-info":{"protocol":"x402","version":2,"network":"eip155:8453","payTo":"0xe414aD5c7542CE63D890526f0e2133ff8da6F22D","price":"$0.01","currency":"USDC"},"responses":{"200":{"description":"Successful result after verified payment. Scores are indicative, not certifications.","content":{"application/json":{"schema":{"type":"object","required":["service","data"],"properties":{"service":{"const":"gtin_recall"},"data":{"type":"object"}}},"example":{"service":"gtin_recall","data":{"gtin":"3662424096594","recalled":true,"count":1,"results":[{"source":"RappelConso (FR)","country":"FR","date":"2026-10-22","title":"tournevis facom atp2x125vepb","brand":"facom","category":"appareils électriques, outils","reason":"54 tournevis facom atp2x125 portent une fiche d’emballage incorrecte, qui indique à tort qu’il s’agit de tournevis facom atp2x125vepb isolés 1000v, pouvant ê...","hazard":"choc électrique","consumer_action":"ne plus utiliser le produit; rapporter le produit au point de vente","identifiers":["3662424096594"],"sold_at":"leroy merlin, castorama","url":"https://rappel.conso.gouv.fr/fiche-rappel/23911/interne","image":"https://rappel.conso.gouv.fr/image/29f81fca-ed11-4763-8af0-168d899b6d24.jpg|https://rappel.conso.gouv.fr/image/3d6759e9-dcc1-45fd-9647-1544c287c218.jpg|https..."}],"sources_checked":["RappelConso (FR)","CPSC (US)"],"sources_failed":[],"note":"Exact barcode match. A recall often targets specific lots / dates: check 'title', 'identifiers' and the official notice.","generated_at":"2026-10-23T10:03:37Z","price_usd":0.01,"billing_unit":"barcode check","sources":[{"name":"U.S. CPSC Recalls API (SaferProducts.gov)","url":"https://www.saferproducts.gov/RestWebServices","licence":"U.S. government work, public domain"},{"name":"openFDA enforcement reports (food, drug, device)","url":"https://open.fda.gov/apis/","licence":"Public domain (CC0)"}],"response_time_ms":2904}}}}},"400":{"description":"Invalid request; no settlement"},"402":{"description":"Payment required; same x402 v2 offer in JSON body and PAYMENT-REQUIRED header","content":{"application/json":{"schema":{"type":"object","required":["x402Version","accepts"],"properties":{"x402Version":{"const":2},"accepts":{"type":"array","items":{"type":"object"}}}}}}},"502":{"description":"Upstream unavailable; no settlement"}}},"post":{"operationId":"gtin_recall_post","summary":"GTIN Barcode Recall Check","description":"Exact recall check for one EAN/UPC/GTIN barcode (check digit validated) across RappelConso, CPSC and openFDA. Also accepts POST with the same parameters as a JSON body.","x-payment-info":{"protocol":"x402","version":2,"network":"eip155:8453","payTo":"0xe414aD5c7542CE63D890526f0e2133ff8da6F22D","price":"$0.01","currency":"USDC"},"responses":{"200":{"description":"Successful result after verified payment. Scores are indicative, not certifications.","content":{"application/json":{"schema":{"type":"object","required":["service","data"],"properties":{"service":{"const":"gtin_recall"},"data":{"type":"object"}}},"example":{"service":"gtin_recall","data":{"gtin":"3662424096594","recalled":true,"count":1,"results":[{"source":"RappelConso (FR)","country":"FR","date":"2026-10-22","title":"tournevis facom atp2x125vepb","brand":"facom","category":"appareils électriques, outils","reason":"54 tournevis facom atp2x125 portent une fiche d’emballage incorrecte, qui indique à tort qu’il s’agit de tournevis facom atp2x125vepb isolés 1000v, pouvant ê...","hazard":"choc électrique","consumer_action":"ne plus utiliser le produit; rapporter le produit au point de vente","identifiers":["3662424096594"],"sold_at":"leroy merlin, castorama","url":"https://rappel.conso.gouv.fr/fiche-rappel/23911/interne","image":"https://rappel.conso.gouv.fr/image/29f81fca-ed11-4763-8af0-168d899b6d24.jpg|https://rappel.conso.gouv.fr/image/3d6759e9-dcc1-45fd-9647-1544c287c218.jpg|https..."}],"sources_checked":["RappelConso (FR)","CPSC (US)"],"sources_failed":[],"note":"Exact barcode match. A recall often targets specific lots / dates: check 'title', 'identifiers' and the official notice.","generated_at":"2026-10-23T10:03:37Z","price_usd":0.01,"billing_unit":"barcode check","sources":[{"name":"U.S. CPSC Recalls API (SaferProducts.gov)","url":"https://www.saferproducts.gov/RestWebServices","licence":"U.S. government work, public domain"},{"name":"openFDA enforcement reports (food, drug, device)","url":"https://open.fda.gov/apis/","licence":"Public domain (CC0)"}],"response_time_ms":2904}}}}},"400":{"description":"Invalid request; no settlement"},"402":{"description":"Payment required; same x402 v2 offer in JSON body and PAYMENT-REQUIRED header","content":{"application/json":{"schema":{"type":"object","required":["x402Version","accepts"],"properties":{"x402Version":{"const":2},"accepts":{"type":"array","items":{"type":"object"}}}}}}},"502":{"description":"Upstream unavailable; no settlement"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"gtin":{"type":"string","description":"8/12/13/14-digit barcode, e.g. 3662424096594"}},"required":["gtin"]},"example":{"gtin":"3662424096594"}}}}}},"/v1/sanctions/screen":{"get":{"operationId":"sanctions_screen","summary":"Sanctions Name Screening","description":"Screen a person or company name against OFAC SDN, UN, EU and UK sanctions lists in one call (fuzzy, aliases). Returns matches with score, list, programs, countries.","parameters":[{"name":"name","in":"query","required":true,"schema":{"type":"string","description":"Person or company name, Latin script"},"example":"Bank Rossiya"},{"name":"type","in":"query","required":false,"schema":{"type":"string","enum":["any","person","entity","vessel","aircraft"],"default":"any","description":"Restrict to a subject type"},"example":"entity"},{"name":"country","in":"query","required":false,"schema":{"type":"string","description":"ISO-2 country (or name) of the subject, boosts/penalises matches"}},{"name":"birth_year","in":"query","required":false,"schema":{"type":"integer","minimum":1900,"maximum":2026,"description":"Birth year of a person, boosts/penalises matches"}},{"name":"threshold","in":"query","required":false,"schema":{"type":"integer","default":85,"minimum":60,"maximum":100,"description":"Minimum match score 0-100 (default 85)"}},{"name":"lists","in":"query","required":false,"schema":{"type":"string","description":"Comma list among ofac,un,eu,uk (default all)"}},{"name":"max_results","in":"query","required":false,"schema":{"type":"integer","default":10,"minimum":1,"maximum":50,"description":"Max matches returned"}}],"x-payment-info":{"protocol":"x402","version":2,"network":"eip155:8453","payTo":"0xe414aD5c7542CE63D890526f0e2133ff8da6F22D","price":"$0.01","currency":"USDC"},"responses":{"200":{"description":"Successful result after verified payment. Scores are indicative, not certifications.","content":{"application/json":{"schema":{"type":"object","required":["service","data"],"properties":{"service":{"const":"sanctions_screen"},"data":{"type":"object"}}},"example":{"service":"sanctions_screen","data":{"query":{"name":"Bank Rossiya","type":"entity","country":null,"birth_year":null,"threshold":85},"status":"potential_match","match_count":4,"top_score":100,"matches":[{"list":"OFAC SDN (US)","list_id":"ofac","entity_id":"ofac:16681","name":"BANK ROSSIYA","matched_name":"BANK ROSSIYA","score":100,"type":"entity","programs":["UKRAINE-EO13661"],"countries":["RU"],"birth_years":[],"listed_on":null,"aliases_count":3,"remarks":"SWIFT/BIC ROSYRU2P; Website www.abr.ru; Email Address bank@abr.ru; Secondary sanctions risk: Ukraine-/Russia-Related Sanctions Regulations, 31 CFR 589.201 an...","flags":[]},{"list":"EU Consolidated Financial Sanctions List","list_id":"eu","entity_id":"eu:EU.7394.37","name":"Bank Rossiya","matched_name":"Bank Rossiya","score":100,"type":"entity","programs":["UKR"],"countries":["RU"],"birth_years":[],"listed_on":"2025-03-15","aliases_count":6,"remarks":"(Date of UN designation: 2022-02-23)","flags":[]}],"lists_checked":[{"list":"OFAC SDN (US)","entities":19471,"data_age_s":1101},{"list":"UN Security Council Consolidated List","entities":1010,"data_age_s":1098}],"list_errors":[],"disclaimer":"Automated name screening against official lists: a potential match is a signal for human review, not a confirmation, clearance or legal advice. Always confir...","generated_at":"2026-10-23T10:03:37Z","price_usd":0.01,"billing_unit":"name screened (4 lists)","sources":[{"name":"OFAC SDN List (US Treasury)","url":"https://ofac.treasury.gov/specially-designated-nationals-and-blocked-persons-list-sdn-human-readable-lists","licence":"US Government work, public domain"},{"name":"UN Security Council Consolidated List","url":"https://main.un.org/securitycouncil/en/content/un-sc-consolidated-list","licence":"Public UN document, free reuse"}],"response_time_ms":148}}}}},"400":{"description":"Invalid request; no settlement"},"402":{"description":"Payment required; same x402 v2 offer in JSON body and PAYMENT-REQUIRED header","content":{"application/json":{"schema":{"type":"object","required":["x402Version","accepts"],"properties":{"x402Version":{"const":2},"accepts":{"type":"array","items":{"type":"object"}}}}}}},"502":{"description":"Upstream unavailable; no settlement"}}},"post":{"operationId":"sanctions_screen_post","summary":"Sanctions Name Screening","description":"Screen a person or company name against OFAC SDN, UN, EU and UK sanctions lists in one call (fuzzy, aliases). Returns matches with score, list, programs, countries. Also accepts POST with the same parameters as a JSON body.","x-payment-info":{"protocol":"x402","version":2,"network":"eip155:8453","payTo":"0xe414aD5c7542CE63D890526f0e2133ff8da6F22D","price":"$0.01","currency":"USDC"},"responses":{"200":{"description":"Successful result after verified payment. Scores are indicative, not certifications.","content":{"application/json":{"schema":{"type":"object","required":["service","data"],"properties":{"service":{"const":"sanctions_screen"},"data":{"type":"object"}}},"example":{"service":"sanctions_screen","data":{"query":{"name":"Bank Rossiya","type":"entity","country":null,"birth_year":null,"threshold":85},"status":"potential_match","match_count":4,"top_score":100,"matches":[{"list":"OFAC SDN (US)","list_id":"ofac","entity_id":"ofac:16681","name":"BANK ROSSIYA","matched_name":"BANK ROSSIYA","score":100,"type":"entity","programs":["UKRAINE-EO13661"],"countries":["RU"],"birth_years":[],"listed_on":null,"aliases_count":3,"remarks":"SWIFT/BIC ROSYRU2P; Website www.abr.ru; Email Address bank@abr.ru; Secondary sanctions risk: Ukraine-/Russia-Related Sanctions Regulations, 31 CFR 589.201 an...","flags":[]},{"list":"EU Consolidated Financial Sanctions List","list_id":"eu","entity_id":"eu:EU.7394.37","name":"Bank Rossiya","matched_name":"Bank Rossiya","score":100,"type":"entity","programs":["UKR"],"countries":["RU"],"birth_years":[],"listed_on":"2025-03-15","aliases_count":6,"remarks":"(Date of UN designation: 2022-02-23)","flags":[]}],"lists_checked":[{"list":"OFAC SDN (US)","entities":19471,"data_age_s":1101},{"list":"UN Security Council Consolidated List","entities":1010,"data_age_s":1098}],"list_errors":[],"disclaimer":"Automated name screening against official lists: a potential match is a signal for human review, not a confirmation, clearance or legal advice. Always confir...","generated_at":"2026-10-23T10:03:37Z","price_usd":0.01,"billing_unit":"name screened (4 lists)","sources":[{"name":"OFAC SDN List (US Treasury)","url":"https://ofac.treasury.gov/specially-designated-nationals-and-blocked-persons-list-sdn-human-readable-lists","licence":"US Government work, public domain"},{"name":"UN Security Council Consolidated List","url":"https://main.un.org/securitycouncil/en/content/un-sc-consolidated-list","licence":"Public UN document, free reuse"}],"response_time_ms":148}}}}},"400":{"description":"Invalid request; no settlement"},"402":{"description":"Payment required; same x402 v2 offer in JSON body and PAYMENT-REQUIRED header","content":{"application/json":{"schema":{"type":"object","required":["x402Version","accepts"],"properties":{"x402Version":{"const":2},"accepts":{"type":"array","items":{"type":"object"}}}}}}},"502":{"description":"Upstream unavailable; no settlement"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"name":{"type":"string","description":"Person or company name, Latin script"},"type":{"type":"string","enum":["any","person","entity","vessel","aircraft"],"default":"any","description":"Restrict to a subject type"},"country":{"type":"string","description":"ISO-2 country (or name) of the subject, boosts/penalises matches"},"birth_year":{"type":"integer","minimum":1900,"maximum":2026,"description":"Birth year of a person, boosts/penalises matches"},"threshold":{"type":"integer","default":85,"minimum":60,"maximum":100,"description":"Minimum match score 0-100 (default 85)"},"lists":{"type":"string","description":"Comma list among ofac,un,eu,uk (default all)"},"max_results":{"type":"integer","default":10,"minimum":1,"maximum":50,"description":"Max matches returned"}},"required":["name"]},"example":{"name":"Bank Rossiya","type":"entity"}}}}}},"/v1/sanctions/crypto-address":{"get":{"operationId":"sanctions_crypto_address","summary":"OFAC Crypto Address Check","description":"Check a crypto address (BTC, ETH/EVM, TRON, LTC, XMR, SOL and more) against OFAC SDN digital currency addresses. Returns listed true/false and the sanctioned entity.","parameters":[{"name":"address","in":"query","required":true,"schema":{"type":"string","description":"Crypto address, e.g. 0x… or bc1…"},"example":"TNiq9AXBp9EjUqhDhrwrfvAA8U3GUQZH81"}],"x-payment-info":{"protocol":"x402","version":2,"network":"eip155:8453","payTo":"0xe414aD5c7542CE63D890526f0e2133ff8da6F22D","price":"$0.005","currency":"USDC"},"responses":{"200":{"description":"Successful result after verified payment. Scores are indicative, not certifications.","content":{"application/json":{"schema":{"type":"object","required":["service","data"],"properties":{"service":{"const":"sanctions_crypto_address"},"data":{"type":"object"}}},"example":{"service":"sanctions_crypto_address","data":{"address":"TNiq9AXBp9EjUqhDhrwrfvAA8U3GUQZH81","listed":true,"status":"sanctioned_address","currency":"TRX","case_exact":true,"addresses_checked":506,"list":"OFAC SDN (US)","entity":{"list":"OFAC SDN (US)","list_id":"ofac","entity_id":"ofac:4632","name":"BANK MARKAZI JOMHOURI ISLAMI IRAN","matched_name":"BANK MARKAZI JOMHOURI ISLAMI IRAN","score":100,"type":"entity","programs":["IRAN","SDGT"],"countries":["IR"],"birth_years":[],"listed_on":null,"aliases_count":3,"remarks":"Additional Sanctions Information - Subject to Secondary Sanctions; Secondary sanctions risk: section 1(b) of Executive Order 13224, as amended by Executive O...","flags":["exact_address_match"]},"other_addresses_of_entity":[{"currency":"TRX","address":"TTiDLWE6fZK8okMJv6ijg42yrH6W2pjSr9"},{"currency":"TRX","address":"TAhwhFv3JpK39Nc2m8W5LPCcoTisutiRfp"}],"disclaimer":"Automated name screening against official lists: a potential match is a signal for human review, not a confirmation, clearance or legal advice. Always confir...","generated_at":"2026-10-23T10:03:37Z","price_usd":0.005,"billing_unit":"address checked","sources":[{"name":"OFAC SDN List (US Treasury)","url":"https://ofac.treasury.gov/specially-designated-nationals-and-blocked-persons-list-sdn-human-readable-lists","licence":"US Government work, public domain"},{"name":"UN Security Council Consolidated List","url":"https://main.un.org/securitycouncil/en/content/un-sc-consolidated-list","licence":"Public UN document, free reuse"}],"response_time_ms":13}}}}},"400":{"description":"Invalid request; no settlement"},"402":{"description":"Payment required; same x402 v2 offer in JSON body and PAYMENT-REQUIRED header","content":{"application/json":{"schema":{"type":"object","required":["x402Version","accepts"],"properties":{"x402Version":{"const":2},"accepts":{"type":"array","items":{"type":"object"}}}}}}},"502":{"description":"Upstream unavailable; no settlement"}}},"post":{"operationId":"sanctions_crypto_address_post","summary":"OFAC Crypto Address Check","description":"Check a crypto address (BTC, ETH/EVM, TRON, LTC, XMR, SOL and more) against OFAC SDN digital currency addresses. Returns listed true/false and the sanctioned entity. Also accepts POST with the same parameters as a JSON body.","x-payment-info":{"protocol":"x402","version":2,"network":"eip155:8453","payTo":"0xe414aD5c7542CE63D890526f0e2133ff8da6F22D","price":"$0.005","currency":"USDC"},"responses":{"200":{"description":"Successful result after verified payment. Scores are indicative, not certifications.","content":{"application/json":{"schema":{"type":"object","required":["service","data"],"properties":{"service":{"const":"sanctions_crypto_address"},"data":{"type":"object"}}},"example":{"service":"sanctions_crypto_address","data":{"address":"TNiq9AXBp9EjUqhDhrwrfvAA8U3GUQZH81","listed":true,"status":"sanctioned_address","currency":"TRX","case_exact":true,"addresses_checked":506,"list":"OFAC SDN (US)","entity":{"list":"OFAC SDN (US)","list_id":"ofac","entity_id":"ofac:4632","name":"BANK MARKAZI JOMHOURI ISLAMI IRAN","matched_name":"BANK MARKAZI JOMHOURI ISLAMI IRAN","score":100,"type":"entity","programs":["IRAN","SDGT"],"countries":["IR"],"birth_years":[],"listed_on":null,"aliases_count":3,"remarks":"Additional Sanctions Information - Subject to Secondary Sanctions; Secondary sanctions risk: section 1(b) of Executive Order 13224, as amended by Executive O...","flags":["exact_address_match"]},"other_addresses_of_entity":[{"currency":"TRX","address":"TTiDLWE6fZK8okMJv6ijg42yrH6W2pjSr9"},{"currency":"TRX","address":"TAhwhFv3JpK39Nc2m8W5LPCcoTisutiRfp"}],"disclaimer":"Automated name screening against official lists: a potential match is a signal for human review, not a confirmation, clearance or legal advice. Always confir...","generated_at":"2026-10-23T10:03:37Z","price_usd":0.005,"billing_unit":"address checked","sources":[{"name":"OFAC SDN List (US Treasury)","url":"https://ofac.treasury.gov/specially-designated-nationals-and-blocked-persons-list-sdn-human-readable-lists","licence":"US Government work, public domain"},{"name":"UN Security Council Consolidated List","url":"https://main.un.org/securitycouncil/en/content/un-sc-consolidated-list","licence":"Public UN document, free reuse"}],"response_time_ms":13}}}}},"400":{"description":"Invalid request; no settlement"},"402":{"description":"Payment required; same x402 v2 offer in JSON body and PAYMENT-REQUIRED header","content":{"application/json":{"schema":{"type":"object","required":["x402Version","accepts"],"properties":{"x402Version":{"const":2},"accepts":{"type":"array","items":{"type":"object"}}}}}}},"502":{"description":"Upstream unavailable; no settlement"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"Crypto address, e.g. 0x… or bc1…"}},"required":["address"]},"example":{"address":"TNiq9AXBp9EjUqhDhrwrfvAA8U3GUQZH81"}}}}}},"/v1/seller/reputation":{"get":{"operationId":"seller_reputation","summary":"Seller Reputation","description":"Trust score 0-100 for an online store domain or URL: domain age (RDAP), HTTPS, MX/SPF/DMARC, return policy and contact, Tranco rank, phishing lists, scam patterns. Short JSON with risk, advice, red_flags, reasons.","parameters":[{"name":"domain","in":"query","required":true,"schema":{"type":"string","description":"Store domain or any URL on it, e.g. allbirds.com or https://shop.example.com/products/x"},"example":"allbirds.com"}],"x-payment-info":{"protocol":"x402","version":2,"network":"eip155:8453","payTo":"0xe414aD5c7542CE63D890526f0e2133ff8da6F22D","price":"$0.02","currency":"USDC"},"responses":{"200":{"description":"Successful result after verified payment. Scores are indicative, not certifications.","content":{"application/json":{"schema":{"type":"object","required":["service","data"],"properties":{"service":{"const":"seller_reputation"},"data":{"type":"object"}}},"example":{"service":"seller_reputation","data":{"domain":"allbirds.com","score":71,"risk":"low","advice":"ok_to_buy","red_flags":[],"reasons":["domain_age_24y","homepage_blocks_bots"],"signals":{"domain_created":"2002-01-09","domain_age_days":9052,"registrar":"MarkMonitor Inc.","https":{"valid":true,"issuer":"Let's Encrypt","days_left":75},"email":{"mx":true,"spf":true,"dmarc":"quarantine"},"popularity_rank":70201,"phishing_listed":false,"platform":null,"policies":null,"contact_details":null,"homepage":{"read":false,"robots":"allowed","status":429}},"cache":{"hit":true,"age_s":20355},"note":"Rule-based signals from public sources; not a guarantee. Unknown != bad.","generated_at":"2026-10-23T10:03:37Z","price_usd":0.02,"billing_unit":"domain check","sources":[{"name":"RDAP (rdap.org bootstrap → registries)","url":"https://about.rdap.org/","licence":"Public registration data (RDAP, RFC 9083)"},{"name":"Public DNS (MX, SPF, DMARC) and TLS handshake","url":"https://www.rfc-editor.org/rfc/rfc7489","licence":"Public protocol data"}],"response_time_ms":50}}}}},"400":{"description":"Invalid request; no settlement"},"402":{"description":"Payment required; same x402 v2 offer in JSON body and PAYMENT-REQUIRED header","content":{"application/json":{"schema":{"type":"object","required":["x402Version","accepts"],"properties":{"x402Version":{"const":2},"accepts":{"type":"array","items":{"type":"object"}}}}}}},"502":{"description":"Upstream unavailable; no settlement"}}},"post":{"operationId":"seller_reputation_post","summary":"Seller Reputation","description":"Trust score 0-100 for an online store domain or URL: domain age (RDAP), HTTPS, MX/SPF/DMARC, return policy and contact, Tranco rank, phishing lists, scam patterns. Short JSON with risk, advice, red_flags, reasons. Also accepts POST with the same parameters as a JSON body.","x-payment-info":{"protocol":"x402","version":2,"network":"eip155:8453","payTo":"0xe414aD5c7542CE63D890526f0e2133ff8da6F22D","price":"$0.02","currency":"USDC"},"responses":{"200":{"description":"Successful result after verified payment. Scores are indicative, not certifications.","content":{"application/json":{"schema":{"type":"object","required":["service","data"],"properties":{"service":{"const":"seller_reputation"},"data":{"type":"object"}}},"example":{"service":"seller_reputation","data":{"domain":"allbirds.com","score":71,"risk":"low","advice":"ok_to_buy","red_flags":[],"reasons":["domain_age_24y","homepage_blocks_bots"],"signals":{"domain_created":"2002-01-09","domain_age_days":9052,"registrar":"MarkMonitor Inc.","https":{"valid":true,"issuer":"Let's Encrypt","days_left":75},"email":{"mx":true,"spf":true,"dmarc":"quarantine"},"popularity_rank":70201,"phishing_listed":false,"platform":null,"policies":null,"contact_details":null,"homepage":{"read":false,"robots":"allowed","status":429}},"cache":{"hit":true,"age_s":20355},"note":"Rule-based signals from public sources; not a guarantee. Unknown != bad.","generated_at":"2026-10-23T10:03:37Z","price_usd":0.02,"billing_unit":"domain check","sources":[{"name":"RDAP (rdap.org bootstrap → registries)","url":"https://about.rdap.org/","licence":"Public registration data (RDAP, RFC 9083)"},{"name":"Public DNS (MX, SPF, DMARC) and TLS handshake","url":"https://www.rfc-editor.org/rfc/rfc7489","licence":"Public protocol data"}],"response_time_ms":50}}}}},"400":{"description":"Invalid request; no settlement"},"402":{"description":"Payment required; same x402 v2 offer in JSON body and PAYMENT-REQUIRED header","content":{"application/json":{"schema":{"type":"object","required":["x402Version","accepts"],"properties":{"x402Version":{"const":2},"accepts":{"type":"array","items":{"type":"object"}}}}}}},"502":{"description":"Upstream unavailable; no settlement"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"domain":{"type":"string","description":"Store domain or any URL on it, e.g. allbirds.com or https://shop.example.com/products/x"}},"required":["domain"]},"example":{"domain":"allbirds.com"}}}}}},"/v1/seo/technical":{"get":{"operationId":"seo_technical_audit","summary":"Technical SEO Audit","description":"Technical SEO audit of a URL: HTTPS and redirects, www duplicate, canonical, noindex, title/meta/H1, viewport, hreflang, Open Graph, sitemap and robots.txt, soft 404, response time, compression, images alt, schema.org, JS-only content. Score 0-100 + ranked fixes.","parameters":[{"name":"url","in":"query","required":true,"schema":{"type":"string","description":"Public page URL or domain, e.g. https://www.example.com/ or example.com"},"example":"https://www.python.org/"}],"x-payment-info":{"protocol":"x402","version":2,"network":"eip155:8453","payTo":"0xe414aD5c7542CE63D890526f0e2133ff8da6F22D","price":"$0.02","currency":"USDC"},"responses":{"200":{"description":"Successful result after verified payment. Scores are indicative, not certifications.","content":{"application/json":{"schema":{"type":"object","required":["service","data"],"properties":{"service":{"const":"seo_technical_audit"},"data":{"type":"object"}}},"example":{"service":"seo_technical_audit","data":{"url":"https://www.python.org/","score":85,"grade":"A","issues":[{"impact":"high","check":"sitemap_missing","fix":"Publish an XML sitemap and declare it in robots.txt and Google Search Console."},{"impact":"medium","check":"compression","fix":"Enable gzip/brotli compression on HTML."}],"issues_count":4,"checks":{"https":{"final_url":"https://www.python.org/","https":true,"http_redirects_to_https":true,"http_hops":1,"hsts":true},"www_consistency":{"alternate_host_final":"https://www.python.org/","consolidated":true},"performance":{"response_ms":17,"html_kb":51.9,"compression":null,"scripts":7},"tags":{"title":"Welcome to Python.org","title_len":21,"meta_description":"The official home of the Python Programming Language","meta_description_len":52,"h1":["Functions Defined","All the Flow You’d Expect"],"h1_count":5,"canonical":null,"noindex":false,"lang":"en","viewport":true,"hreflang":[],"open_graph":{"title":true,"description":true,"image":true},"twitter_card":false},"images":{"count":1,"missing_alt":0,"examples_missing_alt":[]},"mixed_content":[],"structured_data":{"types":["WebSite","SearchAction"],"invalid_blocks":0},"crawl_files":{"robots_txt":true,"robots_blocks_all":false,"sitemap_declared_in_robots":false,"sitemap_found":false,"sitemap_url":"https://www.python.org/sitemap.xml","sitemap_locs":0},"error_handling":{"random_url_status":404,"soft_404":false},"favicon":true,"content":{"words_without_js":1155}},"cache":{"hit":true,"age_s":21071},"generated_at":"2026-10-23T10:03:37Z","price_usd":0.02,"billing_unit":"page audit","sources":[{"name":"Live fetch of the audited website (HTML, robots.txt, sitemap.xml, llms.txt)","url":"https://www.rfc-editor.org/rfc/rfc9309","licence":"Public pages, robots.txt (RFC 9309) respected"},{"name":"Google Search Central SEO guidelines (rules reference)","url":"https://developers.google.com/search/docs/fundamentals/seo-starter-guide","licence":"Reference only; no Google data reused"}],"response_time_ms":18}}}}},"400":{"description":"Invalid request; no settlement"},"402":{"description":"Payment required; same x402 v2 offer in JSON body and PAYMENT-REQUIRED header","content":{"application/json":{"schema":{"type":"object","required":["x402Version","accepts"],"properties":{"x402Version":{"const":2},"accepts":{"type":"array","items":{"type":"object"}}}}}}},"502":{"description":"Upstream unavailable; no settlement"}}},"post":{"operationId":"seo_technical_audit_post","summary":"Technical SEO Audit","description":"Technical SEO audit of a URL: HTTPS and redirects, www duplicate, canonical, noindex, title/meta/H1, viewport, hreflang, Open Graph, sitemap and robots.txt, soft 404, response time, compression, images alt, schema.org, JS-only content. Score 0-100 + ranked fixes. Also accepts POST with the same parameters as a JSON body.","x-payment-info":{"protocol":"x402","version":2,"network":"eip155:8453","payTo":"0xe414aD5c7542CE63D890526f0e2133ff8da6F22D","price":"$0.02","currency":"USDC"},"responses":{"200":{"description":"Successful result after verified payment. Scores are indicative, not certifications.","content":{"application/json":{"schema":{"type":"object","required":["service","data"],"properties":{"service":{"const":"seo_technical_audit"},"data":{"type":"object"}}},"example":{"service":"seo_technical_audit","data":{"url":"https://www.python.org/","score":85,"grade":"A","issues":[{"impact":"high","check":"sitemap_missing","fix":"Publish an XML sitemap and declare it in robots.txt and Google Search Console."},{"impact":"medium","check":"compression","fix":"Enable gzip/brotli compression on HTML."}],"issues_count":4,"checks":{"https":{"final_url":"https://www.python.org/","https":true,"http_redirects_to_https":true,"http_hops":1,"hsts":true},"www_consistency":{"alternate_host_final":"https://www.python.org/","consolidated":true},"performance":{"response_ms":17,"html_kb":51.9,"compression":null,"scripts":7},"tags":{"title":"Welcome to Python.org","title_len":21,"meta_description":"The official home of the Python Programming Language","meta_description_len":52,"h1":["Functions Defined","All the Flow You’d Expect"],"h1_count":5,"canonical":null,"noindex":false,"lang":"en","viewport":true,"hreflang":[],"open_graph":{"title":true,"description":true,"image":true},"twitter_card":false},"images":{"count":1,"missing_alt":0,"examples_missing_alt":[]},"mixed_content":[],"structured_data":{"types":["WebSite","SearchAction"],"invalid_blocks":0},"crawl_files":{"robots_txt":true,"robots_blocks_all":false,"sitemap_declared_in_robots":false,"sitemap_found":false,"sitemap_url":"https://www.python.org/sitemap.xml","sitemap_locs":0},"error_handling":{"random_url_status":404,"soft_404":false},"favicon":true,"content":{"words_without_js":1155}},"cache":{"hit":true,"age_s":21071},"generated_at":"2026-10-23T10:03:37Z","price_usd":0.02,"billing_unit":"page audit","sources":[{"name":"Live fetch of the audited website (HTML, robots.txt, sitemap.xml, llms.txt)","url":"https://www.rfc-editor.org/rfc/rfc9309","licence":"Public pages, robots.txt (RFC 9309) respected"},{"name":"Google Search Central SEO guidelines (rules reference)","url":"https://developers.google.com/search/docs/fundamentals/seo-starter-guide","licence":"Reference only; no Google data reused"}],"response_time_ms":18}}}}},"400":{"description":"Invalid request; no settlement"},"402":{"description":"Payment required; same x402 v2 offer in JSON body and PAYMENT-REQUIRED header","content":{"application/json":{"schema":{"type":"object","required":["x402Version","accepts"],"properties":{"x402Version":{"const":2},"accepts":{"type":"array","items":{"type":"object"}}}}}}},"502":{"description":"Upstream unavailable; no settlement"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","description":"Public page URL or domain, e.g. https://www.example.com/ or example.com"}},"required":["url"]},"example":{"url":"https://www.python.org/"}}}}}},"/v1/seo/keywords":{"get":{"operationId":"seo_keywords_content","summary":"SEO Keyword and Content","description":"On-page keyword and content analysis: focus keyword (given or detected) placement in title/H1/meta/first 100 words/URL, density, top terms and phrases, headings outline, FAQ questions, word count, readability. Score + fixes.","parameters":[{"name":"url","in":"query","required":true,"schema":{"type":"string","description":"Public page URL or domain, e.g. https://www.example.com/ or example.com"},"example":"https://www.python.org/"},{"name":"target","in":"query","required":false,"schema":{"type":"string","description":"Optional focus keyword to check, e.g. 'parfum oriental'"},"example":"python"}],"x-payment-info":{"protocol":"x402","version":2,"network":"eip155:8453","payTo":"0xe414aD5c7542CE63D890526f0e2133ff8da6F22D","price":"$0.01","currency":"USDC"},"responses":{"200":{"description":"Successful result after verified payment. Scores are indicative, not certifications.","content":{"application/json":{"schema":{"type":"object","required":["service","data"],"properties":{"service":{"const":"seo_keywords_content"},"data":{"type":"object"}}},"example":{"service":"seo_keywords_content","data":{"url":"https://www.python.org/","score":88,"grade":"A","focus_keyword":"python","focus_source":"target","placement":{"title":true,"meta_description":true,"h1":false,"first_100_words":true,"url":false,"occurrences":53,"density_pct":5.65},"word_count":938,"avg_sentence_words":23.4,"lang":"en","top_terms":[{"term":"python","count":49},{"term":"news","count":12}],"top_phrases":[{"phrase":"user group","count":5},{"phrase":"news python","count":4}],"headings":[{"level":"h1","text":"Functions Defined"},{"level":"h1","text":"All the Flow You’d Expect"}],"question_headings":[],"faq_schema":false,"title":"Welcome to Python.org","meta_description":"The official home of the Python Programming Language","issues":[{"impact":"medium","fix":"Put « python » in the <h1>."},{"impact":"low","fix":"Add an FAQ block with question headings (feeds Google 'People also ask' and AI answers)."}],"cache":{"hit":true,"age_s":21071},"generated_at":"2026-10-23T10:03:37Z","price_usd":0.01,"billing_unit":"page analysis","sources":[{"name":"Live fetch of the audited website (HTML, robots.txt, sitemap.xml, llms.txt)","url":"https://www.rfc-editor.org/rfc/rfc9309","licence":"Public pages, robots.txt (RFC 9309) respected"},{"name":"Google Search Central SEO guidelines (rules reference)","url":"https://developers.google.com/search/docs/fundamentals/seo-starter-guide","licence":"Reference only; no Google data reused"}],"response_time_ms":1}}}}},"400":{"description":"Invalid request; no settlement"},"402":{"description":"Payment required; same x402 v2 offer in JSON body and PAYMENT-REQUIRED header","content":{"application/json":{"schema":{"type":"object","required":["x402Version","accepts"],"properties":{"x402Version":{"const":2},"accepts":{"type":"array","items":{"type":"object"}}}}}}},"502":{"description":"Upstream unavailable; no settlement"}}},"post":{"operationId":"seo_keywords_content_post","summary":"SEO Keyword and Content","description":"On-page keyword and content analysis: focus keyword (given or detected) placement in title/H1/meta/first 100 words/URL, density, top terms and phrases, headings outline, FAQ questions, word count, readability. Score + fixes. Also accepts POST with the same parameters as a JSON body.","x-payment-info":{"protocol":"x402","version":2,"network":"eip155:8453","payTo":"0xe414aD5c7542CE63D890526f0e2133ff8da6F22D","price":"$0.01","currency":"USDC"},"responses":{"200":{"description":"Successful result after verified payment. Scores are indicative, not certifications.","content":{"application/json":{"schema":{"type":"object","required":["service","data"],"properties":{"service":{"const":"seo_keywords_content"},"data":{"type":"object"}}},"example":{"service":"seo_keywords_content","data":{"url":"https://www.python.org/","score":88,"grade":"A","focus_keyword":"python","focus_source":"target","placement":{"title":true,"meta_description":true,"h1":false,"first_100_words":true,"url":false,"occurrences":53,"density_pct":5.65},"word_count":938,"avg_sentence_words":23.4,"lang":"en","top_terms":[{"term":"python","count":49},{"term":"news","count":12}],"top_phrases":[{"phrase":"user group","count":5},{"phrase":"news python","count":4}],"headings":[{"level":"h1","text":"Functions Defined"},{"level":"h1","text":"All the Flow You’d Expect"}],"question_headings":[],"faq_schema":false,"title":"Welcome to Python.org","meta_description":"The official home of the Python Programming Language","issues":[{"impact":"medium","fix":"Put « python » in the <h1>."},{"impact":"low","fix":"Add an FAQ block with question headings (feeds Google 'People also ask' and AI answers)."}],"cache":{"hit":true,"age_s":21071},"generated_at":"2026-10-23T10:03:37Z","price_usd":0.01,"billing_unit":"page analysis","sources":[{"name":"Live fetch of the audited website (HTML, robots.txt, sitemap.xml, llms.txt)","url":"https://www.rfc-editor.org/rfc/rfc9309","licence":"Public pages, robots.txt (RFC 9309) respected"},{"name":"Google Search Central SEO guidelines (rules reference)","url":"https://developers.google.com/search/docs/fundamentals/seo-starter-guide","licence":"Reference only; no Google data reused"}],"response_time_ms":1}}}}},"400":{"description":"Invalid request; no settlement"},"402":{"description":"Payment required; same x402 v2 offer in JSON body and PAYMENT-REQUIRED header","content":{"application/json":{"schema":{"type":"object","required":["x402Version","accepts"],"properties":{"x402Version":{"const":2},"accepts":{"type":"array","items":{"type":"object"}}}}}}},"502":{"description":"Upstream unavailable; no settlement"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","description":"Public page URL or domain, e.g. https://www.example.com/ or example.com"},"target":{"type":"string","description":"Optional focus keyword to check, e.g. 'parfum oriental'"}},"required":["url"]},"example":{"url":"https://www.python.org/","target":"python"}}}}}},"/v1/seo/internal-links":{"get":{"operationId":"seo_internal_links","summary":"Internal Links Audit","description":"Internal linking audit: crawls up to max_pages same-site pages (robots.txt respected, 30 s cap): broken internal links, orphan pages vs XML sitemap, click depth, dead ends, generic/empty anchors, internal nofollow, duplicate titles, missing meta descriptions.","parameters":[{"name":"url","in":"query","required":true,"schema":{"type":"string","description":"Public page URL or domain, e.g. https://www.example.com/ or example.com"},"example":"https://www.python.org/"},{"name":"max_pages","in":"query","required":false,"schema":{"type":"integer","default":20,"minimum":3,"maximum":40,"description":"Pages to crawl, 3-40 (default 20)"},"example":10}],"x-payment-info":{"protocol":"x402","version":2,"network":"eip155:8453","payTo":"0xe414aD5c7542CE63D890526f0e2133ff8da6F22D","price":"$0.03","currency":"USDC"},"responses":{"200":{"description":"Successful result after verified payment. Scores are indicative, not certifications.","content":{"application/json":{"schema":{"type":"object","required":["service","data"],"properties":{"service":{"const":"seo_internal_links"},"data":{"type":"object"}}},"example":{"service":"seo_internal_links","data":{"url":"https://www.python.org/","score":88,"grade":"A","pages_crawled":10,"max_pages":10,"pages_ok":10,"internal_links_found":1246,"sitemap_urls":0,"crawl_complete":false,"sitemap_urls_not_reached":0,"broken_links":[],"orphan_pages":[],"orphan_pages_count":0,"duplicate_titles":[],"pages_without_meta_description":[],"generic_anchor_examples":[{"to":"https://www.python.org/doc","text":"Learn More"},{"to":"https://www.python.org/events/calendars","text":"More"}],"nofollow_internal":0,"deep_pages":[],"dead_end_pages":[],"least_linked_pages":[{"url":"https://www.python.org/jobs","inlinks":11},{"url":"https://www.python.org/psf","inlinks":15}],"pages":[{"url":"https://www.python.org/","status":200,"depth":0,"title":"Welcome to Python.org","internal_outlinks":63,"words":1104,"inlinks":24},{"url":"https://www.python.org/psf","status":200,"depth":1,"title":"Python Software Foundation","internal_outlinks":82,"words":645,"inlinks":15}],"issues":[{"impact":"medium","fix":"No readable XML sitemap: orphan detection impossible; publish one."},{"impact":"low","fix":"19 internal link(s) with generic or empty anchor text: use descriptive keywords (e.g. « parfum oriental femme » instead of « en savoir plus »)."}],"note":"Crawl limited to max_pages and 30 s, same host, robots.txt respected.","cache":{"hit":false,"age_s":0},"generated_at":"2026-10-23T10:03:38Z"}}}}},"400":{"description":"Invalid request; no settlement"},"402":{"description":"Payment required; same x402 v2 offer in JSON body and PAYMENT-REQUIRED header","content":{"application/json":{"schema":{"type":"object","required":["x402Version","accepts"],"properties":{"x402Version":{"const":2},"accepts":{"type":"array","items":{"type":"object"}}}}}}},"502":{"description":"Upstream unavailable; no settlement"}}},"post":{"operationId":"seo_internal_links_post","summary":"Internal Links Audit","description":"Internal linking audit: crawls up to max_pages same-site pages (robots.txt respected, 30 s cap): broken internal links, orphan pages vs XML sitemap, click depth, dead ends, generic/empty anchors, internal nofollow, duplicate titles, missing meta descriptions. Also accepts POST with the same parameters as a JSON body.","x-payment-info":{"protocol":"x402","version":2,"network":"eip155:8453","payTo":"0xe414aD5c7542CE63D890526f0e2133ff8da6F22D","price":"$0.03","currency":"USDC"},"responses":{"200":{"description":"Successful result after verified payment. Scores are indicative, not certifications.","content":{"application/json":{"schema":{"type":"object","required":["service","data"],"properties":{"service":{"const":"seo_internal_links"},"data":{"type":"object"}}},"example":{"service":"seo_internal_links","data":{"url":"https://www.python.org/","score":88,"grade":"A","pages_crawled":10,"max_pages":10,"pages_ok":10,"internal_links_found":1246,"sitemap_urls":0,"crawl_complete":false,"sitemap_urls_not_reached":0,"broken_links":[],"orphan_pages":[],"orphan_pages_count":0,"duplicate_titles":[],"pages_without_meta_description":[],"generic_anchor_examples":[{"to":"https://www.python.org/doc","text":"Learn More"},{"to":"https://www.python.org/events/calendars","text":"More"}],"nofollow_internal":0,"deep_pages":[],"dead_end_pages":[],"least_linked_pages":[{"url":"https://www.python.org/jobs","inlinks":11},{"url":"https://www.python.org/psf","inlinks":15}],"pages":[{"url":"https://www.python.org/","status":200,"depth":0,"title":"Welcome to Python.org","internal_outlinks":63,"words":1104,"inlinks":24},{"url":"https://www.python.org/psf","status":200,"depth":1,"title":"Python Software Foundation","internal_outlinks":82,"words":645,"inlinks":15}],"issues":[{"impact":"medium","fix":"No readable XML sitemap: orphan detection impossible; publish one."},{"impact":"low","fix":"19 internal link(s) with generic or empty anchor text: use descriptive keywords (e.g. « parfum oriental femme » instead of « en savoir plus »)."}],"note":"Crawl limited to max_pages and 30 s, same host, robots.txt respected.","cache":{"hit":false,"age_s":0},"generated_at":"2026-10-23T10:03:38Z"}}}}},"400":{"description":"Invalid request; no settlement"},"402":{"description":"Payment required; same x402 v2 offer in JSON body and PAYMENT-REQUIRED header","content":{"application/json":{"schema":{"type":"object","required":["x402Version","accepts"],"properties":{"x402Version":{"const":2},"accepts":{"type":"array","items":{"type":"object"}}}}}}},"502":{"description":"Upstream unavailable; no settlement"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","description":"Public page URL or domain, e.g. https://www.example.com/ or example.com"},"max_pages":{"type":"integer","default":20,"minimum":3,"maximum":40,"description":"Pages to crawl, 3-40 (default 20)"}},"required":["url"]},"example":{"url":"https://www.python.org/","max_pages":10}}}}}},"/v1/seo/local":{"get":{"operationId":"seo_local_presence","summary":"Local SEO Presence","description":"Local SEO / listings readiness from the website: phone (tel: links), postal address, e-mail, Organization/LocalBusiness JSON-LD (address, telephone, geo, hours, sameAs), Google Maps/Business and review-platform links, social profiles. Score + fixes.","parameters":[{"name":"url","in":"query","required":true,"schema":{"type":"string","description":"Public page URL or domain, e.g. https://www.example.com/ or example.com"},"example":"https://samavoice.com/"}],"x-payment-info":{"protocol":"x402","version":2,"network":"eip155:8453","payTo":"0xe414aD5c7542CE63D890526f0e2133ff8da6F22D","price":"$0.01","currency":"USDC"},"responses":{"200":{"description":"Successful result after verified payment. Scores are indicative, not certifications.","content":{"application/json":{"schema":{"type":"object","required":["service","data"],"properties":{"service":{"const":"seo_local_presence"},"data":{"type":"object"}}},"example":{"service":"seo_local_presence","data":{"url":"https://samavoice.com/","score":45,"grade":"D","pages_checked":["https://samavoice.com/","https://samavoice.com/contact"],"nap":{"phones":[],"tel_links":[],"addresses":[],"emails":[]},"schema":{"types":["Organization","PostalAddress"],"business_entity":true,"name":"Sama Voice","telephone":null,"address":true,"geo":false,"opening_hours":false,"same_as":[],"logo":true,"aggregate_rating":false},"social_profiles":{"whatsapp":"https://wa.me/33768861565?text=Bonjour%20Sama%20Voice%2C%20je%20souhaite%20parler%20de%20mon%20projet%20de%20syst%C3%A8me%20vocal."},"review_and_listing_links":{},"google_maps_linked":false,"issues":[{"impact":"high","fix":"Show a phone number in text and as a clickable tel: link (header/footer + contact page)."},{"impact":"medium","fix":"Show the postal address (or service area) in the footer and contact page, identical to the Google Business Profile."}],"note":"Checks what the website itself exposes. A Google Business Profile's existence/claim status is not verifiable from the public site; review it in Google Busine...","cache":{"hit":true,"age_s":21070},"generated_at":"2026-10-23T10:03:38Z","price_usd":0.01,"billing_unit":"site check","sources":[{"name":"Live fetch of the audited website (HTML, robots.txt, sitemap.xml, llms.txt)","url":"https://www.rfc-editor.org/rfc/rfc9309","licence":"Public pages, robots.txt (RFC 9309) respected"},{"name":"Google Search Central SEO guidelines (rules reference)","url":"https://developers.google.com/search/docs/fundamentals/seo-starter-guide","licence":"Reference only; no Google data reused"}],"response_time_ms":49}}}}},"400":{"description":"Invalid request; no settlement"},"402":{"description":"Payment required; same x402 v2 offer in JSON body and PAYMENT-REQUIRED header","content":{"application/json":{"schema":{"type":"object","required":["x402Version","accepts"],"properties":{"x402Version":{"const":2},"accepts":{"type":"array","items":{"type":"object"}}}}}}},"502":{"description":"Upstream unavailable; no settlement"}}},"post":{"operationId":"seo_local_presence_post","summary":"Local SEO Presence","description":"Local SEO / listings readiness from the website: phone (tel: links), postal address, e-mail, Organization/LocalBusiness JSON-LD (address, telephone, geo, hours, sameAs), Google Maps/Business and review-platform links, social profiles. Score + fixes. Also accepts POST with the same parameters as a JSON body.","x-payment-info":{"protocol":"x402","version":2,"network":"eip155:8453","payTo":"0xe414aD5c7542CE63D890526f0e2133ff8da6F22D","price":"$0.01","currency":"USDC"},"responses":{"200":{"description":"Successful result after verified payment. Scores are indicative, not certifications.","content":{"application/json":{"schema":{"type":"object","required":["service","data"],"properties":{"service":{"const":"seo_local_presence"},"data":{"type":"object"}}},"example":{"service":"seo_local_presence","data":{"url":"https://samavoice.com/","score":45,"grade":"D","pages_checked":["https://samavoice.com/","https://samavoice.com/contact"],"nap":{"phones":[],"tel_links":[],"addresses":[],"emails":[]},"schema":{"types":["Organization","PostalAddress"],"business_entity":true,"name":"Sama Voice","telephone":null,"address":true,"geo":false,"opening_hours":false,"same_as":[],"logo":true,"aggregate_rating":false},"social_profiles":{"whatsapp":"https://wa.me/33768861565?text=Bonjour%20Sama%20Voice%2C%20je%20souhaite%20parler%20de%20mon%20projet%20de%20syst%C3%A8me%20vocal."},"review_and_listing_links":{},"google_maps_linked":false,"issues":[{"impact":"high","fix":"Show a phone number in text and as a clickable tel: link (header/footer + contact page)."},{"impact":"medium","fix":"Show the postal address (or service area) in the footer and contact page, identical to the Google Business Profile."}],"note":"Checks what the website itself exposes. A Google Business Profile's existence/claim status is not verifiable from the public site; review it in Google Busine...","cache":{"hit":true,"age_s":21070},"generated_at":"2026-10-23T10:03:38Z","price_usd":0.01,"billing_unit":"site check","sources":[{"name":"Live fetch of the audited website (HTML, robots.txt, sitemap.xml, llms.txt)","url":"https://www.rfc-editor.org/rfc/rfc9309","licence":"Public pages, robots.txt (RFC 9309) respected"},{"name":"Google Search Central SEO guidelines (rules reference)","url":"https://developers.google.com/search/docs/fundamentals/seo-starter-guide","licence":"Reference only; no Google data reused"}],"response_time_ms":49}}}}},"400":{"description":"Invalid request; no settlement"},"402":{"description":"Payment required; same x402 v2 offer in JSON body and PAYMENT-REQUIRED header","content":{"application/json":{"schema":{"type":"object","required":["x402Version","accepts"],"properties":{"x402Version":{"const":2},"accepts":{"type":"array","items":{"type":"object"}}}}}}},"502":{"description":"Upstream unavailable; no settlement"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","description":"Public page URL or domain, e.g. https://www.example.com/ or example.com"}},"required":["url"]},"example":{"url":"https://samavoice.com/"}}}}}},"/v1/seo/ai-visibility":{"get":{"operationId":"geo_ai_visibility","summary":"AI Search Visibility (GEO)","description":"GEO audit - can ChatGPT, Claude, Perplexity, Gemini cite this site? AI search/user/training bots allowed in robots.txt, text readable without JavaScript, schema.org, metadata, llms.txt, sitemap, agentic-commerce signals. Score + ranked fixes.","parameters":[{"name":"url","in":"query","required":true,"schema":{"type":"string","description":"Public page URL or domain, e.g. https://www.example.com/ or example.com"},"example":"https://www.python.org/"}],"x-payment-info":{"protocol":"x402","version":2,"network":"eip155:8453","payTo":"0xe414aD5c7542CE63D890526f0e2133ff8da6F22D","price":"$0.02","currency":"USDC"},"responses":{"200":{"description":"Successful result after verified payment. Scores are indicative, not certifications.","content":{"application/json":{"schema":{"type":"object","required":["service","data"],"properties":{"service":{"const":"geo_ai_visibility"},"data":{"type":"object"}}},"example":{"service":"geo_ai_visibility","data":{"url":"https://www.python.org/","score":67,"grade":"C","breakdown":{"ai_bot_access":30,"readable_without_js":20,"structured_data":8,"metadata":9,"ai_files":0,"agentic_commerce":0},"blocked_ai_search_or_user_bots":[],"robots_txt_found":true,"llms_txt":false,"llms_full_txt":false,"sitemap":false,"jsonld_types":["SearchAction","WebSite"],"jsonld_blocks":1,"title":"Welcome to Python.org","meta_description":"The official home of the Python Programming Language","lang":"en","canonical":null,"open_graph":true,"words_without_js":1168,"homepage_latency_ms":18,"agentic_commerce":{"schema_product_offer":false,"ucp_profile":false,"a2a_agent_card":false},"bots":[{"bot":"OAI-SearchBot","operator":"OpenAI","role":"search","allowed_home":true,"named_in_robots":false},{"bot":"ChatGPT-User","operator":"OpenAI","role":"user","allowed_home":true,"named_in_robots":false}],"issues":[{"impact":"medium","fix":"Publish /llms.txt (markdown summary of the site, key pages and offers) for LLMs and agents."},{"impact":"medium","fix":"Publish an XML sitemap and reference it in robots.txt (Sitemap: ...)."}],"cache":{"hit":true,"age_s":21071},"generated_at":"2026-10-23T10:03:38Z","price_usd":0.02,"billing_unit":"site audit"}}}}},"400":{"description":"Invalid request; no settlement"},"402":{"description":"Payment required; same x402 v2 offer in JSON body and PAYMENT-REQUIRED header","content":{"application/json":{"schema":{"type":"object","required":["x402Version","accepts"],"properties":{"x402Version":{"const":2},"accepts":{"type":"array","items":{"type":"object"}}}}}}},"502":{"description":"Upstream unavailable; no settlement"}}},"post":{"operationId":"geo_ai_visibility_post","summary":"AI Search Visibility (GEO)","description":"GEO audit - can ChatGPT, Claude, Perplexity, Gemini cite this site? AI search/user/training bots allowed in robots.txt, text readable without JavaScript, schema.org, metadata, llms.txt, sitemap, agentic-commerce signals. Score + ranked fixes. Also accepts POST with the same parameters as a JSON body.","x-payment-info":{"protocol":"x402","version":2,"network":"eip155:8453","payTo":"0xe414aD5c7542CE63D890526f0e2133ff8da6F22D","price":"$0.02","currency":"USDC"},"responses":{"200":{"description":"Successful result after verified payment. Scores are indicative, not certifications.","content":{"application/json":{"schema":{"type":"object","required":["service","data"],"properties":{"service":{"const":"geo_ai_visibility"},"data":{"type":"object"}}},"example":{"service":"geo_ai_visibility","data":{"url":"https://www.python.org/","score":67,"grade":"C","breakdown":{"ai_bot_access":30,"readable_without_js":20,"structured_data":8,"metadata":9,"ai_files":0,"agentic_commerce":0},"blocked_ai_search_or_user_bots":[],"robots_txt_found":true,"llms_txt":false,"llms_full_txt":false,"sitemap":false,"jsonld_types":["SearchAction","WebSite"],"jsonld_blocks":1,"title":"Welcome to Python.org","meta_description":"The official home of the Python Programming Language","lang":"en","canonical":null,"open_graph":true,"words_without_js":1168,"homepage_latency_ms":18,"agentic_commerce":{"schema_product_offer":false,"ucp_profile":false,"a2a_agent_card":false},"bots":[{"bot":"OAI-SearchBot","operator":"OpenAI","role":"search","allowed_home":true,"named_in_robots":false},{"bot":"ChatGPT-User","operator":"OpenAI","role":"user","allowed_home":true,"named_in_robots":false}],"issues":[{"impact":"medium","fix":"Publish /llms.txt (markdown summary of the site, key pages and offers) for LLMs and agents."},{"impact":"medium","fix":"Publish an XML sitemap and reference it in robots.txt (Sitemap: ...)."}],"cache":{"hit":true,"age_s":21071},"generated_at":"2026-10-23T10:03:38Z","price_usd":0.02,"billing_unit":"site audit"}}}}},"400":{"description":"Invalid request; no settlement"},"402":{"description":"Payment required; same x402 v2 offer in JSON body and PAYMENT-REQUIRED header","content":{"application/json":{"schema":{"type":"object","required":["x402Version","accepts"],"properties":{"x402Version":{"const":2},"accepts":{"type":"array","items":{"type":"object"}}}}}}},"502":{"description":"Upstream unavailable; no settlement"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","description":"Public page URL or domain, e.g. https://www.example.com/ or example.com"}},"required":["url"]},"example":{"url":"https://www.python.org/"}}}}}},"/v1/seo/full-audit":{"get":{"operationId":"seo_full_audit","summary":"Full SEO + GEO Audit","description":"Full SEO + GEO audit in one call: technical, keywords and content, internal links (12-page crawl), local presence and AI visibility, weighted 0-100 score and the 12 priority actions across all areas, with module details.","parameters":[{"name":"url","in":"query","required":true,"schema":{"type":"string","description":"Public page URL or domain, e.g. https://www.example.com/ or example.com"},"example":"https://www.python.org/"}],"x-payment-info":{"protocol":"x402","version":2,"network":"eip155:8453","payTo":"0xe414aD5c7542CE63D890526f0e2133ff8da6F22D","price":"$0.06","currency":"USDC"},"responses":{"200":{"description":"Successful result after verified payment. Scores are indicative, not certifications.","content":{"application/json":{"schema":{"type":"object","required":["service","data"],"properties":{"service":{"const":"seo_full_audit"},"data":{"type":"object"}}},"example":{"service":"seo_full_audit","data":{"url":"https://www.python.org/","score":72,"grade":"B","scores":{"technical":{"score":85,"grade":"A","weight":30},"content":{"score":61,"grade":"C","weight":20},"internal_links":{"score":88,"grade":"A","weight":15},"local":{"score":42,"grade":"D","weight":10},"ai_visibility":{"score":67,"grade":"C","weight":25}},"failed_modules":{},"priority_actions":[{"area":"technical","impact":"high","fix":"Publish an XML sitemap and declare it in robots.txt and Google Search Console."},{"area":"content","impact":"high","fix":"Put the focus keyword « user group » in the <title>."}],"actions_total":19,"details":{"...":"truncated"},"cache":{"hit":false,"age_s":0},"generated_at":"2026-10-23T10:03:39Z","price_usd":0.06,"billing_unit":"full site audit","sources":"[...]","response_time_ms":777}}}}},"400":{"description":"Invalid request; no settlement"},"402":{"description":"Payment required; same x402 v2 offer in JSON body and PAYMENT-REQUIRED header","content":{"application/json":{"schema":{"type":"object","required":["x402Version","accepts"],"properties":{"x402Version":{"const":2},"accepts":{"type":"array","items":{"type":"object"}}}}}}},"502":{"description":"Upstream unavailable; no settlement"}}},"post":{"operationId":"seo_full_audit_post","summary":"Full SEO + GEO Audit","description":"Full SEO + GEO audit in one call: technical, keywords and content, internal links (12-page crawl), local presence and AI visibility, weighted 0-100 score and the 12 priority actions across all areas, with module details. Also accepts POST with the same parameters as a JSON body.","x-payment-info":{"protocol":"x402","version":2,"network":"eip155:8453","payTo":"0xe414aD5c7542CE63D890526f0e2133ff8da6F22D","price":"$0.06","currency":"USDC"},"responses":{"200":{"description":"Successful result after verified payment. Scores are indicative, not certifications.","content":{"application/json":{"schema":{"type":"object","required":["service","data"],"properties":{"service":{"const":"seo_full_audit"},"data":{"type":"object"}}},"example":{"service":"seo_full_audit","data":{"url":"https://www.python.org/","score":72,"grade":"B","scores":{"technical":{"score":85,"grade":"A","weight":30},"content":{"score":61,"grade":"C","weight":20},"internal_links":{"score":88,"grade":"A","weight":15},"local":{"score":42,"grade":"D","weight":10},"ai_visibility":{"score":67,"grade":"C","weight":25}},"failed_modules":{},"priority_actions":[{"area":"technical","impact":"high","fix":"Publish an XML sitemap and declare it in robots.txt and Google Search Console."},{"area":"content","impact":"high","fix":"Put the focus keyword « user group » in the <title>."}],"actions_total":19,"details":{"...":"truncated"},"cache":{"hit":false,"age_s":0},"generated_at":"2026-10-23T10:03:39Z","price_usd":0.06,"billing_unit":"full site audit","sources":"[...]","response_time_ms":777}}}}},"400":{"description":"Invalid request; no settlement"},"402":{"description":"Payment required; same x402 v2 offer in JSON body and PAYMENT-REQUIRED header","content":{"application/json":{"schema":{"type":"object","required":["x402Version","accepts"],"properties":{"x402Version":{"const":2},"accepts":{"type":"array","items":{"type":"object"}}}}}}},"502":{"description":"Upstream unavailable; no settlement"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","description":"Public page URL or domain, e.g. https://www.example.com/ or example.com"}},"required":["url"]},"example":{"url":"https://www.python.org/"}}}}}},"/v1/agent/trust-trio":{"get":{"operationId":"trust_trio","summary":"Agent Trust Trio (A2A+MCP+x402)","description":"Trust Trio: A2A agent card + MCP server probe + x402 payment-offer check of one AI agent in a single call (no payment made to it). Returns trusted/partial/untrusted, a trust score and every issue.","parameters":[{"name":"url","in":"query","required":true,"schema":{"type":"string","description":"Agent base URL or domain (A2A card looked up at the domain root)"},"example":"https://gogeta2-u35175.vm.elestio.app/agents"},{"name":"mcp_url","in":"query","required":false,"schema":{"type":"string","description":"MCP endpoint (default: <url>/mcp)"}},{"name":"x402_url","in":"query","required":false,"schema":{"type":"string","description":"Paid endpoint to check for a 402 offer (default: url)"},"example":"https://gogeta2-u35175.vm.elestio.app/agents/v1/fx/latest"},{"name":"x402_method","in":"query","required":false,"schema":{"type":"string","enum":["GET","POST"],"default":"GET","description":"HTTP method for the x402 check"}}],"x-payment-info":{"protocol":"x402","version":2,"network":"eip155:8453","payTo":"0xe414aD5c7542CE63D890526f0e2133ff8da6F22D","price":"$0.03","currency":"USDC"},"responses":{"200":{"description":"Successful result after verified payment. Scores are indicative, not certifications.","content":{"application/json":{"schema":{"type":"object","required":["service","data"],"properties":{"service":{"const":"trust_trio"},"data":{"type":"object"}}},"example":{"service":"trust_trio","data":{"agent_url":"https://gogeta2-u35175.vm.elestio.app/agents","verdict":"partial","trust_score":67,"passed":["mcp","x402"],"warnings_on":[],"failed":["a2a"],"not_measured":[],"checks":{"a2a":{"status":"fail","score":0,"reason":"card_not_found"},"mcp":{"status":"pass","url":"https://gogeta2-u35175.vm.elestio.app/agents/mcp","score":100,"verdict":"healthy","server":{"name":"novarithm-agent-hub","version":"1.1.0"},"tools_count":39,"protocol_version":"2025-06-18","auth_required":false,"issues":[],"warnings":[]},"x402":{"status":"pass","url":"https://gogeta2-u35175.vm.elestio.app/agents/v1/fx/latest","score":100,"verdict":"payable_looks_safe","is_x402":true,"x402_version":2,"cheapest_price_usd":0.002,"networks":["eip155:8453"],"pay_to":"0xe414aD5c7542CE63D890526f0e2133ff8da6F22D","issues":[],"warnings":[]}},"checked_at":"2026-10-24T23:33:05+00:00","note":"Static pre-trust checks of the three agent protocols. No payment is made to the probed agent; a passing x402 offer does not prove the pai...","pack":{"includes":["a2a_card_check","mcp_probe"],"price_usd":0.03}}}}}},"400":{"description":"Invalid request; no settlement"},"402":{"description":"Payment required; same x402 v2 offer in JSON body and PAYMENT-REQUIRED header","content":{"application/json":{"schema":{"type":"object","required":["x402Version","accepts"],"properties":{"x402Version":{"const":2},"accepts":{"type":"array","items":{"type":"object"}}}}}}},"502":{"description":"Upstream unavailable; no settlement"}}},"post":{"operationId":"trust_trio_post","summary":"Agent Trust Trio (A2A+MCP+x402)","description":"Trust Trio: A2A agent card + MCP server probe + x402 payment-offer check of one AI agent in a single call (no payment made to it). Returns trusted/partial/untrusted, a trust score and every issue. Also accepts POST with the same parameters as a JSON body.","x-payment-info":{"protocol":"x402","version":2,"network":"eip155:8453","payTo":"0xe414aD5c7542CE63D890526f0e2133ff8da6F22D","price":"$0.03","currency":"USDC"},"responses":{"200":{"description":"Successful result after verified payment. Scores are indicative, not certifications.","content":{"application/json":{"schema":{"type":"object","required":["service","data"],"properties":{"service":{"const":"trust_trio"},"data":{"type":"object"}}},"example":{"service":"trust_trio","data":{"agent_url":"https://gogeta2-u35175.vm.elestio.app/agents","verdict":"partial","trust_score":67,"passed":["mcp","x402"],"warnings_on":[],"failed":["a2a"],"not_measured":[],"checks":{"a2a":{"status":"fail","score":0,"reason":"card_not_found"},"mcp":{"status":"pass","url":"https://gogeta2-u35175.vm.elestio.app/agents/mcp","score":100,"verdict":"healthy","server":{"name":"novarithm-agent-hub","version":"1.1.0"},"tools_count":39,"protocol_version":"2025-06-18","auth_required":false,"issues":[],"warnings":[]},"x402":{"status":"pass","url":"https://gogeta2-u35175.vm.elestio.app/agents/v1/fx/latest","score":100,"verdict":"payable_looks_safe","is_x402":true,"x402_version":2,"cheapest_price_usd":0.002,"networks":["eip155:8453"],"pay_to":"0xe414aD5c7542CE63D890526f0e2133ff8da6F22D","issues":[],"warnings":[]}},"checked_at":"2026-10-24T23:33:05+00:00","note":"Static pre-trust checks of the three agent protocols. No payment is made to the probed agent; a passing x402 offer does not prove the pai...","pack":{"includes":["a2a_card_check","mcp_probe"],"price_usd":0.03}}}}}},"400":{"description":"Invalid request; no settlement"},"402":{"description":"Payment required; same x402 v2 offer in JSON body and PAYMENT-REQUIRED header","content":{"application/json":{"schema":{"type":"object","required":["x402Version","accepts"],"properties":{"x402Version":{"const":2},"accepts":{"type":"array","items":{"type":"object"}}}}}}},"502":{"description":"Upstream unavailable; no settlement"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"url":{"type":"string","description":"Agent base URL or domain (A2A card looked up at the domain root)"},"mcp_url":{"type":"string","description":"MCP endpoint (default: <url>/mcp)"},"x402_url":{"type":"string","description":"Paid endpoint to check for a 402 offer (default: url)"},"x402_method":{"type":"string","enum":["GET","POST"],"default":"GET","description":"HTTP method for the x402 check"}},"required":["url"]},"example":{"url":"https://gogeta2-u35175.vm.elestio.app/agents","x402_url":"https://gogeta2-u35175.vm.elestio.app/agents/v1/fx/latest"}}}}}},"/v1/payments/usdc-verify":{"get":{"operationId":"verify_usdc_payment","summary":"USDC Payment Verifier","description":"Verify a USDC payment on Base: tx succeeded, USDC sent to the expected recipient (and from the expected sender), at least min_amount, enough confirmations. Returns verdict + decoded transfers. Unknown tx = not charged.","parameters":[{"name":"tx_hash","in":"query","required":true,"schema":{"type":"string","description":"Transaction hash, 0x + 64 hex"},"example":"0x4699c8e64627e085a11b8bdd1097f576e1363c1e11731005d1eb0c296df93d80"},{"name":"to","in":"query","required":false,"schema":{"type":"string","description":"Expected recipient address (0x...)"},"example":"0x17cd53c04d707ef0dd615ef56c633f02915a7905"},{"name":"from","in":"query","required":false,"schema":{"type":"string","description":"Expected payer address (optional)"}},{"name":"min_amount","in":"query","required":false,"schema":{"type":"number","minimum":0,"description":"Minimum USDC amount expected, e.g. 0.05"},"example":0.05},{"name":"min_confirmations","in":"query","required":false,"schema":{"type":"integer","default":1,"minimum":1,"maximum":10000,"description":"Required confirmations (default 1)"}},{"name":"chain","in":"query","required":false,"schema":{"type":"string","default":"base","enum":["base","base-sepolia"],"description":"base (default) or base-sepolia"}}],"x-payment-info":{"protocol":"x402","version":2,"network":"eip155:8453","payTo":"0xe414aD5c7542CE63D890526f0e2133ff8da6F22D","price":"$0.002","currency":"USDC"},"responses":{"200":{"description":"Successful result after verified payment. Scores are indicative, not certifications.","content":{"application/json":{"schema":{"type":"object","required":["service","data"],"properties":{"service":{"const":"verify_usdc_payment"},"data":{"type":"object"}}},"example":{"service":"verify_usdc_payment","data":{"tx_hash":"0x4699c8e64627e085a11b8bdd1097f576e1363c1e11731005d1eb0c296df93d80","chain":"base","chain_id":8453,"verdict":"valid","valid":true,"checks":{"tx_succeeded":true,"usdc_transfer_found":true,"recipient_matches":true,"sender_matches":null,"amount_ok":true,"confirmations_ok":true},"matched_amount":0.05,"min_amount":0.05,"transfers":[{"from":"0xcf6ac7315f9529397c47e6853bb3ae4ffcdf82c6","to":"0x17cd53c04d707ef0dd615ef56c633f02915a7905","amount":0.05,"amount_raw":"50000","log_index":129}],"block_number":52976727,"block_time":"2026-10-23T08:06:41Z","confirmations":3510,"tx_sender":"0x64cc42b1ce598e3abcfbb64df4688521ddbf1f0a","settlement_method":"transferWithAuthorization (EIP-3009, x402-style)","usdc_contract":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","explorer_url":"https://basescan.org/tx/0x4699c8e64627e085a11b8bdd1097f576e1363c1e11731005d1eb0c296df93d80","note":"Read-only on-chain check of the official USDC contract (Circle). Amounts in USDC (6 decimals).","generated_at":"2026-10-23T10:03:39Z","price_usd":0.002,"billing_unit":"transaction","sources":[{"name":"Base public RPC (mainnet.base.org, sepolia.base.org) with dRPC public fallback","url":"https://docs.base.org/base-chain/network-information","licence":"Public blockchain data"},{"name":"Circle USDC contract addresses","url":"https://developers.circle.com/stablecoins/usdc-contract-addresses","licence":"Public reference"}],"response_time_ms":462}}}}},"400":{"description":"Invalid request; no settlement"},"402":{"description":"Payment required; same x402 v2 offer in JSON body and PAYMENT-REQUIRED header","content":{"application/json":{"schema":{"type":"object","required":["x402Version","accepts"],"properties":{"x402Version":{"const":2},"accepts":{"type":"array","items":{"type":"object"}}}}}}},"502":{"description":"Upstream unavailable; no settlement"}}},"post":{"operationId":"verify_usdc_payment_post","summary":"USDC Payment Verifier","description":"Verify a USDC payment on Base: tx succeeded, USDC sent to the expected recipient (and from the expected sender), at least min_amount, enough confirmations. Returns verdict + decoded transfers. Unknown tx = not charged. Also accepts POST with the same parameters as a JSON body.","x-payment-info":{"protocol":"x402","version":2,"network":"eip155:8453","payTo":"0xe414aD5c7542CE63D890526f0e2133ff8da6F22D","price":"$0.002","currency":"USDC"},"responses":{"200":{"description":"Successful result after verified payment. Scores are indicative, not certifications.","content":{"application/json":{"schema":{"type":"object","required":["service","data"],"properties":{"service":{"const":"verify_usdc_payment"},"data":{"type":"object"}}},"example":{"service":"verify_usdc_payment","data":{"tx_hash":"0x4699c8e64627e085a11b8bdd1097f576e1363c1e11731005d1eb0c296df93d80","chain":"base","chain_id":8453,"verdict":"valid","valid":true,"checks":{"tx_succeeded":true,"usdc_transfer_found":true,"recipient_matches":true,"sender_matches":null,"amount_ok":true,"confirmations_ok":true},"matched_amount":0.05,"min_amount":0.05,"transfers":[{"from":"0xcf6ac7315f9529397c47e6853bb3ae4ffcdf82c6","to":"0x17cd53c04d707ef0dd615ef56c633f02915a7905","amount":0.05,"amount_raw":"50000","log_index":129}],"block_number":52976727,"block_time":"2026-10-23T08:06:41Z","confirmations":3510,"tx_sender":"0x64cc42b1ce598e3abcfbb64df4688521ddbf1f0a","settlement_method":"transferWithAuthorization (EIP-3009, x402-style)","usdc_contract":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","explorer_url":"https://basescan.org/tx/0x4699c8e64627e085a11b8bdd1097f576e1363c1e11731005d1eb0c296df93d80","note":"Read-only on-chain check of the official USDC contract (Circle). Amounts in USDC (6 decimals).","generated_at":"2026-10-23T10:03:39Z","price_usd":0.002,"billing_unit":"transaction","sources":[{"name":"Base public RPC (mainnet.base.org, sepolia.base.org) with dRPC public fallback","url":"https://docs.base.org/base-chain/network-information","licence":"Public blockchain data"},{"name":"Circle USDC contract addresses","url":"https://developers.circle.com/stablecoins/usdc-contract-addresses","licence":"Public reference"}],"response_time_ms":462}}}}},"400":{"description":"Invalid request; no settlement"},"402":{"description":"Payment required; same x402 v2 offer in JSON body and PAYMENT-REQUIRED header","content":{"application/json":{"schema":{"type":"object","required":["x402Version","accepts"],"properties":{"x402Version":{"const":2},"accepts":{"type":"array","items":{"type":"object"}}}}}}},"502":{"description":"Upstream unavailable; no settlement"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"tx_hash":{"type":"string","description":"Transaction hash, 0x + 64 hex"},"to":{"type":"string","description":"Expected recipient address (0x...)"},"from":{"type":"string","description":"Expected payer address (optional)"},"min_amount":{"type":"number","minimum":0,"description":"Minimum USDC amount expected, e.g. 0.05"},"min_confirmations":{"type":"integer","default":1,"minimum":1,"maximum":10000,"description":"Required confirmations (default 1)"},"chain":{"type":"string","default":"base","enum":["base","base-sepolia"],"description":"base (default) or base-sepolia"}},"required":["tx_hash"]},"example":{"tx_hash":"0x4699c8e64627e085a11b8bdd1097f576e1363c1e11731005d1eb0c296df93d80","to":"0x17cd53c04d707ef0dd615ef56c633f02915a7905","min_amount":0.05}}}}}},"/v1/payments/usdc-balance":{"get":{"operationId":"usdc_balance","summary":"USDC Balance on Base","description":"Current USDC balance of an address on Base or Base Sepolia (balanceOf on the official Circle contract).","parameters":[{"name":"address","in":"query","required":true,"schema":{"type":"string","description":"Address (0x...)"},"example":"0xe414aD5c7542CE63D890526f0e2133ff8da6F22D"},{"name":"chain","in":"query","required":false,"schema":{"type":"string","default":"base","enum":["base","base-sepolia"],"description":"base (default) or base-sepolia"}}],"x-payment-info":{"protocol":"x402","version":2,"network":"eip155:8453","payTo":"0xe414aD5c7542CE63D890526f0e2133ff8da6F22D","price":"$0.001","currency":"USDC"},"responses":{"200":{"description":"Successful result after verified payment. Scores are indicative, not certifications.","content":{"application/json":{"schema":{"type":"object","required":["service","data"],"properties":{"service":{"const":"usdc_balance"},"data":{"type":"object"}}},"example":{"service":"usdc_balance","data":{"address":"0xe414ad5c7542ce63d890526f0e2133ff8da6f22d","chain":"base","chain_id":8453,"usdc_balance":0,"balance_raw":"0","block_number":52980236,"usdc_contract":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","source":"eth_call balanceOf on the official USDC contract","generated_at":"2026-10-23T10:03:40Z","price_usd":0.001,"billing_unit":"address","sources":[{"name":"Base public RPC (mainnet.base.org, sepolia.base.org) with dRPC public fallback","url":"https://docs.base.org/base-chain/network-information","licence":"Public blockchain data"},{"name":"Circle USDC contract addresses","url":"https://developers.circle.com/stablecoins/usdc-contract-addresses","licence":"Public reference"}],"response_time_ms":227}}}}},"400":{"description":"Invalid request; no settlement"},"402":{"description":"Payment required; same x402 v2 offer in JSON body and PAYMENT-REQUIRED header","content":{"application/json":{"schema":{"type":"object","required":["x402Version","accepts"],"properties":{"x402Version":{"const":2},"accepts":{"type":"array","items":{"type":"object"}}}}}}},"502":{"description":"Upstream unavailable; no settlement"}}},"post":{"operationId":"usdc_balance_post","summary":"USDC Balance on Base","description":"Current USDC balance of an address on Base or Base Sepolia (balanceOf on the official Circle contract). Also accepts POST with the same parameters as a JSON body.","x-payment-info":{"protocol":"x402","version":2,"network":"eip155:8453","payTo":"0xe414aD5c7542CE63D890526f0e2133ff8da6F22D","price":"$0.001","currency":"USDC"},"responses":{"200":{"description":"Successful result after verified payment. Scores are indicative, not certifications.","content":{"application/json":{"schema":{"type":"object","required":["service","data"],"properties":{"service":{"const":"usdc_balance"},"data":{"type":"object"}}},"example":{"service":"usdc_balance","data":{"address":"0xe414ad5c7542ce63d890526f0e2133ff8da6f22d","chain":"base","chain_id":8453,"usdc_balance":0,"balance_raw":"0","block_number":52980236,"usdc_contract":"0x833589fcd6edb6e08f4c7c32d4f71b54bda02913","source":"eth_call balanceOf on the official USDC contract","generated_at":"2026-10-23T10:03:40Z","price_usd":0.001,"billing_unit":"address","sources":[{"name":"Base public RPC (mainnet.base.org, sepolia.base.org) with dRPC public fallback","url":"https://docs.base.org/base-chain/network-information","licence":"Public blockchain data"},{"name":"Circle USDC contract addresses","url":"https://developers.circle.com/stablecoins/usdc-contract-addresses","licence":"Public reference"}],"response_time_ms":227}}}}},"400":{"description":"Invalid request; no settlement"},"402":{"description":"Payment required; same x402 v2 offer in JSON body and PAYMENT-REQUIRED header","content":{"application/json":{"schema":{"type":"object","required":["x402Version","accepts"],"properties":{"x402Version":{"const":2},"accepts":{"type":"array","items":{"type":"object"}}}}}}},"502":{"description":"Upstream unavailable; no settlement"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"address":{"type":"string","description":"Address (0x...)"},"chain":{"type":"string","default":"base","enum":["base","base-sepolia"],"description":"base (default) or base-sepolia"}},"required":["address"]},"example":{"address":"0xe414aD5c7542CE63D890526f0e2133ff8da6F22D"}}}}}},"/v1/seller/due-diligence":{"get":{"operationId":"vendor_due_diligence","summary":"Vendor Due Diligence Pack","description":"Vendor due diligence in one call: seller domain reputation, legal-name sanctions screening (OFAC/UN/EU/UK), product recalls (barcode or keywords) and EU-Ready (Safety Gate, GPSR, ECB price). Returns proceed/review/block with reasons.","parameters":[{"name":"domain","in":"query","required":true,"schema":{"type":"string","description":"Seller website domain or URL, e.g. allbirds.com"},"example":"allbirds.com"},{"name":"seller","in":"query","required":false,"schema":{"type":"string","description":"Seller legal name to screen (default: derived from the domain)"},"example":"Allbirds Inc"},{"name":"product_url","in":"query","required":false,"schema":{"type":"string","description":"Product page URL for the EU-Ready check"},"example":"https://www.allbirds.com/products/mens-tree-runners"},{"name":"gtin","in":"query","required":false,"schema":{"type":"string","description":"EAN/UPC barcode for exact recall and Safety Gate matches"}},{"name":"query","in":"query","required":false,"schema":{"type":"string","description":"Product words for keyword recall search when there is no barcode"}},{"name":"market","in":"query","required":false,"schema":{"type":"string","enum":["all","us","fr"],"default":"all","description":"Recall market for keyword search"}}],"x-payment-info":{"protocol":"x402","version":2,"network":"eip155:8453","payTo":"0xe414aD5c7542CE63D890526f0e2133ff8da6F22D","price":"$0.5","currency":"USDC"},"responses":{"200":{"description":"Successful result after verified payment. Scores are indicative, not certifications.","content":{"application/json":{"schema":{"type":"object","required":["service","data"],"properties":{"service":{"const":"vendor_due_diligence"},"data":{"type":"object"}}},"example":{"service":"vendor_due_diligence","data":{"domain":"leroymerlin.fr","seller":"leroymerlin","decision":"block","reasons":["reputation_low_risk","not_on_sanctions_lists"],"checks_run":["reputation","sanctions"],"checks_not_run":[],"reputation":{"status":"ok","score":77,"risk":"low","advice":"ok_to_buy","red_flags":[],"reasons":["domain_age_30y","homepage_blocks_bots"]},"sanctions":{"status":"ok","screened_name":"leroymerlin","name_inferred_from_domain":true,"result":"no_match","top_score":null,"matches":[],"lists_checked":["OFAC SDN (US)","UN Security Council Consolidated List"]},"recalls":{"status":"ok","matched_by":"barcode","recalled":true,"count":1,"results":[{"source":"RappelConso (FR)","country":"FR","date":"2026-10-22","title":"tournevis facom atp2x125vepb","brand":"facom","hazard":"choc électrique","url":"https://rappel.conso.gouv.fr/fiche-rappel/23911/interne"}]},"eu_ready":{"status":"ok","decision":"ready","reasons":["no_safety_gate_alert_found","seller_not_on_sanctions_lists"],"safety_gate":{"status":"ok","matched_by":null,"alerts":0},"gpsr":{"status":"not_checked","checked_page":null},"fx":{"status":"not_checked","reason":"no price/currency"}},"checked_at":"2026-10-24T23:33:07+00:00","note":"Advisory bundle over public sources. A potential sanctions match or keyword recall needs human confirmation; not legal, compliance or cre...","pack":{"includes":["seller_reputation","sanctions_screen"],"price_usd":0.5}}}}}},"400":{"description":"Invalid request; no settlement"},"402":{"description":"Payment required; same x402 v2 offer in JSON body and PAYMENT-REQUIRED header","content":{"application/json":{"schema":{"type":"object","required":["x402Version","accepts"],"properties":{"x402Version":{"const":2},"accepts":{"type":"array","items":{"type":"object"}}}}}}},"502":{"description":"Upstream unavailable; no settlement"}}},"post":{"operationId":"vendor_due_diligence_post","summary":"Vendor Due Diligence Pack","description":"Vendor due diligence in one call: seller domain reputation, legal-name sanctions screening (OFAC/UN/EU/UK), product recalls (barcode or keywords) and EU-Ready (Safety Gate, GPSR, ECB price). Returns proceed/review/block with reasons. Also accepts POST with the same parameters as a JSON body.","x-payment-info":{"protocol":"x402","version":2,"network":"eip155:8453","payTo":"0xe414aD5c7542CE63D890526f0e2133ff8da6F22D","price":"$0.5","currency":"USDC"},"responses":{"200":{"description":"Successful result after verified payment. Scores are indicative, not certifications.","content":{"application/json":{"schema":{"type":"object","required":["service","data"],"properties":{"service":{"const":"vendor_due_diligence"},"data":{"type":"object"}}},"example":{"service":"vendor_due_diligence","data":{"domain":"leroymerlin.fr","seller":"leroymerlin","decision":"block","reasons":["reputation_low_risk","not_on_sanctions_lists"],"checks_run":["reputation","sanctions"],"checks_not_run":[],"reputation":{"status":"ok","score":77,"risk":"low","advice":"ok_to_buy","red_flags":[],"reasons":["domain_age_30y","homepage_blocks_bots"]},"sanctions":{"status":"ok","screened_name":"leroymerlin","name_inferred_from_domain":true,"result":"no_match","top_score":null,"matches":[],"lists_checked":["OFAC SDN (US)","UN Security Council Consolidated List"]},"recalls":{"status":"ok","matched_by":"barcode","recalled":true,"count":1,"results":[{"source":"RappelConso (FR)","country":"FR","date":"2026-10-22","title":"tournevis facom atp2x125vepb","brand":"facom","hazard":"choc électrique","url":"https://rappel.conso.gouv.fr/fiche-rappel/23911/interne"}]},"eu_ready":{"status":"ok","decision":"ready","reasons":["no_safety_gate_alert_found","seller_not_on_sanctions_lists"],"safety_gate":{"status":"ok","matched_by":null,"alerts":0},"gpsr":{"status":"not_checked","checked_page":null},"fx":{"status":"not_checked","reason":"no price/currency"}},"checked_at":"2026-10-24T23:33:07+00:00","note":"Advisory bundle over public sources. A potential sanctions match or keyword recall needs human confirmation; not legal, compliance or cre...","pack":{"includes":["seller_reputation","sanctions_screen"],"price_usd":0.5}}}}}},"400":{"description":"Invalid request; no settlement"},"402":{"description":"Payment required; same x402 v2 offer in JSON body and PAYMENT-REQUIRED header","content":{"application/json":{"schema":{"type":"object","required":["x402Version","accepts"],"properties":{"x402Version":{"const":2},"accepts":{"type":"array","items":{"type":"object"}}}}}}},"502":{"description":"Upstream unavailable; no settlement"}},"requestBody":{"required":false,"content":{"application/json":{"schema":{"type":"object","properties":{"domain":{"type":"string","description":"Seller website domain or URL, e.g. allbirds.com"},"seller":{"type":"string","description":"Seller legal name to screen (default: derived from the domain)"},"product_url":{"type":"string","description":"Product page URL for the EU-Ready check"},"gtin":{"type":"string","description":"EAN/UPC barcode for exact recall and Safety Gate matches"},"query":{"type":"string","description":"Product words for keyword recall search when there is no barcode"},"market":{"type":"string","enum":["all","us","fr"],"default":"all","description":"Recall market for keyword search"}},"required":["domain"]},"example":{"domain":"allbirds.com","seller":"Allbirds Inc","product_url":"https://www.allbirds.com/products/mens-tree-runners"}}}}}},"/v1/structured/invoice-duplicates":{"post":{"operationId":"invoice_duplicate_check","summary":"Invoice Duplicate Check","description":"Compare up to 1000 caller-supplied invoice records for repeated supplier/reference/document identity and conflicting amounts or currency. Exact decimal strings; no external calls, accounting certification or payment decision. Experimental price. EOA EIP-712 payments only; ERC-1271/6492 unsupported. Max 1 MiB; see service-specific row/schema limits; replay requires original payment, service, channel and identical JSON. Uncertain settlement requires reconciliation.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["invoices"],"properties":{"invoices":{"type":"array","maxItems":1000,"items":{"type":"object","required":["record_id","supplier_id","invoice_number","document_type","currency","amount"],"properties":{"record_id":{"type":"string","minLength":1,"maxLength":256},"supplier_id":{"type":"string","minLength":1,"maxLength":256},"invoice_number":{"type":"string","minLength":1,"maxLength":256},"document_type":{"enum":["invoice","credit_note"]},"currency":{"type":"string","pattern":"^[A-Za-z]{3}$"},"amount":{"type":"string","pattern":"^-?(0|[1-9][0-9]{0,17})(\\.[0-9]{1,6})?$"}}}}}},"example":{"invoices":[{"record_id":"a","supplier_id":"supplier-a","invoice_number":"INV-1","document_type":"invoice","currency":"EUR","amount":"10.00"},{"record_id":"b","supplier_id":"supplier-a","invoice_number":"INV-1","document_type":"invoice","currency":"EUR","amount":"10.0"}]}}}},"x-payment-info":{"protocol":"x402","version":2,"network":"eip155:8453","payTo":"0xe414aD5c7542CE63D890526f0e2133ff8da6F22D","price":"$0.005","currency":"USDC"},"responses":{"200":{"description":"Successful result after verified payment. Scores are indicative, not certifications.","content":{"application/json":{"schema":{"type":"object","required":["service","data"],"properties":{"service":{"const":"invoice_duplicate_check"},"data":{"type":"object"}}},"example":{"service":"invoice_duplicate_check","data":{"service":"invoice_duplicate_check","version":"2026-10-24.1","data":{}}}}}},"400":{"description":"Invalid request; no settlement"},"402":{"description":"Payment required; same x402 v2 offer in JSON body and PAYMENT-REQUIRED header","content":{"application/json":{"schema":{"type":"object","required":["x402Version","accepts"],"properties":{"x402Version":{"const":2},"accepts":{"type":"array","items":{"type":"object"}}}}}}},"502":{"description":"Upstream unavailable; no settlement"}}}},"/v1/structured/migration-compare":{"post":{"operationId":"migration_compare","summary":"Migration Export Compare","description":"Compare two supplied JSON exports using unique string key fields. Report additions, removals and changed fields, keeping missing/null/boolean/number distinct. No database access or writes; source export completeness is not established. Experimental price. EOA EIP-712 payments only; ERC-1271/6492 unsupported. Max 1 MiB; see service-specific row/schema limits; replay requires original payment, service, channel and identical JSON. Uncertain settlement requires reconciliation.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["key_fields","before","after"],"properties":{"key_fields":{"type":"array","minItems":1,"maxItems":64,"uniqueItems":true,"items":{"type":"string","minLength":1,"maxLength":256}},"compare_fields":{"type":"array","minItems":1,"maxItems":64,"uniqueItems":true,"items":{"type":"string","minLength":1,"maxLength":256}},"before":{"type":"array","maxItems":1000,"items":{"type":"object"}},"after":{"type":"array","maxItems":1000,"items":{"type":"object"}}}},"example":{"key_fields":["id"],"before":[{"id":"a","price":"10.00"},{"id":"b","price":"20.00"}],"after":[{"id":"a","price":"11.00"},{"id":"c","price":"30.00"}]}}}},"x-payment-info":{"protocol":"x402","version":2,"network":"eip155:8453","payTo":"0xe414aD5c7542CE63D890526f0e2133ff8da6F22D","price":"$0.010","currency":"USDC"},"responses":{"200":{"description":"Successful result after verified payment. Scores are indicative, not certifications.","content":{"application/json":{"schema":{"type":"object","required":["service","data"],"properties":{"service":{"const":"migration_compare"},"data":{"type":"object"}}},"example":{"service":"migration_compare","data":{"service":"migration_compare","version":"2026-10-24.1","data":{}}}}}},"400":{"description":"Invalid request; no settlement"},"402":{"description":"Payment required; same x402 v2 offer in JSON body and PAYMENT-REQUIRED header","content":{"application/json":{"schema":{"type":"object","required":["x402Version","accepts"],"properties":{"x402Version":{"const":2},"accepts":{"type":"array","items":{"type":"object"}}}}}}},"502":{"description":"Upstream unavailable; no settlement"}}}},"/v1/structured/incident-timeline":{"post":{"operationId":"incident_timeline","summary":"Multi-Agent Incident Timeline","description":"Order up to 1000 supplied agent events in UTC, preserve undated events, remove identical retransmissions and reject conflicting event IDs. Evidence links are references only; chronology does not establish causality or clock accuracy. Experimental price. EOA EIP-712 payments only; ERC-1271/6492 unsupported. Max 1 MiB; see service-specific row/schema limits; replay requires original payment, service, channel and identical JSON. Uncertain settlement requires reconciliation.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["events"],"properties":{"events":{"type":"array","maxItems":1000,"items":{"type":"object","required":["event_id","source"],"properties":{"event_id":{"type":"string","minLength":1,"maxLength":256},"source":{"type":"string","minLength":1,"maxLength":256},"event_time":{"anyOf":[{"type":"string","format":"date-time","description":"ISO timestamp with explicit timezone; naive local times are rejected."},{"type":"null"}]},"mission_id":{"type":"string","minLength":1,"maxLength":256},"event_type":{"type":"string","minLength":1,"maxLength":256},"evidence_refs":{"type":"array","maxItems":1000,"items":{"type":"string","minLength":1,"maxLength":1024}}}}}}},"example":{"events":[{"event_id":"later","source":"agent-a","event_time":"2026-10-24T12:00:00+02:00","event_type":"delivery","evidence_refs":["receipt-demo"]},{"event_id":"earlier","source":"agent-b","event_time":"2026-10-24T09:00:00Z","event_type":"start"}]}}}},"x-payment-info":{"protocol":"x402","version":2,"network":"eip155:8453","payTo":"0xe414aD5c7542CE63D890526f0e2133ff8da6F22D","price":"$0.005","currency":"USDC"},"responses":{"200":{"description":"Successful result after verified payment. Scores are indicative, not certifications.","content":{"application/json":{"schema":{"type":"object","required":["service","data"],"properties":{"service":{"const":"incident_timeline"},"data":{"type":"object"}}},"example":{"service":"incident_timeline","data":{"service":"incident_timeline","version":"2026-10-24.1","data":{}}}}}},"400":{"description":"Invalid request; no settlement"},"402":{"description":"Payment required; same x402 v2 offer in JSON body and PAYMENT-REQUIRED header","content":{"application/json":{"schema":{"type":"object","required":["x402Version","accepts"],"properties":{"x402Version":{"const":2},"accepts":{"type":"array","items":{"type":"object"}}}}}}},"502":{"description":"Upstream unavailable; no settlement"}}}},"/v1/structured/data-freshness":{"post":{"operationId":"data_freshness_check","summary":"Declared Data Freshness Check","description":"Evaluate supplied observation timestamps against caller-declared TTL and the server clock, or an explicitly supplied historical reference. Return stale/within_declared_ttl/future_observation/unknown. Does not authenticate timestamps or establish underlying fact freshness. Experimental price. EOA EIP-712 payments only; ERC-1271/6492 unsupported. Max 1 MiB; see service-specific row/schema limits; replay requires original payment, service, channel and identical JSON. Uncertain settlement requires reconciliation.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["records"],"properties":{"as_of":{"type":"string","format":"date-time","description":"ISO timestamp with explicit timezone; naive local times are rejected."},"records":{"type":"array","maxItems":1000,"items":{"type":"object","required":["record_id","ttl_seconds"],"properties":{"record_id":{"type":"string","minLength":1,"maxLength":256},"observed_at":{"anyOf":[{"type":"string","format":"date-time","description":"ISO timestamp with explicit timezone; naive local times are rejected."},{"type":"null"}]},"ttl_seconds":{"type":"integer","minimum":0,"maximum":31536000}}}}}},"example":{"as_of":"2026-10-24T10:01:00Z","records":[{"record_id":"a","observed_at":"2026-10-24T10:00:00Z","ttl_seconds":60},{"record_id":"b","observed_at":null,"ttl_seconds":60}]}}}},"x-payment-info":{"protocol":"x402","version":2,"network":"eip155:8453","payTo":"0xe414aD5c7542CE63D890526f0e2133ff8da6F22D","price":"$0.003","currency":"USDC"},"responses":{"200":{"description":"Successful result after verified payment. Scores are indicative, not certifications.","content":{"application/json":{"schema":{"type":"object","required":["service","data"],"properties":{"service":{"const":"data_freshness_check"},"data":{"type":"object"}}},"example":{"service":"data_freshness_check","data":{"service":"data_freshness_check","version":"2026-10-24.1","data":{}}}}}},"400":{"description":"Invalid request; no settlement"},"402":{"description":"Payment required; same x402 v2 offer in JSON body and PAYMENT-REQUIRED header","content":{"application/json":{"schema":{"type":"object","required":["x402Version","accepts"],"properties":{"x402Version":{"const":2},"accepts":{"type":"array","items":{"type":"object"}}}}}}},"502":{"description":"Upstream unavailable; no settlement"}}}},"/v1/structured/field-provenance":{"post":{"operationId":"field_provenance_check","summary":"Declared Field Provenance Check","description":"Inspect up to 1000 supplied product fields and sources: missing references, declared expiry, future or undated observations, and content identity hashes. References are never fetched; neither source origin nor support for a field value is authenticated. Experimental price. EOA EIP-712 payments only; ERC-1271/6492 unsupported. Max 1 MiB; see service-specific row/schema limits; replay requires original payment, service, channel and identical JSON. Uncertain settlement requires reconciliation.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"as_of":{"type":"string","minLength":1,"maxLength":64,"format":"date-time","description":"ISO timestamp with explicit timezone; source dates are not authenticated."},"sources":{"type":"array","maxItems":1000,"items":{"type":"object","properties":{"source_id":{"type":"string","minLength":1,"maxLength":256},"reference":{"type":"string","minLength":1,"maxLength":2048},"observed_at":{"type":"string","minLength":1,"maxLength":64,"format":"date-time","description":"ISO timestamp with explicit timezone; source dates are not authenticated."},"valid_until":{"type":"string","minLength":1,"maxLength":64,"format":"date-time","description":"ISO timestamp with explicit timezone; source dates are not authenticated."},"content_sha256":{"type":"string","minLength":1,"maxLength":64,"pattern":"^[a-fA-F0-9]{64}$"}},"required":["source_id","reference"]}},"fields":{"type":"array","maxItems":1000,"items":{"type":"object","properties":{"field_id":{"type":"string","minLength":1,"maxLength":256},"value":{},"source_ids":{"type":"array","maxItems":20,"items":{"type":"string","minLength":1,"maxLength":256}}},"required":["field_id","value","source_ids"]}}},"required":["sources","fields"]},"example":{"as_of":"2026-10-24T10:00:00Z","sources":[{"source_id":"doc","reference":"provided-catalog-export","observed_at":"2026-10-23T10:00:00Z"}],"fields":[{"field_id":"price","value":"10.00","source_ids":["doc"]},{"field_id":"stock","value":null,"source_ids":[]}]}}}},"x-payment-info":{"protocol":"x402","version":2,"network":"eip155:8453","payTo":"0xe414aD5c7542CE63D890526f0e2133ff8da6F22D","price":"$0.004","currency":"USDC"},"responses":{"200":{"description":"Successful result after verified payment. Scores are indicative, not certifications.","content":{"application/json":{"schema":{"type":"object","required":["service","data"],"properties":{"service":{"const":"field_provenance_check"},"data":{"type":"object"}}},"example":{"service":"field_provenance_check","data":{"service":"field_provenance_check","version":"2026-10-24.2","data":{}}}}}},"400":{"description":"Invalid request; no settlement"},"402":{"description":"Payment required; same x402 v2 offer in JSON body and PAYMENT-REQUIRED header","content":{"application/json":{"schema":{"type":"object","required":["x402Version","accepts"],"properties":{"x402Version":{"const":2},"accepts":{"type":"array","items":{"type":"object"}}}}}}},"502":{"description":"Upstream unavailable; no settlement"}}}},"/v1/structured/quote-normalize":{"post":{"operationId":"quote_cost_normalize","summary":"Supplied Quote Cost Normalizer","description":"Normalize exact decimal quote amounts using supplied currency rates. Up to 1000 total line items. Missing shipping, tax or other costs stay unknown. Rank only complete quotes for identical supplied item-ID/quantity baskets; no rate verification, fiscal advice or order. Experimental price. EOA EIP-712 payments only; ERC-1271/6492 unsupported. Max 1 MiB; see service-specific row/schema limits; replay requires original payment, service, channel and identical JSON. Uncertain settlement requires reconciliation.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"base_currency":{"type":"string","minLength":1,"maxLength":3,"pattern":"^[A-Za-z]{3}$"},"rates":{"type":"array","maxItems":1000,"items":{"type":"object","properties":{"currency":{"type":"string","minLength":1,"maxLength":3,"pattern":"^[A-Za-z]{3}$"},"rate_to_base":{"type":"string","minLength":1,"maxLength":40,"pattern":"^(0|[1-9][0-9]{0,17})(\\.[0-9]{1,12})?$"},"observed_at":{"type":"string","minLength":1,"maxLength":64,"format":"date-time","description":"ISO timestamp with explicit timezone; source dates are not authenticated."},"reference":{"type":"string","minLength":1,"maxLength":2048}},"required":["currency","rate_to_base"]}},"quotes":{"type":"array","maxItems":1000,"items":{"type":"object","properties":{"quote_id":{"type":"string","minLength":1,"maxLength":256},"currency":{"type":"string","minLength":1,"maxLength":3,"pattern":"^[A-Za-z]{3}$"},"items":{"type":"array","maxItems":1000,"items":{"type":"object","properties":{"item_id":{"type":"string","minLength":1,"maxLength":256},"quantity":{"type":"string","minLength":1,"maxLength":40,"pattern":"^(0|[1-9][0-9]{0,17})(\\.[0-9]{1,6})?$"},"unit_price":{"type":"string","minLength":1,"maxLength":40,"pattern":"^(0|[1-9][0-9]{0,17})(\\.[0-9]{1,6})?$"}},"required":["item_id","quantity","unit_price"]}},"costs":{"type":"object","properties":{"shipping":{"anyOf":[{"type":"string","minLength":1,"maxLength":40,"pattern":"^(0|[1-9][0-9]{0,17})(\\.[0-9]{1,6})?$"},{"type":"null"}]},"tax":{"anyOf":[{"type":"string","minLength":1,"maxLength":40,"pattern":"^(0|[1-9][0-9]{0,17})(\\.[0-9]{1,6})?$"},{"type":"null"}]},"other":{"anyOf":[{"type":"string","minLength":1,"maxLength":40,"pattern":"^(0|[1-9][0-9]{0,17})(\\.[0-9]{1,6})?$"},{"type":"null"}]}},"required":[]},"discount":{"type":"string","minLength":1,"maxLength":40,"pattern":"^(0|[1-9][0-9]{0,17})(\\.[0-9]{1,6})?$"}},"required":["quote_id","currency","items","costs"]}}},"required":["base_currency","quotes"]},"example":{"base_currency":"EUR","rates":[{"currency":"USD","rate_to_base":"0.9","reference":"caller-supplied-rate"}],"quotes":[{"quote_id":"a","currency":"USD","items":[{"item_id":"sku","quantity":"3","unit_price":"0.10"}],"costs":{"shipping":"0.1","tax":"0","other":"0"}},{"quote_id":"b","currency":"EUR","items":[{"item_id":"sku","quantity":"3","unit_price":"0.09"}],"costs":{"shipping":null,"tax":"0","other":"0"}}]}}}},"x-payment-info":{"protocol":"x402","version":2,"network":"eip155:8453","payTo":"0xe414aD5c7542CE63D890526f0e2133ff8da6F22D","price":"$0.008","currency":"USDC"},"responses":{"200":{"description":"Successful result after verified payment. Scores are indicative, not certifications.","content":{"application/json":{"schema":{"type":"object","required":["service","data"],"properties":{"service":{"const":"quote_cost_normalize"},"data":{"type":"object"}}},"example":{"service":"quote_cost_normalize","data":{"service":"quote_cost_normalize","version":"2026-10-24.2","data":{}}}}}},"400":{"description":"Invalid request; no settlement"},"402":{"description":"Payment required; same x402 v2 offer in JSON body and PAYMENT-REQUIRED header","content":{"application/json":{"schema":{"type":"object","required":["x402Version","accepts"],"properties":{"x402Version":{"const":2},"accepts":{"type":"array","items":{"type":"object"}}}}}}},"502":{"description":"Upstream unavailable; no settlement"}}}},"/v1/structured/renewal-cohorts":{"post":{"operationId":"renewal_cohort_check","summary":"Declared Renewal Cohort Check","description":"Compute UTC monthly cohorts and one declared renewal cycle per supplied subscription. Eligible at supplied due date plus grace; a matching confirmation is a declaration, never proof of collection. Up to 1000 subscriptions and 1000 events. No revenue, MRR, ARR or certain churn inferred. Experimental price. EOA EIP-712 payments only; ERC-1271/6492 unsupported. Max 1 MiB; see service-specific row/schema limits; replay requires original payment, service, channel and identical JSON. Uncertain settlement requires reconciliation.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"as_of":{"type":"string","minLength":1,"maxLength":64,"format":"date-time","description":"ISO timestamp with explicit timezone; source dates are not authenticated."},"grace_seconds":{"type":"integer","minimum":0,"maximum":2678400},"subscriptions":{"type":"array","maxItems":1000,"items":{"type":"object","properties":{"subscription_id":{"type":"string","minLength":1,"maxLength":256},"cohort_at":{"type":"string","minLength":1,"maxLength":64,"format":"date-time","description":"ISO timestamp with explicit timezone; source dates are not authenticated."},"renewal_due_at":{"type":"string","minLength":1,"maxLength":64,"format":"date-time","description":"ISO timestamp with explicit timezone; source dates are not authenticated."}},"required":["subscription_id","cohort_at","renewal_due_at"]}},"events":{"type":"array","maxItems":1000,"items":{"type":"object","properties":{"event_id":{"type":"string","minLength":1,"maxLength":256},"subscription_id":{"type":"string","minLength":1,"maxLength":256},"kind":{"enum":["renewal_confirmed","cancellation_declared","payment_recorded","refund_recorded"]},"occurred_at":{"type":"string","minLength":1,"maxLength":64,"format":"date-time","description":"ISO timestamp with explicit timezone; source dates are not authenticated."},"renewal_due_at":{"type":"string","minLength":1,"maxLength":64,"format":"date-time","description":"Required for renewal_confirmed, and must match the supplied subscription cycle to count."}},"required":["event_id","subscription_id","kind","occurred_at"]}}},"required":["as_of","subscriptions","events"]},"example":{"as_of":"2026-10-24T10:00:00Z","subscriptions":[{"subscription_id":"demo","cohort_at":"2026-09-01T00:00:00Z","renewal_due_at":"2026-10-01T00:00:00Z"}],"events":[{"event_id":"renew","subscription_id":"demo","kind":"renewal_confirmed","occurred_at":"2026-10-01T00:00:00Z","renewal_due_at":"2026-10-01T00:00:00Z"}]}}}},"x-payment-info":{"protocol":"x402","version":2,"network":"eip155:8453","payTo":"0xe414aD5c7542CE63D890526f0e2133ff8da6F22D","price":"$0.006","currency":"USDC"},"responses":{"200":{"description":"Successful result after verified payment. Scores are indicative, not certifications.","content":{"application/json":{"schema":{"type":"object","required":["service","data"],"properties":{"service":{"const":"renewal_cohort_check"},"data":{"type":"object"}}},"example":{"service":"renewal_cohort_check","data":{"service":"renewal_cohort_check","version":"2026-10-24.2","data":{}}}}}},"400":{"description":"Invalid request; no settlement"},"402":{"description":"Payment required; same x402 v2 offer in JSON body and PAYMENT-REQUIRED header","content":{"application/json":{"schema":{"type":"object","required":["x402Version","accepts"],"properties":{"x402Version":{"const":2},"accepts":{"type":"array","items":{"type":"object"}}}}}}},"502":{"description":"Upstream unavailable; no settlement"}}}},"/v1/structured/api-contract-diff":{"post":{"operationId":"api_contract_diff","summary":"Bounded OpenAPI Contract Diff","description":"Diff two supplied OpenAPI 3.0.x/3.1.x documents: operations, parameters, response codes and a listed inline JSON-schema subset. At most 1000 operations/document, 12 schema levels and 4000 compared schema nodes. Unresolved references and excluded semantics remain explicit; no compatibility certification or deployed API verification. Experimental price. EOA EIP-712 payments only; ERC-1271/6492 unsupported. Max 1 MiB; see service-specific row/schema limits; replay requires original payment, service, channel and identical JSON. Uncertain settlement requires reconciliation.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"before":{"type":"object","properties":{"openapi":{"type":"string","minLength":1,"maxLength":20},"paths":{"type":"object"}},"required":["openapi","paths"]},"after":{"type":"object","properties":{"openapi":{"type":"string","minLength":1,"maxLength":20},"paths":{"type":"object"}},"required":["openapi","paths"]}},"required":["before","after"]},"example":{"before":{"openapi":"3.1.0","paths":{"/item":{"post":{"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"}},"required":[]}}}},"responses":{"200":{"description":"Supplied example"}}}}}},"after":{"openapi":"3.1.0","paths":{"/item":{"post":{"requestBody":{"content":{"application/json":{"schema":{"type":"object","properties":{"id":{"type":"string"}},"required":["id"]}}}},"responses":{"200":{"description":"Supplied example"}}}}}}}}}},"x-payment-info":{"protocol":"x402","version":2,"network":"eip155:8453","payTo":"0xe414aD5c7542CE63D890526f0e2133ff8da6F22D","price":"$0.005","currency":"USDC"},"responses":{"200":{"description":"Successful result after verified payment. Scores are indicative, not certifications.","content":{"application/json":{"schema":{"type":"object","required":["service","data"],"properties":{"service":{"const":"api_contract_diff"},"data":{"type":"object"}}},"example":{"service":"api_contract_diff","data":{"service":"api_contract_diff","version":"2026-10-24.2","data":{}}}}}},"400":{"description":"Invalid request; no settlement"},"402":{"description":"Payment required; same x402 v2 offer in JSON body and PAYMENT-REQUIRED header","content":{"application/json":{"schema":{"type":"object","required":["x402Version","accepts"],"properties":{"x402Version":{"const":2},"accepts":{"type":"array","items":{"type":"object"}}}}}}},"502":{"description":"Upstream unavailable; no settlement"}}}},"/v1/jobs/{service}/{job_id}":{"get":{"operationId":"job_result","summary":"Async job result (free)","description":"Free. Result of an async paid job (job_id returned by the paid call). Results are kept 7 days.","parameters":[{"name":"service","in":"path","required":true,"schema":{"type":"string","enum":["site-audit","deploy-proof","due-diligence-report"]}},{"name":"job_id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Job state: queued, running, done (with result) or failed"},"404":{"description":"Unknown or expired job"}}}}}}