Run this domain's source classification now

Search Documentation

Search across all developer documentation

domain-auth

Run this domain's source classification now

POST /v1/domain-auth/domains/{domain}/remeasure
Auth required api.domain_auth.manage

Enqueues one domain's source-classification pass instead of waiting for the nightly run.

The readiness endpoint's impact is the figure the verdict turns on, and it reports its own completeness. An agent that reads completeness: partial and can do nothing about it until tomorrow gives the customer worse advice than the dashboard does — this is the endpoint that closes that gap.

One run per domain per hour, and a spent window is a 200. Being early is not a client error: the answer is "the last pass was recent enough", and the body says so with queued: false, an honest retry_after_seconds, and the two figures a caller actually wants — when the last pass ran and what it left unmeasured. Retry-After is set on the response as well. The limit is a rule about a DOMAIN, not about a caller: it is the same window and the same limiter the dashboard's control uses, so the two surfaces cannot quote different waits.

The response describes the registry as it stood when the request arrived. It is never a prediction of what the queued run will find.

This endpoint writes no DNS, changes no DMARC policy, and records no decision about a source. It reruns a measurement over evidence already received. Non-destructive, so a test-environment credential may call it.

Path parameters

domain string required

The domain, by NAME (acme.com). A UUID is also accepted. Matched case-insensitively, and scoped to the calling org — a domain belonging to another org is a 404, never a 403.

Responses

Errors follow the RFC 7807 problem format — see the error reference.

200 Whether a run was queued, and what the last one left behind. application/json
queued boolean required

False when the window was already spent. Not an error — the answer is "the last one is recent enough".

retry_after_seconds integer required

Seconds until the next run is allowed; zero when queued. Honest to the second: a refused call is not recorded against the window and so cannot push this out.

last_measured_at string required

When the classification pass last wrote a row of this domain's registry. Empty when it never has.

unmeasured_sources integer<int64> required

Registry rows carrying no measurement.

unmeasured_max_messages integer<int64> required

The MOST those rows could add to impact.would_affect_messages: their whole thirty-day volume, assuming every message failed. An upper bound, never an estimate.

registry_sources integer<int64> required

The size of the registry, so the counts read as a share.

401 Missing, malformed, or unknown API key application/problem+json
403 Key lacks the required scope or plan limit violated application/problem+json
404 Resource not found application/problem+json
429 Per-org rate limit exceeded application/problem+json
500 Unexpected server-side failure. The code is internal_error. The request_id field can be quoted to SendOps support to investigate. application/problem+json