{
  "service": "abstract",
  "displayName": "Abstract",
  "categories": [
    "Developer Tools",
    "Data"
  ],
  "authTypes": [
    "api_key"
  ],
  "auth": [
    {
      "type": "api_key",
      "label": "Email Validation API Key",
      "placeholder": "ABSTRACT_EMAIL_VALIDATION_API_KEY",
      "description": "Abstract Email Validation API key sent as the api_key query parameter. Get it from the Email Validation API section of your Abstract dashboard: https://app.abstractapi.com/api/email-validation/dashboard."
    }
  ],
  "homepageUrl": "https://www.abstractapi.com/",
  "actions": [
    {
      "id": "abstract.validate_email",
      "service": "abstract",
      "name": "validate_email",
      "description": "Validate an email address with Abstract Email Validation and return deliverability, quality, and risk checks.",
      "requiredScopes": [],
      "providerPermissions": [],
      "inputSchema": {
        "type": "object",
        "properties": {
          "email": {
            "type": "string",
            "description": "The email address to validate.",
            "format": "email"
          }
        },
        "additionalProperties": false,
        "required": [
          "email"
        ],
        "description": "The input payload for validating an email address with Abstract."
      },
      "outputSchema": {
        "type": "object",
        "properties": {
          "email": {
            "type": "string",
            "description": "The email address returned by Abstract."
          },
          "autocorrect": {
            "anyOf": [
              {
                "type": "string",
                "description": "The suggested email correction when Abstract detects a likely typo."
              },
              {
                "type": "null"
              }
            ]
          },
          "deliverability": {
            "type": "string",
            "enum": [
              "DELIVERABLE",
              "UNDELIVERABLE",
              "UNKNOWN"
            ],
            "description": "The deliverability verdict returned by Abstract."
          },
          "qualityScore": {
            "type": "number",
            "minimum": 0,
            "maximum": 1,
            "description": "The email quality score between 0 and 1."
          },
          "isValidFormat": {
            "type": "object",
            "properties": {
              "value": {
                "anyOf": [
                  {
                    "type": "boolean",
                    "description": "The boolean result, or null when Abstract could not determine it."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "text": {
                "type": "string",
                "enum": [
                  "TRUE",
                  "FALSE",
                  "UNKNOWN"
                ],
                "description": "The text result returned by Abstract."
              }
            },
            "additionalProperties": false,
            "required": [
              "value",
              "text"
            ],
            "description": "A boolean check result returned by Abstract."
          },
          "isFreeEmail": {
            "type": "object",
            "properties": {
              "value": {
                "anyOf": [
                  {
                    "type": "boolean",
                    "description": "The boolean result, or null when Abstract could not determine it."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "text": {
                "type": "string",
                "enum": [
                  "TRUE",
                  "FALSE",
                  "UNKNOWN"
                ],
                "description": "The text result returned by Abstract."
              }
            },
            "additionalProperties": false,
            "required": [
              "value",
              "text"
            ],
            "description": "A boolean check result returned by Abstract."
          },
          "isDisposableEmail": {
            "type": "object",
            "properties": {
              "value": {
                "anyOf": [
                  {
                    "type": "boolean",
                    "description": "The boolean result, or null when Abstract could not determine it."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "text": {
                "type": "string",
                "enum": [
                  "TRUE",
                  "FALSE",
                  "UNKNOWN"
                ],
                "description": "The text result returned by Abstract."
              }
            },
            "additionalProperties": false,
            "required": [
              "value",
              "text"
            ],
            "description": "A boolean check result returned by Abstract."
          },
          "isRoleEmail": {
            "type": "object",
            "properties": {
              "value": {
                "anyOf": [
                  {
                    "type": "boolean",
                    "description": "The boolean result, or null when Abstract could not determine it."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "text": {
                "type": "string",
                "enum": [
                  "TRUE",
                  "FALSE",
                  "UNKNOWN"
                ],
                "description": "The text result returned by Abstract."
              }
            },
            "additionalProperties": false,
            "required": [
              "value",
              "text"
            ],
            "description": "A boolean check result returned by Abstract."
          },
          "isCatchallEmail": {
            "type": "object",
            "properties": {
              "value": {
                "anyOf": [
                  {
                    "type": "boolean",
                    "description": "The boolean result, or null when Abstract could not determine it."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "text": {
                "type": "string",
                "enum": [
                  "TRUE",
                  "FALSE",
                  "UNKNOWN"
                ],
                "description": "The text result returned by Abstract."
              }
            },
            "additionalProperties": false,
            "required": [
              "value",
              "text"
            ],
            "description": "A boolean check result returned by Abstract."
          },
          "isMxFound": {
            "type": "object",
            "properties": {
              "value": {
                "anyOf": [
                  {
                    "type": "boolean",
                    "description": "The boolean result, or null when Abstract could not determine it."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "text": {
                "type": "string",
                "enum": [
                  "TRUE",
                  "FALSE",
                  "UNKNOWN"
                ],
                "description": "The text result returned by Abstract."
              }
            },
            "additionalProperties": false,
            "required": [
              "value",
              "text"
            ],
            "description": "A boolean check result returned by Abstract."
          },
          "isSmtpValid": {
            "type": "object",
            "properties": {
              "value": {
                "anyOf": [
                  {
                    "type": "boolean",
                    "description": "The boolean result, or null when Abstract could not determine it."
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "text": {
                "type": "string",
                "enum": [
                  "TRUE",
                  "FALSE",
                  "UNKNOWN"
                ],
                "description": "The text result returned by Abstract."
              }
            },
            "additionalProperties": false,
            "required": [
              "value",
              "text"
            ],
            "description": "A boolean check result returned by Abstract."
          },
          "raw": {
            "type": "object",
            "properties": {},
            "additionalProperties": true,
            "description": "The raw response object returned by Abstract."
          }
        },
        "additionalProperties": false,
        "required": [
          "email",
          "autocorrect",
          "deliverability",
          "qualityScore",
          "isValidFormat",
          "isFreeEmail",
          "isDisposableEmail",
          "isRoleEmail",
          "isCatchallEmail",
          "isMxFound",
          "isSmtpValid",
          "raw"
        ],
        "description": "The normalized Abstract email validation response."
      }
    }
  ]
}
