Welcome to the Valimail Reporting API documentation. This API provides a way for customers to retrieve reports on senders and unidentified emails. The API is based on the OpenAPI 3.0.0 standard.

Base URL

The base URL for the API is https://api.valimail.com.

Authentication

/auth

This endpoint is responsible for generating session tokens once the client-id and app-id have been validated.

If you don’t know your client-id or app-id, please log a ticket and we will be happy to assist you (https://support.valimail.com/support/tickets/new)

Request:

  • POST
  • Content-Type: application/json

Request Body:

{
"client-id": "YOUR_CLIENT_ID",
"app-id": "YOUR_APP_ID"
}

Response:

  • 201 Created: Returns a token and an expiration date in JSON format if the client_id and app_id are validated.
  • 401 Unauthorized: When the authorization token is missing or invalid.
  • 404 Not Found: When the requested resource is not found.
  • 422 Unprocessable Entity: When the request parameters are invalid.
  • 500 Internal Server Error: When there is an error with the server.

Response Body:

{
"token": "YOUR_TOKEN",
"expires_at": "2023-05-10T08:00:00Z"
}

Usage:

Once you have obtained your token, you'll need to add it as an Authorization header in any subsequent requests, using the format of 

{
"Authorization": "Bearer YOUR_TOKEN"
}

Endpoints

The API has the following endpoints:

/accounts/{slug}/reports/senders

This endpoint returns a report on senders for a specific account.

Request Parameters:

  • slug: (required) The account slug for which the report is requested.
  • domains: (optional) An array of domains to filter the report on.
  • start-date: (required) The start date for the report in ISO 8601 format.
  • end-date: (required) The end date for the report in ISO 8601 format.
  • reverse: (optional) A boolean value to reverse the order of the report.
  • sort-key: (optional) A string value to sort the report on.
  • page: (optional) An integer value for pagination purposes.
  • per-page: (optional) An integer value to specify the number of results per page.
  • help: (optional) A boolean value to display help information.

Response:

  • 200 OK: Returns the senders report in JSON format.

Senders Report Schema:

  • service-name: A string value representing the name of the service.
  • service-status: A string value representing the status of the service.
  • passing-percentage: A number value representing the percentage of passing messages.
  • total-messages-count: An integer value representing the total number of messages.
  • dmarc-passing-count: An integer value representing the number of DMARC passing messages.
  • dmarc-failing-count: An integer value representing the number of DMARC failing messages.
  • allowed-through-no-enforcement-count: An integer value representing the number of messages allowed through with no enforcement.
  • allowed-through-with-enforcement-count: An integer value representing the number of messages allowed through with enforcement.
  • aligned-spf-count: An integer value representing the number of messages with aligned SPF.
  • failing-spf-count: An integer value representing the number of messages failing SPF.
  • unaligned-spf-count: An integer value representing the number of messages with unaligned SPF.
  • dmarc-overridden-count: An integer value representing the number of messages with DMARC overridden.
  • quarantined-count: An integer value representing the number of quarantined messages.
  • rejected-count: An integer value representing the number of rejected messages.

Error Responses:

  • 400 Bad Request: When a required parameter is missing or invalid.
  • 404 Not Found: When the requested resource is not found.
  • 500 Internal Server Error: When there is an error with the server.

Example Request:

GET https://api.valimail.com/accounts/my-account/reports/senders?domains=example.com&start-date=2023-05-01T00:00:00.0Z&end-date=22023-05-04T00:00:00.0Z&sort-key=service-name&page=1&per-page=20

Example Response:

  {
    "service-name": "example_esp",
    "service-status": "pass",
    "passing-percentage": 99.9,
    "total-messages-count": 1000,
    "dmarc-passing-count": 900,
    "dmarc-failing-count": 100,
    "allowed-through-no-enforcement-count": 100,
    "allowed-through-with-enforcement-count": 100,
    "aligned-spf-count": 950,
    "failing-spf-count": 50,
    "unaligned-spf-count": 0,
    "dmarc-overridden-count": 0,
    "quarantined-count": 0,
    "rejected-count": 0
    }
    

/accounts/{slug}/reports/unidentified

This endpoint returns a report on unidentified emails for a specific account.

Request Parameters:

  • slug: (required) The account slug for which the report is requested.
  • domains: (optional) An array of domains to filter the report on.
  • start-date: (required) The start date for the report in ISO 8601 format.
  • end-date: (required) The end date for the report in ISO 8601 format.
  • reverse: (optional) A boolean value to reverse the order of the report.
  • sort-key: (optional) A string value to sort the report on.
  • page: (optional) An integer value for pagination purposes.
  • per-page: (optional) An integer value to specify the number of results per page.
  • help: (optional) A boolean value to display help information.

Response:

  • 200 OK: Returns the unidentified report in JSON format.

Unidentified Report Schema:

  • ptr-name: A string value representing the PTR name.
  • source-ip: A string value representing the source IP address.
  • geo-country-code: A string value representing the country code for the location.
  • spf-domain: A string value representing the SPF domain.
  • dmarc-policy-org-domain: A string value representing the DMARC policy organization domain.
  • passing-percentage: A number value representing the percentage of passing messages.
  • total-messages-count: An integer value representing the total number of messages.
  • dmarc-passing-count: An integer value representing the number of DMARC passing messages.
  • dmarc-failing-count: An integer value representing the number of DMARC failing messages.
  • allowed-through-no-enforcement-count: An integer value representing the number of messages allowed through with no enforcement.
  • allowed-through-with-enforcement-count: An integer value representing the number of messages allowed through with enforcement.
  • aligned-spf-count: An integer value representing the number of messages with aligned SPF.
  • failing-spf-count: An integer value representing the number of messages failing SPF.
  • unaligned-spf-count: An integer value representing the number of messages with unaligned SPF.
  • dmarc-overridden-count: An integer value representing the number of messages with DMARC overridden.
  • quarantined-count: An integer value representing the number of quarantined messages.
  • rejected-count: An integer value representing the number of rejected messages.

Error Responses:

  • 400 Bad Request: When a required parameter is missing or invalid.
  • 404 Not Found: When the requested resource is not found.
  • 500 Internal Server Error: When there is an error with the server.

Example Request:

GET https://api.valimail.com/accounts/my-account/reports/unidentified?domains=example.com&2023-05-01T00:00:00.0Z&end-date=22023-05-04T00:00:00.0Z&sort-key=ptr-name&page=1&per-page=20

Example Response:

    {
      "ptr-name": "mail.example.com",
      "source-ip": "192.0.2.1",
      "geo-country-code": "US",
      "spf-domain": "example.com",
      "dmarc-policy-org-domain": "yourdomain.com",
      "passing-percentage": 99.9,
      "total-messages-count": 1000,
      "dmarc-passing-count": 900,
      "dmarc-failing-count": 100,
      "allowed-through-no-enforcement-count": 100,
      "allowed-through-with-enforcement-count": 100,
      "aligned-spf-count": 950,
      "failing-spf-count": 50,
      "unaligned-spf-count": 0,
      "dmarc-overridden-count": 0,
      "quarantined-count": 0,
      "rejected-count": 0
      }