Skip to main content
The @emailux/api-client package calls the EmailUX HTTP API: render (HTML by template) and deliver (render + send via a provider).

Installation

Default base URL

All requests use: https://render.emailux.com Override with baseUrl in the client options if you use a custom deployment. OpenAPI (Swagger): The live spec for your deployment is at {baseUrl}/swagger.json (for example https://render.emailux.com/swagger.json). Use it for the latest paths, headers, bodies, and response codes.

Client options

Render in this package is only supported with a SendGrid domain configured (sendgridDomain is required for render()). Delivery can use SendGrid, Gmail, or SMTP via provider and optional per-call overrides. HTTP mapping: The client sends your domain as the x-sendgrid-domain header on render/deliver. The public API may also document this as x-domain; behavior depends on your EmailUX API version.

render() — HTML only

Calls POST /v1/render with a JSON body:
  • experience_id (required)
  • version (optional)
  • locale (optional; falls back to defaultLocale)
  • data (object; defaults to {})

Response codes (/v1/render)

On success, the client returns { ok: true, status, html?, subject? }. On failure, { ok: false, status, error } with error.message and optional error.body.

Example (SendGrid domain — required for render)

deliver() — render and queue send

Calls POST /v1/deliver with a JSON body:
  • experience_id (required)
  • tenant — not set by this client; use API keys and headers if your backend requires it when x-domain is omitted (see swagger.json for your deployment).
  • version, locale (optional)
  • channel_data (required): toEmail, fromEmail, optional toEmailName, fromEmailName
  • data (object; defaults to {})
Optional headers the client may send:
  • x-provider: gmail or smtp when using those providers (SendGrid uses the domain header path, so x-provider is omitted for SendGrid).

Response codes (/v1/deliver)

SendGrid

Default provider is SendGrid; sendgridDomain is required on the client.
You can omit provider: 'sendgrid'; the client still requires sendgridDomain for that configuration.

Gmail

Per-call override:

SMTP

Errors and non-HTTP failures

  • HTTP 4xx / 5xx responses set ok: false and include status and error (with parsed body when JSON).
  • Network timeouts, aborts, or other thrown errors surface as ok: false, status: 0, and error.message from the thrown error.

Requirements

Node.js >= 18 (native fetch).

Source and license

Package source lives under packages/api-client in the EmailUX monorepo. License: MIT.