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 }