Skip to content

This month's usage and plan limits

GET
/usage
curl --request GET \
--url https://api.duta.indra.sh/v1/usage \
--header 'Authorization: Bearer <token>'

Success

Media typeapplication/json
object
period
required

The calendar month, YYYY-MM

string
periodDays
required
number
Allowed values: 30
plan
required
object
id
required
string
includedEmails
required
integer | null
overageSenPerThousand
required
integer | null
maxDomains
required
integer
dailyLimit
required
integer | null
logRetentionDays
required
integer
ratePerSecond
required
number
usage
required
object
usedThisMonth
required
integer
includedEmails
required
integer | null
overage
required
integer
overageBlocks
required
integer
overageChargedSen
required

Integer sen

integer
overageCapSen
required
integer | null
percent
required
number
counts
required

Messages by status over the last 30 days

object
key
additional properties
integer
Example
{
"periodDays": 30
}

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"
}