Developer API and MCP

You can read your email layouts, email senders, secrets, uploaded files and HTTP requests from your own code or from an AI assistant, and manage your HTTP requests and media files. Workflow Transactional Email exposes a REST API and an MCP server, both managed on the Developer page inside the app.

Everything uses one credential, and both surfaces enforce the same rules: your secrets are never readable, and history is masked before it is returned.

Related articleAuthentication and API keysCreate a key, pick its access level, and understand why execute is separate.Related articleREST API referenceEvery endpoint, the level it needs, query parameters, status codes and rate limits.Related articleConnect an AI assistant (MCP)Point Claude, Cursor, VS Code or Gemini CLI at your account, with tools gated by key level.

The short version

Base URL

text
https://shopify.workflow-transactional-email.app

Authenticate with a bearer key created on the Developer page. Keys start with fak_ and are shown once, at creation.

Three access levels, ordered and cumulative:

Level Adds
Read Read email layouts, senders, secret names, uploaded files, HTTP requests, history and stats
Read & write Create, edit and delete HTTP requests; delete unused uploaded files
Read, write & execute Run an HTTP request against its real target

Issue read keys by default.

Housekeeping your media

A common use: find every uploaded logo or image nothing references any more, and clear it out.

bash
# every file, each flagged with whether a layout or preset still uses it
curl "https://shopify.workflow-transactional-email.app/api/v1/files?usage=true" \
  -H "Authorization: Bearer fak_your_key_here"

# delete one that nothing references
curl -X DELETE "https://shopify.workflow-transactional-email.app/api/v1/files" \
  -H "Authorization: Bearer fak_your_key_here" \
  -H "Content-Type: application/json" \
  -d '{"key":"uploads/your-shop.myshopify.com/abc123.png"}'

A file still used by a layout or a header/footer preset is refused with a 409 naming what uses it, so a cleanup script cannot accidentally break a live email.

A first request

Confirm a key works and see what it can do:

bash
curl https://shopify.workflow-transactional-email.app/api/v1/me \
  -H "Authorization: Bearer fak_your_key_here"