Passer au contenu principal

API DZBuild — Introduction

Construisez sur DZBuild — API REST complète pour boutiques, produits, commandes, clients, landing pages, inscriptions et webhooks.

Écrit par Support

L'API DZBuild vous permet de gérer votre boutique de manière programmatique : produits, commandes, clients, landing pages, ainsi qu'un traqueur d'inscriptions à fort volume pour les marchands qui intègrent DZBuild à leurs propres plateformes.

URL de base : https://api.dzbuild.app/v1 — la seule URL de base publique prise en charge. Versionnage : stable v1. Tout changement majeur nécessite un nouveau préfixe de chemin. Format : JSON entrée et sortie, UTF-8. Authentification : voir Authentification. Disponibilité : plan Enterprise uniquement. Les clés API ne peuvent être émises que pour des boutiques disposant d'un plan Enterprise actif, et tout appel provenant d'une boutique qui n'est pas actuellement sur Enterprise renvoie 403 forbidden. Statut : Pilote. Pour rejoindre, contactez [email protected] avec votre identifiant de boutique et nous vous délivrerons une clé. Une clé valide mais non inscrite au pilote reçoit 403 forbidden à chaque appel.

⚠️ Attention — Pointez votre intégration vers api.dzbuild.app, rien d'autre

https://dzbuild.com/api/v1 est un alias interne, pas une cible d'intégration. Sur cet hôte : /v1/signups et /v1/events n'existent pas (404), les appels par clé publique (DZ-Public) sont rejetés avec 401, et il n'y a ni rejeu idempotent, ni limite de débit par clé, ni cache de lecture.

Démarrage rapide

curl https://api.dzbuild.app/v1/ping

Réponse :

{ "data": { "pong": true, "time": "2026-04-30T20:15:59.836Z", "edge": true },
  "meta": { "request_id": "...", "api_version": "v1", "edge": true } }

Requête authentifiée :

curl https://api.dzbuild.app/v1/whoami \
  -H "Authorization: Bearer <your_key_id>.<your_key_secret>"

Enveloppe de réponse

Toutes les réponses suivent la même structure :

Succès

{ "data": ..., "meta": { "request_id": "...", "api_version": "v1" } }

Erreur

{ "error": { "code": "rate_limited", "message": "...", "retry_after": 12 },
  "meta": { "request_id": "...", "api_version": "v1" } }

En-têtes de réponse

En-tête

Quand

Signification

X-Request-Id

Sur chaque réponse

Même valeur que meta.request_id. Envoyez votre propre X-Request-Id et nous vous le renvoyons tel quel, pour que vos journaux et les nôtres concordent.

X-Api-Version

Sur la plupart des réponses

Toujours v1. Absent des écritures rejouées (idempotent replays) et des réponses servies depuis le cache de lecture (cache hits).

X-Cache

Sur les GET cachables

HIT : servi depuis le cache de lecture ; MISS : récupéré à neuf.

Idempotency-Replay

Sur les écritures rejouées

1 signifie qu'il s'agit de la réponse stockée d'un appel antérieur portant la même Idempotency-Key — aucun nouvel effet de bord n'a eu lieu. Voir Idempotence.

Bon à savoir

  • Votre clé est vérifiée à chaque requête — Bearer tokens comme signatures HMAC de clé publique.

  • La limite par minute s'applique par boutique — toutes les clés d'une boutique partagent un seul budget — sur une fenêtre fixe de 60 secondes (le compteur est remis à zéro à chaque minute d'horloge). L'application est approximative lors de rafales : gérez les 429 de façon défensive plutôt que de caler votre cadence exactement sur la limite. Elle s'applique aux appels API uniquement — la vitrine, le tunnel de commande et le tableau de bord d'un marchand ne la consomment jamais. Voir Limites de taux.

  • Un cache de lecture court (30 s, cloisonné par clé API) couvre GET /v1/store, GET /v1/products (collection) et GET /v1/landing-pages (collection). Tous les autres GET sont toujours servis à neuf. La chaîne de requête fait partie de la clé de cache : ?status=active et ?status=draft sont donc mis en cache séparément.

  • Les écritures à fort volume (/v1/signups, /v1/events) sont acceptées de façon asynchrone et retournent 202 Accepted immédiatement — votre appel n'attend pas la fin du traitement.

Avez-vous trouvé la réponse à votre question ?