Accueil / API

API

Intégrez l'avancement des projets de magasin dans votre propre système : à quelle étape en est un projet, où en est la marchandise, si la formation est à niveau. Tous les endpoints sont en lecture seule, sans inscription ni API Key.

Conventions de base

Base URL
https://www.icook.cloud
Authentification
Les endpoints listés sur cette page ne nécessitent aucun identifiant ; les endpoints accessibles par code utilisent le token du lien lui-même comme identifiant
Format
JSON (application/json; charset=utf-8), toutes les heures sont en UTC
Erreurs
400 paramètre incorrect · 401 code d'accès manquant · 404 introuvable, le corps de la réponse est de la forme {"error":"…"}
Requêtes multi-origines
Aucun en-tête CORS n'est renvoyé — les appels multi-origines depuis le navigateur sont bloqués, appelez depuis votre serveur. Si un accès direct depuis le navigateur est indispensable, écrivez-nous en indiquant le domaine d'origine.
Fréquence
Aucun quota strict. Pensez à mettre en cache de votre côté ; interroger l'avancement des projets à la minute suffit, inutile de le faire à la seconde
Version
Pas de numéro de version. Les champs sont ajoutés, jamais supprimés ; si un changement incompatible s'avère nécessaire, les intégrateurs connus sont prévenus par e-mail au préalable

Ces endpoints alimentent les pages publiques du site elles-mêmes — ce que la page projet vous montre, l'API le renvoie, ni plus ni moins.

Données ouvertes

Aucun identifiant n'est nécessaire. Idéal pour intégrer l'avancement des projets dans votre propre tableau de bord.

GET/api/projects

Liste des projets de magasin actifs. Projets dont le statut est active.

ChampDescription
idNuméro de projet ; paramètre de chemin pour les autres endpoints
name / biz_type / cityNom du projet · type d'activité · ville
statusactive (en cours) · les autres valeurs indiquent des états archivés
current_stageL'étape actuelle parmi les neuf étapes, 1–9
noteNote de contexte publique en une phrase
track / cuisineCatégorie de sélection de l'emplacement / type de cuisine du menu ; les valeurs sont partagées avec les bibliothèques
submission_countNombre de propositions reçues (uniquement le total, sans contenu)
stage_countsNombre de propositions par étape, sous la forme { "5": 12 }
created_atHeure de création du projet, UTC

GET/api/projects/:id

Détails d'un projet unique. Comprend trois champs de statut supplémentaires entre étapes, en plus de la réponse de liste.

