Changelog

Newest first. Dates are when the change reached production.

Unreleased

  • Webhook payloads now have one shape. Every delivery is {type, account_id, data, created_at}. Monitoring and DMARC events previously arrived as a bare object with no envelope, and the documentation told you to handle both — that is fixed rather than described now. Nothing breaks: those events still carry their fields at the top level as well, so a handler written against the old shape keeps working. The duplicated top-level fields are deprecated and go away in /v2; read from data.
  • API access now follows the plan. A plan’s api_rate_per_min decides both whether the API is included and how fast you may call it; a plan granting no requests per minute grants no API, and requests return 403 naming the plan. Previously a missing limit was read as unlimited, so accounts without an API entitlement were the least restricted of all.
  • POST /v1/tests now requires a key. Anonymous, unauthenticated test creation remains available from the website, but not from api.deliversight.com.
  • GET /v1/tests and GET /v1/tests/{token} accept API keys, under the new tests:read scope. Previously they took only a dashboard session, so a key could create a test and had no authenticated way to read the result back.
  • 429 responses now carry Retry-After, in seconds, calculated from your plan’s rate.
  • The per-minute API rate limit now applies to POST /v1/tests. It previously applied only to GET /v1/whoami, so test creation was effectively unlimited by that figure.
  • The reports:read scope is retired. Nothing ever checked it: the report endpoints it appeared to name are authenticated by the test token and take no key at all. Existing keys carrying it keep working — the scope is simply no longer offered. Use tests:read.

Compatibility

While /v1 exists we will not remove an endpoint, remove a response field, change a field’s type, or add a required parameter.

We will add response fields, add endpoints, and add webhook event types. Parse leniently: ignore fields and event types you do not recognise, and do not assume the set of report checks is fixed.

Anything we cannot do additively goes in /v2, and /v1 keeps working while you migrate.

Getting told about changes

Breaking changes are announced by email to account owners before they ship. If you would like a different address to receive them, tell us — and if something here is wrong or missing, we would rather hear it than not.