# Validate domains' DKIM records

This function retrieves and checks the DomainKeys Identified Mail
(DKIM) records for one or more domains.

Endpoint: GET /EmailAuth/validate_current_dkims
Version: 11.137.9999.96
Security: BasicAuth

## Query parameters:

  - `domain` (string, required)
    The domain for which to check the DKIM records.

## Response 200 fields (application/json):

  - `apiversion` (integer)
    The version of the API.
    Example: 3

  - `func` (string)
    The name of the method called.
    Example: "validate_current_dkims"

  - `module` (string)
    The name of the module called.
    Example: "EmailAuth"

  - `result` (object)

  - `result.data` (array)
    An array that contains information about the
domain's DKIM records.

  - `result.data.domain` (string)
    The domain that the function used to check
the DKIM record. This will be the value of
the domain parameter with a default._domainkey prefix.
    Example: "default._domainkey.example.com"

  - `result.data.error` (string)
    A message that details the reason why the DNS lookup failed.

Note:

The function only returns this value when the state returned
is the ERROR value.
    Example: "(XID 4krw35) DNS returned SERVFAIL (code 2)\nin response to the systems query for default._domainkey.example2.coms\nTXT records."

  - `result.data.expected` (string)
    The DKIM record's contents.
    Example: "v=DKIM1; k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDw5nw4NP1RsWXlfmiMzByDfOT16QCZO\\/xJtrPZKskZF8\\/sU0zWGTqKUOErlyJfoJzMDUv3\\/zzjGswc2nEmYqxxoQZaBkN4QaS6MvJQxysAr+sK8C248\\/r9zMperQdhJedUVejtpFQHJwgqpHy1tQMxY37L7sQjdxmQ5WnQ1acXiwIDAQAB"

  - `result.data.records` (array)
    The domain's DNS DKIM TXT records.

Important:

This function may fail to preserve whitespace in DKIM records.

  - `result.data.records.current` (string)
    The domain's DKIM TXT record data contents.

Important:

 This function may fail to preserve whitespace in DKIM records.
    Example: "v=DKIM1; k=rsa; p=MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDw5nw4NP1RsWXlfmiMzByDfOT16QCZO\\/xJtrPZKskZF8\\/sU0zWGTqKUOErlyJfoJzMDUv3\\/zzjGswc2nEmYqxxoQZaBkN4QaS6MvJQxysAr+sK8C248\\/r9zMperQdhJedUVejtpFQHJwgqpHy1tQMxY37L7sQjdxmQ5WnQ1acXiwIDAQAB"

  - `result.data.records.reason` (string)
    The reason why the DKIM TXT record is not correct, if one exists.

Note:

This function only returns this value when the state value is PERMFAIL.
    Example: "example.com: The DKIM version must be \"DKIM1\"."

  - `result.data.records.state` (string)
    The DKIM TXT record's status:
* VALID - The DKIM TXT record matches the local server's public key.
* MISMATCH - The DKIM TXT record does not match the local server's public key.
* PERMFAIL - Multiple DKIM TXT records for the domain exist or a misconfigured DKIM TXT record exists.
    Enum: "VALID", "MISMATCH", "PERMFAIL"

  - `result.data.state` (string)
    The domain's DKIM record status.
Possible values:

* VALID The DKIM record is valid.
* MALFORMED A single DKIM record exists, but the record does not match the expected DKIM specifications.
* MISMATCH A DKIM record exists, but it does not match the expected public key.
* MISSING No DKIM record exists for the domain.
* MULTIPLE Multiple DKIM records exist.
* NOPUB No key exists on the local server for the domain.
* ERROR The record's DNS lookup failed. The function returns the reason in the error return.
    Enum: "VALID", "MALFORMED", "MISMATCH", "MISSING", "MULTIPLE", "NOPUB", "ERROR"

  - `result.data.validity_cache_update` (string)
    The result of the DKIM record's validity cache update operation:
* set The domain is invalid but passed its validity check. The validity check now passes the domain as valid.
* unset The domain is invalid and did not pass its validity check. The validity check does not pass the domain as valid.
* valid The domain is valid and passed its validity check. There are no changes required.
* invalid The domain is invalid and failed its validity check. There are no changes required.
* none The domain is invalid, but the system will not take further action.
* error The domain's validity check operation failed.
    Enum: "set", "unset", "valid", "invalid", "none", "error"

  - `result.errors` (array,null)
    List of errors if the API failed.

  - `result.messages` (array,null)
    List of messages generated by the API.

  - `result.metadata` (object)

  - `result.status` (integer)
    - 1 - Success.
- 0 - Failed. Check the errors field for more details.
    Enum: 0, 1

  - `result.warnings` (array,null)
    List of warnings generated by the API. Warnings describe non-critical failures or other problematic conditions noted while running a API.


