Documentation menu

クイックスタート

トランザクション送信APIを使うと、Brevo、SendGrid、Postmarkの送信エンドポイントを呼び出すのと同じように、自分のバックエンドからメールをトリガーできます。OTP、レシート、アラートに自然に適しており、スタジオでデザインしたプロジェクトを、自分のデータを連絡先行の代わりとして使ってトリガーすることもできます。

APIキーを発行する

ダッシュボードの開発者Create keyを押し、名前(例:「Production backend」「Staging」)を付けます。完全なキー — mia_live_... — は一度だけ表示されます。安全な場所に保管してください。MailInAppはハッシュのみを保持するため、後から取得し直すことはできません。失くした場合は、そのキーを取り消して新しいキーを発行してください。

キーは1つのプロジェクトではなく、アカウント全体に対して有効です — 1つのキーで、自分が所有するどのプロジェクトもトリガーできます。好きな数だけ作成でき(環境や連携ごとに1つ発行するのが一般的なパターンです)、それぞれを個別にいつでも取り消せます。

送信 #1:自由形式

プレーンなトランザクションメール(スタジオのプロジェクトを使わない場合)には、自分でHTMLとテキストを指定します:

curl -X POST https://mailinapp.com/api/v1/send \
  -H "Authorization: Bearer mia_live_..." \
  -H "Content-Type: application/json" \
  -d '{
    "to": "[email protected]",
    "subject": "Your one-time code",
    "html": "<p>Your code is 123456</p>",
    "text": "Your code is 123456"
  }'

成功した呼び出しは、次のように返します:

{ "id": "abc123", "status": "sent" }

送信 #2:テンプレート

これこそが実際の差別化要因です:スタジオでメールをビジュアルにデザインし(フォールバックエンジン、インタラクティブブロック、マージタグを含む)、そのうえで、自分のサインアップ・チェックアウト・サポートのコードから、mergeDataをデータソースの行の代わりとしてトリガーします:

curl -X POST https://mailinapp.com/api/v1/send \
  -H "Authorization: Bearer mia_live_..." \
  -H "Content-Type: application/json" \
  -H "Idempotency-Key: order_12345" \
  -d '{
    "to": "[email protected]",
    "projectId": "your-project-id",
    "mergeData": { "name": "Ada", "orderId": "12345" }
  }'

projectIdは、そのプロジェクトのスタジオURL(/studio/<projectId>)にあります。mergeDataのフィールドは、連絡先の行と全く同じように、プロジェクトの{{field}}マージタグへ解決されます。受信者は、他のどの送信とも同様に、個人ごとの署名付きライブビューリンクを受け取ります — 投票、評価、フォームといったインタラクティブブロックも機能し、すべての回答はこの特定のAPI呼び出しに帰属付けられたうえで、そのプロジェクト通常の回答ビューとWebhook配信に流れ込みます。

Idempotency-Keyヘッダーは任意ですが、再試行され得る処理(チェックアウトのWebhook、キューコンシューマーなど)によってトリガーされる場合には指定を推奨します — 詳しくはAPIリファレンスの冪等性を参照してください。

送信者を上書きする

どちらの送信タイプも、既定ではアカウントに設定された送信者アイデンティティを使用します — ネイティブ(SES)送信の場合は設定 → ドメインの「From address」カード、それ以外の場合は自分のSMTPリレーのfromアドレスです。特定の1回の呼び出しだけ上書きするにはfromを追加します。例えば、マルチブランドのアカウントが特定のチームとして送信する場合などです:

curl -X POST https://mailinapp.com/api/v1/send \
  -H "Authorization: Bearer mia_live_..." \
  -H "Content-Type: application/json" \
  -d '{
    "to": "[email protected]",
    "subject": "Your one-time code",
    "html": "<p>Your code is 123456</p>",
    "text": "Your code is 123456",
    "from": { "email": "[email protected]", "name": "Your Sales Team" }
  }'

fromを指定する場合、from.emailは常に必須です(名前だけの上書きはできません)。from.nameは任意です。ネイティブ(SES)送信では、from.emailは認証済みドメインのいずれかのアドレスである必要があります — その理由とSMTPでのより緩やかなルールについては、APIリファレンスのFrom addressを参照してください。

ダッシュボードで送信者アイデンティティをすでに保存している場合は、アドレスや名前をその都度指定する代わりに、そのidをsenderIdとして渡せます — 両方のフィールドについてはAPIリファレンスを参照してください。

次のステップ

  • リクエスト/レスポンスの完全な形式、typeの意味、レート制限、エラーコード:APIリファレンス
  • 自分のキーで行った最近の呼び出しは、ステータスやエラーも含めて開発者ページに表示され、監査に使えます。
  • まだSMTPリレーがありませんか? ネイティブ送信を使えば、ドメインが許可リストに登録され認証された後、MailInAppが代わりに配信します。
  • APIを直接呼び出す代わりに、AIエージェントにメールを構築・編集してほしいですか? 同じキーでMCPサーバーも認証できるため、Claude Desktop、Claude Code、その他のMCPクライアントがチャットで代わりに行えます。