dmarcian API (1.0.0)

Download OpenAPI specification:

Introduction

Welcome to the dmarcian REST API documentation!

This documentation will help you integrate the dmarcian services into your software so you are not required to use our user interface. We have put a lot of effort into making the endpoints as self descriptive as possible but even if you have any issues - head to the corresponding section in the reference below.

We have built the API on top of HTTP following REST best practices. The endpoints receive JSON in their request body and return JSON as a response with the proper status code.

Authentication

Most of our API endpoints are not publicly available so you must authenticate in order to use them. To do so you need to acquire an API token first. Navigate to the Manage Settings page and generate one there. You can always regenerate it but keep in mind that this will revoke your old token and it won't be accepted anymore.

Once you have a token you need to provide it as an HTTP header on each request you make:

Authorization: Token {your-api-token}

Versioning

The API is constantly evolving to match the new features we add to the dmarcian platform. In order to ensure backward compatibility and not break clients we have versioned the API. Each endpoint contains a parameter in the URL that specifies the requested version and looks like this:

/api/v{version-number}/domains/

Status Codes

Endpoint calls can result in one of the following HTTP Status Codes:

Code Meaning
200 Successful operation (read, update, etc.)
201 Resource created (usually on POST requests)
202 Request for processing has been accepted (e.g. a long query job)
204 Successful operation without a response body (e.g. delete)
400* Invalid request parameters
401 Unauthorized - your API token is either missing or invalid
402 Account subscription has expired
403 Forbidden - you are not permitted to perform the operation
404 Requested resource not found
500 Oops - something went wrong

* Have in mind that properties specified in the request body that are not supported will be IGNORED.

Working with date fields

API returns date fields as a string representing the UTC date and time in ISO 8601 format, YYYY-MM-DDTHH:MM:SS.mmmmmm or, if microsecond is 0, YYYY-MM-DDTHH:MM:SS.

In example below Z is the zone designator for the zero UTC offset.

{
  "created": "2017-09-11T10:18:50.875874Z"
}

API accepts date time in ISO 8601 format with given UTC offset(Z for zero or ±HH:MM):

{
  "begin": "2017-09-11T10:18:50+03:00",
  "end": "2017-09-11T10:18:50+03:00"
}

How-To Guides

After getting familiar with the basics it's time to get our hands dirty and actually do something with the API. In this How To section we are going to describe some common scenarios - check the reference for more advanced cases.

dmarcian does not provide any SDKs currently but communication with the API can be achieved in any programming language since all endpoints are HTTP based. We will use curl in our examples for simplicity.

Add Domain

The first step after creating an account at dmarcian is to add a domain so we are going to describe how can this be achieved via the API.

1. Get Token

Check the Authentication section for details how to obtain an API token - we will need it for calling the API.

2. List Domain Groups

All domains live under a certain domain group (either the default one which you will automatically have after registration or a group you have created). In order to create a domain we need to find a group to add it to first:

curl -G https://<region>.dmarcian.com/api/v1/domain-groups/ -H 'Authorization: Token {your-api-token}'

You will get a paginated list of all available groups. Just choose the one you want to add a domain to (look inside the results property) and copy the add_domain URL under _links - we will use it in the next step.

3. Add the Domain

After we've chosen a group we can actually add the domain:

curl -d '{"domains":["example.com"]}' https://<region>.dmarcian.com/api/v1/domain-groups/{chosen-group-id}/add-domains/ -H 'Authorization: Token {your-api-token}' -H 'Content-Type: application/json'

The response will contain URLs to the newly created domains:

{
    "added": ["https://<region>.dmarcian.com/api/v1/domains/{created-domain-id}/"]
}

4. List Domains

And voila - you have added your first domain via the API. Now let's verify that the domain is listed under the group. Copy the domains property under _links from the group you chose in step 2 and list the domains:

curl -G 'https://<region>.dmarcian.com/api/v1/domains/?treat_as_top_level=True&group_id={chosen-group-id}' -H 'Authorization: Token {your-api-token}'

You should see the new domain in the results property of the paginated response.

Reference

The API reference allows you to dive into each endpoint and check how example requests and response look like, what filters are supported and what is the meaning of each property.

Users

User endpoints allow management of users that belong to your organization. In order to use these endpoints you need admin access.

List all users

Get a list of all users within an account.

Authorizations:
tokenAuthcookieAuth
query Parameters
email
string

Filter users by email address.

limit
integer

Number of results to return per page.

ordering
string
Enum: "username" "-username" "email" "-email"

Fields allowed for ordering results.

page
integer

A page number within the paginated result set.

username
string

Filter users by username.

Responses

Response samples

Content type
application/json
{
  • "_links": {
    },
  • "_permission": [
    ],
  • "pages": 3,
  • "current_page": 2,
  • "per_page": 10,
  • "count": 123,
  • "results": [
    ]
}

Create and add a new user to an account.

An email with an activation list is send upon each user creation. The user must click through the link in order to activate the account.

Authorizations:
tokenAuthcookieAuth
Request Body schema:
required
email
required
string <email> (Email address) <= 254 characters
is_admin
boolean

Admin access allows users to create domain groups and manage both user and domain group access control.

has_forensic_access
boolean

Granting Forensic access gives users access to view DMARC Forensic reports.

has_billing_access
boolean

Giving users billing access will let them view and manage subscription and payment information.

Responses

Request samples

Content type
{
  • "email": "user@example.com",
  • "is_admin": true,
  • "has_forensic_access": true,
  • "has_billing_access": true
}

Response samples

Content type
application/json
{
  • "_links": {
    },
  • "_permissions": "string",
  • "id": 0,
  • "email": "user@example.com",
  • "username": "string",
  • "date_joined": "string",
  • "is_active": true,
  • "is_admin": true,
  • "is_owner": true,
  • "api_token": "string",
  • "sso_ready": true,
  • "has_forensic_access": true,
  • "has_billing_access": true,
  • "last_login": "2019-08-24T14:15:22Z",
  • "last_login_sso": true,
  • "has_2fa_enabled": true,
  • "settings": null
}

Get user details

Authorizations:
tokenAuthcookieAuth
path Parameters
id
required
integer

A unique integer value identifying this user.

Responses

Response samples

Content type
application/json
{
  • "_links": {
    },
  • "_permissions": "string",
  • "id": 0,
  • "email": "user@example.com",
  • "username": "string",
  • "date_joined": "string",
  • "is_active": true,
  • "is_admin": true,
  • "is_owner": true,
  • "api_token": "string",
  • "sso_ready": true,
  • "has_forensic_access": true,
  • "has_billing_access": true,
  • "last_login": "2019-08-24T14:15:22Z",
  • "last_login_sso": true,
  • "has_2fa_enabled": true,
  • "settings": null
}

Update user details

Authorizations:
tokenAuthcookieAuth
path Parameters
id
required
integer

A unique integer value identifying this user.

Request Body schema:
required
email
required
string <email> (Email address) <= 254 characters
settings
any

Responses

Request samples

Content type
{
  • "email": "user@example.com",
  • "settings": null
}

