Skip to content

Get the most recent DNS check result.

GET
/dns/job/{dns_job_id}/recent
curl --request GET \
--url https://api.siteqwality.com/dns/job/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/recent \
--header 'Authorization: Bearer <token>'
dns_job_id
required
string format: uuid

DNS monitor identifier

Latest DNS check result

Media type application/json
object
id
required
string format: uuid
account_id
required
string format: uuid
dns_job_id
required
string format: uuid
created_at
required
string format: date-time
status
required
string
Allowed values: good expired unknown
failure_reason
string | null
expiry_date

The registry expiry date this check observed.

Additive. The column has always existed on the row and was simply never returned, so the check history rendered as a status and a timestamp with no way to see the date move on renewal.

string | null format: date-time
domain_status

EPP status codes the registry reported, RFC 8056 form.

array | null
grace_states
required

Registry states that mean the registration is in trouble regardless of what expiry_date says.

Derived, not stored. The set of codes that count as trouble is a product decision that lives in [crate::domain_expiry], and a client that hardcoded its own list would silently disagree with the alerting the moment either side changed.

Array<string>
registrar
string | null
nameservers
array | null
rdap_origin

iana when the RDAP endpoint came from IANA’s bootstrap registry, override when it came from the hardcoded map (.io, .co). Null when this check was not answered by the RDAP leg.

string | null
expiry_source

Which leg of the lookup chain answered this check: rdap, whois, whoxy, or manual when no source published a date and the customer’s own was used.

Per check, so history can date a domain sliding from one leg to another. That is what a registry quietly withdrawing its RDAP endpoint looks like, and it is invisible from the job row alone.

string | null
Example
{
"status": "good"
}

Missing or invalid authentication

No DNS results found

Internal server error