Available in Classic and VPC
This API retrieves the status and processing statistics for a single email delivery request. It uses the requestId returned by the Create email delivery request API and is used to track the delivery progress.
Request
This section describes the request format. The method and URI are as follows:
| Method | URI |
|---|---|
| GET | /mail/v2/services/{serviceId}/requests/{requestId} |
Request headers
For information about the request headers common to all Simple & Easy Notification Service APIs, see Simple & Easy Notification Service request headers.
| Field | Required | Description |
|---|---|---|
x-ncp-lang |
Optional | Response message language
|
Request path parameters
You can use the following path parameters with your request:
| Field | Type | Required | Description |
|---|---|---|---|
serviceId |
String | Required | Email service ID
|
requestId |
String | Required | Delivery request ID
|
Request example
The request example is as follows:
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: ko-KR'
Response
This section describes the response format.
Response headers
The following describes the response headers.
| Field | Required | Description |
|---|---|---|
retry-after |
- | Time to wait until the next poll (second)
|
Response body
The response body includes the following data:
| Field | Type | Required | Description |
|---|---|---|---|
requestId |
String | - | Delivery request ID
|
status |
String | - | Delivery request status
|
createDateTime |
String | - | Delivery request acceptance date and time
|
requestCount |
Integer | - | Number of emails to be sent
|
readyCount |
Integer | - | Number of emails saved
|
sentCount |
Integer | - | Number of emails successfully sent |
finishCount |
Integer | - | Number of emails whose processing has been completed
|
reservationDateTime |
String | - | Scheduled delivery date and time
|
countsByStatus |
Array | - | Distribution of counts by email status: countsByStatus
|
countsByStatus
The following describes countsByStatus.
| Field | Type | Required | Description |
|---|---|---|---|
status |
String | - | Delivery status
|
count |
Integer | - | Number of emails with this status |
- The
retry-afterheader is included in the response untilstatusreaches the completed state. Wait for the specified number of seconds and then try the query again. - Recipients whose messages were not delivered due to opt-out or blocking are not counted as successful. Check the
recipients[].sendResultCodeof Get email details API to determine the specific cause of the failure.
Response status codes
The following describes the response status codes:
| HTTP status code | Code | Message | Description |
|---|---|---|---|
| 200 | - | OK | Request succeeded |
| 400 | InvalidParameter | Bad Request | Request parameter error |
| 401 | Unauthorized | Unauthorized | Authentication failed |
| 403 | Forbidden | Forbidden | No permission for the serviceId in the path. |
| 404 | NotFound | Not Found | The requestId in the path does not exist. |
| 500 | InternalServerError | Internal Server Error | Internal server error |
Unlike other APIs in the Simple & Easy Notification Service, the Mail v2 API returns errors in the NCP API standard error format. Instead of the status and error (string) fields in the response body, the error object shown below is returned.
Error response body
The response body includes the following data if the call fails.
| Field | Type | Required | Description |
|---|---|---|---|
error |
Object | - | Error information |
error.errorCode |
String | - | Error code
|
error.message |
String | - | Predefined message for each error code
|
error.detail |
String | - | Detailed reason for each request
|
error.fieldErrors |
Array | - | List of errors by parameter
|
Error response example
The following is a sample response upon a failed call.
{
"error": {
"errorCode": "NotFound",
"message": "The requested resource was not found."
}
}
Response example
The response example is as follows:
{
"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
}
]
}