Recipe: Send email from Custom GPT & Claude Actions

Expose Notify as an OpenAPI action for Custom GPTs or Claude — POST /api/email/send with x-api-key.

Use this when a Custom GPT (ChatGPT Actions) or Claude tool/action should send transactional email without you writing an agent framework. Still transactional, not newsletters.

You publish a tiny OpenAPI surface that points at Notify. Auth is an API key header — never put the key in the model instructions.

Prerequisites

  • An API key — either from Credentials or agent bootstrap (/api/agent/bootstrap/*, no dashboard). Prefer a domain-locked sending_access key in production apps.
  • A verified domain for production custom from (agent retrieves dnsRecords; you publish them at your host)
  • Access to Custom GPT Actions and/or Claude tool configuration for your workspace

You can also import the full OpenAPI (bootstrap + domains + send) instead of the minimal send-only sketch below.

OpenAPI sketch

ChatGPT Actions and many Claude tool UIs accept an OpenAPI document. Minimal shape:

openapi: 3.1.0
info:
  title: Notify send
  version: 1.0.0
servers:
  - url: https://notify.cx
paths:
  /api/email/send:
    post:
      operationId: sendEmail
      summary: Send a transactional email
      security:
        - ApiKeyAuth: []
      requestBody:
        required: true
        content:
          application/json:
            schema:
              type: object
              required: [to, from, subject, html]
              properties:
                to:
                  type: string
                from:
                  type: string
                subject:
                  type: string
                html:
                  type: string
      responses:
        '200':
          description: Send accepted
components:
  securitySchemes:
    ApiKeyAuth:
      type: apiKey
      in: header
      name: x-api-key

Full product schema also lives at https://notify.cx/openapi.yaml if your host can import it and you only enable the send operation.

Custom GPT (ChatGPT Actions)

  1. Create / edit a GPT → Actions → import the OpenAPI above (or paste it).
  2. Authentication: API Key, header name x-api-key, paste your Notify key into the GPT’s auth settings (not the instructions).
  3. In instructions, say clearly: use sendEmail only for transactional mail the user requested; never for newsletters or cold outreach.
  4. Test with a send to yourself.

Claude (tool / action)

  1. Register an HTTPS tool that POSTs to https://notify.cx/api/email/send.
  2. Configure auth so Claude’s connector sends x-api-key from a secret store — not from the system prompt.
  3. Tool description: transactional only; require to, from, subject, html.

If you use Claude Code / desktop MCP instead of Actions, prefer the official Notify MCP.

Example body the action should send

{
  "to": "user@example.com",
  "from": "noreply@your-verified-domain.com",
  "subject": "Your magic link",
  "html": "<p>Click to continue.</p>"
}

html is preferred; message and text also work.

Sandbox vs production

Until the domain is verified, production custom from stays locked. Use sandbox vs production or POST /api/email/send/test for API rehearsal.

After you send

Check Email Logs or the logs API. Delivery events can go to a webhook on Pro+.

Where to next?