{"ok":true,"generated_at":"2026-07-06T21:04:45+02:00","endpoint_count":9,"recipe_count":5,"endpoints":[{"key":"reference_launch_readiness","label":"Reference Launch Readiness","json_endpoint":"/api/get_reference_launch_readiness.php?format=json","markdown_endpoint":"/api/get_reference_launch_readiness.php?format=md","csv_endpoint":"/api/get_reference_launch_readiness.php?format=csv","preferred_copy_endpoint":"/api/get_reference_launch_readiness.php?format=md","caveat":"Checklist déclarative : elle ne remplace pas les imports DB, la validation runtime ni la validation métier finale.","curl_markdown":"curl -L '/api/get_reference_launch_readiness.php?format=md'","curl_json":"curl -L '/api/get_reference_launch_readiness.php?format=json'"},{"key":"reference_api_manifest","label":"Reference API Manifest","json_endpoint":"/api/get_reference_api_manifest.php?format=json","markdown_endpoint":"/api/get_reference_api_manifest.php?format=md","csv_endpoint":"/api/get_reference_api_manifest.php?format=csv","preferred_copy_endpoint":"/api/get_reference_api_manifest.php?format=md","caveat":"Manifeste déclaratif issu du catalogue : vérifier le Publication Gate et les imports avant usage externe.","curl_markdown":"curl -L '/api/get_reference_api_manifest.php?format=md'","curl_json":"curl -L '/api/get_reference_api_manifest.php?format=json'"},{"key":"reference_citation_kit","label":"Reference Citation Kit","json_endpoint":"/api/get_reference_citation_kit.php?format=json","markdown_endpoint":"/api/get_reference_citation_kit.php?format=md","csv_endpoint":"/api/get_reference_citation_kit.php?format=csv","preferred_copy_endpoint":"/api/get_reference_citation_kit.php?format=md","caveat":"Kit éditorial : vérifier l’URL, la fraîcheur et le Publication Gate avant diffusion externe.","curl_markdown":"curl -L '/api/get_reference_citation_kit.php?format=md'","curl_json":"curl -L '/api/get_reference_citation_kit.php?format=json'"},{"key":"reference_source_lineage","label":"Source-KPI Lineage Matrix","json_endpoint":"/api/get_reference_source_lineage.php?format=json","markdown_endpoint":"/api/get_reference_source_lineage.php?format=md","csv_endpoint":"/api/get_reference_source_lineage.php?format=csv","preferred_copy_endpoint":"/api/get_reference_source_lineage.php?format=md","caveat":"Lineage catalogue : il prouve les liens déclarés source/produit, pas l’import DB effectif ni la fraîcheur runtime.","curl_markdown":"curl -L '/api/get_reference_source_lineage.php?format=md'","curl_json":"curl -L '/api/get_reference_source_lineage.php?format=json'"},{"key":"reference_kpi_scorecard","label":"Reference KPI Scorecard","json_endpoint":"/api/get_reference_kpi_scorecard.php?format=json","markdown_endpoint":"/api/get_reference_kpi_scorecard.php?format=md","csv_endpoint":"/api/get_reference_kpi_scorecard.php?format=csv","preferred_copy_endpoint":"/api/get_reference_kpi_scorecard.php?format=md","caveat":"Scorecard methode : elle structure les familles KPI mais ne remplace pas les valeurs dynamiques ni le Publication Gate.","curl_markdown":"curl -L '/api/get_reference_kpi_scorecard.php?format=md'","curl_json":"curl -L '/api/get_reference_kpi_scorecard.php?format=json'"},{"key":"reference_dashboard_blueprint","label":"Reference Dashboard Blueprint","json_endpoint":"/api/get_reference_dashboard_blueprint.php?format=json","markdown_endpoint":"/api/get_reference_dashboard_blueprint.php?format=md","csv_endpoint":"/api/get_reference_dashboard_blueprint.php?format=csv","preferred_copy_endpoint":"/api/get_reference_dashboard_blueprint.php?format=md","caveat":"Blueprint UI : il structure la page mais ne remplace pas les valeurs dynamiques, les imports ni le Publication Gate.","curl_markdown":"curl -L '/api/get_reference_dashboard_blueprint.php?format=md'","curl_json":"curl -L '/api/get_reference_dashboard_blueprint.php?format=json'"},{"key":"reference_narrative_deck","label":"Reference Narrative Deck","json_endpoint":"/api/get_reference_narrative_deck.php?format=json","markdown_endpoint":"/api/get_reference_narrative_deck.php?format=md","csv_endpoint":"/api/get_reference_narrative_deck.php?format=csv","preferred_copy_endpoint":"/api/get_reference_narrative_deck.php?format=md","caveat":"Deck narratif : injecter les valeurs dynamiques depuis les produits et vérifier le Publication Gate avant partage externe.","curl_markdown":"curl -L '/api/get_reference_narrative_deck.php?format=md'","curl_json":"curl -L '/api/get_reference_narrative_deck.php?format=json'"},{"key":"reference_data_product_index","label":"Data Product Index","json_endpoint":"/api/get_reference_data_product_index.php?format=json","markdown_endpoint":"/api/get_reference_data_product_index.php?format=md","csv_endpoint":"/api/get_reference_data_product_index.php?format=csv","preferred_copy_endpoint":"/api/get_reference_data_product_index.php?format=md","caveat":"Index de navigation : il reflète le catalogue produit configuré, pas la fraîcheur réelle des données importées.","curl_markdown":"curl -L '/api/get_reference_data_product_index.php?format=md'","curl_json":"curl -L '/api/get_reference_data_product_index.php?format=json'"},{"key":"reference_publication_gate","label":"Publication Gate","json_endpoint":"/api/get_reference_publication_gate.php?format=json","markdown_endpoint":"/api/get_reference_publication_gate.php?format=md","csv_endpoint":"/api/get_reference_publication_gate.php?format=csv","preferred_copy_endpoint":"/api/get_reference_publication_gate.php?format=md","caveat":"Gate de readiness : ne remplace pas les tests d’import DB ni la validation métier finale.","curl_markdown":"curl -L '/api/get_reference_publication_gate.php?format=md'","curl_json":"curl -L '/api/get_reference_publication_gate.php?format=json'"}],"recipes":[{"key":"copy_markdown","label":"Copier un export Markdown","use_case":"Alimenter une slide, une note, un mail ou un brief partenaire.","language":"bash","snippet":"curl -L '/api/get_reference_launch_readiness.php?format=md'","caveat":"Le Markdown doit garder les caveats et ne remplace pas les valeurs runtime si elles sont absentes."},{"key":"hydrate_dashboard_json","label":"Hydrater une interface avec JSON","use_case":"Construire une page ou un widget avec les donnees structurees.","language":"javascript","snippet":"const res = await fetch('/api/get_reference_kpi_scorecard.php?format=json');\nconst scorecard = await res.json();\nconsole.log(scorecard.families);","caveat":"Verifier `ok`, garder les caveats et prevoir un fallback si l API retourne un pack non disponible."},{"key":"download_csv","label":"Télécharger un CSV audit","use_case":"Importer les endpoints, citations ou lineage dans un tableur.","language":"bash","snippet":"curl -L '/api/get_reference_api_manifest.php?format=csv' -o winerix-reference-api-manifest.csv","caveat":"Le CSV est fait pour audit/documentation ; ne pas le traiter comme preuve de fraicheur runtime."},{"key":"php_consume_json","label":"Consommer une API depuis PHP","use_case":"Construire une page serveur ou un export enrichi.","language":"php","snippet":"<?php\n$json = file_get_contents('/api/get_reference_citation_kit.php?format=json');\n$pack = json_decode($json, true);\nforeach ((array)($pack['citations'] ?? []) as $citation) {\n    echo $citation['citation'] . PHP_EOL;\n}\n","caveat":"Utiliser une URL absolue en production et gerer les echecs HTTP."},{"key":"gate_before_publish","label":"Gate avant publication","use_case":"Automatiser un go/no-go avant d afficher un chiffre public.","language":"javascript","snippet":"const gate = await fetch('/api/get_reference_publication_gate.php?format=json').then(r => r.json());\nif (gate.status === 'blocked') {\n  throw new Error('Publication bloquee par le gate Winerix');\n}","caveat":"Le gate readiness ne remplace pas la validation metier finale."}],"copy_markdown":"# Winerix Reference Integration Guide\n\nGuide d integration pour consommer les produits API Winerix en Markdown, JSON et CSV.\n\n## Endpoints prioritaires\n\n| Produit | Markdown | JSON | CSV | Caveat |\n|---|---|---|---|---|\n| Reference Launch Readiness | /api/get_reference_launch_readiness.php?format=md | /api/get_reference_launch_readiness.php?format=json | /api/get_reference_launch_readiness.php?format=csv | Checklist déclarative : elle ne remplace pas les imports DB, la validation runtime ni la validation métier finale. |\n| Reference API Manifest | /api/get_reference_api_manifest.php?format=md | /api/get_reference_api_manifest.php?format=json | /api/get_reference_api_manifest.php?format=csv | Manifeste déclaratif issu du catalogue : vérifier le Publication Gate et les imports avant usage externe. |\n| Reference Citation Kit | /api/get_reference_citation_kit.php?format=md | /api/get_reference_citation_kit.php?format=json | /api/get_reference_citation_kit.php?format=csv | Kit éditorial : vérifier l’URL, la fraîcheur et le Publication Gate avant diffusion externe. |\n| Source-KPI Lineage Matrix | /api/get_reference_source_lineage.php?format=md | /api/get_reference_source_lineage.php?format=json | /api/get_reference_source_lineage.php?format=csv | Lineage catalogue : il prouve les liens déclarés source/produit, pas l’import DB effectif ni la fraîcheur runtime. |\n| Reference KPI Scorecard | /api/get_reference_kpi_scorecard.php?format=md | /api/get_reference_kpi_scorecard.php?format=json | /api/get_reference_kpi_scorecard.php?format=csv | Scorecard methode : elle structure les familles KPI mais ne remplace pas les valeurs dynamiques ni le Publication Gate. |\n| Reference Dashboard Blueprint | /api/get_reference_dashboard_blueprint.php?format=md | /api/get_reference_dashboard_blueprint.php?format=json | /api/get_reference_dashboard_blueprint.php?format=csv | Blueprint UI : il structure la page mais ne remplace pas les valeurs dynamiques, les imports ni le Publication Gate. |\n| Reference Narrative Deck | /api/get_reference_narrative_deck.php?format=md | /api/get_reference_narrative_deck.php?format=json | /api/get_reference_narrative_deck.php?format=csv | Deck narratif : injecter les valeurs dynamiques depuis les produits et vérifier le Publication Gate avant partage externe. |\n| Data Product Index | /api/get_reference_data_product_index.php?format=md | /api/get_reference_data_product_index.php?format=json | /api/get_reference_data_product_index.php?format=csv | Index de navigation : il reflète le catalogue produit configuré, pas la fraîcheur réelle des données importées. |\n| Publication Gate | /api/get_reference_publication_gate.php?format=md | /api/get_reference_publication_gate.php?format=json | /api/get_reference_publication_gate.php?format=csv | Gate de readiness : ne remplace pas les tests d’import DB ni la validation métier finale. |\n\n## Recettes copiables\n\n### Copier un export Markdown\n\nAlimenter une slide, une note, un mail ou un brief partenaire.\n\n```bash\ncurl -L '/api/get_reference_launch_readiness.php?format=md'\n```\n\nCaveat : Le Markdown doit garder les caveats et ne remplace pas les valeurs runtime si elles sont absentes.\n\n### Hydrater une interface avec JSON\n\nConstruire une page ou un widget avec les donnees structurees.\n\n```javascript\nconst res = await fetch('/api/get_reference_kpi_scorecard.php?format=json');\nconst scorecard = await res.json();\nconsole.log(scorecard.families);\n```\n\nCaveat : Verifier `ok`, garder les caveats et prevoir un fallback si l API retourne un pack non disponible.\n\n### Télécharger un CSV audit\n\nImporter les endpoints, citations ou lineage dans un tableur.\n\n```bash\ncurl -L '/api/get_reference_api_manifest.php?format=csv' -o winerix-reference-api-manifest.csv\n```\n\nCaveat : Le CSV est fait pour audit/documentation ; ne pas le traiter comme preuve de fraicheur runtime.\n\n### Consommer une API depuis PHP\n\nConstruire une page serveur ou un export enrichi.\n\n```php\n<?php\n$json = file_get_contents('/api/get_reference_citation_kit.php?format=json');\n$pack = json_decode($json, true);\nforeach ((array)($pack['citations'] ?? []) as $citation) {\n    echo $citation['citation'] . PHP_EOL;\n}\n\n```\n\nCaveat : Utiliser une URL absolue en production et gerer les echecs HTTP.\n\n### Gate avant publication\n\nAutomatiser un go/no-go avant d afficher un chiffre public.\n\n```javascript\nconst gate = await fetch('/api/get_reference_publication_gate.php?format=json').then(r => r.json());\nif (gate.status === 'blocked') {\n  throw new Error('Publication bloquee par le gate Winerix');\n}\n```\n\nCaveat : Le gate readiness ne remplace pas la validation metier finale.\n\n## Ordre recommande\n\n1. Lire le `Reference API Manifest`.\n2. Controler le `Launch Readiness`.\n3. Consulter le `Publication Gate` avant affichage externe.\n4. Garder les citations du `Citation Kit` avec les KPI.\n5. Utiliser le JSON pour les interfaces et le Markdown pour les contenus copiables.\n"}