{
    "ready": true,
    "site": {
        "id": 0,
        "domain": "senat.fr",
        "display_name": "Sénat",
        "primary_country_code": "FR",
        "category_name": "Business"
    },
    "metrics": {
        "global_rank": 1983,
        "country_rank": 95,
        "category_rank": 354,
        "daily_pageviews_per_visitor": 4.13,
        "daily_time_on_site_seconds": 367,
        "bounce_rate": 28.7,
        "search_visits_percent": 42.16,
        "total_sites_linking_in": 4,
        "monthly_unique_visitors": 282,
        "recorded_at": "2026-04-11 22:26:04"
    },
    "audit": {
        "score": 94
    },
    "traffic_sources": {
        "direct_percent": 26.19,
        "search_percent": 32.94,
        "social_percent": 14.3,
        "referral_percent": 11.85,
        "email_percent": 5.41,
        "paid_percent": 9.31
    },
    "seo_profile": {
        "backlinks_total": 4,
        "referring_domains": 4,
        "dofollow_backlinks_percent": 100,
        "organic_keywords": 98,
        "indexed_pages": 102,
        "page_speed_score": 100,
        "mobile_friendliness_score": 90,
        "authority_score": 55,
        "spam_risk_score": 22
    },
    "crawl_report": {
        "robots_status": 0,
        "sitemap_status": 0,
        "sitemap_total_urls": 0,
        "crawl_blocked": false,
        "crawl_blocked_by": "",
        "crawl_blocked_reason": "",
        "notes": [
            "robots.txt could not be confirmed.",
            "Sitemap could not be confirmed."
        ],
        "created_at": "2026-04-11 22:26:04"
    },
    "keywords": [
        {
            "keyword": "Sénat",
            "position": 16,
            "search_engine": "Estimated",
            "checked_at": "2026-04-15 21:35:01",
            "is_estimated": true
        },
        {
            "keyword": "Sénat business",
            "position": 18,
            "search_engine": "Estimated",
            "checked_at": "2026-04-15 21:35:01",
            "is_estimated": true
        },
        {
            "keyword": "Sénat reviews",
            "position": 20,
            "search_engine": "Estimated",
            "checked_at": "2026-04-15 21:35:01",
            "is_estimated": true
        },
        {
            "keyword": "nat",
            "position": 22,
            "search_engine": "Estimated",
            "checked_at": "2026-04-15 21:35:01",
            "is_estimated": true
        },
        {
            "keyword": "senat",
            "position": 24,
            "search_engine": "Estimated",
            "checked_at": "2026-04-15 21:35:01",
            "is_estimated": true
        },
        {
            "keyword": "travaux",
            "position": 26,
            "search_engine": "Estimated",
            "checked_at": "2026-04-15 21:35:01",
            "is_estimated": true
        },
        {
            "keyword": "parlementaires",
            "position": 28,
            "search_engine": "Estimated",
            "checked_at": "2026-04-15 21:35:01",
            "is_estimated": true
        },
        {
            "keyword": "nateurs",
            "position": 30,
            "search_engine": "Estimated",
            "checked_at": "2026-04-15 21:35:01",
            "is_estimated": true
        }
    ],
    "rating": {
        "overall": 64,
        "label": "Healthy",
        "breakdown": [
            {
                "label": "Technical foundation",
                "score": 11,
                "max": 18
            },
            {
                "label": "Authority & trust",
                "score": 17,
                "max": 30
            },
            {
                "label": "Reach & market presence",
                "score": 3,
                "max": 18
            },
            {
                "label": "Search visibility",
                "score": 4,
                "max": 12
            },
            {
                "label": "Engagement & retention",
                "score": 9,
                "max": 10
            },
            {
                "label": "Channels & diversification",
                "score": 5,
                "max": 6
            },
            {
                "label": "Registry stability",
                "score": 6,
                "max": 6
            },
            {
                "label": "Quality system",
                "score": 61,
                "max": 100
            },
            {
                "label": "Reputation system",
                "score": 54,
                "max": 100
            },
            {
                "label": "Safety system",
                "score": 100,
                "max": 100
            },
            {
                "label": "Evidence confidence",
                "score": 54,
                "max": 100
            },
            {
                "label": "External intelligence",
                "score": 52,
                "max": 100
            },
            {
                "label": "API intelligence",
                "score": 54,
                "max": 100
            }
        ],
        "authority_score": 56,
        "quality_score": 61,
        "reputation_score": 54,
        "safety_score": 100,
        "confidence_score": 54,
        "fraud_score": 0,
        "authority_signals": {
            "backlinks": 4,
            "referring_domains": 4,
            "organic_keywords": 98,
            "indexed_pages": 102,
            "monthly_visitors": 282,
            "global_rank": 1983,
            "engagement_score": 83,
            "crawl_quality_score": 100,
            "brand_completeness_score": 91,
            "link_diversity_score": 94,
            "technical_reliability_score": 82,
            "whois_score": 100,
            "whois_age_years": 30.4,
            "whois_stability_score": 100,
            "spam_penalty": 0
        },
        "whois_signals": {
            "age_years": 30.4,
            "days_to_expiry": 479,
            "days_since_last_registry_update": 36,
            "stability_score": 100,
            "registrar_changes": 0,
            "ownership_changes": 0,
            "nameserver_changes": 0,
            "status_changes": 0,
            "history_entries": 1,
            "privacy_protected": false,
            "dnssec_enabled": true,
            "has_registrant_country": false,
            "registrant_country": "",
            "nameserver_count": 4,
            "status_count": 1
        }
    },
    "authority_score": 56,
    "trust_score": 79,
    "domain_tags": {
        "primary_tag": "T",
        "primary_tag_score": 88,
        "primary_candidate": "T",
        "primary_candidate_score": 88,
        "tag_codes": "T,Uncertain",
        "tags": [
            {
                "code": "T",
                "label": "Trusted",
                "tone": "good",
                "description": "Strong trust, stability, and low-risk signals were detected.",
                "reason": "Low spam indicators plus strong trust, quality, registry, and stability signals were detected. Showing the stored external intelligence snapshot. New search and review intelligence only runs after a visitor uses Refresh data manually.",
                "message": "The site shows a reasonably trustworthy and stable profile.",
                "priority": 88,
                "score": 88,
                "match_percent": 88,
                "threshold_band": "strong"
            },
            {
                "code": "Uncertain",
                "label": "Uncertain",
                "tone": "unknown",
                "description": "External checks stayed inconclusive, so the model avoided a harder verdict.",
                "reason": "External checks stayed inconclusive, so the system kept an uncertainty buffer.",
                "message": "The evidence is materially mixed or partially corroborated, so the model is avoiding a harder verdict.",
                "priority": 68,
                "score": 68,
                "match_percent": 68,
                "threshold_band": "strong"
            }
        ],
        "tag_breakdown": [
            {
                "code": "T",
                "label": "Trusted",
                "tone": "good",
                "description": "Strong trust, stability, and low-risk signals were detected.",
                "reason": "Low spam indicators plus strong trust, quality, registry, and stability signals were detected. Showing the stored external intelligence snapshot. New search and review intelligence only runs after a visitor uses Refresh data manually.",
                "message": "The site shows a reasonably trustworthy and stable profile.",
                "priority": 88,
                "score": 88,
                "match_percent": 88,
                "threshold_band": "strong"
            },
            {
                "code": "Uncertain",
                "label": "Uncertain",
                "tone": "unknown",
                "description": "External checks stayed inconclusive, so the model avoided a harder verdict.",
                "reason": "External checks stayed inconclusive, so the system kept an uncertainty buffer.",
                "message": "The evidence is materially mixed or partially corroborated, so the model is avoiding a harder verdict.",
                "priority": 68,
                "score": 68,
                "match_percent": 68,
                "threshold_band": "strong"
            },
            {
                "code": "C",
                "label": "Caution",
                "tone": "caution",
                "description": "Signals are mixed or weak, so this domain should be treated carefully.",
                "reason": "Review carefully: mixed trust signals. Showing the stored external intelligence snapshot. New search and review intelligence only runs after a visitor uses Refresh data manually.",
                "message": "The current crawl does not show a meaningful caution match.",
                "priority": 0,
                "score": 0,
                "match_percent": 0,
                "threshold_band": "none"
            },
            {
                "code": "Crypto",
                "label": "Crypto drainer risk",
                "tone": "toxic",
                "description": "Wallet-connect or seed-phrase theft patterns were detected.",
                "reason": "Wallet-connect or seed-phrase theft patterns were detected.",
                "message": "No meaningful crypto-drainer signals were detected.",
                "priority": 0,
                "score": 0,
                "match_percent": 0,
                "threshold_band": "none"
            },
            {
                "code": "D",
                "label": "Dangerous",
                "tone": "toxic",
                "description": "Strong signs of phishing, malware, or other harmful behaviour were detected.",
                "reason": "Multiple high-risk signals pushed this domain into the dangerous range. Showing the stored external intelligence snapshot. New search and review intelligence only runs after a visitor uses Refresh data manually.",
                "message": "No meaningful dangerous-signal match was detected.",
                "priority": 0,
                "score": 0,
                "match_percent": 0,
                "threshold_band": "none"
            }
        ],
        "nsfw_score": 0,
        "trust_score": 83,
        "manual": {
            "has_changes": false,
            "verified_status": "",
            "tag_codes": "",
            "rating_delta": 0,
            "authority_delta": 0,
            "trust_delta": 0,
            "note": "",
            "adjusted_by": 0,
            "adjusted_at": "",
            "lock_scores": false,
            "lock_flags": false
        },
        "summary": "Trusted (88% match) because low spam indicators plus strong trust, quality, registry, and stability signals were detected. showing the stored external intelligence snapshot. new search and review intelligence only runs after a visitor uses refresh data manually.",
        "external_intel": {
            "domain": "senat.fr",
            "candidate_tag": "",
            "checked_at": "2026-03-19T21:17:28+00:00",
            "status": "fresh",
            "snapshot_version": 9,
            "summary": "Showing the stored external intelligence snapshot. New search and review intelligence only runs after a visitor uses Refresh data manually.",
            "search_intelligence": {
                "queries": [
                    "site:trustpilot.com \"senat.fr\" -site:senat.fr -site:www.senat.fr",
                    "site:bbb.org \"senat.fr\" -site:senat.fr -site:www.senat.fr"
                ],
                "focused_queries": [
                    "site:trustpilot.com \"senat.fr\" -site:senat.fr -site:www.senat.fr",
                    "site:bbb.org \"senat.fr\" -site:senat.fr -site:www.senat.fr"
                ],
                "relaxed_queries": [
                    "site:wikipedia.org \"senat.fr\"",
                    "site:en.wikipedia.org \"senat.fr\"",
                    "site:wikipedia.org \"senat\"",
                    "site:en.wikipedia.org \"senat\"",
                    "senat company profile",
                    "senat reviews",
                    "senat wikipedia",
                    "senat linkedin",
                    "senat crunchbase"
                ],
                "providers": [
                    "brave"
                ],
                "provider_result_counts": {
                    "brave": 0
                },
                "provider_query_attempts": {
                    "brave": 2
                },
                "provider_error_counts": {
                    "brave": 2
                },
                "provider_failure_reasons": {
                    "brave": "Brave hourly hard cap reached."
                },
                "provider_block_signals": [],
                "results_found": 1,
                "external_results_found": 0,
                "used_direct_fallback": true,
                "results": [
                    {
                        "provider": "direct-domain-fallback",
                        "url": "https://senat.fr/",
                        "host": "senat.fr",
                        "title": "senat.fr",
                        "snippet": "First-party fallback captured directly from the domain when public search engines returned no usable results.",
                        "is_direct_fallback": true,
                        "source_meta": {
                            "host": "senat.fr",
                            "source_type": "official_site",
                            "label": "Official site",
                            "trust_weight": 55,
                            "evidence_weight": 26,
                            "noise_penalty": 0,
                            "requires_exact_domain_match": true,
                            "supports_positive_verdicts": false,
                            "supports_negative_verdicts": false,
                            "freshness_ttl_days": 21
                        },
                        "entity": {
                            "score": 100,
                            "exactness": "exact_domain",
                            "reasons": [
                                "The result host matches the exact domain.",
                                "The exact domain is mentioned in the page snippet or document text.",
                                "The result URL contains the exact domain string."
                            ]
                        },
                        "query": "direct-fallback",
                        "rank": 1
                    }
                ],
                "source_mix": {
                    "official_site": 1
                },
                "entity_coverage_score": 100,
                "high_trust_result_count": 0,
                "exact_match_result_count": 1,
                "high_entity_result_count": 1,
                "query_hit_count": 0,
                "query_count": 2,
                "used_failover_provider": false,
                "inferred_candidate_tag": "",
                "used_relaxed_queries": false,
                "search_passes": [
                    {
                        "name": "focused-primary",
                        "queries": 2,
                        "providers": [
                            "brave"
                        ],
                        "results_added": 0,
                        "external_results_added": 0,
                        "deadline_hit": false
                    }
                ],
                "deadline_hit": false
            },
            "review_intelligence": {
                "documents_fetched": 1,
                "external_documents_fetched": 0,
                "documents": [
                    {
                        "provider": "direct-domain-fallback",
                        "url": "https://senat.fr/",
                        "host": "senat.fr",
                        "title": "senat.fr",
                        "snippet": "First-party fallback captured directly from the domain when public search engines returned no usable results.",
                        "is_direct_fallback": true,
                        "source_meta": {
                            "host": "senat.fr",
                            "source_type": "official_site",
                            "label": "Official site",
                            "trust_weight": 55,
                            "evidence_weight": 26,
                            "noise_penalty": 0,
                            "requires_exact_domain_match": true,
                            "supports_positive_verdicts": false,
                            "supports_negative_verdicts": false,
                            "freshness_ttl_days": 21
                        },
                        "entity": {
                            "score": 100,
                            "exactness": "exact_domain",
                            "reasons": [
                                "The result host matches the exact domain.",
                                "The exact domain is mentioned in the page snippet or document text.",
                                "The result URL contains the exact domain string."
                            ]
                        },
                        "query": "direct-fallback",
                        "rank": 1,
                        "body": "Sénat - Travaux parlementaires, sénateurs, Parlement | Sénat Aller au contenu Aller à la navigation La galaxie Sénat Réseaux sociaux X Facebook Linkedin Instagram YouTube TikTok S'abonner Langue sélectionnéeFrançais Français English Deutsch Español Português Italiano عربي 中文 Русский Türk Ouvrir la recherche Langue sélectionnéeFrançais Français English Deutsch Español Português Italiano عربي 中文 Русский Türk Travaux parlementaires Travaux parlementaires Le Sénat a pour missions premières le vote de la loi, le contrôle du Gouvernement et l'évaluation des politiques publiques. En savoir plus Séance publique Découvrez le fonctionnement de la séance publique Ordre du jour Dérouleurs Scrutins publics Direct vidéo Application \"En séance\" Textes législatifs Textes récents Tous les textes Contrôle et évaluation Toute l'actualité du contrôle et de l'évaluation Questions des sénateurs au Gouvernement Suivi des ordonnances Contrôle de l'application des lois Programme de contrôle Commissions Découvrir le rôle et l'actualité des commissions Commission des affaires économiques Commission des affaires étrangères, de la défense et des forces armées Commission des affaires sociales Commission de l'aménagement du territoire et du développement durable Commission de la culture, de l’éducation, de la communication et du sport Commission des finances Commission des lois Commission des affaires européennes Application \"En commission\" Structures temporaires Commissions d'enquête Mission d'information commune Commissions spéciales Commissions mixtes paritaires Office et délégations Découvrir le rôle et l'actualité de l'office et des délégations Délégation aux collectivités territoriales et à la décentralisation Délégation aux droits des femmes et à l’égalité des chances entre les hommes et les femmes Délégation aux entreprises Délégation sénatoriale aux outre-mer Délégation à la prospective Délégation parlementaire au renseignement Office parlementaire d’évaluation des choix scientifiques et technologiques (OPECST) Groupes d'études Rapports et documents de travail Derniers rapports Tous les rapports et documents de travail Résolutions Comptes rendus L’activité du Sénat en chiffres Vos sénateurs Vos sénateurs Découvrez qui sont vos sénateurs et suivez leurs principales activités. En savoir plus Recherche de sénateurs Recherche simple de sénateurs Recherche avancée de sénateurs Présidence du Sénat Sénatoriales 2023 Groupes politiques Organisation interne Bureau du Sénat Conférence des Présidents Conseil de Questure Comité de déontologie Commission spéciale chargée du contrôle des comptes et de l'évaluation interne Déclarations Déclarations de rattachement Activités principales des Sénateurs Organismes extraparlementaires Anciens sénateurs Présentation par période Anciens sénateurs de la Vème République Anciens sénateurs de la IVème République Anciens sénateurs de la Communauté Anciens sénateurs de la IIIème République Anciens sénateurs du Second Empire Pairs de France Sénat conservateur Conseil des anciens Connaître le Sénat Connaître le Sénat Retrouvez toutes les informations clés sur le rôle, le fonctionnement, l'Histoire et le patrimoine du Sénat. En savoir plus Rôle et fonctionnement Sénat Junior Documents de référence et guides pratiques L’Histoire du Sénat Les Archives du Sénat Patrimoine Jardin du Luxembourg Événements et manifestations culturelles Photothèque Le Sénat et vous Le Sénat et vous Vous souhaitez participer à nos consultations, visiter le Sénat ou même y travailler ? En savoir plus Le Sénat pour les élus locaux Participer aux consultations Co…",
                        "html": "<!DOCTYPE html> <html dir=\"ltr\" lang=\"fr\"> <head> <meta charset=\"utf-8\"> <!-- This website is powered by TYPO3 - inspiring people to share! TYPO3 is a free open source Content Management Framework initially created by Kasper Skaarhoj and licensed under GNU/GPL. TYPO3 is copyright 1998-2026 of Kasper Skaarhoj. Extensions are copyright of their respective owners. Information and contribution at https://typo3.org/ --> <title>Sénat - Travaux parlementaires, sénateurs, Parlement | Sénat</title> <meta http-equiv=\"x-ua-compatible\" content=\"ie=edge\"> <meta name=\"generator\" content=\"TYPO3 CMS\"> <meta name=\"description\" content=\"Le Sénat est l’une des deux chambres qui forment le Parlement. Il vote la loi, contrôle le Gouvernement et représente les collectivités territoriales.\"> <meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0, viewport-fit=cover\"> <meta name=\"robots\" content=\"index,follow\"> <meta property=\"og:type\" content=\"website\"> <meta property=\"og:url\" content=\"https://www.senat.fr/\"> <meta property=\"og:site_name\" content=\"Sénat\"> <meta property=\"og:image\" content=\"https://www.senat.fr/fileadmin/_processed_/9/7/csm_card-preview-fb_ad94f7ba12.png\"> <meta property=\"og:description\" content=\"Le Sénat est l’une des deux chambres qui forment le Parlement. Il vote la loi, contrôle le Gouvernement et représente les collectivités territoriales.\"> <meta property=\"og:title\" content=\"Sénat - Accueil\"> <meta name=\"twitter:card\" content=\"summary\"> <meta name=\"twitter:image\" content=\"https://www.senat.fr/fileadmin/_processed_/6/8/csm_card-preview-twitter_dfb8573c7f.png\"> <meta name=\"twitter:description\" content=\"Le Sénat est l’une des deux chambres qui forment le Parlement. Il vote la loi, contrôle le Gouvernement et représente les collectivités territoriales.\"> <link rel=\"stylesheet\" href=\"/_assets/cru-1773394996/eee83a27e1e6e241ed7098a5f815474c/Frontend/assets/styles/senat.css?1773394896\" media=\"all\"> <script> /*<![CDATA[*/ /*TS_inlineJS*/ var configOrejime = {\"privacyPolicy\":\"\\/donnees-personnelles.html\",\"lang\":\"fr\",\"translations\":{\"fr\":{\"consentModal\":{\"title\":\"Panneau de gestion des cookies\",\"description\":\"Lors de la consultation de notre site, des cookies peuvent \\u00eatre d\\u00e9pos\\u00e9s sur votre ordinateur, votre mobile ou votre tablette. Ci-dessous, vous pouvez vous informer sur la nature de chacun des cookies d\\u00e9pos\\u00e9s, les accepter ou les refuser \\u00e0 tout moment. Ce choix est possible soit globalement pour l\\u2019ensemble du site et l\\u2019ensemble des services, soit service par service.\",\"privacyPolicy\":{\"name\":\"politique de confidentialit\\u00e9\",\"text\":\"Pour en savoir plus, merci de lire notre {privacyPolicy}.\"}},\"consentNotice\":{\"changeDescription\":\"Des modifications sur les services ont eu lieu depuis votre derni\\u00e8re visite, merci de v\\u00e9rifier vos choix.\",\"title\":\"\\u00c0 propos des cookies\",\"description\":\"Bienvenue ! Ce site utilise des cookies pour la lecture de vid\\u00e9os embarqu\\u00e9es et pour mesurer la fr\\u00e9quentation afin de pouvoir am\\u00e9liorer son fonctionnement et son administration.\",\"learnMore\":\"Personnaliser\"},\"accept\":\"Tout accepter\",\"acceptAll\":\"Tout accepter\",\"save\":\"Sauvegarder\",\"saveData\":\"Sauvegarder mes pr\\u00e9f\\u00e9rences\",\"decline\":\"Tout refuser\",\"declineAll\":\"Tout refuser\",\"close\":\"Fermer\",\"enabled\":\"Activ\\u00e9\",\"disabled\":\"D\\u00e9sactiv\\u00e9\",\"app\":{\"purposes\":\"Utilisations \",\"purpose\":\"Utilisation \",\"required\":{\"title\":\"\"}},\"categories\":{\"analytics\":{\"title\":\"Mesure d'audience\"},\"video\":{\"title\":\"Vid\\u00e9os\"}},\"poweredBy\":\"Propuls\\u00e9 par Orejime\",\"newWindow\":\"nouvelle fen\\u00eatre\",\"purposes\":{\"analytics\":\"mesure de trafic et audience\",\"video\":\"lecture de vid\\u00e9o embarqu\\u00e9e\"},\"matomo\":{\"title\":\"Matomo (exemption CNIL)\",\"description\":\"Vous pouvez d\\u00e9sactiver la mesure d\\u2019audience des donn\\u00e9es strictement n\\u00e9cessaires en vous rendant sur la page <a href=\\\"\\/donnees-personnelles.html\\\" class=\\\"orejime-Modal-privacyPolicyLink\\\">donn\\u00e9es personnelles<\\/a>\"},\"youtube\":{\"title\":\"Youtube\",\"description\":\"<a href=\\\"https:\\/\\/policies.google.com\\/privacy\\\" class=\\\"orejime-Modal-privacyPolicyLink\\\" target=\\\"_blank\\\">Consulter la politique de confidentialit\\u00e9 de Youtube<\\/a>\"},\"vimeo\":{\"title\":\"Vimeo\",\"description\":\"<a href=\\\"https:\\/\\/vimeo.com\\/privacy\\\" class=\\\"orejime-Modal-privacyPolicyLink\\\" target=\\\"_blank\\\">Consulter la politique de confidentialit\\u00e9 de Vimeo<\\/a>\"},\"dailymotion\":{\"title\":\"Dailymotion\",\"description\":\"<a href=\\\"https:\\/\\/www.dailymotion.com\\/legal\\/privacy\\\" class=\\\"orejime-Modal-privacyPolicyLink\\\" target=\\\"_blank\\\">Consulter la politique de confidentialit\\u00e9 de Dailymotion<\\/a>\"}}}}; var jsI18nMessages = {\"fr\":{\"more\":\"Voir plus\",\"direct_access\":\"Acc\\u00e8s direct\",\"error\":\"Veuillez nous excuser, une erreur est survenue.\",\"iframe_consent\":{\"banner_text\":\"En cliquant sur \\u00ab Continuer \\u00bb, vous acceptez que le fournisseur de ce contenu (%s) proc\\u00e8de au d\\u00e9p\\u00f4t \\u00e9ventuel de cookies ou autres traceurs sur votre navigateur.\",\"banner_button\":\"Continuer\",\"banner_text_cmp\":\"Vos pr\\u00e9f\\u00e9rences de consentement pour %s ne vous permettent pas d'acc\\u00e9der \\u…",
                        "status_code": 200,
                        "final_url": "https://www.senat.fr/"
                    }
                ],
                "facts": [],
                "ignored_candidates": [],
                "blocked_candidates": 0,
                "source_diversity": 0,
                "host_coverage": 1,
                "source_type_coverage": 1,
                "exact_match_documents": 1,
                "external_exact_match_documents": 0,
                "elapsed_ms": 267,
                "candidates_considered": 1,
                "fetch_success_rate": 100,
                "avg_source_trust": 55,
                "avg_entity_score": 100
            },
            "provider_enrichment": {
                "providers": {
                    "safebrowsing": {
                        "status": "disabled"
                    },
                    "abuseipdb": {
                        "status": "quota_exhausted",
                        "confidence": 0,
                        "budget": {
                            "provider": "abuseipdb",
                            "window_key": "2026-03-19",
                            "used": 850,
                            "limit": 850,
                            "remaining": 0,
                            "updated_at": "2026-03-19T06:46:15+00:00"
                        }
                    },
                    "ipinfo": {
                        "status": "ok",
                        "confidence": 54,
                        "ip": "45.85.55.26",
                        "asn": "AS34177",
                        "as_name": "CELESTE SAS",
                        "as_domain": "celeste.fr",
                        "country_code": "FR",
                        "country": "France",
                        "region": "",
                        "city": "",
                        "flags": [],
                        "highlights": [
                            "IPinfo resolved the primary IP to FR on AS34177."
                        ],
                        "citations": [
                            {
                                "title": "IPinfo IP enrichment",
                                "url": "https://ipinfo.io/developers",
                                "host": "ipinfo.io",
                                "snippet": "Primary IP 45.85.55.26 geolocates to FR.",
                                "source_type": "ip_enrichment"
                            }
                        ]
                    },
                    "censys": {
                        "status": "disabled"
                    },
                    "sslmate": {
                        "status": "error",
                        "error": "HTTP 429: {\"code\":\"rate_limited\",\"message\":\"You have exceeded the domain search rate limit for the SSLMate CT Search API. Please try again later, or upgrade your Cert Spotter plan by visiting .\"}"
                    }
                },
                "facts": [],
                "citations": [
                    {
                        "title": "IPinfo IP enrichment",
                        "url": "https://ipinfo.io/developers",
                        "host": "ipinfo.io",
                        "snippet": "Primary IP 45.85.55.26 geolocates to FR.",
                        "source_type": "ip_enrichment"
                    }
                ],
                "highlights": [
                    "IPinfo resolved the primary IP to FR on AS34177."
                ],
                "resolved_ips": [
                    "45.85.55.26",
                    "45.85.52.26"
                ],
                "primary_ip": "45.85.55.26",
                "quality": {
                    "provider_diversity_score": 25,
                    "provider_confidence_score": 54,
                    "provider_fact_count": 0
                }
            },
            "evidence": {
                "scores": {
                    "legit": 0,
                    "safe": 0,
                    "trusted": 0,
                    "caution": 0,
                    "scam": 0,
                    "dangerous": 0,
                    "spam": 0,
                    "nsfw": 0
                },
                "counts": {
                    "official_presence": 0,
                    "business_profiles": 0,
                    "positive_reviews": 0,
                    "negative_reviews": 0,
                    "scam_reports": 0,
                    "dangerous_reports": 0,
                    "spam_reports": 0,
                    "adult_reports": 0
                },
                "tag_support": [],
                "top_supporting_facts": [],
                "top_positive_facts": []
            },
            "quality": {
                "source_diversity_score": 0,
                "entity_coverage_score": 100,
                "freshness_score": 18,
                "confidence": 24,
                "documents_fetched": 1,
                "external_documents_fetched": 0,
                "fact_count": 0,
                "avg_source_trust": 55,
                "avg_entity_score": 100,
                "fetch_success_rate": 100,
                "exact_match_score": 0,
                "query_coverage_score": 20,
                "host_coverage_score": 20,
                "source_type_coverage_score": 25,
                "qualified_evidence_score": 0,
                "exact_match_documents": 0,
                "blocked_candidates": 0,
                "used_direct_fallback": true,
                "external_results_found": 0,
                "provider_diversity_score": 25,
                "provider_confidence_score": 54,
                "provider_fact_count": 0
            },
            "decision": {
                "state": "insufficient",
                "uncertainty": true,
                "candidate_support": 0,
                "candidate_contradiction": 0,
                "supports": {
                    "dangerous": false,
                    "scam": false,
                    "spam": false,
                    "nsfw": false,
                    "trusted": false
                },
                "evidence_quality": "low",
                "state_label": "Inconclusive",
                "state_reason": "Public search did not yield usable third-party matches, so the system fell back to first-party inspection only."
            },
            "signals": {
                "scores": {
                    "legit": 0,
                    "safe": 0,
                    "trusted": 0,
                    "caution": 0,
                    "scam": 0,
                    "dangerous": 0,
                    "spam": 0,
                    "nsfw": 0
                },
                "counts": {
                    "official_presence": 0,
                    "business_profiles": 0,
                    "positive_reviews": 0,
                    "negative_reviews": 0,
                    "scam_reports": 0,
                    "dangerous_reports": 0,
                    "spam_reports": 0,
                    "adult_reports": 0
                },
                "candidate_support": 0,
                "candidate_contradiction": 0,
                "highlights": [
                    "IPinfo resolved the primary IP to FR on AS34177.",
                    "External evidence remained inconclusive because diversity, exact matching, or confidence was still too weak."
                ]
            },
            "citations": [
                {
                    "title": "IPinfo IP enrichment",
                    "url": "https://ipinfo.io/developers",
                    "host": "ipinfo.io",
                    "snippet": "Primary IP 45.85.55.26 geolocates to FR.",
                    "source_type": "ip_enrichment"
                }
            ],
            "urlscan": {
                "domain": "senat.fr",
                "status": "error",
                "submitted_at": "2026-03-19T21:17:27+00:00",
                "completed_at": null,
                "last_checked_at": "2026-03-19T21:17:27+00:00",
                "last_error": "Rate limit for 'public' exceeded. Limit is 5000 per day. Reset in 9752 seconds.",
                "submitted_url": "https://senat.fr/",
                "uuid": "",
                "result_url": "",
                "api_result_url": "",
                "visibility": "public",
                "summary": "urlscan.io scan submission failed.",
                "report": [],
                "report_summary": [],
                "is_fresh": false,
                "can_retry": false,
                "poll_after_seconds": 20
            },
            "eligibility": {
                "budget_ms": 4200,
                "search_budget_ms": 1600,
                "review_budget_ms": 2600,
                "query_cap": 2,
                "provider_cap": 1,
                "result_cap": 6,
                "review_document_cap": 4,
                "search_connect_timeout": 2,
                "search_timeout": 3,
                "review_connect_timeout": 2,
                "review_timeout": 3,
                "allowed": true,
                "mode": "normal",
                "decision_code": "run_normal",
                "reason": "recent-crawl",
                "summary": "Running a standard intelligence pass because the current signals need third-party corroboration.",
                "cooldown": {
                    "active": false,
                    "empty_attempts": 0,
                    "next_allowed_at": "",
                    "reason": "",
                    "provider_retry_at": ""
                },
                "suffix": {
                    "tld": "fr",
                    "registered_suffix": "fr",
                    "class": "high_confidence",
                    "reserved": false
                },
                "signals": {
                    "trust_score": 0,
                    "quality_score": 0,
                    "safety_score": 0,
                    "fraud_score": 0,
                    "spam_score": 0,
                    "nsfw_score": 0,
                    "score_confidence": 0,
                    "risk_label": "unknown",
                    "crawl_blocked": false,
                    "last_http_status": 200,
                    "content_word_count": 1330,
                    "internal_links_count": 148,
                    "site_name": "Sénat",
                    "title": "Sénat - Travaux parlementaires, sénateurs, Parlement | Sénat",
                    "is_tracked": false
                }
            },
            "cooldown": {
                "empty_attempts": 1,
                "next_allowed_at": "2026-03-26T21:17:28+00:00",
                "reason": "Recent intelligence runs produced no qualified third-party evidence, so retries are cooled down to save budget.",
                "provider_retry_at": "",
                "last_reason": "recent-crawl"
            },
            "debug": {
                "top_supporting_facts": [],
                "top_positive_facts": [],
                "ignored_candidates": [],
                "budget_ms": 4200,
                "search_budget_ms": 1600,
                "review_budget_ms": 2600,
                "search_mode": "recent-crawl",
                "query_cap": 2,
                "provider_cap": 1,
                "result_cap": 6,
                "review_document_cap": 4,
                "reason": "recent-crawl",
                "priority": 63,
                "eligibility_decision": "run_normal",
                "provider_statuses": {
                    "safebrowsing": "disabled",
                    "abuseipdb": "quota_exhausted",
                    "ipinfo": "ok",
                    "censys": "disabled",
                    "sslmate": "error"
                }
            },
            "last_good": {
                "checked_at": "2026-03-19T21:17:28+00:00",
                "summary": "External checks ran, but the verified result set was still too sparse to harden the verdict.",
                "decision": {
                    "state": "insufficient",
                    "uncertainty": true,
                    "candidate_support": 0,
                    "candidate_contradiction": 0,
                    "supports": {
                        "dangerous": false,
                        "scam": false,
                        "spam": false,
                        "nsfw": false,
                        "trusted": false
                    },
                    "evidence_quality": "low",
                    "state_label": "Inconclusive",
                    "state_reason": "Public search did not yield usable third-party matches, so the system fell back to first-party inspection only."
                },
                "signals": {
                    "scores": {
                        "legit": 0,
                        "safe": 0,
                        "trusted": 0,
                        "caution": 0,
                        "scam": 0,
                        "dangerous": 0,
                        "spam": 0,
                        "nsfw": 0
                    },
                    "counts": {
                        "official_presence": 0,
                        "business_profiles": 0,
                        "positive_reviews": 0,
                        "negative_reviews": 0,
                        "scam_reports": 0,
                        "dangerous_reports": 0,
                        "spam_reports": 0,
                        "adult_reports": 0
                    },
                    "candidate_support": 0,
                    "candidate_contradiction": 0,
                    "highlights": [
                        "IPinfo resolved the primary IP to FR on AS34177.",
                        "External evidence remained inconclusive because diversity, exact matching, or confidence was still too weak."
                    ]
                },
                "citations": [
                    {
                        "title": "IPinfo IP enrichment",
                        "url": "https://ipinfo.io/developers",
                        "host": "ipinfo.io",
                        "snippet": "Primary IP 45.85.55.26 geolocates to FR.",
                        "source_type": "ip_enrichment"
                    }
                ]
            }
        },
        "external_decision": {
            "state": "insufficient",
            "uncertainty": true,
            "candidate_support": 0,
            "candidate_contradiction": 0,
            "supports": {
                "dangerous": false,
                "scam": false,
                "spam": false,
                "nsfw": false,
                "trusted": false
            },
            "evidence_quality": "low",
            "state_label": "Inconclusive",
            "state_reason": "Public search did not yield usable third-party matches, so the system fell back to first-party inspection only."
        },
        "signal_scores": [
            {
                "label": "Strongest tag heuristic",
                "value": "T · 88%",
                "tone": "good",
                "detail": "The highest raw tag match from the heuristic engine before visibility thresholds and manual overrides."
            },
            {
                "label": "Trust score",
                "value": "83/100",
                "tone": "good",
                "detail": "Confidence derived from authority, crawl quality, stability, and risk signals."
            },
            {
                "label": "Authority score",
                "value": "58/100",
                "tone": "caution",
                "detail": "A higher authority score usually means broader reputation and backlink confidence."
            },
            {
                "label": "Spam risk",
                "value": "0/100",
                "tone": "good",
                "detail": "Lower is better. This blends spam indicators with false-positive protections for legitimate sites."
            },
            {
                "label": "Quality score",
                "value": "93/100",
                "tone": "good",
                "detail": "Based on crawl quality, content completeness, and technical evidence."
            },
            {
                "label": "Safety score",
                "value": "100/100",
                "tone": "good",
                "detail": "Higher is safer. Direct fraud signals can heavily cap this even when SEO signals look strong."
            },
            {
                "label": "Fraud score",
                "value": "0/100",
                "tone": "good",
                "detail": "Lower is better. This reflects phishing, drainer, fake-support, fake-shop, and malware signals."
            },
            {
                "label": "Infrastructure risk",
                "value": "0/100",
                "tone": "good",
                "detail": "Lower is better. This reflects the IP, registrar, and nameserver neighbourhood seen by the crawler."
            },
            {
                "label": "Evidence confidence",
                "value": "55/100",
                "tone": "caution",
                "detail": "Higher means the crawler had enough pages and registry evidence to make a stronger call."
            },
            {
                "label": "External evidence",
                "value": "Low",
                "tone": "unknown",
                "detail": "Quality of the structured search and review evidence cluster."
            },
            {
                "label": "External decision",
                "value": "Inconclusive",
                "tone": "unknown",
                "detail": "How third-party evidence compares with the current candidate tag."
            },
            {
                "label": "NSFW score",
                "value": "0/100",
                "tone": "good",
                "detail": "Context-aware adult-content detection with medical / educational false-positive reduction."
            },
            {
                "label": "Registry stability",
                "value": "100/100",
                "tone": "good",
                "detail": "Based on age, expiry runway, and the amount of ownership / registrar churn."
            }
        ],
        "signal_sections": [
            {
                "title": "Registry & ownership",
                "items": [
                    {
                        "label": "Domain age",
                        "value": "30.4 years",
                        "tone": "good",
                        "detail": "Older domains generally carry more historical trust than very new ones."
                    },
                    {
                        "label": "Stability score",
                        "value": "100/100",
                        "tone": "good",
                        "detail": "Penalised by registrar, ownership, and nameserver churn."
                    },
                    {
                        "label": "Days to expiry",
                        "value": "479",
                        "tone": "good",
                        "detail": "Very short renewal windows can be a weak trust signal."
                    },
                    {
                        "label": "Registrar / ownership changes",
                        "value": "0 / 0",
                        "tone": "good",
                        "detail": "Frequent ownership churn can weaken trust."
                    },
                    {
                        "label": "Nameserver changes",
                        "value": "0",
                        "tone": "good",
                        "detail": "Repeated infrastructure changes can indicate instability."
                    },
                    {
                        "label": "DNSSEC / privacy",
                        "value": "DNSSEC on · privacy off",
                        "tone": "good",
                        "detail": "DNSSEC strengthens DNS trust; privacy is neutral on its own."
                    }
                ]
            },
            {
                "title": "Reputation & search evidence",
                "items": [
                    {
                        "label": "Backlinks",
                        "value": "4",
                        "tone": "unknown",
                        "detail": "Broader backlink evidence usually improves confidence."
                    },
                    {
                        "label": "Referring domains",
                        "value": "4",
                        "tone": "unknown",
                        "detail": "Unique linking domains are more useful than raw link volume."
                    },
                    {
                        "label": "Organic keywords",
                        "value": "98",
                        "tone": "caution",
                        "detail": "Search footprint helps distinguish real sites from thin shells."
                    },
                    {
                        "label": "Indexed pages",
                        "value": "102",
                        "tone": "good",
                        "detail": "Larger index coverage usually means more evidence to classify from."
                    },
                    {
                        "label": "Brand strength",
                        "value": "91/100",
                        "tone": "good",
                        "detail": "Stronger brand signals reduce false positives for legitimate sites."
                    },
                    {
                        "label": "Risk label",
                        "value": "GOOD",
                        "tone": "unknown",
                        "detail": "This is the raw crawl / heuristic risk label feeding the tag model."
                    }
                ]
            },
            {
                "title": "Crawl, content & technicals",
                "items": [
                    {
                        "label": "HTTP status",
                        "value": "200",
                        "tone": "good",
                        "detail": "Healthy responses make classification more reliable."
                    },
                    {
                        "label": "HTTPS / speed",
                        "value": "HTTPS OK · 230 ms",
                        "tone": "good",
                        "detail": "Slow or broken technical signals weaken confidence."
                    },
                    {
                        "label": "Content words",
                        "value": "1,313",
                        "tone": "good",
                        "detail": "Thin pages are harder to trust and easier to manipulate."
                    },
                    {
                        "label": "Schema / structure",
                        "value": "0 schema · meta · H1",
                        "tone": "caution",
                        "detail": "Structured markup and basic on-page hygiene improve quality confidence."
                    },
                    {
                        "label": "Links on page",
                        "value": "148 internal · 8 external",
                        "tone": "good",
                        "detail": "Link patterns help detect thin directories and promo pages."
                    },
                    {
                        "label": "Page speed / mobile",
                        "value": "100/100 · 90/100",
                        "tone": "good",
                        "detail": "Better technical quality generally reduces low-effort site patterns."
                    },
                    {
                        "label": "Crawl access",
                        "value": "Open",
                        "tone": "good",
                        "detail": "The crawler reached the site without an anti-bot challenge."
                    }
                ]
            },
            {
                "title": "External evidence & explainability",
                "items": [
                    {
                        "label": "Decision state",
                        "value": "Inconclusive",
                        "tone": "unknown",
                        "detail": "Public search did not yield usable third-party matches, so the system fell back to first-party inspection only."
                    },
                    {
                        "label": "Evidence quality",
                        "value": "Low",
                        "tone": "unknown",
                        "detail": "Blends source trust, domain matching, evidence diversity, and freshness."
                    },
                    {
                        "label": "Support vs contradiction",
                        "value": "0 / 0",
                        "tone": "unknown",
                        "detail": "Compares how much structured external evidence supports the candidate tag against evidence that contradicts it."
                    },
                    {
                        "label": "Qualified risk sources",
                        "value": "No",
                        "tone": "good",
                        "detail": "Risk tags only promote from external evidence when source diversity or source trust thresholds are met."
                    },
                    {
                        "label": "Uncertainty buffer",
                        "value": "Active",
                        "tone": "caution",
                        "detail": "Prevents thin or mixed external evidence from forcing a stronger tag than the evidence can justify."
                    }
                ]
            }
        ],
        "positives": [
            "Established domain age: 30.4 years.",
            "Low registrar / ownership churn with solid registry stability.",
            "Healthy crawl quality and on-page completeness.",
            "Search evidence is broad enough to classify with better confidence.",
            "DNSSEC is enabled."
        ],
        "risks": [
            "External evidence was mixed or sparse, so the tag model keeps an uncertainty buffer instead of overcommitting."
        ]
    },
    "traffic_confidence": 70,
    "whois": {
        "current": {
            "id": 42160,
            "domain": "senat.fr",
            "source_type": "rdap",
            "rdap_url": "https://rdap.nic.fr/domain/senat.fr",
            "registrar_name": "GANDI",
            "registrar_handle": "RAR524-FRNIC",
            "registrant_name": "Senat",
            "registrant_org": "",
            "registrant_country": "",
            "registrant_email": "ba8c49371f174b71d9a2be2bc29ca874-140920@contact.gandi.net",
            "abuse_email": "",
            "created_date": "1995-12-03 23:00:00",
            "updated_date": "2026-03-10 15:00:20",
            "expires_date": "2027-08-08 16:09:24",
            "nameservers_json": "[\"ns1.senat.fr\",\"ns2.senat.fr\",\"ns5.senat.fr\",\"ns6.gandi.net\"]",
            "status_json": "[\"active\"]",
            "dnssec": "signed",
            "privacy_protected": 0,
            "content_hash": "9feaaae4698e896c86bcd459199ec5f2a16c3a30469501bfc1336c591b42f9f7",
            "history_count": 1,
            "last_checked_at": "2026-04-11 22:25:53",
            "last_changed_at": "2026-03-19 22:26:36",
            "created_at": "2026-03-19 22:26:37",
            "updated_at": "2026-04-11 22:25:53"
        },
        "history": [
            {
                "id": 43048,
                "domain": "senat.fr",
                "source_type": "rdap",
                "registrar_name": "GANDI",
                "registrar_handle": "RAR524-FRNIC",
                "registrant_name": "Senat",
                "registrant_org": "",
                "registrant_country": "",
                "registrant_email": "ba8c49371f174b71d9a2be2bc29ca874-140920@contact.gandi.net",
                "abuse_email": "",
                "created_date": "1995-12-03 23:00:00",
                "updated_date": "2026-03-10 15:00:20",
                "expires_date": "2027-08-08 16:09:24",
                "nameservers_json": "[\"ns1.senat.fr\",\"ns2.senat.fr\",\"ns5.senat.fr\",\"ns6.gandi.net\"]",
                "status_json": "[\"active\"]",
                "dnssec": "signed",
                "privacy_protected": 0,
                "content_hash": "9feaaae4698e896c86bcd459199ec5f2a16c3a30469501bfc1336c591b42f9f7",
                "checked_at": "2026-03-19 22:26:36",
                "change_summary": "Initial WHOIS snapshot captured.",
                "created_at": "2026-03-19 22:26:36"
            }
        ],
        "signals": {
            "age_years": 30.4,
            "days_to_expiry": 479,
            "days_since_last_registry_update": 36,
            "stability_score": 100,
            "registrar_changes": 0,
            "ownership_changes": 0,
            "nameserver_changes": 0,
            "status_changes": 0,
            "history_entries": 1,
            "privacy_protected": false,
            "dnssec_enabled": true,
            "has_registrant_country": false,
            "registrant_country": "",
            "nameserver_count": 4,
            "status_count": 1
        }
    },
    "discovered_domain": {
        "id": 209799,
        "domain": "senat.fr",
        "first_seen_at": "2026-03-17 06:05:34",
        "last_crawled_at": "2026-04-11 22:26:04",
        "last_title": "Sénat - Travaux parlementaires, sénateurs, Parlement | Sénat",
        "last_http_status": 200,
        "discovered_from_domain": "decidim.org",
        "depth": 3,
        "backlinks_count": 4,
        "rating_cache": 42,
        "spam_score": 0,
        "risk_label": "good",
        "category_name": "Business",
        "primary_country_code": "FR",
        "internal_links_count": 148,
        "external_links_count": 8,
        "social_profiles_count": 6,
        "content_word_count": 1313,
        "title_quality_score": 93,
        "has_meta_description": 1,
        "has_h1": 1,
        "language_code": "fr",
        "response_time_ms": 230,
        "robots_status": 0,
        "sitemap_status": 0,
        "sitemap_total_urls": 0,
        "quality_score": 93,
        "site_name": "Sénat",
        "canonical_domain": "senat.fr",
        "favicon_present": 1,
        "schema_org_count": 0,
        "noindex_detected": 0,
        "feed_links_count": 0,
        "https_working": 1,
        "estimated_authority_score": 44,
        "trust_score": 87,
        "nsfw_score": 0,
        "overall_rank_estimate": 1666000,
        "primary_tag": "C",
        "tag_codes": "C,Uncertain",
        "manual_verified_status": "",
        "manual_tag_codes": "",
        "manual_rating_delta": 0,
        "manual_authority_delta": 0,
        "manual_trust_delta": 0,
        "manual_note": null,
        "manual_adjusted_by": null,
        "manual_adjusted_at": null,
        "manual_lock_scores": 0,
        "manual_lock_flags": 0,
        "crawl_blocked": 0,
        "crawl_blocked_by": "",
        "crawl_blocked_reason": null,
        "safety_score": 100,
        "fraud_score": 0,
        "legitimacy_score": 56,
        "infrastructure_risk_score": 0,
        "score_confidence": 53,
        "tag_confidence": 27,
        "category_confidence": 23,
        "deep_crawl_pages": 0,
        "resolved_ip": "45.85.52.26",
        "category_candidates_json": "[{\"category\":\"Business\",\"score\":22}]",
        "page_signals_json": "[]",
        "score_reasons_json": "[\"Category confidence was reduced, so the classifier fell back to the broader parent category.\",\"Trusted status now requires clean crawl access and stronger confidence, so this result was downgraded to caution.\",\"Overall rating is now capped by evidence confidence to prevent inflated scores from thin signals.\"]",
        "route_domain": "senat.fr",
        "display_domain": "senat.fr"
    },
    "explainability": {
        "summary": "senat.fr currently scores 64/100. The score is being shaped by a mixed signal profile rather than one dominant factor. Evidence confidence is moderate, so the score should settle further after more crawl depth or registry checks. This is an estimated profile rather than a manually tracked one. Crawler access looks clean.",
        "badges": [
            {
                "label": "Profile",
                "value": "Estimated profile",
                "tone": "unknown",
                "detail": null
            },
            {
                "label": "Evidence confidence",
                "value": "Moderate confidence",
                "tone": "caution",
                "detail": "54/100"
            },
            {
                "label": "Traffic confidence",
                "value": "Solid confidence",
                "tone": "good",
                "detail": "70/100"
            },
            {
                "label": "Crawler access",
                "value": "Clean visibility",
                "tone": "good",
                "detail": null
            }
        ],
        "weighted_contributions": [
            {
                "label": "Quality system",
                "points": "+20.7",
                "tone": "caution",
                "detail": "Technical quality, crawl depth, page structure, and implementation hygiene. Current subsystem score: 61/100."
            },
            {
                "label": "Reputation system",
                "points": "+18.4",
                "tone": "caution",
                "detail": "Authority, search visibility, reach, engagement, and registry stability. Current subsystem score: 54/100."
            },
            {
                "label": "Safety system",
                "points": "+32.0",
                "tone": "good",
                "detail": "Fraud, spam, and trust signals from infrastructure, crawl, and registry evidence. Current subsystem score: 100/100."
            },
            {
                "label": "Risk clamp",
                "points": "-7.0",
                "tone": "risk",
                "detail": "Safety thresholds capped the final score until the risk profile improves."
            }
        ],
        "evidence_cards": [
            {
                "label": "Authority and trust",
                "value": "56/100 · trust 79/100",
                "tone": "caution",
                "detail": "282 monthly visitors, 98 organic keywords, brand completeness 91/100, engagement 83/100."
            },
            {
                "label": "Backlink and search evidence",
                "value": "4 referring domains",
                "tone": "good",
                "detail": "4 backlinks across 4 referring domains. Diversity 94/100; spam penalty 0."
            },
            {
                "label": "Registry and domain stability",
                "value": "30.4 years old",
                "tone": "good",
                "detail": "Stability 100/100 · age 30.4 years · registrar GANDI · expires in 479 days."
            },
            {
                "label": "Safety and fraud posture",
                "value": "Safety 100/100 · fraud 0/100",
                "tone": "good",
                "detail": "Primary tag T · safety 100/100 · fraud 0/100."
            }
        ],
        "positives": [
            "Established domain age: 30.4 years.",
            "Low registrar / ownership churn with solid registry stability.",
            "Healthy crawl quality and on-page completeness.",
            "Search evidence is broad enough to classify with better confidence.",
            "DNSSEC is enabled.",
            "Registry history looks stable, which supports legitimacy and trust."
        ],
        "risks": [
            "External evidence was mixed or sparse, so the tag model keeps an uncertainty buffer instead of overcommitting."
        ],
        "freshness": [
            {
                "label": "Crawl evidence",
                "value": "2026-04-11 22:26:04",
                "tone": "caution",
                "detail": "Crawl and page content sample. Age: 3d ago."
            },
            {
                "label": "WHOIS snapshot",
                "value": "2026-04-11 22:25:53",
                "tone": "caution",
                "detail": "Registry profile and stability signals. Age: 3d ago."
            },
            {
                "label": "Keyword view",
                "value": "2026-04-15 21:35:01",
                "tone": "good",
                "detail": "Estimated visibility until tracked keyword snapshots exist. Age: 0s ago."
            },
            {
                "label": "Rank history",
                "value": "2026-04-15 21:35:01",
                "tone": "good",
                "detail": "Estimated trend derived from current profile and crawl signals. Age: 0s ago."
            },
            {
                "label": "Audience geography",
                "value": "Not captured yet",
                "tone": "unknown",
                "detail": "Audience mix is estimated from available signals rather than first-party audience logs."
            }
        ],
        "section_notes": {
            "audience": "Audience geography is estimated from category, country, traffic mix, and brand signals until first-party audience data is collected.",
            "keywords": "Top keywords are estimated from crawl language, brand, category, and visibility signals until tracked keyword snapshots are stored.",
            "history": "Rank history is estimated from the current profile because no stored history exists for this domain yet."
        },
        "base_weighted_score": 71,
        "fraud_clamp_penalty": 7,
        "final_score": 64
    },
    "insight_snapshot": {
        "version": 1,
        "generated_at": "2026-04-15T21:35:01+00:00",
        "domain": "senat.fr",
        "display_name": "Sénat",
        "is_tracked": false,
        "is_estimated": true,
        "overall_score": 64,
        "authority_score": 56,
        "trust_score": 79,
        "safety_score": 100,
        "fraud_score": 0,
        "confidence_score": 54,
        "traffic_confidence": 70,
        "last_crawled_at": "2026-04-11 22:26:04",
        "crawl_blocked": false,
        "summary": "senat.fr currently scores 64/100. The score is being shaped by a mixed signal profile rather than one dominant factor. Evidence confidence is moderate, so the score should settle further after more crawl depth or registry checks. This is an estimated profile rather than a manually tracked one. Crawler access looks clean.",
        "badges": [
            {
                "label": "Profile",
                "value": "Estimated profile",
                "tone": "unknown",
                "detail": null
            },
            {
                "label": "Evidence confidence",
                "value": "Moderate confidence",
                "tone": "caution",
                "detail": "54/100"
            },
            {
                "label": "Traffic confidence",
                "value": "Solid confidence",
                "tone": "good",
                "detail": "70/100"
            },
            {
                "label": "Crawler access",
                "value": "Clean visibility",
                "tone": "good",
                "detail": null
            }
        ],
        "top_positive_signals": [
            "Established domain age: 30.4 years.",
            "Low registrar / ownership churn with solid registry stability.",
            "Healthy crawl quality and on-page completeness.",
            "Search evidence is broad enough to classify with better confidence.",
            "DNSSEC is enabled."
        ],
        "top_risk_signals": [
            "External evidence was mixed or sparse, so the tag model keeps an uncertainty buffer instead of overcommitting."
        ],
        "freshness": [
            {
                "label": "Crawl evidence",
                "value": "2026-04-11 22:26:04",
                "tone": "caution",
                "detail": "Crawl and page content sample. Age: 3d ago."
            },
            {
                "label": "WHOIS snapshot",
                "value": "2026-04-11 22:25:53",
                "tone": "caution",
                "detail": "Registry profile and stability signals. Age: 3d ago."
            },
            {
                "label": "Keyword view",
                "value": "2026-04-15 21:35:01",
                "tone": "good",
                "detail": "Estimated visibility until tracked keyword snapshots exist. Age: 0s ago."
            },
            {
                "label": "Rank history",
                "value": "2026-04-15 21:35:01",
                "tone": "good",
                "detail": "Estimated trend derived from current profile and crawl signals. Age: 0s ago."
            },
            {
                "label": "Audience geography",
                "value": "Not captured yet",
                "tone": "unknown",
                "detail": "Audience mix is estimated from available signals rather than first-party audience logs."
            }
        ],
        "top_tags": [
            {
                "code": "T",
                "label": "Trusted",
                "tone": "good"
            },
            {
                "code": "Uncertain",
                "label": "Uncertain",
                "tone": "unknown"
            }
        ]
    },
    "is_tracked": false,
    "is_estimated": true,
    "live_state": {
        "status": "processing",
        "status_label": "Cache build running",
        "message": "The refreshed page cache is still being built for this domain.",
        "updated_at": "2026-04-19T15:13:33+00:00"
    },
    "refresh_state": {
        "canRequest": false,
        "queued": true,
        "processing": true,
        "stageKey": "cache-queued",
        "stageLabel": "Cache build running",
        "cooldownUntil": null,
        "message": "The refreshed page cache is still being built for this domain.",
        "action": "/domain/senat.fr/refresh",
        "isGuestCooldown": false,
        "cooldownSeconds": 0
    },
    "urlscan_report": {
        "domain": "senat.fr",
        "status": "error",
        "submitted_at": "2026-03-19T21:17:27+00:00",
        "completed_at": null,
        "last_checked_at": "2026-03-19T21:17:27+00:00",
        "last_error": "Rate limit for 'public' exceeded. Limit is 5000 per day. Reset in 9752 seconds.",
        "submitted_url": "https://senat.fr/",
        "uuid": "",
        "result_url": "",
        "api_result_url": "",
        "visibility": "public",
        "summary": "urlscan.io scan submission failed.",
        "report": [],
        "report_summary": [],
        "is_fresh": false,
        "can_retry": true,
        "poll_after_seconds": 20
    }
}