The DZBuild API lets you manage your store programmatically: products, orders, customers, landing pages, plus a high-volume signup tracker for merchants embedding DZBuild in their own platforms.
Base URL: https://api.dzbuild.app/v1 — the only supported public base URL. Versioning: stable v1. Breaking changes require a new path prefix. Format: JSON in, JSON out, UTF-8. Authentication: see Authentication. Availability: Enterprise plan only. API keys can only be issued for stores on an active Enterprise plan, and any call from a store that is not currently on Enterprise returns 403 forbidden. Status: Pilot. To enroll, contact [email protected] with your store id and we will issue you a key. A valid key that is not pilot-enrolled gets 403 forbidden on every call.
⚠️ Warning — Point your integration at api.dzbuild.app, nothing else
https://dzbuild.com/api/v1 is an internal alias, not an integration target. On that hostname: /v1/signups and /v1/events do not exist (404), public-key (DZ-Public) calls are rejected with 401, and there is no idempotent replay, no per-key rate limiting and no read cache.
Quickstart
curl https://api.dzbuild.app/v1/ping
Response:
{ "data": { "pong": true, "time": "2026-04-30T20:15:59.836Z", "edge": true },
"meta": { "request_id": "...", "api_version": "v1", "edge": true } }
Authenticated request:
curl https://api.dzbuild.app/v1/whoami \ -H "Authorization: Bearer <your_key_id>.<your_key_secret>"
Envelope
Every response follows the same shape:
Success
{ "data": ..., "meta": { "request_id": "...", "api_version": "v1" } }
Error
{ "error": { "code": "rate_limited", "message": "...", "retry_after": 12 },
"meta": { "request_id": "...", "api_version": "v1" } }
Response headers
Header | When | Meaning |
| Every response | Same value as |
| Most responses | Always |
| Cacheable |
|
| Replayed writes |
|
Good to know
Your key is verified on every single request — Bearer tokens and public-key HMAC signatures alike.
The per-minute rate limit applies per store — all of a store's keys share one budget — on a fixed 60-second window (the counter resets on each wall-clock minute). Enforcement is approximate under bursts, so handle
429defensively rather than pacing exactly to the limit. It applies to API calls only — a merchant's storefront, checkout and dashboard never consume it. See Rate limits.A short read cache (30 s, scoped per API key) covers
GET /v1/store,GET /v1/products(collection) andGET /v1/landing-pages(collection). Every otherGETis always served fresh. The query string is part of the cache key, so?status=activeand?status=draftcache separately.High-volume writes (
/v1/signups,/v1/events) are accepted asynchronously and return202 Acceptedimmediately — your call doesn't wait for processing to finish.