mcpField
A
AutoSend

AutoSend

github.com/autosendhqOther0124 installsUpdated 38w ago
Repository

About AutoSend

AutoSend is a REST API for transactional email and contact management, aimed at developers integrating these operations into applications. It covers individual and bulk sends, templates with dynamic data, and contact creation, retrieval, upserting, and deletion.

Key features

  1. 01Sends individual transactional emails
  2. 02Bulk sends to up to 100 recipients
  3. 03Uses templates with dynamic variables
  4. 04Creates, retrieves, and deletes contacts
  5. 05Creates or updates contacts by email

Use cases

  1. 01Sending order confirmations or password resets
  2. 02Sending templated email to multiple recipients
  3. 03Syncing contacts and custom fields in an application

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/autosendhq/skills --skill autosend

After installing, type/autosendin Claude Code to confirm it loaded.

Bundled files

References and scripts installed along with SKILL.md.

.gitignore
LICENSE.txt
README.md
references/
api-guide.md
sdk-guide.md
scripts/
test-send.js

Details

From the project README

AutoSend Email API

Send transactional emails, manage contacts, and use templates via REST API.

Using JavaScript/TypeScript? See the SDK Guide for TypeScript examples with the autosendjs package.

Reference: API Guide | Official API Reference

Prerequisites

Complete these steps before using the API:

  • Create Account — Sign up at autosend.com
  • Add Domain — Settings → Domains → Add Domain → Select AWS region (docs)
  • Configure DNS — Copy the generated records (DKIM, SPF, DMARC) to your DNS provider
  • Verify Domain — Click "Verify Ownership" and wait for status to turn green (5-30 min)
  • Get API Key — Settings → API Keys → Generate API Key (docs)
  • Set Environment Variable — export AUTOSEND_API_KEY=as_your_key_here

Authentication

All requests require a Bearer token in the Authorization header:

Authorization: Bearer YOUR_API_KEY

Base URL: https://api.autosend.com/v1

All POST/PUT requests must include Content-Type: application/json.


Email Operations

Send Email

POST /v1/mails/send

Send a single transactional email.

ParameterTypeRequiredDescription
fromobjectYesSender — { "email": "...", "name": "..." }
toobjectYesRecipient — { "email": "...", "name": "..." }
subjectstringYesEmail subject line
htmlstringNoHTML body
textstringNoPlain text body
templateIdstringNoTemplate ID (replaces html/text)
dynamicDataobjectNoTemplate variable substitutions
ccarrayNoCC recipients — [{ "email": "...", "name": "..." }]
bccarrayNoBCC recipients — [{ "email": "...", "name": "..." }]
replyToobjectNoReply-to address — { "email": "...", "name": "..." }
attachmentsarrayNoFile attachments — [{ "filename": "...", "content": "..." }]

Response:

{
  "success": true,
  "data": { "emailId": "email_abc123" }
}

Bulk Send

POST /v1/mails/bulk

Send emails to multiple recipients with a shared sender, subject, and optional template.

ParameterTypeRequiredDescription
fromobjectYesShared sender — { "email": "...", "name": "..." }
subjectstringNoShared subject (required unless template provides it)
htmlstringNoShared HTML body
textstringNoShared plain text body
templateIdstringNoTemplate ID for templated emails
dynamicDataobjectNoShared default template variables
recipientsarrayYesArray of recipient objects (max 100)

Recipient object:

ParameterTypeRequiredDescription
emailstringYesRecipient email address
namestringNoRecipient display name
dynamicDataobjectNoPer-recipient variables (overrides shared)
ccarrayNoPer-recipient CC
bccarrayNoPer-recipient BCC

Limit: Maximum 100 recipients per bulk request.

Response:

{
  "success": true,
  "data": {
    "batchId": "batch_abc123",
    "totalRecipients": 2,
    "successCount": 2,
    "failedCount": 0
  }
}

Templates

POST /v1/mails/send with templateId

Send templated emails by passing a templateId and dynamicData instead of (or alongside) html/text.

ParameterTypeRequiredDescription
templateIdstringYesTemplate identifier
dynamicDataobjectNoKey-value pairs for template variables

Common template IDs:

TemplateIDTypical Variables
Order Confirmationtmpl_order_confirmationorderNumber, customerName, orderTotal, estimatedDelivery
Welcome Emailtmpl_welcomefirstName, activationLink, supportEmail
Password Resettmpl_password_resetresetLink, expiresIn

Templates also work with bulk send — pass templateId and dynamicData in the bulk request body.


Contact Management

Create Contact

POST /v1/contacts

ParameterTypeRequiredDescription
emailstringYesContact email address
firstNamestringNoContact first name
lastNamestringNoContact last name
userIdstringNoExternal user ID
listIdsarrayNoLists to add contact to — ["list_abc", "list_xyz"]
customFieldsobjectNoCustom field values

Response:

{
  "success": true,
  "data": {
    "id": "contact_abc123",
    "email": "[email protected]",
    "firstName": "Jane",
    "lastName": "Smith",
    "listIds": ["list_abc"],
    "customFields": {},
    "createdAt": "2025-01-15T00:00:00Z",
    "updatedAt": "2025-01-15T00:00:00Z"
  }
}

Get Contact

GET /v1/contacts/:id

ParameterTypeRequiredDescription
idstringYesContact ID (path parameter)

Response: Returns the contact object (same shape as Create Contact response).


Upsert Contact

POST /v1/contacts/email

Create or update a contact by email address. If a contact with the given email exists, it is updated; otherwise a new contact is created.

ParameterTypeRequiredDescription
emailstringYesContact email address
firstNamestringNoContact first name
lastNamestringNoContact last name
userIdstringNoExternal user ID
listIdsarrayNoLists to add contact to
customFieldsobjectNoCustom field values

Response: Returns the contact object (same shape as Create Contact response).


Delete Contact

DELETE /v1/contacts/:id

ParameterTypeRequiredDescription
idstringYesContact ID (path parameter)

Response:

{
  "success": true
}

Error Handling

All errors return JSON with an error object:

{
  "success": false,
  "error": {
    "message": "The 'to' field is required",
    "code": "VALIDATION_FAILED",
    "details": []
  }
}
StatusCodeDescription
400VALIDATION_FAILEDBad request — missing or invalid parameters
401UNAUTHORIZEDInvalid or missing API key
402PAYMENT_REQUIREDPlan upgrade needed
403FORBIDDENInsufficient permissions
404NOT_FOUNDResource not found
429RATE_LIMIT_EXCEEDEDToo many requests — retry with backoff
500SERVER_ERRORInternal server error

Comments

Markdown supported