Ettajer for Developers
Versioned REST under /api/v1. Same Bearer auth as MCP. AI designs themes — commerce writes stay on Ettajer.
Compatible additions may ship without a new version. Breaking changes need /api/v2.
REST and MCP call the same auth, scope, and tenant checks.
Products, cart, and checkout are not writable through this API.
Success { "data": … }
List { "data": { "products": […] }, "pagination": { "nextCursor", "hasMore", "limit" } }
Error { "error": { "code", "message", "details?", "requestId" } }Headers
X-Request-Id, X-RateLimit-*. Mutations accept Idempotency-Key. On 429: Retry-After.
Rate limiting
RATE_LIMIT_BACKEND=memory is not multi-instance safe. Use Redis with Upstash in production.
Full machine contract: OpenAPI JSON.
/api/v1/contextStore snapshot + workflow.next
/api/v1/storeStore profile
/api/v1/store/settingsSettings & branding
/api/v1/productsCursor pagination
/api/v1/products/:idOne product
/api/v1/collectionsList collections
/api/v1/collections/:idOne collection
/api/v1/ordersRead-only
/api/v1/orders/:idOne order
/api/v1/customersRead-only
/api/v1/checkoutCheckout summary
/api/v1/themes/schemaCanonical schema
/api/v1/themesList drafts
/api/v1/themesCreate draft
/api/v1/themes/:idRead theme
/api/v1/themes/:id/batchFail-closed batch
/api/v1/themes/:id/preview-tokenSigned preview
/api/v1/themes/:id/publishProtectedRequires themes:publish
/api/v1/mediaList media
/api/v1/mediaRegister URL
/api/v1/navigationRead nav
/api/v1/navigationUpdate nav
/api/v1/mcpJSON-RPC tools & resources
Create an app in the console, then call /api/v1 with Bearer auth.