Response samples

Content type
application/json
{
  • "_links": {
    },
  • "_permissions": "string",
  • "id": 0,
  • "email": "user@example.com",
  • "username": "string",
  • "date_joined": "string",
  • "is_active": true,
  • "is_admin": true,
  • "is_owner": true,
  • "api_token": "string",
  • "sso_ready": true,
  • "has_forensic_access": true,
  • "has_billing_access": true,
  • "last_login": "2019-08-24T14:15:22Z",
  • "last_login_sso": true,
  • "has_2fa_enabled": true,
  • "settings": null
}

Partial update user details

Authorizations:
tokenAuthcookieAuth
path Parameters
id
required
integer

A unique integer value identifying this user.

Request Body schema:
email
string <email> (Email address) <= 254 characters
settings
any

Responses

Request samples

Content type
{
  • "email": "user@example.com",
  • "settings": null
}

Response samples

Content type
application/json
{
  • "_links": {
    },
  • "_permissions": "string",
  • "id": 0,
  • "email": "user@example.com",
  • "username": "string",
  • "date_joined": "string",
  • "is_active": true,
  • "is_admin": true,
  • "is_owner": true,
  • "api_token": "string",
  • "sso_ready": true,
  • "has_forensic_access": true,
  • "has_billing_access": true,
  • "last_login": "2019-08-24T14:15:22Z",
  • "last_login_sso": true,
  • "has_2fa_enabled": true,
  • "settings": null
}

Delete a user

Permanently delete a user. Account owner can not be deleted.

Authorizations:
tokenAuthcookieAuth
path Parameters
id
required
integer

A unique integer value identifying this user.

Responses

Send an email activation reminder

Authorizations:
tokenAuthcookieAuth
path Parameters
id
required
integer

A unique integer value identifying this user.

Responses

Convert an user to SSO login

Authorizations:
tokenAuthcookieAuth
path Parameters
id
required
integer

A unique integer value identifying this user.

Responses

Change user password

Authorizations:
tokenAuthcookieAuth
path Parameters
id
required
integer

A unique integer value identifying this user.

Request Body schema:
required
password_old
required
string

Current user password.

password
required
string

New user password.

password_confirm
required
string

Confirm new password.

Responses

Request samples

Content type
{
  • "password_old": "string",
  • "password": "string",
  • "password_confirm": "string"
}

Response samples

Content type
application/json
{
  • "password_old": "string",
  • "password": "string",
  • "password_confirm": "string"
}

Send password reset email

Sends an email to the user that can trigger a password reset.

Authorizations:
tokenAuthcookieAuth
path Parameters
id
required
integer

A unique integer value identifying this user.

Responses

Domain Group Access Control List (ACL)

Domain Group ACL allow you to control the level of access to domains within a particular group. There are three available options: no access, read-only and write access.In order to use these endpoints you need admin access.

Get a list of all domain groups and user access levels

Authorizations:
tokenAuthcookieAuth
query Parameters
label
string

Filter domain groups by label.

limit
integer

Number of results to return per page.

page
integer

A page number within the paginated result set.

Responses

Response samples

Content type
application/json
{
  • "_links": {
    },
  • "_permission": [
    ],
  • "pages": 3,
  • "current_page": 2,
  • "per_page": 10,
  • "count": 123,
  • "results": [
    ]
}

Add write level access for an user of a domain group

Authorizations:
tokenAuthcookieAuth
path Parameters
id
required
integer

A unique integer value identifying this domain_group.

Request Body schema:
required
users
required
Array of integers

List of user IDs.

Responses

Request samples

Content type
{
  • "users": [
    ]
}

Response samples

Content type
application/json
{
  • "id": 0,
  • "username": "string",
  • "email": "user@example.com",
  • "is_active": true,
  • "readwrite_access": false,
  • "readonly_access": false
}

Add read level access for an user of a domain group

Authorizations:
tokenAuthcookieAuth
path Parameters
id
required
integer

A unique integer value identifying this domain_group.

Request Body schema:
required
users
required
Array of integers

List of user IDs.

Responses

Request samples

Content type
{
  • "users": [
    ]
}

Response samples

Content type
application/json
{
  • "id": 0,
  • "username": "string",
  • "email": "user@example.com",
  • "is_active": true,
  • "readwrite_access": false,
  • "readonly_access": false
}

Remove access level for an user of a domain group

Authorizations:
tokenAuthcookieAuth
path Parameters
id
required
integer

A unique integer value identifying this domain_group.

Request Body schema:
required
users
required
Array of integers

List of user IDs.

Responses

Request samples

Content type
{
  • "users": [
    ]
}

Response samples

Content type
application/json
{
  • "id": 0,
  • "username": "string",
  • "email": "user@example.com",
  • "is_active": true,
  • "readwrite_access": false,
  • "readonly_access": false
}

Groups

Domain group is a list of domains. By definition the DEFAULT group contains all domains. It is possible to configure the DEFAULT group to hide domains added to other groups. For other than the DEFAULT group you can configure the group for parked domains (not expected to send email) only. Other options are batch add/delete and move domains from one group to another.

List all groups

Get a list of all users within an account.

Authorizations:
tokenAuthcookieAuth
query Parameters
domain_state
string
Enum: "active" "inactive" "unknown"

Filter results by domain state ("active", "inactive", "unknown").

  • active - Active
  • inactive - Inactive
  • unknown - Unknown
label
string

Filter results by domain group name.

limit
integer

Number of results to return per page.

page
integer

A page number within the paginated result set.

search
string

Search by domain group name or contained domains

search_exact
string

Search by domain group name or contained domain exact match

Responses

Response samples

Content type
application/json
{
  • "_links": {
    },
  • "_permission": [
    ],
  • "pages": 3,
  • "current_page": 2,
  • "per_page": 10,
  • "count": 123,
  • "results": [
    ]
}

Create domain group

Create a new domain group owned by the user.

Authorizations:
tokenAuthcookieAuth
Request Body schema:
required
label
required
string <= 128 characters
notes
string
parked_domains
boolean (For parked domains?)

Domains in group are not expected to send emails.

Responses

Request samples

Content type
{
  • "label": "string",
  • "notes": "string",
  • "parked_domains": true
}

Response samples

Content type
application/json
{
  • "_links": {
    },
  • "_permissions": "string",
  • "id": 0,
  • "uid": "string",
  • "label": "string",
  • "notes": "string",
  • "is_default": true,
  • "parked_domains": true,
  • "hide_assigned_domains": true,
  • "domain_state": "string",
  • "domain_count": 0,
  • "issues": 0,
  • "tasks": 0,
  • "max_volume_count": 0
}

Get domain group details

Authorizations:
tokenAuthcookieAuth
path Parameters
id
required
integer

A unique integer value identifying this domain_group.

Responses

Response samples

Content type
application/json
{
  • "_links": {
    },
  • "_permissions": "string",
  • "id": 0,
  • "uid": "string",
  • "label": "string",
  • "notes": "string",
  • "is_default": true,
  • "parked_domains": true,
  • "hide_assigned_domains": true,
  • "domain_state": "string",
  • "domain_count": 0,
  • "issues": 0,
  • "tasks": 0,
  • "max_volume_count": 0
}

