{
  "info": {
    "_postman_id": "053e0b2a-f6fb-469d-9eed-c568529ffbf7",
    "name": "API turf.bzh",
    "description": "Collection officielle de l'API turf.bzh (donnees hippiques : programme, partants, cotes PMU en direct, arrivees, indicateurs, ChatBZH).\n\n1) Ouvrez les variables de la collection (onglet Variables) et remplacez api_key par votre cle (a generer sur https://www.turf.bzh/api-cle.php).\n2) Ajustez date et rc pour tester une course.\nL'authentification Bearer est posee au niveau de la collection : toutes les requetes en heritent.\n\nUne cle, deux usages : les endpoints donnees sont illimites (limite technique 60/min, 10 000/jour) ; POST /v1/chat consomme vos credits IA. Aucune donnee ne garantit un gain : jeu responsable.",
    "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json"
  },
  "auth": {
    "type": "bearer",
    "bearer": [
      {
        "key": "token",
        "value": "{{api_key}}",
        "type": "string"
      }
    ]
  },
  "variable": [
    {
      "key": "base",
      "value": "https://www.turf.bzh/api",
      "type": "string"
    },
    {
      "key": "api_key",
      "value": "tbz_live_VOTRE_CLE",
      "type": "string"
    },
    {
      "key": "date",
      "value": "2026-07-20",
      "type": "string"
    },
    {
      "key": "rc",
      "value": "R1C4",
      "type": "string"
    },
    {
      "key": "cheval_id",
      "value": "0",
      "type": "string"
    },
    {
      "key": "personne_type",
      "value": "jockey",
      "type": "string"
    },
    {
      "key": "personne_id",
      "value": "0",
      "type": "string"
    }
  ],
  "item": [
    {
      "name": "1. Compte et statut",
      "item": [
        {
          "name": "Mon compte (me)",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{base}}/v1/me",
              "host": [
                "{{base}}"
              ],
              "path": [
                "v1",
                "me"
              ]
            },
            "description": "Etat du compte : licence, abonnement, cle, credits IA, usage API du jour."
          },
          "response": []
        },
        {
          "name": "Statut de la base",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{base}}/v1/statut",
              "host": [
                "{{base}}"
              ],
              "path": [
                "v1",
                "statut"
              ]
            },
            "description": "Fraicheur de la base : fresh / stale / empty. Ideal en healthcheck de vos scripts."
          },
          "response": []
        }
      ]
    },
    {
      "name": "2. Programme et Quinte",
      "item": [
        {
          "name": "Programme du jour",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{base}}/v1/programme",
              "host": [
                "{{base}}"
              ],
              "path": [
                "v1",
                "programme"
              ],
              "query": [
                {
                  "key": "filter",
                  "value": "all",
                  "disabled": true,
                  "description": "all (defaut), upcoming, completed"
                },
                {
                  "key": "format",
                  "value": "csv",
                  "disabled": true,
                  "description": "Sortie CSV (tableur). Endpoints compatibles seulement."
                }
              ]
            },
            "description": "Reunions et courses du jour, avec drapeau Quinte+."
          },
          "response": []
        },
        {
          "name": "Course du Quinte+",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{base}}/v1/quinte",
              "host": [
                "{{base}}"
              ],
              "path": [
                "v1",
                "quinte"
              ]
            },
            "description": "La course du Quinte+ du jour, fiche complete et partants."
          },
          "response": []
        },
        {
          "name": "Resultats du jour",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{base}}/v1/resultats",
              "host": [
                "{{base}}"
              ],
              "path": [
                "v1",
                "resultats"
              ],
              "query": [
                {
                  "key": "code_course",
                  "value": "R1C4",
                  "disabled": true,
                  "description": "Filtrer sur une course"
                }
              ]
            },
            "description": "Arrivees et rapports (SG/SP) des courses terminees du jour."
          },
          "response": []
        }
      ]
    },
    {
      "name": "3. Une course",
      "item": [
        {
          "name": "Fiche course + partants",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{base}}/v1/courses/{{date}}/{{rc}}",
              "host": [
                "{{base}}"
              ],
              "path": [
                "v1",
                "courses",
                "{{date}}",
                "{{rc}}"
              ],
              "query": [
                {
                  "key": "format",
                  "value": "csv",
                  "disabled": true,
                  "description": "Sortie CSV (tableur). Endpoints compatibles seulement."
                }
              ]
            },
            "description": "Partants exacts d'une course (fonctionne aussi sur l'historique, 264 000+ courses)."
          },
          "response": []
        },
        {
          "name": "Cotes en direct",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{base}}/v1/courses/{{date}}/{{rc}}/cotes",
              "host": [
                "{{base}}"
              ],
              "path": [
                "v1",
                "courses",
                "{{date}}",
                "{{rc}}",
                "cotes"
              ],
              "query": [
                {
                  "key": "format",
                  "value": "csv",
                  "disabled": true,
                  "description": "Sortie CSV (tableur). Endpoints compatibles seulement."
                }
              ]
            },
            "description": "Cotes PMU live + evolution 5 min. Ne pas interroger plus d'une fois toutes les 30 s."
          },
          "response": []
        },
        {
          "name": "Mouvements de cote",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{base}}/v1/courses/{{date}}/{{rc}}/cotes/mouvements",
              "host": [
                "{{base}}"
              ],
              "path": [
                "v1",
                "courses",
                "{{date}}",
                "{{rc}}",
                "cotes",
                "mouvements"
              ],
              "query": [
                {
                  "key": "fenetre",
                  "value": "5",
                  "disabled": true,
                  "description": "2-60 min"
                },
                {
                  "key": "limit",
                  "value": "5",
                  "disabled": true,
                  "description": "1-8"
                }
              ]
            },
            "description": "Les plus gros mouvements de cote sur une fenetre glissante."
          },
          "response": []
        },
        {
          "name": "Arrivee (temps reel)",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{base}}/v1/courses/{{date}}/{{rc}}/arrivee",
              "host": [
                "{{base}}"
              ],
              "path": [
                "v1",
                "courses",
                "{{date}}",
                "{{rc}}",
                "arrivee"
              ]
            },
            "description": "Arrivee quasi temps reel le jour J, rapports quand disponibles."
          },
          "response": []
        },
        {
          "name": "Indicateurs par partant",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{base}}/v1/courses/{{date}}/{{rc}}/indicateurs",
              "host": [
                "{{base}}"
              ],
              "path": [
                "v1",
                "courses",
                "{{date}}",
                "{{rc}}",
                "indicateurs"
              ]
            },
            "description": "Features calculees : tendances ELO, forme, ecarts, affinites, synergie, IMDC."
          },
          "response": []
        },
        {
          "name": "Analyse (classement)",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{base}}/v1/courses/{{date}}/{{rc}}/analyse",
              "host": [
                "{{base}}"
              ],
              "path": [
                "v1",
                "courses",
                "{{date}}",
                "{{rc}}",
                "analyse"
              ]
            },
            "description": "Classement multi-features de la course + LigneBZH du jour si disponible."
          },
          "response": []
        },
        {
          "name": "Ecarts",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{base}}/v1/courses/{{date}}/{{rc}}/ecarts",
              "host": [
                "{{base}}"
              ],
              "path": [
                "v1",
                "courses",
                "{{date}}",
                "{{rc}}",
                "ecarts"
              ]
            },
            "description": "Ecarts de victoires/places du cheval (signal) et du numero (folklore)."
          },
          "response": []
        }
      ]
    },
    {
      "name": "4. Tops et value bets",
      "item": [
        {
          "name": "Top N par indicateur",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{base}}/v1/tops?indicateur=ELO_Cheval",
              "host": [
                "{{base}}"
              ],
              "path": [
                "v1",
                "tops"
              ],
              "query": [
                {
                  "key": "indicateur",
                  "value": "ELO_Cheval",
                  "description": "Requis. 34 indicateurs : ELO_Cheval, Cote_BZH, Note_IA, IMDC, Popularite..."
                },
                {
                  "key": "n",
                  "value": "10",
                  "disabled": true,
                  "description": "1-50"
                },
                {
                  "key": "discipline",
                  "value": "",
                  "disabled": true
                },
                {
                  "key": "date",
                  "value": "",
                  "disabled": true
                },
                {
                  "key": "format",
                  "value": "csv",
                  "disabled": true,
                  "description": "Sortie CSV (tableur). Endpoints compatibles seulement."
                }
              ]
            },
            "description": "Top du jour pour un indicateur donne."
          },
          "response": []
        },
        {
          "name": "Value bets du jour",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{base}}/v1/value-bets",
              "host": [
                "{{base}}"
              ],
              "path": [
                "v1",
                "value-bets"
              ],
              "query": [
                {
                  "key": "n",
                  "value": "10",
                  "disabled": true,
                  "description": "1-30"
                },
                {
                  "key": "date",
                  "value": "",
                  "disabled": true
                },
                {
                  "key": "format",
                  "value": "csv",
                  "disabled": true,
                  "description": "Sortie CSV (tableur). Endpoints compatibles seulement."
                }
              ]
            },
            "description": "Value bets du jour (composite Cote_BZH_fiable)."
          },
          "response": []
        }
      ]
    },
    {
      "name": "5. Chevaux",
      "item": [
        {
          "name": "Rechercher un cheval",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{base}}/v1/chevaux?recherche=bold",
              "host": [
                "{{base}}"
              ],
              "path": [
                "v1",
                "chevaux"
              ],
              "query": [
                {
                  "key": "recherche",
                  "value": "bold",
                  "description": "Nom (min 2 caracteres)"
                },
                {
                  "key": "limit",
                  "value": "5",
                  "disabled": true
                }
              ]
            },
            "description": "Renvoie les idcheval a utiliser ensuite (variable cheval_id)."
          },
          "response": []
        },
        {
          "name": "Historique d'un cheval",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{base}}/v1/chevaux/{{cheval_id}}/historique",
              "host": [
                "{{base}}"
              ],
              "path": [
                "v1",
                "chevaux",
                "{{cheval_id}}",
                "historique"
              ],
              "query": [
                {
                  "key": "limit",
                  "value": "10",
                  "disabled": true,
                  "description": "max 50"
                },
                {
                  "key": "discipline",
                  "value": "",
                  "disabled": true
                }
              ]
            },
            "description": "Dernieres courses du cheval."
          },
          "response": []
        },
        {
          "name": "Stats d'un cheval",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{base}}/v1/chevaux/{{cheval_id}}/stats",
              "host": [
                "{{base}}"
              ],
              "path": [
                "v1",
                "chevaux",
                "{{cheval_id}}",
                "stats"
              ],
              "query": [
                {
                  "key": "periode_jours",
                  "value": "",
                  "disabled": true,
                  "description": "1-1825"
                }
              ]
            },
            "description": "Stats agregees du cheval."
          },
          "response": []
        },
        {
          "name": "Lectures expertes",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{base}}/v1/chevaux/{{cheval_id}}/lectures",
              "host": [
                "{{base}}"
              ],
              "path": [
                "v1",
                "chevaux",
                "{{cheval_id}}",
                "lectures"
              ],
              "query": [
                {
                  "key": "date",
                  "value": "",
                  "disabled": true
                }
              ]
            },
            "description": "Lectures expertes actives du jour pour ce cheval."
          },
          "response": []
        }
      ]
    },
    {
      "name": "6. Personnes",
      "item": [
        {
          "name": "Rechercher jockey/entraineur",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{base}}/v1/personnes?recherche=dubois",
              "host": [
                "{{base}}"
              ],
              "path": [
                "v1",
                "personnes"
              ],
              "query": [
                {
                  "key": "recherche",
                  "value": "dubois",
                  "description": "Nom (min 2 caracteres)"
                },
                {
                  "key": "type",
                  "value": "jockey",
                  "disabled": true,
                  "description": "jockey, driver, entraineur"
                },
                {
                  "key": "limit",
                  "value": "5",
                  "disabled": true
                }
              ]
            },
            "description": "Renvoie les ids (variable personne_id)."
          },
          "response": []
        },
        {
          "name": "Stats d'une personne",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{base}}/v1/personnes/{{personne_type}}/{{personne_id}}/stats",
              "host": [
                "{{base}}"
              ],
              "path": [
                "v1",
                "personnes",
                "{{personne_type}}",
                "{{personne_id}}",
                "stats"
              ],
              "query": [
                {
                  "key": "periode_jours",
                  "value": "90",
                  "disabled": true
                },
                {
                  "key": "discipline",
                  "value": "",
                  "disabled": true
                },
                {
                  "key": "hippodrome",
                  "value": "",
                  "disabled": true,
                  "description": "jockey uniquement"
                }
              ]
            },
            "description": "Stats d'un jockey ou d'un entraineur."
          },
          "response": []
        }
      ]
    },
    {
      "name": "7. Methodes et ChatBZH",
      "item": [
        {
          "name": "Mes methodes BZH",
          "request": {
            "method": "GET",
            "header": [],
            "url": {
              "raw": "{{base}}/v1/methodes",
              "host": [
                "{{base}}"
              ],
              "path": [
                "v1",
                "methodes"
              ]
            },
            "description": "Liste des methodes enregistrees. Pour les appliquer/backtester : POST /chat."
          },
          "response": []
        },
        {
          "name": "Poser une question (chat)",
          "request": {
            "method": "POST",
            "header": [
              {
                "key": "Content-Type",
                "value": "application/json"
              }
            ],
            "url": {
              "raw": "{{base}}/v1/chat",
              "host": [
                "{{base}}"
              ],
              "path": [
                "v1",
                "chat"
              ]
            },
            "description": "Consomme les credits IA du compte. Reponse synchrone (30-180 s possibles). Refus 402 AVANT debit si estimation > max_credits.",
            "body": {
              "mode": "raw",
              "raw": "{\n  \"question\": \"Quels sont les 3 meilleurs ELO du Quinte du jour ?\",\n  \"mode\": \"standard\",\n  \"max_credits\": 100\n}",
              "options": {
                "raw": {
                  "language": "json"
                }
              }
            }
          },
          "response": []
        }
      ]
    }
  ]
}