Skip to content

Référence API

L'API publique Humind vous permet de pousser votre catalogue dans Humind depuis n'importe quelle stack. Authentification par clé API unique par environnement, JSON sur HTTPS, JSON en retour. Aucun SDK à installer, pas de Shopify requis. Des webhooks optionnels pushent les notifications jusqu'à vous au lieu de poller.

C'est la voie d'intégration si vous n'êtes pas sur Shopify. Si vous y êtes, installez plutôt l'app Humind sur le Shopify App Store : tout se synchronise automatiquement et vous pouvez ignorer cette section.

Ce que vous pouvez faire

  • Products : créer, mettre à jour, lister, archiver vos produits et leurs variants. Voir Products.
  • Collections : regrouper des produits en collections pour que l'assistant affine ses recommandations. Voir Collections.
  • Knowledge : pousser FAQ, guides de tailles, politiques de retour et autre contenu free-form sur lequel l'assistant peut s'appuyer. Voir Knowledge.
  • Translations : patcher titres, descriptions et handles par langue, une locale à la fois, comme sub-resource sur les produits, collections et entrées knowledge. Voir Products / Translations, Collections / Translations, Knowledge / Translations.
  • Variants : gérer un seul variant produit sans renvoyer le produit complet. Voir Products / Variants.
  • Imports : uploads NDJSON bulk pour le sync initial de gros catalogues. Voir Imports.
  • Webhooks : s'abonner aux events imports (import.completed, import.failed). Voir Webhooks.

Base URL

https://api.thehumind.com/public/v1

Tous les endpoints sont versionnés sous /public/v1. Les breaking changes sortent sous un nouveau préfixe (/public/v2) et la version précédente reste vivante pendant la fenêtre de migration. Voir Versioning.

Quick start

Vous avez déjà une clé ? Poussez votre premier produit :

bash
curl -X POST https://api.thehumind.com/public/v1/products \
  -H "Authorization: Bearer hmd_live_REPLACE_WITH_YOUR_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "external_id": "SKU-123",
    "title": "Crème hydratante",
    "handle": "creme-hydratante",
    "status": "active",
    "default_language": "fr",
    "variants": [
      { "external_id": "SKU-123-50ML", "title": "50 ml", "price": 29.90, "currency": "EUR" }
    ]
  }'

Vous récupérez 201 Created pour les nouveaux produits, 200 OK quand vous mettez à jour un existant (matché par external_id). La réponse contient l'objet produit complet, incluant le humind_id qu'Humind a assigné.

Sandbox : utilisez une clé API hmd_test_* depuis votre dashboard pour développer sur des données de test sans toucher à votre catalogue live. Voir Authentication.

Pas encore de clé ? Voir Authentication pour en générer une depuis votre dashboard.

Spécification OpenAPI

La spec complète machine-readable est téléchargeable ici :

Importez-la dans Postman, Insomnia, Bruno ou n'importe quel client OpenAPI 3.0 pour obtenir une collection pré-construite de tous les endpoints avec exemples de payloads.

Vue d'ensemble des routes

Tous les paths sont relatifs à https://api.thehumind.com/public/v1. Chaque requête d'écriture nécessite un header Idempotency-Key. Voir les pages par ressource pour les schémas complets, les exemples et les tables d'erreurs.

