Skip to content

Errors

The Duta API uses standard HTTP status codes. Error responses include a message you can show or log.

StatusMeaningCommon cause and fix
401Authentication failedMissing or invalid API key. Check the Authorization: Bearer header.
402Quota exceededYou hit your plan’s monthly send limit. Upgrade in the dashboard.
403Permission deniedThe sender domain is not verified for your account, or the key lacks the required scope. Verify the domain.
422UnprocessableInvalid sender, or a recipient is on your suppression list. The response lists blocked addresses.
429Rate limitedToo many requests per second, or the free-plan daily cap. Slow down or upgrade.
500Server errorTransient. Retry with backoff; contact support if it persists.

Most errors return:

{ "error": "Sender domain not verified for this account" }

Rate-limit errors return:

{ "statusCode": 429, "name": "rate_limit_exceeded", "message": "Too many requests." }

The TypeScript SDK normalises both shapes into a single DutaError with a stable name, so you can branch on error.name reliably.