---
updatedAt: 2026-04-23T05:40:30.000Z
---

# Sends a one-off email to a user

Sends a single transactional email to a user. Supports Liquid templating for personalization (e.g., {{ first_name }}).

# OpenAPI definition

```json
{
  "openapi": "3.0.1",
  "info": {
    "title": "API V1",
    "version": "v1"
  },
  "paths": {
    "/emails": {
      "post": {
        "summary": "Sends a one-off email to a user",
        "tags": [
          "Emails"
        ],
        "description": "Sends a single transactional email to a user. Supports Liquid templating for personalization (e.g., {{ first_name }}).",
        "parameters": [
          {
            "name": "user_id",
            "in": "query",
            "schema": {
              "type": "integer"
            },
            "required": true,
            "description": "ID of the user to send email to"
          },
          {
            "name": "subject",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "required": true,
            "description": "Email subject line (supports Liquid templating)"
          },
          {
            "name": "body_html",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "required": true,
            "description": "HTML content of the email (supports Liquid templating)"
          },
          {
            "name": "body_plain",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "required": false,
            "description": "Plain text fallback content"
          },
          {
            "name": "email_sender_id",
            "in": "query",
            "schema": {
              "type": "integer"
            },
            "required": false,
            "description": "ID of configured email sender (uses org default if omitted)"
          },
          {
            "name": "reply_to",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "required": false,
            "description": "Reply-to email address"
          },
          {
            "name": "attachment_urls",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            },
            "required": false,
            "description": "Array of URLs to files to attach (max 5)"
          },
          {
            "name": "track_opens",
            "in": "query",
            "schema": {
              "type": "boolean"
            },
            "required": false,
            "description": "Enable open tracking (default: true)"
          },
          {
            "name": "track_clicks",
            "in": "query",
            "schema": {
              "type": "boolean"
            },
            "required": false,
            "description": "Enable click tracking (default: true)"
          },
          {
            "name": "campaign_name",
            "in": "query",
            "schema": {
              "type": "string"
            },
            "required": false,
            "description": "Groups the send into one email blast titled \"API: <campaign_name>\", so its opens, clicks, and unsubscribes appear in the blast filters and results, and the email carries a one-click unsubscribe header. Use one name per send wave. Names match exactly, including case and spacing. The 201 response includes email_blast_id. With a name, the call returns 422 when the person has opted out of email, or when the API key was created by an admin who no longer exists."
          }
        ],
        "responses": {
          "201": {
            "description": "email sent successfully"
          },
          "404": {
            "description": "user not found"
          },
          "422": {
            "description": "missing required parameters"
          }
        }
      }
    }
  },
  "servers": [
    {
      "url": "https://api.solidarity.tech/v1",
      "variables": {
        "defaultHost": {
          "default": "api.solidarity.tech/v1"
        }
      }
    }
  ],
  "security": [
    {
      "BearerAuth": []
    }
  ],
  "components": {
    "securitySchemes": {
      "BearerAuth": {
        "type": "http",
        "scheme": "bearer"
      }
    }
  }
}
```