Découvert via attache CDP au vrai Chrome (contourne le blocage automation) :
- set_selection = PUT /gw/v1/carts/{week}, body {meals:[{index,quantity}], extras:[]}
sélection par index de course, params (customer/subscription/sku/cutoff) dérivés
dynamiquement de /subscriptions + /deliveries (aucun id en dur)
- Recipe.course_index conservé depuis le menu pour le mapping id->index
- get_editable_weeks via /deliveries (modèle Delivery: cutoff, status, editable)
- Token lu depuis le cookie apiV2Auth (storage_state) -> auth sans navigateur, headless OK
- hf_confirm_selection: garde-fou coco + dry_run; tool attach_capture.py ajouté
- Dry-run validé: requête identique à l'appel réel capturé
15 lines
725 B
JSON
15 lines
725 B
JSON
{
|
|
"_comment": "Endpoints HelloFresh FR confirmés via discovery + tests (2026-06). API interne gw/ non publique, peut changer. Écriture = PUT du 'cart' hebdo, sélection par index de course.",
|
|
"base": "https://www.hellofresh.fr/gw",
|
|
"country": "FR",
|
|
"locale": "fr-FR",
|
|
"product": "classic-box",
|
|
"menu": "https://www.hellofresh.fr/gw/menus-service/menus",
|
|
"recipe_details": "https://www.hellofresh.fr/gw/recipes/recipes",
|
|
"weeks": "https://www.hellofresh.fr/gw/api/customers/me/deliveries",
|
|
"subscriptions": "https://www.hellofresh.fr/gw/api/customers/me/subscriptions",
|
|
"set_selection": "https://www.hellofresh.fr/gw/v1/carts/{week}",
|
|
"set_selection_method": "PUT",
|
|
"selection_preference": "quick"
|
|
}
|