RessourceMéthodePathScopeRôle
ProductsPOST/productscatalog:writeCréer ou upserter un produit
ProductsPOST/products/batchcatalog:writeUpserter jusqu'à 500 produits
ProductsGET/productscatalog:readLister les produits
ProductsGET/products/{id}catalog:readRécupérer un produit
ProductsPUT/products/{id}catalog:writeRemplacer un produit
ProductsPATCH/products/{id}catalog:writeMettre à jour partiellement un produit
ProductsDELETE/products/{id}catalog:writeArchiver ou hard-delete un produit
ProductsPUT/products/{id}/variants/{external_id}catalog:writeUpserter un variant
ProductsDELETE/products/{id}/variants/{external_id}catalog:writeSupprimer un variant
ProductsPUT/products/{id}/translations/{lang}catalog:writeUpserter une traduction
ProductsDELETE/products/{id}/translations/{lang}catalog:writeSupprimer une traduction
CollectionsPOST/collectionscatalog:writeCréer ou upserter une collection
CollectionsPOST/collections/batchcatalog:writeUpserter jusqu'à 500 collections
CollectionsGET/collectionscatalog:readLister les collections
CollectionsGET/collections/{id}catalog:readRécupérer une collection
CollectionsPUT/collections/{id}catalog:writeRemplacer une collection
CollectionsPATCH/collections/{id}catalog:writeMettre à jour partiellement une collection
CollectionsDELETE/collections/{id}catalog:writeArchiver ou hard-delete une collection
CollectionsPUT/collections/{id}/translations/{lang}catalog:writeUpserter une traduction
CollectionsDELETE/collections/{id}/translations/{lang}catalog:writeSupprimer une traduction
KnowledgePOST/knowledgeknowledge:writeCréer ou upserter une entrée knowledge
KnowledgePOST/knowledge/batchknowledge:writeUpserter jusqu'à 500 entrées
KnowledgeGET/knowledgeknowledge:readLister les entrées knowledge
KnowledgeGET/knowledge/{id}knowledge:readRécupérer une entrée
KnowledgePUT/knowledge/{id}knowledge:writeRemplacer une entrée
KnowledgePATCH/knowledge/{id}knowledge:writeMettre à jour partiellement une entrée
KnowledgeDELETE/knowledge/{id}knowledge:writeArchiver ou hard-delete une entrée
KnowledgePUT/knowledge/{id}/translations/{lang}knowledge:writeUpserter une traduction
KnowledgeDELETE/knowledge/{id}/translations/{lang}knowledge:writeSupprimer une traduction
KnowledgePOST/knowledge/{id}/file-upload-urlknowledge:writeGénérer une URL SAS pour upload
KnowledgePOST/knowledge/{id}/file-upload-completedknowledge:writeFinaliser l'upload d'un fichier
ImportsPOST/importsimports:writeCréer un import + récupérer l'URL d'upload
ImportsGET/imports/{sync_id}imports:writePoller le status d'un import
ImportsPOST/imports/{sync_id}/startimports:writeDémarrer le traitement d'un import uploadé
ImportsPOST/imports/{sync_id}/cancelimports:writeAnnuler un import pending ou en cours
WebhooksPOST/webhooks/endpointswebhooks:manageEnregistrer un endpoint
WebhooksGET/webhooks/endpointswebhooks:manageLister les endpoints
WebhooksGET/webhooks/endpoints/{id}webhooks:manageRécupérer un endpoint
WebhooksPATCH/webhooks/endpoints/{id}webhooks:manageMettre à jour un endpoint
WebhooksDELETE/webhooks/endpoints/{id}webhooks:manageSupprimer un endpoint
WebhooksPOST/webhooks/endpoints/{id}/rotate-secretwebhooks:manageFaire tourner le secret de signature
WebhooksGET/webhooks/deliverieswebhooks:manageLister les deliveries récentes
WebhooksGET/webhooks/deliveries/{id}webhooks:manageInspecter une delivery

SDKs

Aucun aujourd'hui. L'API est conçue pour être suffisamment plate pour que n'importe quel client HTTP fonctionne :

  • cURL pour les one-shots et scripts shell
  • fetch dans Node, navigateurs, Deno, Bun
  • requests en Python
  • http.Client en Go
  • N'importe quel autre client JSON-over-HTTPS

Si vous aimeriez un SDK typé dans votre langage préféré, contactez le support. Dites-nous quel langage compte le plus pour vous.

Statut & changelog

Pour aller plus loin

  • Authentication : générer, utiliser et faire tourner les clés.
  • Conventions : format des requêtes, identifiants, idempotency, versioning.
  • Errors : format d'erreur, codes HTTP, codes d'erreur Humind.
  • Rate limits : limites par clé actuelles, la réponse 429, backoff.
  • Products : pousser votre catalogue.
  • Collections : grouper les produits pour des recommandations plus fines.
  • Knowledge : pousser le contenu sur lequel l'assistant ancre ses réponses.
  • Imports : ingestion NDJSON async pour gros catalogues.
  • Webhooks : recevez des deliveries signées d'events au lieu de poller.

Released under the proprietary Humind license.