AutoSend について
AutoSendは、トランザクションメール送信と連絡先管理のためのREST APIです。アプリにこれらの機能を組み込む開発者向けで、個別・一括送信、動的データ付きテンプレート、連絡先の作成・取得・更新・削除に対応します。
主な機能
- 01個別のトランザクションメール送信
- 02最大100件の宛先への一括送信
- 03動的変数を使ったテンプレート
- 04連絡先の作成・取得・削除
- 05メールアドレスによる作成または更新
活用シーン
- 01注文確認やパスワード再設定メールの送信
- 02複数の宛先へのテンプレートメール送信
- 03アプリ内の連絡先やカスタムフィールドの同期
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ autosendhq/ skills --skill autosendインストール後、Claude Code で/autosendを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
.gitignoreLICENSE.txtREADME.mdreferences/api-guide.mdsdk-guide.mdscripts/test-send.js詳細
AutoSend Email API
REST API を通じて、トランザクションメールの送信、連絡先の管理、テンプレートの利用を行います。
JavaScript/TypeScript をお使いですか?
autosendjsパッケージを使用した TypeScript の例については、SDK ガイドをご覧ください。
リファレンス: API ガイド | 公式 API リファレンス
前提条件
API を使用する前に、以下の手順を完了してください。
- アカウントを作成 — autosend.com で登録します
- ドメインを追加 — Settings → Domains → Add Domain → AWS リージョンを選択します(ドキュメント)
- DNS を設定 — 生成されたレコード(DKIM、SPF、DMARC)を DNS プロバイダーにコピーします
- ドメインを検証 — 「Verify Ownership」をクリックし、ステータスが緑色になるまで待ちます(5~30 分)
- API キーを取得 — Settings → API Keys → Generate API Key(ドキュメント)
- 環境変数を設定 —
export AUTOSEND_API_KEY=as_your_key_here
認証
すべてのリクエストで、Authorization ヘッダーに Bearer トークンが必要です。
Authorization: Bearer YOUR_API_KEY
ベース URL: https://api.autosend.com/v1
すべての POST/PUT リクエストには、Content-Type: application/json を含める必要があります。
メール操作
メールを送信
POST /v1/mails/send
トランザクションメールを 1 通送信します。
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
from | object | はい | 送信者 — { "email": "...", "name": "..." } |
to | object | はい | 受信者 — { "email": "...", "name": "..." } |
subject | string | はい | メールの件名 |
html | string | いいえ | HTML 本文 |
text | string | いいえ | プレーンテキスト本文 |
templateId | string | いいえ | テンプレート ID(html/text を置き換えます) |
dynamicData | object | いいえ | テンプレート変数の置換データ |
cc | array | いいえ | CC 受信者 — [{ "email": "...", "name": "..." }] |
bcc | array | いいえ | BCC 受信者 — [{ "email": "...", "name": "..." }] |
replyTo | object | いいえ | 返信先アドレス — { "email": "...", "name": "..." } |
attachments | array | いいえ | ファイル添付 — [{ "filename": "...", "content": "..." }] |
レスポンス:
{
"success": true,
"data": { "emailId": "email_abc123" }
}
一括送信
POST /v1/mails/bulk
共通の送信者、件名、および任意のテンプレートを使って、複数の受信者にメールを送信します。
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
from | object | はい | 共通の送信者 — { "email": "...", "name": "..." } |
subject | string | いいえ | 共通の件名(テンプレートに含まれていない場合は必須です) |
html | string | いいえ | 共通の HTML 本文 |
text | string | いいえ | 共通のプレーンテキスト本文 |
templateId | string | いいえ | テンプレートを使用するメールのテンプレート ID |
dynamicData | object | いいえ | 共通のデフォルトテンプレート変数 |
recipients | array | はい | 受信者オブジェクトの配列(最大 100 件) |
受信者オブジェクト:
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
email | string | はい | 受信者のメールアドレス |
name | string | いいえ | 受信者の表示名 |
dynamicData | object | いいえ | 受信者ごとの変数(共通の値を上書きします) |
cc | array | いいえ | 受信者ごとの CC |
bcc | array | いいえ | 受信者ごとの BCC |
上限: 1 回の一括リクエストで指定できる受信者は最大 100 件です。
レスポンス:
{
"success": true,
"data": {
"batchId": "batch_abc123",
"totalRecipients": 2,
"successCount": 2,
"failedCount": 0
}
}
テンプレート
POST /v1/mails/send に templateId を指定します
templateId と dynamicData を渡すと、html/text の代わりに(または併せて)テンプレートを使用したメールを送信できます。
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
templateId | string | はい | テンプレート識別子 |
dynamicData | object | いいえ | テンプレート変数のキーと値のペア |
一般的なテンプレート ID:
| テンプレート | ID | 一般的な変数 |
|---|---|---|
| 注文確認 | tmpl_order_confirmation | orderNumber、customerName、orderTotal、estimatedDelivery |
| ウェルカムメール | tmpl_welcome | firstName、activationLink、supportEmail |
| パスワードリセット | tmpl_password_reset | resetLink、expiresIn |
テンプレートは一括送信でも使用できます。一括リクエストの本文に templateId と dynamicData を渡してください。
コンタクト管理
コンタクトの作成
POST /v1/contacts
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
email | string | はい | コンタクトのメールアドレス |
firstName | string | いいえ | コンタクトの名 |
lastName | string | いいえ | コンタクトの姓 |
userId | string | いいえ | 外部ユーザー ID |
listIds | array | いいえ | コンタクトを追加するリスト — ["list_abc", "list_xyz"] |
customFields | object | いいえ | カスタムフィールドの値 |
レスポンス:
{
"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 /v1/contacts/:id
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
id | string | はい | コンタクト ID(パスパラメーター) |
レスポンス: コンタクトオブジェクトを返します(コンタクト作成時のレスポンスと同じ形式)。
コンタクトの登録または更新
POST /v1/contacts/email
メールアドレスでコンタクトを作成または更新します。指定したメールアドレスのコンタクトが存在する場合は更新し、存在しない場合は新しいコンタクトを作成します。
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
email | string | はい | コンタクトのメールアドレス |
firstName | string | いいえ | コンタクトの名 |
lastName | string | いいえ | コンタクトの姓 |
userId | string | いいえ | 外部ユーザー ID |
listIds | array | いいえ | コンタクトを追加するリスト |
customFields | object | いいえ | カスタムフィールドの値 |
レスポンス: コンタクトオブジェクトを返します(コンタクト作成時のレスポンスと同じ形式)。
コンタクトの削除
DELETE /v1/contacts/:id
| パラメーター | 型 | 必須 | 説明 |
|---|---|---|---|
id | string | はい | コンタクト ID(パスパラメーター) |
レスポンス:
{
"success": true
}
エラー処理
すべてのエラーは error オブジェクトを含む JSON を返します。
{
"success": false,
"error": {
"message": "The 'to' field is required",
"code": "VALIDATION_FAILED",
"details": []
}
}
| ステータス | コード | 説明 |
|---|---|---|
400 | VALIDATION_FAILED | 不正なリクエスト — パラメーターがないか、無効です |
401 | UNAUTHORIZED | API キーが無効か、指定されていません |
402 | PAYMENT_REQUIRED | プランのアップグレードが必要です |
403 | FORBIDDEN | 権限が不足しています |
404 | NOT_FOUND | リソースが見つかりません |
429 | RATE_LIMIT_EXCEEDED | リクエストが多すぎます — バックオフして再試行してください |
500 | SERVER_ERROR | サーバー内部エラー |