送信リクエストの照会

Prev Next

Classic/VPC環境で利用できます。

メール送信リクエスト1件の状態と処理統計を照会します。メール送信リクエストの作成 APIが返したrequestIdで照会し、送信の進行状況を追跡するために使用します。

リクエスト

リクエスト形式を説明します。リクエスト形式は次の通りです。

メソッド URI
GET /mail/v2/services/{serviceId}/requests/{requestId}

リクエストヘッダ

Simple & Easy Notification Service APIで共通して使用されるヘッダの詳細は、Simple & Easy Notification Serviceのリクエストヘッダをご参照ください。

フィールド 必須の有無 説明
x-ncp-lang Optional レスポンスメッセージの言語
  • en-US (デフォルト) | ko-KR | ja-JP

リクエストパスパラメータ

リクエストパスパラメータの説明は次の通りです。

フィールド タイプ 必須の有無 説明
serviceId String Required メールサービス ID
requestId String Required 送信リクエスト ID

リクエスト例

リクエストのサンプルコードは次の通りです。

curl --location --request GET 'https://sens.apigw.ntruss.com/mail/v2/services/ncp:mail:kr:1********2:main/requests/20260712-R-01K0ZQ8YV3M4N5P6R7S8T9VAWX-777' \
--header 'x-ncp-apigw-timestamp: {Timestamp}' \
--header 'x-ncp-iam-access-key: {Access Key}' \
--header 'x-ncp-apigw-signature-v2: {API Gateway Signature}' \
--header 'x-ncp-lang: ja-JP'

レスポンス

レスポンス形式を説明します。

レスポンスヘッダ

レスポンスヘッダの説明は次の通りです。

フィールド 必須の有無 説明
retry-after - 次のポーリングまでの待機時間(秒)
  • statusが終了状態(COMPLETED | FAILED | PARTIAL_FAILED | CANCELED)に達するまでのみ返される
  • 終了状態に達すると返されない

レスポンスボディ

レスポンスボディの説明は次の通りです。

フィールド タイプ 必須の有無 説明
requestId String - 送信リクエスト ID
  • 値の内部構成は固定された契約ではないため、パースせずそのまま使用
status String - 送信リクエストの状態
  • PREPARING | READY | RESERVED | SENDING | COMPLETED | FAILED | PARTIAL_FAILED | CANCELED
    • PREPARING: 送信リクエストを受け付けて準備中
    • READY: 送信準備が完了し、送信開始を待機中
    • RESERVED: 予約した送信時刻を待機中
    • SENDING: リクエストに含まれるメールを送信中
    • COMPLETED: すべてのメールの送信が完了
    • FAILED: すべてのメールの送信が失敗
    • PARTIAL_FAILED: 一部のメールの送信が失敗
    • CANCELED: 送信リクエストがキャンセルされた
createDateTime String - 送信リクエストの受付日時
  • ISO 8601形式
requestCount Integer - 送信メール件数
  • 一般送信は受信者を分割して複数通を作成するため、受信者数と異なる場合がある
  • 個別送信の場合は受信者数と同じ
readyCount Integer - 保存が完了したメール件数
  • 全状態の合計
sentCount Integer - 送信に成功したメール件数
finishCount Integer - 処理が終了したメール件数
  • 成功・失敗・受信拒否・キャンセルの合計
reservationDateTime String - 予約送信日時
  • ISO 8601形式
  • 即時送信リクエストはnull
countsByStatus Array - メール状態別の件数分布: countsByStatus
  • 件数の合計はrequestCountと同じ
  • 件数が0の状態は含まれない

countsByStatus

countsByStatusの説明は次の通りです。

フィールド タイプ 必須の有無 説明
status String - 送信状態
  • READY | RESERVED | SENDING | RETRYING | COMPLETED | FAILED | ERRORED | UNSUBSCRIBED | BLOCKED | CANCELED
    • READY: 送信開始を待機中
    • RESERVED: 予約した送信時刻を待機中
    • SENDING: 受信者へのメール配信を試行中
    • RETRYING: 一時的な失敗により再試行が予約され待機中
    • COMPLETED: 受信者にメールが正常に送信された
    • FAILED: 受信サーバの拒否などにより送信が失敗
    • ERRORED: 送信処理中のエラーにより終了
    • UNSUBSCRIBED: 受信拒否アドレスのため送信されなかった
    • BLOCKED: 送信ブロックアドレスのため送信されなかった
    • CANCELED: 送信がキャンセルされた
count Integer - 該当状態のメール件数
参考
  • statusが終了状態に達するまでは、レスポンスにretry-afterヘッダが含まれます。その値(秒)だけ待機してから再度照会してください。
  • 受信拒否・送信ブロックにより送信されなかった受信者は成功として集計されません。失敗・エラーの具体的な原因はメール詳細の照会 APIのrecipients[].sendResultCodeでご確認ください。

レスポンスステータスコード

レスポンスステータスコードの説明は次の通りです。

HTTPステータスコード コード メッセージ 説明
200 - OK リクエスト成功
400 InvalidParameter Bad Request リクエストパラメータエラー
401 Unauthorized Unauthorized 認証失敗
403 Forbidden Forbidden パスのserviceIdに対する権限なし
404 NotFound Not Found パスのrequestIdが存在しない
500 InternalServerError Internal Server Error サーバ内部エラー
参考

Simple & Easy Notification Serviceの他の APIとは異なり、メール v2 APIは NCP API標準のエラー形式でエラーを返します。レスポンスボディのstatus、error(文字列)フィールドの代わりに、以下のerrorオブジェクトが返されます。

エラーレスポンスボディ

呼び出しに失敗した場合のレスポンスボディの説明は次の通りです。

フィールド タイプ 必須の有無 説明
error Object - エラー情報
error.errorCode String - エラーコード
  • レスポンスステータスコード表のコード列を参照
error.message String - エラーコードごとの固定メッセージ
  • x-ncp-langヘッダで指定した言語で返される
error.detail String - リクエストごとの詳細な理由
  • 該当する理由がない場合はフィールドが省略される
error.fieldErrors Array - パラメータごとのエラーリスト
  • field: エラーが発生したパラメータ名
  • message: エラーの理由
  • パラメータエラーでない場合はフィールドが省略される

エラーレスポンス例

呼び出しに失敗した場合のレスポンスのサンプルコードは次の通りです。

{
"error": {
"errorCode": "NotFound",
"message": "The requested resource was not found."
}
}

レスポンス例

レスポンスのサンプルコードは次の通りです。

{
"requestId": "20260712-R-01K0ZQ8YV3M4N5P6R7S8T9VAWX-777",
"status": "COMPLETED",
"createDateTime": "2026-07-12T10:00:00+09:00",
"requestCount": 35179,
"readyCount": 35179,
"sentCount": 33502,
"finishCount": 35179,
"reservationDateTime": null,
"countsByStatus": [
{
"status": "COMPLETED",
"count": 33502
},
{
"status": "FAILED",
"count": 1415
},
{
"status": "UNSUBSCRIBED",
"count": 262
}
]
}