Ir al contenido

Agregar dominio de envío

POST
/v1/email-domains
curl --request POST \
--url https://api.chaski.ec/v1/email-domains \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{ "name": "example" }'

Registra el dominio (mejor un subdominio, como facturas.tuempresa.com) y devuelve los registros DNS que hay que publicar. Después, POST /v1/email-domains/{id}/verify. Si el plan no incluye custom_email_domain: 403 plan_limit_reached (con addon_offer). Si otra cuenta ya lo registró: 409 email_domain_taken.

Media typeapplication/json
object
name
required
string
<= 253 characters /^(?:[a-z0-9](?:[a-z0-9-]{0,61}[a-z0-9])?\.)+[a-z]{2,63}$/

Example generated

{
"name": "example"
}

OK

Media typeapplication/json
object
id
required
string
name
required
string
status
required

verified: los perfiles de marca pueden enviar desde el dominio. pending: faltan registros DNS o aún no se propagan. failed: Resend no encontró los registros a tiempo; corrígelos y vuelve a verificar.

string
Allowed values: pending verified failed
records
required

Registros DNS que hay que publicar

Array<object>
object
record
required
string
type
required
string
name
required

Nombre del registro, relativo a la zona DNS del dominio

string
value
required
string
priority
required
Any of:
integer
>= -9007199254740991 <= 9007199254740991
status
required
string
verified_at
required
Any of:
string format: date-time
/^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$/
checked_at
required
Any of:
string format: date-time
/^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$/
created_at
required
string format: date-time
/^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d:[0-5]\d(?:\.\d+)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$/

Example

{
"id": "edm_01jbx3k9q2f8m4tn6vwz0yh5ce",
"name": "facturas.snappli.com",
"status": "pending",
"records": [
{
"record": "DKIM",
"type": "TXT",
"name": "resend._domainkey.facturas",
"status": "pending"
}
]
}

Petición inválida

Media typeapplication/json
object
error
required
object
code
required
string
message
required
string
field
string
key
additional properties

Example

{
"error": {
"code": "invalid_request"
}
}

Falta la API key o no es válida

Media typeapplication/json
object
error
required
object
code
required
string
message
required
string
field
string
key
additional properties

Example

{
"error": {
"code": "invalid_request"
}
}

Sin permiso (cuenta suspendida, emisor no habilitado en producción, límite del plan…)

Media typeapplication/json
object
error
required
object
code
required
string
message
required
string
field
string
key
additional properties

Example

{
"error": {
"code": "invalid_request"
}
}

Conflicto (recurso repetido, Idempotency-Key en curso…)

Media typeapplication/json
object
error
required
object
code
required
string
message
required
string
field
string
key
additional properties

Example

{
"error": {
"code": "invalid_request"
}
}

No se puede procesar (certificado vencido, Idempotency-Key reutilizada…)

Media typeapplication/json
object
error
required
object
code
required
string
message
required
string
field
string
key
additional properties

Example

{
"error": {
"code": "invalid_request"
}
}

Demasiadas peticiones

Media typeapplication/json
object
error
required
object
code
required
string
message
required
string
field
string
key
additional properties

Example

{
"error": {
"code": "invalid_request"
}
}