Update domain group

Update domain group related properties (e.g. label, notes). Setting "hide_assigned_domains" to other than the DEFAULT group is not allowed. Setting "parked_domains" for the DEFAULT group is not allowed.

Authorizations:
tokenAuthcookieAuth
path Parameters
id
required
integer

A unique integer value identifying this domain_group.

Request Body schema:
required
label
required
string <= 128 characters
notes
string
parked_domains
boolean (For parked domains?)

Domains in group are not expected to send emails.

hide_assigned_domains
boolean (Hide domains in other groups?)

Hide domains in DEFAULT group if exist in other group(s).

Responses

Request samples

Content type
{
  • "label": "string",
  • "notes": "string",
  • "parked_domains": true,
  • "hide_assigned_domains": true
}

Response samples

Content type
application/json
{
  • "_links": {
    },
  • "_permissions": "string",
  • "id": 0,
  • "uid": "string",
  • "label": "string",
  • "notes": "string",
  • "is_default": true,
  • "parked_domains": true,
  • "hide_assigned_domains": true,
  • "domain_state": "string",
  • "domain_count": 0,
  • "issues": 0,
  • "tasks": 0,
  • "max_volume_count": 0
}

Update domain group (partial)

Update domain group related properties (e.g. label, notes). Setting "hide_assigned_domains" to other than the DEFAULT group is not allowed. Setting "parked_domains" for the DEFAULT group is not allowed.

Authorizations:
tokenAuthcookieAuth
path Parameters
id
required
integer

A unique integer value identifying this domain_group.

Request Body schema:
label
string <= 128 characters
notes
string
parked_domains
boolean (For parked domains?)

Domains in group are not expected to send emails.

hide_assigned_domains
boolean (Hide domains in other groups?)

Hide domains in DEFAULT group if exist in other group(s).

Responses

Request samples

Content type
{
  • "label": "string",
  • "notes": "string",
  • "parked_domains": true,
  • "hide_assigned_domains": true
}

Response samples

Content type
application/json
{
  • "_links": {
    },
  • "_permissions": "string",
  • "id": 0,
  • "uid": "string",
  • "label": "string",
  • "notes": "string",
  • "is_default": true,
  • "parked_domains": true,
  • "hide_assigned_domains": true,
  • "domain_state": "string",
  • "domain_count": 0,
  • "issues": 0,
  • "tasks": 0,
  • "max_volume_count": 0
}

Delete domain group

Remove a domain group. Important: deleting a domain group does not delete domains!

Authorizations:
tokenAuthcookieAuth
path Parameters
id
required
integer

A unique integer value identifying this domain_group.

Responses

Add domain(s)

Authorizations:
tokenAuthcookieAuth
path Parameters
id
required
integer

A unique integer value identifying this domain_group.

