Skip to content

List emails

GET
/emails
curl --request GET \
--url https://api.duta.indra.sh/v1/emails \
--header 'Authorization: Bearer <token>'
limit
integer
>= 1 <= 100

1 to 100. Default 50

after
string

The next value from the previous page

q
string

Matches subject, to and from

status
string

Success

Media typeapplication/json
object
object
string
Allowed values: list
data
required
Array<object>
object
id
required
string
from
required
string
to
required
Array<string>
subject
required
string
status
required

Duta’s exact status

string
last_event
required
string
Allowed values: bounced canceled clicked complained delivered delivery_delayed failed opened queued scheduled sent suppressed
created_at
required

ISO 8601

string format: date-time
from_addr
required
string
to_addr
required
string
has_more
required
boolean
next
required

Pass as after to get the following page

string | null
Example
{
"object": "list",
"data": [
{
"last_event": "bounced"
}
]
}

Missing or invalid API key

Media typeapplication/json
object
statusCode
required
integer
name
required

The Resend error name, so code that branches on it keeps working

string
message
required
string
code
required

Duta’s error code, finer grained than name

string
Allowed values: unauthorized forbidden not_found validation_failed domain_not_verified from_domain_not_allowed recipient_suppressed recipient_not_confirmed rate_limited quota_exceeded conflict payment_required account_paused content_rejected platform_halted payload_too_large length_required idempotency_conflict provider_error internal_error
detail
object
key
additional properties
request_id
required

Find this request on the Logs screen

string
Example
{
"code": "unauthorized"
}

The request was refused. code says why

Media typeapplication/json
object
statusCode
required
integer
name
required

The Resend error name, so code that branches on it keeps working

string
message
required
string
code
required

Duta’s error code, finer grained than name

string
Allowed values: unauthorized forbidden not_found validation_failed domain_not_verified from_domain_not_allowed recipient_suppressed recipient_not_confirmed rate_limited quota_exceeded conflict payment_required account_paused content_rejected platform_halted payload_too_large length_required idempotency_conflict provider_error internal_error
detail
object
key
additional properties
request_id
required

Find this request on the Logs screen

string
Example
{
"code": "unauthorized"
}

Rate limited. Retry after the Retry-After header

Media typeapplication/json
object
statusCode
required
integer
name
required

The Resend error name, so code that branches on it keeps working

string
message
required
string
code
required

Duta’s error code, finer grained than name

string
Allowed values: unauthorized forbidden not_found validation_failed domain_not_verified from_domain_not_allowed recipient_suppressed recipient_not_confirmed rate_limited quota_exceeded conflict payment_required account_paused content_rejected platform_halted payload_too_large length_required idempotency_conflict provider_error internal_error
detail
object
key
additional properties
request_id
required

Find this request on the Logs screen

string
Example
{
"code": "unauthorized"
}