ChampDescription
…Comprend tous les champs de la réponse de liste
opening_statusTerme de statut du cycle ⑨ Ouverture (statut uniquement, sans données d'exploitation)
training_statusTerme de statut du cycle ⑧ Formation
accepted_countNombre de propositions acceptées

Le chiffre d'affaires, les coûts, les problèmes, le responsable et la date d'ouverture ne sont même pas retournés comme champs — il s'agit d'une ligne rouge de conception, pas d'un oubli.

GET/api/projects/:id/sites

Liste courte des locaux candidats du projet (livrable de l'étape ② Choix de l'emplacement).

ChampDescription
site_idIdentifiant du local dans la Bibliothèque d'emplacements ; les détails du local sont stockés dans la Bibliothèque d'emplacements, et seule la référence est stockée ici
external_title / external_urlTitre et lien d'un local hors bibliothèque
statuspending (visite en attente) · visited (visité) · chosen (sélectionné) · rejected (rejeté)
noteNote du candidat

Attention : `note` est un champ public et s'affiche publiquement avec la page du projet. Traitez vos notes comme publiques en les rédigeant — n'y indiquez pas votre prix plancher, le nom de vos concurrents, ni aucune appréciation qui ne devrait pas être vue.

GET/api/projects/:id/menus

Liste courte des menus candidats du projet (livrable de l'étape ① Diagnostic). Sa structure est identique à celle des locaux candidats et ne stocke que des références menu_id.

ChampDescription
menu_idIdentifiant du menu dans la Bibliothèque de menus
status / noteIdentique aux locaux candidats

GET/api/projects/:id/shipments

Avancement des envois du projet. Données masquées : renvoie uniquement le nombre d'envois, leur jalon actuel, la date d'arrivée et le nombre de cartons.

ChampDescription
idNuméro d'envoi
cargo_classfood (alimentaire) · general (non alimentaire)
transport_modesea_fcl (conteneur complet) · sea_lcl (groupage maritime) · air (fret aérien) · ground (transport routier aux États-Unis)
cold_chainIndique si la chaîne du froid est utilisée, 0 / 1
statusStatut de la liste de colisage
nodedepart (départ) · transit (en transit) · arrived (arrivée au port) · customs (dédouanement) · final_mile (dernier kilomètre) · delivered (livré)
etaDate d'arrivée estimée au port
item_count / carton_totalNombre de lignes d'articles / nombre total de cartons

Seuls les envois finalisés ou à un stade ultérieur sont renvoyés. La valeur de la marchandise, le HS CODE, l'adresse de livraison, le transporteur et le numéro de connaissement ne sont jamais renvoyés.

GET/api/projects/:id/training-readiness

État de préparation de l'étape ⑧ Formation du projet. Uniquement des chiffres agrégés ; aucune liste nominative ni information personnelle.

ChampDescription
started / statusIndique si elle a débuté · terme de statut du cycle
staffed / plan_totalEffectif réel / effectif prévu
cert_passed / cert_requiredÉléments de certification validés / éléments de certification requis
critical_passed / critical_required / critical_pendingÉléments critiques validés / requis / en attente
hollowIndique si le système est dans l'état vide où la saisie d'un seul élément affiche un score parfait
readyIndique si les conditions de Formation requises pour l'ouverture sont remplies

L'avancement est calculé sur la base des éléments requis, et non des lignes créées — c'est pourquoi `cert_required` est généralement bien supérieur au nombre de lignes saisies.

Endpoints accessibles par code

Le lien est l'identifiant. Le token est émis par nos soins avec le lien métier concerné, il ne se demande pas — chaque lien reçu ouvre uniquement le document qui lui est associé.

GET/api/ticket/:code

Statut d'évaluation de la proposition. code est le code de suivi à 8 caractères affiché sur la page de confirmation d'envoi.

ChampDescription
title / supplierTitre de la proposition / nom de la société soumissionnaire
stageÉtape associée, 1–9
statusnew (nouvelle soumission) · reviewing (en cours d'évaluation) · accepted (acceptée) · rejected (non acceptée)
created_atHeure de soumission, UTC

Le corps de la proposition, le devis et les pièces jointes ne sont pas renvoyés.

GET/api/quote/:token

Devis client. Le token provient d'un lien /q/ émis par nous.

ChampDescription
title / category / stageTitre du devis · catégorie · étape
quote_amount / quote_currencyMontant coté au client et devise
member_discountPourcentage de remise membre ; 0 indique qu'aucun palier de prix membre n'est défini
items[]Lignes d'articles : name · spec · unit · qty · sale_price · category · img_url
shipments[]Avancement des envois associés (idem ci-dessus, données masquées)

Les devis dotés d'un code de consultation nécessitent `?pass=<code-de-consultation>` ; sinon, la réponse est 401. Le prix de revient, le taux de majoration et la marge brute ne sont jamais renvoyés.

GET/api/booking/:token

Destination d'un lien client de liste de colisage logistique. Le token provient d'un lien /logistics/f/ émis par nous ; les listes de colisage se remplissent sur freight.icook.cloud, et ce point d'accès ne renvoie que le lien client correspondant.

ChampDescription
redirectLien client freight, avec ?pass= lorsque le bon code de consultation est fourni ; null lorsqu'aucune liste de colisage ne correspond
noteExplication lorsqu'aucune liste de colisage ne correspond

Prend également en charge `?pass=`. Le contenu de la liste de colisage n'est pas renvoyé.

GET/api/booking-share/:token

Destination d'un lien transporteur de liste de colisage logistique. Le token provient d'un lien /logistics/s/ émis par nous ; ce point d'accès ne renvoie que le lien transporteur freight correspondant.

ChampDescription
redirectLien transporteur freight ; null lorsqu'aucune liste de colisage ne correspond
noteExplication lorsqu'aucune liste de colisage ne correspond ; vide lorsqu'une destination existe

Le contenu de la liste de colisage n'est pas renvoyé.

Essayer

curl https://www.icook.cloud/api/projects

# Projet unique
curl https://www.icook.cloud/api/projects/1

# Avancement de l'expédition (données masquées)
curl https://www.icook.cloud/api/projects/1/shipments

# Code de suivi de démonstration / devis de démonstration (les deux utilisés dans le guide)
curl https://www.icook.cloud/api/ticket/GUIDE2026
curl https://www.icook.cloud/api/quote/GUIDEQUOTE26

Ce qui n'est pas fourni

  • Il n'existe pas d'endpoint d'écriture public. Pour soumettre une proposition, demander une adhésion, remplir une liste de colisage ou modifier les quantités d'un devis, passez par les formulaires web — ils intègrent les protections anti-abus nécessaires, et les requêtes qui les contournent pour appeler directement les endpoints sont refusées.
  • Le contenu des propositions, les coûts des devis et le répertoire clients ne sont pas fournis. Ils ne sont visibles que dans l'interface d'administration.
  • Les informations sur les employés ne sont pas fournies. Le module Formation ne conserve pas de données d'identité, d'adresse ou de salaire, seulement le matricule et le poste.
  • L'export en masse n'est pas proposé. Pour des données historiques, écrivez-nous en précisant l'usage.

Besoin d'intégrer les données, d'appeler directement depuis le navigateur, ou d'un champ absent de cette page ? Écrivez à [email protected] en précisant l'usage et le volume d'appels. Utiliser cette API vaut acceptation des Conditions d'utilisation ; pour le traitement des données, voir Politique de confidentialité.