Domain, IP and provider health, blocklists, Postmaster, SNDS, DMARC and incidents
package main
import ( "fmt" "net/http" "io")
func main() {
url := "https://reputecast.example.com/api/v1/workspaces/acme-newsletter/deliverability"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close() body, _ := io.ReadAll(res.Body)
fmt.Println(res) fmt.Println(string(body))
}const url = 'https://reputecast.example.com/api/v1/workspaces/acme-newsletter/deliverability';const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request GET \ --url https://reputecast.example.com/api/v1/workspaces/acme-newsletter/deliverability \ --header 'Authorization: Bearer <token>'Permission: deliverability:view
Authorizations
Section titled “Authorizations”Parameters
Section titled “Parameters”Path Parameters
Section titled “Path Parameters”Workspace slug
Workspace slug
Responses
Section titled “Responses”OK
object
object
object
Policy (none, quarantine, reject) or missing / invalid
object
object
object
object
object
object
object
object
object
object
object
Amazon SES, Postal · 203.0.113.25, Unknown · 198.51.100.77
Aligned, or the raw result: fail, softfail, none…
object
Amazon SES, Postal · 203.0.113.25, Unknown · 198.51.100.77
Aligned, or the raw result: fail, softfail, none…
object
object
Couldn’t reach api.hostrepute.com (timeout after 30 s, 3 attempts)
object
object
object
object
object
object
object
object
Healthy · no enforcement
object
Bounce rate, Complaint rate, Spam complaint rate
object
Bounce rate, Complaint rate, Spam complaint rate
Postal (self-hosted)
object
object
Example
{ "assets": [ { "blocklists": { "via": "hostrepute" }, "fallback": { "via": "hostrepute" }, "role": "sending_domain", "tone": "ok", "type": "domain" } ], "blocklists": { "interval": "hourly", "results": [ { "delisting": "requested", "impact": "high" } ], "via": "hostrepute" }, "checks": { "interval": "hourly", "running": { "status": "running", "trigger": "schedule", "via": "hostrepute" }, "via": "hostrepute" }, "dmarc": { "sources": [ { "result": "pass" } ], "unknown": { "result": "pass" }, "via": "hostrepute" }, "hostRepute": { "status": "not_connected" }, "incidents": { "items": [ { "links": [ { "kind": "warmup" } ], "severity": "info", "source": "reputecast" } ] }, "pools": [ { "onlyStream": "broadcast" } ], "postmaster": { "via": "hostrepute" }, "providers": [ { "bounce": { "tone": "ok" }, "complaint": { "tone": "ok" }, "tone": "ok" } ], "snds": { "filterResult": "green", "via": "hostrepute" }}default
Section titled “default”Error
object
Stable error code, e.g. permission_denied
A human-readable explanation specific to this occurrence of the problem.
Optional list of individual error details
object
Where the error occurred, e.g. ‘body.items[3].tags’ or ‘path.thing-id’
Error message text
The value at the given location
Members who hold the missing permission
A URI reference that identifies the specific occurrence of the problem.
object
The missing permission key
HTTP status code
A short, human-readable summary of the problem type. This value should not change between occurrences of the error.
A URI reference to human-readable documentation for the error.
Example
{ "detail": "Property foo is required but is missing.", "instance": "https://example.com/error-log/abc123", "status": 400, "title": "Bad Request", "type": "about:blank"}