Request Body schema:
required
domains
required
Array of strings[ items^((?!\-)([a-zA-Z0-9\-]{1,63})(?<!\-)\.)+?((?!... ]

Domain list.

domain_state
string or null
Enum: "active" "inactive" "unknown" null

Domain state. Available options are: "active", "inactive" and "unknown".

  • active - Active
  • inactive - Inactive
  • unknown - Unknown

Responses

Request samples

Content type
{
  • "domains": [
    ],
  • "domain_state": "active"
}

Response samples

Content type
application/json
{}

Move domain(s)

Move domains from their source group into the target group (the group in the URL).

Authorizations:
tokenAuthcookieAuth
path Parameters
id
required
integer

A unique integer value identifying this domain_group.

Request Body schema:
required
required
Array of objects (ToMove)

Responses

Request samples

Content type
{
  • "domains": [
    ]
}

Response samples

Content type
application/json
{}

Remove domain(s)

Remove domains from the target group (except default).

Authorizations:
tokenAuthcookieAuth
path Parameters
id
required
integer

A unique integer value identifying this domain_group.

Request Body schema:
required
domains
required
Array of strings[ items^((?!\-)([a-zA-Z0-9\-]{1,63})(?<!\-)\.)+?((?!... ]

Responses

Request samples

Content type
{
  • "domains": [
    ]
}

Response samples

Content type
application/json
{ }

Domains

Domains are the main entity in your Domain Catalog. When you add your domains to dmarcian we start monitoring numerous things - the state of your SPF, DKIM and DMARC records, the email volumes sent from those domains and what is their compliance level (if they have DMARC records with reporting sent to dmarcian). This way you will get an overview of your domains, identifying which ones send email and in what volumes.

List domains

List domains the current user has access to.

Authorizations:
tokenAuthcookieAuth
query Parameters
assigned
boolean

Show domains belonging to a group (True) or domains from the default group (False).

domain
string

Filter results by domain name.

domain_exact
string

Filter results by exact domain name.

domain_state
string
Enum: "active" "inactive" "unknown"

Filter results by domain state ("active", "inactive", "unknown").

  • active - Active
  • inactive - Inactive
  • unknown - Unknown
format
string
Enum: "csv" "json"
group_id
number

Filter results by group id.

has_errors
boolean

Has Errors

is_verified
boolean

Is Verified

last_seen_dmarc_policy
string
Enum: "" "e" "n" "on" "oq" "or" "q" "r" "x"

DMARC Policy

  • `` - unset
  • x - no record
  • e - error
  • n - none
  • q - quarantine
  • r - reject
  • on - none via org
  • oq - quarantine via org
  • or - reject via org
limit
integer

Number of results to return per page.

ordering
string

Which field to use when ordering the results.

origin
string or null (Domain Origin)
Enum: "d" "m" "v"

Domain Origin

  • d - DMARC Report
  • m - Manual Add
  • v - Domain Discovery
page
integer

A page number within the paginated result set.

parent_id
integer

Filter subdomains by their parent domain id.

spf_lookup_count_max
integer [ -2147483648 .. 2147483647 ]

SPF Lookup Count

spf_lookup_count_min
integer [ -2147483648 .. 2147483647 ]

SPF Lookup Count

treat_as_top_level
boolean

Show domains treated as top level (True) or subdomains (False).

Responses

Response samples

Content type
{
  • "_links": {
    },
  • "_permission": [
    ],
  • "pages": 3,
  • "current_page": 2,
  • "per_page": 10,
  • "count": 123,
  • "results": [
    ]
}

Get domain details

Authorizations:
tokenAuthcookieAuth
path Parameters
id
required
integer

A unique integer value identifying this domain_map.

query Parameters
format
string
Enum: "csv" "json"

Responses

Response samples

Content type
{
  • "_links": {
    },
  • "_permissions": "string",
  • "id": 0,
  • "domain": "string",
  • "notes": "string",
  • "is_verified": true,
  • "count_dmarc_capable": 0,
  • "count_non_dmarc_capable": 0,
  • "count_forwarded": 0,
  • "count_threat_other": 0,
  • "top_level": true,
  • "is_subdomain": true,
  • "subdomain_count": 0,
  • "nxdomain": true,
  • "domain_state": "string",
  • "state_dmarc": "present",
  • "state_spf": "present",
  • "state_dkim": "present",
  • "states": {
    },
  • "added_date": "2019-08-24T14:15:22Z",
  • "origin": {
    },
  • "records_dmarc": "string",
  • "records_spf": "string",
  • "spf_lookup_count": -2147483648,
  • "last_upload_time": "2019-08-24T14:15:22Z"
}

Update domain

Update domain properties.

Authorizations:
tokenAuthcookieAuth
path Parameters
id
required
integer

A unique integer value identifying this domain_map.

query Parameters
format
string
Enum: "csv" "json"
Request Body schema:
notes
string
top_level
boolean

Whether domain is top level. ONLY subdomains can be promoted.

spf_lookup_count
integer [ -2147483648 .. 2147483647 ]
last_upload_time
string or null <date-time>

Responses

Request samples

Content type
{
  • "notes": "string",
  • "top_level": true,
  • "spf_lookup_count": -2147483648,
  • "last_upload_time": "2019-08-24T14:15:22Z"
}

Response samples

Content type
{
  • "_links": {
    },
  • "_permissions": "string",
  • "id": 0,
  • "domain": "string",
  • "notes": "string",
  • "is_verified": true,
  • "count_dmarc_capable": 0,
  • "count_non_dmarc_capable": 0,
  • "count_forwarded": 0,
  • "count_threat_other": 0,
  • "top_level": true,
  • "is_subdomain": true,
  • "subdomain_count": 0,
  • "nxdomain": true,
  • "domain_state": "string",
  • "state_dmarc": "present",
  • "state_spf": "present",
  • "state_dkim": "present",
  • "states": {
    },
  • "added_date": "2019-08-24T14:15:22Z",
  • "origin": {
    },
  • "records_dmarc": "string",
  • "records_spf": "string",
  • "spf_lookup_count": -2147483648,
  • "last_upload_time": "2019-08-24T14:15:22Z"
}

Update domain (partial)

Update some of the domain properties.

Authorizations:
tokenAuthcookieAuth
path Parameters
id
required
integer

A unique integer value identifying this domain_map.

query Parameters
format
string
Enum: "csv" "json"
Request Body schema:
notes
string
top_level
boolean

Whether domain is top level. ONLY subdomains can be promoted.

spf_lookup_count
integer [ -2147483648 .. 2147483647 ]
last_upload_time
string or null <date-time>

Responses

Request samples

Content type
{
  • "notes": "string",
  • "top_level": true,
  • "spf_lookup_count": -2147483648,
  • "last_upload_time": "2019-08-24T14:15:22Z"
}

Response samples

Content type
{
  • "_links": {
    },
  • "_permissions": "string",
  • "id": 0,
  • "domain": "string",
  • "notes": "string",
  • "is_verified": true,
  • "count_dmarc_capable": 0,
  • "count_non_dmarc_capable": 0,
  • "count_forwarded": 0,
  • "count_threat_other": 0,
  • "top_level": true,
  • "is_subdomain": true,
  • "subdomain_count": 0,
  • "nxdomain": true,
  • "domain_state": "string",
  • "state_dmarc": "present",
  • "state_spf": "present",
  • "state_dkim": "present",
  • "states": {
    },
  • "added_date": "2019-08-24T14:15:22Z",
  • "origin": {
    },
  • "records_dmarc": "string",
  • "records_spf": "string",
  • "spf_lookup_count": -2147483648,
  • "last_upload_time": "2019-08-24T14:15:22Z"
}

Delete domain

Delete the domain and all related data.

Authorizations:
tokenAuthcookieAuth
path Parameters
id
required
integer

A unique integer value identifying this domain_map.

query Parameters
format
string
Enum: "csv" "json"

Responses

Response samples

Content type
{
  • "detail": "string"
}

Refresh domain

Refresh domain's statistics.

Authorizations:
tokenAuthcookieAuth
path Parameters
id
required
integer

A unique integer value identifying this domain_map.

query Parameters
format
string
Enum: "csv" "json"

Responses

Response samples

Content type
{
  • "_links": {
    },
  • "_permissions": "string",
  • "id": 0,
  • "domain": "string",
  • "notes": "string",
  • "is_verified": true,
  • "count_dmarc_capable": 0,
  • "count_non_dmarc_capable": 0,
  • "count_forwarded": 0,
  • "count_threat_other": 0,
  • "top_level": true,
  • "is_subdomain": true,
  • "subdomain_count": 0,
  • "nxdomain": true,
  • "domain_state": "string",
  • "state_dmarc": "present",
  • "state_spf": "present",
  • "state_dkim": "present",
  • "states": {
    },
  • "added_date": "2019-08-24T14:15:22Z",
  • "origin": {
    },
  • "records_dmarc": "string",
  • "records_spf": "string",
  • "spf_lookup_count": -2147483648,
  • "last_upload_time": "2019-08-24T14:15:22Z"
}

Verify domain

Initiate a probe to verify this domain.

Authorizations:
tokenAuthcookieAuth
path Parameters
id
required
integer

A unique integer value identifying this domain_map.

query Parameters
format
string
Enum: "csv" "json"

Responses

Issues

Issues are problems dmarcian has discovered while monitoring your domains. They are mainly related to your SPF, DKIM and DMARC records but may contain other problems too. We also track the time an issue has occurred and when it has been solved.

List issues

List all domain issues discovered for the account.

Authorizations:
tokenAuthcookieAuth
query Parameters
assigned_to_group
boolean

Filter results by domains assigned to a group (different than the default one).

created_after
string <date>

Filter results by issues created on or after date

created_before
string <date>

Filter results by issues created on or before date

domain
string

Filter results by domain.

domain_state
string
Enum: "active" "inactive" "unknown"

Filter results by domain state ("active", "inactive", "unknown").

  • active - active
  • inactive - inactive
  • unknown - unknown
group_id
number

Filter results by domains belonging to the group id.

ignored
boolean

Show ignored issues (True) or not (False).

limit
integer

Number of results to return per page.

ordering
string
Enum: "created" "-created" "solved" "-solved" "domain" "-domain"

Fields allowed for ordering results.

page
integer

A page number within the paginated result set.

solved
boolean

Show solved issues (True) or not (False).

top_level
boolean

Show issues for domains treated as top level (True) or for subdomains (False).

Responses

Response samples

Content type
application/json
{
  • "_links": {
    },
  • "_permission": [
    ],
  • "pages": 3,
  • "current_page": 2,
  • "per_page": 10,
  • "count": 123,
  • "results": [
    ]
}

Get issue

Authorizations:
tokenAuthcookieAuth
path Parameters
id
required
integer

A unique integer value identifying this issue.

Responses

Response samples

Content type
application/json
{
  • "_links": {
    },
  • "_permissions": "string",
  • "id": 0,
  • "domain": "string",
  • "problem": "string",
  • "solution": "string",
  • "details": "string",
  • "created": "2019-08-24T14:15:22Z",
  • "solved": "2019-08-24T14:15:22Z",
  • "ignore": true
}

Update issue

Update issue properties.

Authorizations:
tokenAuthcookieAuth
path Parameters
id
required
integer

A unique integer value identifying this issue.

Request Body schema:
required
ignore
required
boolean

Is issue ignored.

Responses

Request samples

Content type
{
  • "ignore": true
}

Response samples

Content type
application/json
{
  • "_links": {
    },
  • "_permissions": "string",
  • "id": 0,
  • "domain": "string",
  • "problem": "string",
  • "solution": "string",
  • "details": "string",
  • "created": "2019-08-24T14:15:22Z",
  • "solved": "2019-08-24T14:15:22Z",
  • "ignore": true
}

Update issue (partial)

Update some of the issue properties.

Authorizations:
tokenAuthcookieAuth
path Parameters
id
required
integer

A unique integer value identifying this issue.

Request Body schema:
ignore
boolean

Is issue ignored.

Responses

Request samples

Content type
{
  • "ignore": true
}

Response samples

Content type
application/json
{
  • "_links": {
    },
  • "_permissions": "string",
  • "id": 0,
  • "domain": "string",
  • "problem": "string",
  • "solution": "string",
  • "details": "string",
  • "created": "2019-08-24T14:15:22Z",
  • "solved": "2019-08-24T14:15:22Z",
  • "ignore": true
}

Tasks

Tasks are the next steps you have to take in your journey to deploy DMARC. After each change you make to your domains dmarcian suggests what should be done next until you reach the last phase - monitoring.

List tasks

List all domain tasks generated for the account.

Authorizations:
tokenAuthcookieAuth
query Parameters
assigned_to_group
boolean

Filter results by domains assigned to a group (different than the default one).

created_after
string <date>

Filter results by tasks created on or after date

created_before
string <date>

Filter results by tasks created on or before date

domain
string

Filter results by domain.

domain_state
string
Enum: "active" "inactive" "unknown"

Filter results by domain state ("active", "inactive", "unknown").

  • active - Active
  • inactive - Inactive
  • unknown - Unknown
group_id
number

Filter results by domains belonging to the group id.

ignored
boolean

Show ignored tasks (True) or not (False).

limit
integer

Number of results to return per page.

ordering
string
Enum: "domain" "-domain" "category" "-category" "created" "-created" "solve_time" "-solve_time" "resolved" "-resolved"

Fields allowed for ordering results.

page
integer

A page number within the paginated result set.

solved
boolean

Show solved tasks (True) or not (False).

top_level
boolean

Show tasks for domains treated as top level (True) or for subdomains (False).

Responses

Response samples

Content type
application/json
{
  • "_links": {
    },
  • "_permission": [
    ],
  • "pages": 3,
  • "current_page": 2,
  • "per_page": 10,
  • "count": 123,
  • "results": [
    ]
}

Get task

Authorizations:
tokenAuthcookieAuth
path Parameters
id
required
integer

A unique integer value identifying this task.

Responses

Response samples

Content type
application/json
{
  • "_links": {
    },
  • "_permissions": "string",
  • "id": 0,
  • "domain": "string",
  • "category": "string",
  • "details": "string",
  • "created": "2019-08-24T14:15:22Z",
  • "solve_time": "2019-08-24T14:15:22Z",
  • "solved": true,
  • "ignore": true
}

Update task

Update task properties.

Authorizations:
tokenAuthcookieAuth
path Parameters
id
required
integer

A unique integer value identifying this task.

Request Body schema:
required
ignore
required
boolean

Is task ignored.

Responses

Request samples

Content type
{
  • "ignore": true
}

Response samples

Content type
application/json
{
  • "_links": {
    },
  • "_permissions": "string",
  • "id": 0,
  • "domain": "string",
  • "category": "string",
  • "details": "string",
  • "created": "2019-08-24T14:15:22Z",
  • "solve_time": "2019-08-24T14:15:22Z",
  • "solved": true,
  • "ignore": true
}

Update task (partial)

Update some of the task properties.

Authorizations:
tokenAuthcookieAuth
path Parameters
id
required
integer

A unique integer value identifying this task.

Request Body schema:
ignore
boolean

Is task ignored.

Responses

Request samples

Content type
{
  • "ignore": true
}

Response samples

Content type
application/json
{
  • "_links": {
    },
  • "_permissions": "string",
  • "id": 0,
  • "domain": "string",
  • "category": "string",
  • "details": "string",
  • "created": "2019-08-24T14:15:22Z",
  • "solve_time": "2019-08-24T14:15:22Z",
  • "solved": true,
  • "ignore": true
}

DMARC

DMARC tools allow you to analyze and validate DMARC records.

Inspect DMARC record

Inspects a published DMARC record for a specific domain.

Authorizations:
tokenAuthcookieAuthNone
Request Body schema:
required
domain
required
string^((?!\-)([a-zA-Z0-9\-]{1,63})(?<!\-)\.)+?((?!...

Responses

Request samples

Content type
{
  • "domain": "string"
}

Response samples

Content type
application/json
{
  • "domain": "domain.com",
  • "policy_domain": "domain.com",
  • "dns_query": "_dmarc.domain.com",
  • "valid": "false",
  • "rua_dmarcian_usage": "false",
  • "messages": [
    ],
  • "records": [
    ]
}

Validate DMARC record

Validates a DMARC record string.

Authorizations:
tokenAuthcookieAuthNone
Request Body schema:
required
record
required
string

Responses

Request samples

Content type
{
  • "record": "string"
}

Response samples

Content type
application/json
{
  • "dns_query": "string",
  • "valid": true,
  • "records": [
    ],
  • "messages": [
    ],
  • "rua_dmarcian_usage": true,
  • "domain": "string",
  • "policy_domain": "string",
  • "cname": "string"
}

DKIM

DKIM tools allow you to analyze and validate DKIM records.

Inspect DKIM record

Inspects a published DKIM record for a specific domain and selector.

Authorizations:
tokenAuthcookieAuthNone
Request Body schema:
required
domain
required
string^((?!\-)([a-zA-Z0-9\-]{1,63})(?<!\-)\.)+?((?!...
selector
required
string^((?!\-)([a-zA-Z0-9\-_]{1,63})(?<!\-)\.?)*?(?...

Responses

Request samples

Content type
{
  • "domain": "string",
  • "selector": "string"
}

Response samples

Content type
application/json
{
  • "domain": "domain.com",
  • "selector": "default",
  • "query": "default._domainkey.domain.com",
  • "valid": "false",
  • "messages": [
    ],
  • "records": [
    ]
}

Validate DKIM record

Validates a DMARC record string.

Authorizations:
tokenAuthcookieAuthNone
Request Body schema:
required
record
required
string

Responses

Request samples

Content type
{
  • "record": "string"
}

Response samples

Content type
application/json
{
  • "domain": "string",
  • "selector": "string",
  • "query": "string",
  • "valid": true,
  • "records": [
    ],
  • "messages": [
    ],
  • "cname": "string"
}

SPF

SPF tools allow you to analyze and validate SPF records.

Inspect SPF record

SPF tools allow you to analyze and validate SPF records.

Authorizations:
tokenAuthcookieAuthNone
Request Body schema:
required
domain
required
string^(?=.{,253}$)(?:(?!\-)(?:[a-zA-Z0-9\-_]{1,63}...
volume_days
integer [ 1 .. 30 ]

Responses

Request samples

Content type
{
  • "domain": "string",
  • "volume_days": 1
}

Response samples

Content type
application/json
{
  • "domain": "example.com",
  • "volume_days": 0,
  • "valid": "false",
  • "records": [
    ],
  • "messages": [
    ],
  • "query_count": 3,
  • "pass_network_count": 16,
  • "pass_ip4_count": 492161,
  • "volume": {
    },
  • "default_result": "softfail",
  • "pass_duplicate_ip4_networks": [
    ],
  • "pass_duplicate_ip6_networks": [
    ],
  • "flattened": [
    ],
  • "flattened_query_count": 5
}

BIMI

BIMI tools allow you to validate and analyze BIMI records.

Inspect BIMI record

Inspect BIMI record details including certificate and SVG information.

Authorizations:
tokenAuthcookieAuthNone
Request Body schema:
required
domain
required
string^((?!\-)([a-zA-Z0-9\-]{1,63})(?<!\-)\.)+?((?!...
selector
required
string^((?!\-)([a-zA-Z0-9\-_]{1,63})(?<!\-)\.?)*?(?...

Responses

Request samples

Content type
{
  • "domain": "string",
  • "selector": "string"
}

Response samples

Content type
application/json
{
  • "bimi": {
    },
  • "dmarc": {
    }
}

TLS RPT Inspect

The TLS inspector allows you to analyze and validate TLS Reporting records for a domain.

Inspect TLS RPT record

Inspects a published TLS RPT record for a specific domain.

Authorizations:
tokenAuthcookieAuthNone
Request Body schema:
required
domain
required
string^((?!\-)([a-zA-Z0-9\-]{1,63})(?<!\-)\.)+?((?!...

Responses

Request samples

Content type
{
  • "domain": "string"
}

Response samples

Content type
application/json
{
  • "dns_query": "string",
  • "valid": true,
  • "records": [
    ],
  • "messages": [
    ],
  • "rua_dmarcian_usage": true
}

TLS MTA STS Inspect

The MTA STS Inspector allows you to view the STS records for a domain.

Inspect TLS STS record

Inspects a published TLS STS record for a specific domain.

Authorizations:
tokenAuthcookieAuthNone
Request Body schema:
required
domain
required
string^((?!\-)([a-zA-Z0-9\-]{1,63})(?<!\-)\.)+?((?!...

Responses

Request samples

Content type
{
  • "domain": "string"
}

Response samples

Content type
application/json
{
  • "dns_query": "string",
  • "valid": true,
  • "records": [
    ],
  • "messages": [
    ]
}

TLS Policy Inspect

The MTA Policy Inspector allows you to view the published policy file for a domain.

Inspect MTA STS Policy

Inspects a published TLS STS record for a specific domain.

Authorizations:
tokenAuthcookieAuthNone
Request Body schema:
required
domain
required
string^((?!\-)([a-zA-Z0-9\-]{1,63})(?<!\-)\.)+?((?!...

Responses

Request samples

Content type
{
  • "domain": "string"
}

Response samples

Content type
application/json
{
  • "dns_query": "string",
  • "valid": true,
  • "records": [
    ],
  • "messages": [
    ]
}

Source Data

The Source Viewer allows you to gain detailed insight into the different organizations and types of infrastructure that are sending email on behalf of your domains. The provided data is from DMARC Capable Sources that have delivered email for your domains in the past 7 days.

List source domains

Lists current account's known domain volume by source.

Authorizations:
tokenAuthcookieAuth
query Parameters
filter_id
integer

Source filter id to filter data by.

format
string
Enum: "csv" "json"
limit
integer

Number of results to return per page.

page
integer

A page number within the paginated result set.

source_number
integer

Source number to return data for.

Responses

Response samples

Content type
{
  • "_links": {
    },
  • "_permission": [
    ],
  • "pages": 3,
  • "current_page": 2,
  • "per_page": 10,
  • "count": 123,
  • "results": [
    ]
}

List sources

Lists current account's known sources with volume totals.

Authorizations:
tokenAuthcookieAuth
query Parameters
filter_id
integer

Source filter id to filter data by.

limit
integer

Number of results to return per page.

page
integer

A page number within the paginated result set.

Responses

Response samples

Content type
application/json
{
  • "_links": {
    },
  • "_permission": [
    ],
  • "pages": 3,
  • "current_page": 2,
  • "per_page": 10,
  • "count": 123,
  • "results": [
    ]
}

Source Filters

Source filters allow you to retrieve source data limited to a certain set of domains. After a filter has been created it can be applied to the source list and source domain list endpoints by adding it as a filter_id GET parameter.

List source filters

Lists stored source filters ordered by date descendingly.

Authorizations:
tokenAuthcookieAuth
query Parameters
limit
integer

Number of results to return per page.

page
integer

A page number within the paginated result set.

Responses

Response samples

Content type
application/json
{
  • "_links": {
    },
  • "_permission": [
    ],
  • "pages": 3,
  • "current_page": 2,
  • "per_page": 10,
  • "count": 123,
  • "results": [
    ]
}

Create source filter

Creates a new source filter.

Authorizations:
tokenAuthcookieAuth
Request Body schema:
required
domains
required
Array of strings

Responses

Request samples

Content type
{
  • "domains": [
    ]
}

Response samples

Content type
application/json
{
  • "_permissions": "string",
  • "id": 0,
  • "domains": [
    ],
  • "created": "2019-08-24T14:15:22Z"
}

Get source filter

Retrieves a source filter details.

Authorizations:
tokenAuthcookieAuth
path Parameters
id
required
integer

A unique integer value identifying this source viewer filter.

Responses

Response samples

Content type
application/json
{
  • "_permissions": "string",
  • "id": 0,
  • "domains": [
    ],
  • "created": "2019-08-24T14:15:22Z"
}

Source Refresh

The Source Viewer data is being cached for certain time to improve retrieval speed. You can manually trigger source data cache refresh or get the last time data was refreshed via the following endpoints.

Get source refresh

Retrieves a source filter details.

Authorizations:
tokenAuthcookieAuth

Responses

Response samples

Content type
application/json
{
  • "refreshed": "2019-08-24T14:15:22Z"
}

Create source refresh

Creates (triggers) source data refreshing.

Authorizations:
tokenAuthcookieAuth
Request Body schema:

Responses

Request samples

Content type
{ }

Response samples

Content type
application/json
{
  • "refreshed": "2019-08-24T14:15:22Z"
}

Forensic Data

Forensic reports contain content from real email and complement DMARC aggregate reports. They are generated by DMARC-capable receivers when they receive email that fails to pass the DMARC check. By inspecting forensic reports users can quickly discover if email is illegitimate (fraud, abuse, phishing, spam, etc.) or is legitimate but is in need of fixing / is traveling through forwarders. To investigate forensic data, you must create a report job and paginate the results with the associated search_token

List forensic data

Returns a paginated list of forensic data records from BigQuery.

Authorizations:
tokenAuthcookieAuth
query Parameters
limit
integer

Number of results to return per page. Default: 10, max: 100.

page
integer

Page of results to return.

search_token
required
string

Token identifying the forensic report job.

Responses

Response samples

Content type
application/json
[
  • {
    }
]

Delete specific forensic data

Deletes specific forensic records by email file name.

Authorizations:
tokenAuthcookieAuth
Request Body schema:
required
email_file_names
required
Array of strings

Responses

Request samples

Content type
{
  • "email_file_names": [
    ]
}

Delete all forensic data

Deletes all forensic data and associated report jobs for the account.

Authorizations:
tokenAuthcookieAuth

Responses

Forensic Jobs

Forensic jobs allow you to create a set of filtered forensic data based on a set of criteria. After a filter has been created it can be applied to the forensic report list endpoint by adding it as a filter_id GET parameter.

List report jobs

List existing forensic report jobs.

Authorizations:
tokenAuthcookieAuth
query Parameters
limit
integer

Number of results to return per page.

page
integer

A page number within the paginated result set.

Responses

Response samples

Content type
application/json
{
  • "_links": {
    },
  • "_permission": [
    ],
  • "pages": 3,
  • "current_page": 2,
  • "per_page": 10,
  • "count": 123,
  • "results": [
    ]
}

Create report job

Create a forensic report job with filter criteria.

Authorizations:
tokenAuthcookieAuth
Request Body schema:
required
start_date
required
string <date>
end_date
required
string <date>
subject
string
search_token
string <= 16 characters
report_source_ip
string
progress
integer [ 0 .. 32767 ]
Enum: 0 1 100 700
  • 0 - unknown
  • 1 - generating_result
  • 100 - completed
  • 700 - Job Failed
domains
Array of any

Responses

Request samples

Content type
{
  • "start_date": "2019-08-24",
  • "end_date": "2019-08-24",
  • "subject": "string",
  • "search_token": "string",
  • "report_source_ip": "string",
  • "progress": 0,
  • "domains": [
    ]
}

Response samples

Content type
application/json
{
  • "search_token": "string",
  • "progress": 0,
  • "_links": {
    }
}

Get report job details

Get a forensic report job details.

Authorizations:
tokenAuthcookieAuth
path Parameters
id
required
integer

A unique integer value identifying this forensic report job.

Responses

Response samples

Content type
application/json
{
  • "search_token": "string",
  • "progress": 0,
  • "_links": {
    }
}

Reports

The Detail Viewer allows you to explore your DMARC data in a variety of ways. It shows a timeline of your data along with search parameters such as From & To date, domain, data-provider and a filter option that can be used to show what would have happened had a DMARC policy been in place.

List Detail Viewer reports

List current user`s Detail Viewer reports. Each report availability is up to 3 days.

Authorizations:
tokenAuthcookieAuth
query Parameters
limit
integer

Number of results to return per page.

ordering
string
Enum: "created" "-created"

Fields allowed for ordering results.

page
integer

A page number within the paginated result set.

Responses

Response samples

Content type
application/json
{
  • "_links": {
    },
  • "_permission": [
    ],
  • "pages": 3,
  • "current_page": 2,
  • "per_page": 10,
  • "count": 123,
  • "results": [
    ]
}

Create Detail Viewer report

Report creation is asynchronous process. In case report already exists for the given input, response status code is 200. If report creation is started, then 202 is returned. While report is being prepared, only available call is to check its progress (available in "_links"). Progress endpoint must be called on certain time interval. When progress value become 100%, report is ready and its data could be retrieved. Any calls to report data before it is ready will return 404 Not found.

Authorizations:
tokenAuthcookieAuth
Request Body schema:
required
domains
Array of strings[ items^(?=.{,253}$)(?:(?!\-)(?:[a-zA-Z0-9\-_]{1,63}... ]
providers
Array of strings
start_date
required
string <date>
end_date
required
string <date>
filter_option
required
string
Enum: "n" "o" "x" "d"
  • n - None
  • o - Show impact of policy
  • x - Show non-compliant email
  • d - Show compliant email
ip_cidr
string
country_code
Array of strings
spf_result
Array of strings
Items Enum: "n" "?" "+" "-" "~" "T" "P" "X"
spf_policy
string
Enum: "p" "f" ""
  • p - aligned
  • f - unaligned
dkim_policy
string
Enum: "p" "f" ""
  • p - aligned
  • f - unaligned
dkim_result
Array of strings
Items Enum: "n" "+" "-" "y" "?" "T" "P" "X"
dmarc_policy
Array of strings
Items Enum: "?" "n" "q" "r"
rule_number
Array of integers
spf_domain
string
ptr
string
override_comment
string

Responses

Request samples

Content type
{
  • "domains": [
    ],
  • "providers": [
    ],
  • "start_date": "2019-08-24",
  • "end_date": "2019-08-24",
  • "filter_option": "n",
  • "ip_cidr": "string",
  • "country_code": [
    ],
  • "spf_result": [
    ],
  • "spf_policy": "p",
  • "dkim_policy": "p",
  • "dkim_result": [
    ],
  • "dmarc_policy": [
    ],
  • "rule_number": [
    ],
  • "spf_domain": "string",
  • "ptr": "string",
  • "override_comment": "string"
}

Response samples

Content type
application/json
{
  • "_links": {
    },
  • "_permissions": "string",
  • "search_token": "string",
  • "domains": [
    ],
  • "providers": [
    ],
  • "start_date": "2019-08-24",
  • "end_date": "2019-08-24",
  • "filter_option": "n",
  • "ip_cidr": "string",
  • "country_code": [
    ],
  • "spf_result": [
    ],
  • "spf_policy": "p",
  • "dkim_policy": "p",
  • "dkim_result": [
    ],
  • "dmarc_policy": [
    ],
  • "rule_number": [
    ],
  • "spf_domain": "string",
  • "ptr": "string",
  • "override_comment": "string"
}

List/create Detail Viewer reports.

Authorizations:
tokenAuthcookieAuth
path Parameters
search_token
required
string

Responses

Response samples

Content type
application/json
{
  • "_links": {
    },
  • "_permissions": "string",
  • "search_token": "string",
  • "domains": [
    ],
  • "providers": [
    ],
  • "start_date": "2019-08-24",
  • "end_date": "2019-08-24",
  • "filter_option": "n",
  • "ip_cidr": "string",
  • "country_code": [
    ],
  • "spf_result": [
    ],
  • "spf_policy": "p",
  • "dkim_policy": "p",
  • "dkim_result": [
    ],
  • "dmarc_policy": [
    ],
  • "rule_number": [
    ],
  • "spf_domain": "string",
  • "ptr": "string",
  • "override_comment": "string"
}

Report Data

The Detail Viewer report data endpoints also shows your data grouped into four high-level groups: DMARC-capable, Non-compliant, Forwarding, and Threat/Unknown. Each group shows infrastructure and details on DMARC compliance. You can find information per source on how to get DMARC compliant. You can reveal more detail about each group and discover the sources of your domain`s email.

Domains

Detailed data based upon hfrom domains

Authorizations:
tokenAuthcookieAuthNone
path Parameters
search_token
required
string^[a-zA-Z0-9]{16}$
query Parameters
format
string
Enum: "csv" "json"
limit
integer

Number of results to return per page.

ordering
string
Enum: "message_count" "-message_count" "from_domain" "-from_domain" "ip" "-ip" "ptr" "-ptr" "reason" "-reason" "dkim_result" "-dkim_result" "dkim_policy_result" "-dkim_policy_result" "spf_result" "-spf_result" "spf_policy_result" "-spf_policy_result" "policy_applied" "-policy_applied" "spf_d" "-spf_d" "dkim_d" "-dkim_d"

Fields allowed for ordering results.

page
integer

A page number within the paginated result set.

ptr_org
string

Filter domains data by PTR grouping.

source_number
integer

Filter domains data by source.

Responses

Response samples

Content type
{
  • "_links": {
    },
  • "_permission": [
    ],
  • "pages": 3,
  • "current_page": 2,
  • "per_page": 10,
  • "count": 123,
  • "results": [
    ]
}

Progress

Returns the current progress of report generation as a percentage value and a human-readable label.

Authorizations:
tokenAuthcookieAuthNone
path Parameters
search_token
required
string

Responses

Response samples

Content type
application/json
{
  • "label": "string",
  • "value": 0
}

Source Data

List given source data, such as messages count, spf, dkim and dmarc information

Authorizations:
tokenAuthcookieAuthNone
path Parameters
search_token
required
string^[a-zA-Z0-9]{16}$
source_number
required
string^[0-9]+$
query Parameters
limit
integer

Number of results to return per page.

ordering
string
Enum: "message_count" "-message_count" "server_name" "-server_name" "ip_count" "-ip_count"

Fields allowed for ordering results.

page
integer

A page number within the paginated result set.

search
string

A search term.

Responses

Response samples

Content type
application/json
{
  • "_links": {
    },
  • "_permission": [
    ],
  • "pages": 3,
  • "current_page": 2,
  • "per_page": 10,
  • "count": 123,
  • "results": [
    ]
}

Sources

List report sources in 4 categories - dmarc capable, non compliant, forwarders, unknown.

Authorizations:
tokenAuthcookieAuthNone
path Parameters
search_token
required
string

Responses

Response samples

Content type
application/json
{
  • "dmarc_capable": [
    ],
  • "non_compliant": [
    ],
  • "forwarders": [
    ],
  • "threat_unknown": [
    ]
}

Policy Filters

Policy filters allow you to retrieve policy planner data limited to a certain set of domains. After a filter has been created it can be applied to the policy domain list endpoint by adding it as a filter_id GET parameter.

List policy filters.

Lists the latest policy planner filters created by the user.

Authorizations:
tokenAuthcookieAuth
query Parameters
limit
integer

Number of results to return per page.

page
integer

A page number within the paginated result set.

Responses

Response samples

Content type
application/json
{
  • "_links": {
    },
  • "_permission": [
    ],
  • "pages": 3,
  • "current_page": 2,
  • "per_page": 10,
  • "count": 123,
  • "results": [
    ]
}

Create policy filter.

Creates a new policy planner filter.

Authorizations:
tokenAuthcookieAuth
Request Body schema:
required
domains
required
Array of strings[ items^((?!\-)([a-zA-Z0-9\-]{1,63})(?<!\-)\.)+?((?!... ]

Responses

Request samples

Content type
{
  • "domains": [
    ]
}

Response samples

Content type
application/json
{
  • "_links": {
    },
  • "_permissions": "string",
  • "id": 0,
  • "domains": [
    ],
  • "created": "2019-08-24T14:15:22Z"
}

Get policy filter.

Retrieves policy planner filter details.

Authorizations:
tokenAuthcookieAuth
path Parameters
id
required
integer

A unique integer value identifying this policy domain viewer filter.

Responses

Response samples

Content type
application/json
{
  • "_links": {
    },
  • "_permissions": "string",
  • "id": 0,
  • "domains": [
    ],
  • "created": "2019-08-24T14:15:22Z"
}

Policy Domains

The Policy Planner provides an overview of a domain's current state of DMARC deployment as well as readiness information that can assist in determining when a domain may be ready for a more aggressive, or more relaxed DMARC policy.

List policy domains.

Lists policy domains the current user has access to.

Authorizations:
tokenAuthcookieAuth
query Parameters
filter_id
integer

Source filter id to filter data by.

limit
integer

Number of results to return per page.

page
integer

A page number within the paginated result set.

policy_ready
boolean

Show domains ready for new policy (True) or not (False).

recommendation
string

Filter results by recommendation.

Responses

Response samples

Content type
application/json
{
  • "_links": {
    },
  • "_permission": [
    ],
  • "pages": 3,
  • "current_page": 2,
  • "per_page": 10,
  • "count": 123,
  • "results": [
    ]
}

TLS Reporting

TLS reporting provides visibility into connection issues between external servers sending messages to your domain.

TLS Failures List

List all TLS failure details per error Types.

Authorizations:
tokenAuthcookieAuth
query Parameters
begin
string <date>

Filter results by begin date. Max range 60 days. Default range 7 days.

end
string <date>

Filter results by end date. Max range 60 days. Default range 7 days.

format
string
Enum: "csv" "json"
limit
integer

Number of results to return per page.

page
integer

A page number within the paginated result set.

Responses

Response samples

Content type
{
  • "_links": {
    },
  • "_permission": [
    ],
  • "pages": 3,
  • "current_page": 2,
  • "per_page": 10,
  • "count": 123,
  • "results": [
    ]
}

TLS Policy List

List all TLS Reports policy data.

Authorizations:
tokenAuthcookieAuth
query Parameters
filter_id
number

Filter TLS Report by id

limit
integer

Number of results to return per page.

ordering
string
Enum: "p_domain" "-p_domain" "sum_success" "-sum_success" "sum_failed" "-sum_failed" "p_type" "-p_type" "sts_p_mode" "-sts_p_mode" "last_seen" "-last_seen"

Fields allowed for ordering results.

page
integer

A page number within the paginated result set.

Responses

Response samples

Content type
application/json
{
  • "_links": {
    },
  • "_permission": [
    ],
  • "pages": 3,
  • "current_page": 2,
  • "per_page": 10,
  • "count": 123,
  • "results": [
    ]
}

TLS Policy Detail

Retrieve a TLS Policy Detail.

Authorizations:
tokenAuthcookieAuth
path Parameters
id
required
integer

A unique integer value identifying this tls viewer filter.

Responses

Response samples

Content type
application/json
{
  • "p_type": "n",
  • "p_domain": "string",
  • "sts_p_mode": "n",
  • "sum_success": 0,
  • "sum_failed": 0,
  • "last_seen": "2019-08-24T14:15:22Z"
}