openapi: 3.0.0
info:
  description: |
    This API provides services to analyze email addresses.
  version: '1'
  title: Email Analysis API
servers:
  - description: Production
    url: https://api.cdq.com/email-analysis/rest
    x-cdq-soap-url: https://api.corporate-data-league.ch/email-analysis/soap/v1
security:
  - apiKey: []
tags: []
paths:
  /emails/verify:
    post:
      tags:
        - Email Verification
      summary: Verify Email Address
      description: >
        The Email Domain Guard consists of multiple checkers and a risk scoring
        feature. Each of the checkers analyzes a specific aspect of the given
        email address, the assessment via the checkers is then combined in terms
        of a multifactor analysis to a risk score.

        Available checkers:
          - **Email Component Extractor**: Accurately separates an email address into its local part and domain, and then attempt to derive the base domain from it.
          - **Email Format Checker**: Validates the structure and syntax of email addresses to ensure they follow standard conventions.
          - **Domain Existence Checker**: Verifies the existence and accessibility of domain names, ensuring communications are directed to functional domains.
          - **Disposable Mail Checker**: Detects disposable or temporary email addresses, ensuring the quality and authenticity of user-provided email addresses.
          - **Freemail Checker**: Identifies freemail addresses, helping to assess the quality and legitimacy of user-provided email addresses.
          - **Role Category Checker**: Identifies role-based email addresses, enhancing personalization and optimizing resource allocation.
          - **Whois Checker**: Retrieves and analyzes whois information for domains, providing valuable details such as registration date and domain age.
          - **DNSBL Checker**: Checks if email domain IP addresses are listed on DNS-based Blackhole Lists (DNSBLs), identifying potential sources of spam or malicious activity.
          - **Data Breach Checker**: Analyzes email accounts and domains for potential data breaches using the [“Have I Been Pwned”](https://haveibeenpwned.com/) API.
          - **Shared Email Checker**: Identifies shared email addresses among community members while ensuring privacy through anonymous data sharing and secure hashing.
          - **Fraud Case Checker**: Identifies email addresses involved in any reported and confirmed fraud cases via CDQ's Fraud Guard.
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EmailVerificationRequest'
            examples:
              checkTheValidMail:
                summary: Verify the Dev-Portal mail
                value:
                  email: developer-portal@cdq.com
              checkTheValidMailWithConfiguration:
                summary: Verify the Dev-Portal mail with configuration
                value:
                  email: developer-portal@cdq.com
                  configurationId: 67bc591b8063ae6da21ff673
      responses:
        '200':
          description: OK
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EmailVerificationResult'
              examples:
                validEmail:
                  summary: Valid email address
                  value:
                    email: developer-portal@cdq.com
                    summary:
                      isBreachedDomain: false
                      isBreachedEmail: false
                      isDisposable: false
                      isBlacklisted: false
                      isPublicWhois: true
                      isSharedEmail: false
                      isValidFormat: true
                      isFreemail: false
                      isRoleBased: false
                      isFraudCaseDetected: false
                    status:
                      code: 200
                      technicalKey: OK
                      details:
                        - id: 200000000
                          message: Successful request.
                          technicalKey: DEFAULT_OK
                          jsonRecord: {}
                        - id: 200600005
                          message: Domain age is older than 1095 days.
                          technicalKey: EMAIL_DOMAIN_OLDER_THAN
                          jsonRecord: {}
                    risk:
                      score: 0
                      classification:
                        name: Very low risk
                        technicalKey: VERY_LOW_RISK
                    format:
                      isValidFormat: true
                      parts:
                        localPart: developer-portal
                        topLevelDomain: com
                        baseDomain: cdq
                        domain: cdq.com
                    domain:
                      isValidDomain: true
                    sharing:
                      isSharedEmail: false
                      subscribers: 0
                    role:
                      isRoleBased: false
                    freemail:
                      isFreemail: false
                    disposable:
                      isDisposable: false
                    whois:
                      isPublicWhois: true
                      entry:
                        dates:
                          creationDate: '1996-12-14T05:00:00'
                          updatedDate: '2024-11-08T23:48:45'
                          ageInDays: 10349
                          ageInYears: 28.353424657534248
                        registrar:
                          name: Amazon Registrar, Inc.
                          email: trustandsafety@support.aws.com
                    dnsBlacklist:
                      isDnsBlacklisted: false
                      dnsBlacklists: []
                    breaches:
                      isBreachedEmail: false
                      isBreachedDomain: false
                    fraudCases:
                      isFraudCaseDetected: false
                      fraudCasesCount: 0
                validEmailWithConfiguration:
                  summary: Valid email with verification configuration
                  value:
                    email: developer-portal@cdq.com
                    summary:
                      isBreachedDomain: false
                      isBreachedEmail: false
                      isBlacklisted: false
                      isPublicWhois: true
                      isSharedEmail: false
                      isValidFormat: true
                      isFreemail: false
                      isRoleBased: false
                    status:
                      code: 200
                      technicalKey: OK
                      details:
                        - id: 200000000
                          message: Successful request.
                          technicalKey: DEFAULT_OK
                          jsonRecord: {}
                        - id: 200600005
                          message: Domain age is older than 1095 days.
                          technicalKey: EMAIL_DOMAIN_OLDER_THAN
                          jsonRecord: {}
                    risk:
                      score: 0
                      classification:
                        name: Very low risk
                        technicalKey: VERY_LOW_RISK
                    format:
                      isValidFormat: true
                      parts:
                        localPart: developer-portal
                        topLevelDomain: com
                        baseDomain: cdq
                        domain: cdq.com
                    domain:
                      isValidDomain: true
                    sharing:
                      isSharedEmail: false
                      subscribers: 0
                    role:
                      isRoleBased: false
                    freemail:
                      isFreemail: false
                    disposable: {}
                    whois:
                      isPublicWhois: true
                      entry:
                        dates:
                          creationDate: '1996-12-14T05:00:00'
                          updatedDate: '2024-11-08T23:48:45'
                          ageInDays: 10334
                          ageInYears: 28.312328767123287
                        registrar:
                          name: Amazon Registrar, Inc.
                          email: trustandsafety@support.aws.com
                    dnsBlacklist:
                      isDnsBlacklisted: false
                      dnsBlacklists: []
                    breaches:
                      isBreachedEmail: false
                      isBreachedDomain: false
                    fraudCases: {}
        '400':
          description: Bad request
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApiError'
              example: "{\n\t\"status\": {\n\t\t\"code\": 400,\n\t\t\"technicalKey\": \"BAD_REQUEST\",\n\t\t\"details\": [\n\t\t\t{\n\t\t\t\t\"id\": 400600001,\n\t\t\t\t\"message\": \"The provided email address is not valid.\",\n\t\t\t\t\"technicalKey\": \"EMAIL_INVALID\"\n\t\t\t}\n\t\t]\n\t}\n}\n"
        '401':
          description: Unauthorized
        '500':
          description: Internal server error
  /configurations/emailverification:
    get:
      tags:
        - Configuration
      summary: List Configurations
      description: List all email verification configurations.
      parameters:
        - $ref: '#/components/parameters/limit'
        - $ref: '#/components/parameters/startAfter'
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/WorkspaceConfigurationPage'
              examples:
                listConfigurations:
                  summary: List of configurations
                  value:
                    startAfter: '0'
                    nextStartAfter: '1'
                    total: 2
                    values:
                      - name: My configuration
                        id: 67e55a52826f904dcbf63743
                        createdAt: '2025-03-27T14:01:54.259Z'
                        createdBy: b3e96bd8-96a6-48f5-b378-610d177be354
                      - name: Default configuration with risk score enabling
                        id: 67c6b5e4e165a754e5098cad
                        createdAt: '2025-03-04T08:12:20.021Z'
                        modifiedAt: '2025-03-04T08:12:20.021Z'
                        createdBy: b3e96bd8-96a6-48f5-b378-610d177be354
    post:
      tags:
        - Configuration
      summary: Create Configuration
      description: Create a new email verification configuration.
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EmailVerificationConfigurationCreate'
            examples:
              createConfiguration:
                summary: Create a new configuration
                value:
                  name: My configuration
                  configuration:
                    disposableMailChecker:
                      isEnabled: true
                      isRiskCalculationEnabled: true
                      disposableFactorWeight: 100
                    dnsblChecker:
                      isEnabled: true
                      isRiskCalculationEnabled: true
                      dnsblFactorWeight: 50
                    freemailChecker:
                      isEnabled: true
                      isRiskCalculationEnabled: true
                      freemailFactorWeight: 40
                    roleCategoryChecker:
                      isEnabled: true
                    whoisChecker:
                      isEnabled: true
                      isRiskCalculationEnabled: true
                      newBornDomainFactorWeight: 85
                      youngDomainFactorWeight: 10
                      oldDomainFactorWeight: 10
                      notPublicFactorWeight: 65
                      youngDomainAgeThreshold: 365
                      oldDomainAgeThreshold: 1095
                    sharedEmailChecker:
                      isEnabled: true
                      isRiskCalculationEnabled: true
                      sharedEmailAddressFactorWeight: 50
                    dataBreachChecker:
                      isEnabled: true
                      isRiskCalculationEnabled: true
                      recentDataBreachFactorWeight: 20
                      youngDataBreachFactorWeight: 10
                      oldDataBreachFactorWeight: 5
                      breachWithPasswordFactorWeight: 20
                      breachWithMalwareFactorWeight: 20
                      inflationaryBreachesFactorWeight: 10
                      breachedDomainFactorWeight: 5
                      youngDataBreachAgeThreshold: 365
                      oldDataBreachAgeThreshold: 1095
                      inflationaryBreachesCountThreshold: 25
                    fraudCaseChecker:
                      isEnabled: true
                      isRiskCalculationEnabled: false
      responses:
        '200':
          description: Configuration created successfully
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EmailVerificationConfiguration'
              examples:
                createConfiguration:
                  summary: Configuration created successfully
                  value:
                    name: My configuration
                    configuration:
                      disposableMailChecker:
                        isEnabled: true
                        isRiskCalculationEnabled: true
                        disposableFactorWeight: 100
                      dnsblChecker:
                        isEnabled: true
                        isRiskCalculationEnabled: true
                        dnsblFactorWeight: 50
                      freemailChecker:
                        isEnabled: true
                        isRiskCalculationEnabled: true
                        freemailFactorWeight: 40
                      roleCategoryChecker:
                        isEnabled: true
                      whoisChecker:
                        isEnabled: true
                        isRiskCalculationEnabled: true
                        newBornDomainFactorWeight: 85
                        youngDomainFactorWeight: 10
                        oldDomainFactorWeight: 10
                        notPublicFactorWeight: 65
                        youngDomainAgeThreshold: 365
                        oldDomainAgeThreshold: 1095
                      sharedEmailChecker:
                        isEnabled: true
                        isRiskCalculationEnabled: true
                        sharedEmailAddressFactorWeight: 50
                      dataBreachChecker:
                        isEnabled: true
                        isRiskCalculationEnabled: true
                        recentDataBreachFactorWeight: 20
                        youngDataBreachFactorWeight: 10
                        oldDataBreachFactorWeight: 5
                        breachWithPasswordFactorWeight: 20
                        breachWithMalwareFactorWeight: 20
                        inflationaryBreachesFactorWeight: 10
                        breachedDomainFactorWeight: 5
                        youngDataBreachAgeThreshold: 365
                        oldDataBreachAgeThreshold: 1095
                        inflationaryBreachesCountThreshold: 25
                      fraudCaseChecker:
                        isEnabled: true
                        isRiskCalculationEnabled: false
                    version: 1
                    id: 67e55a52826f904dcbf63743
                    createdAt: '2025-03-27T14:01:54.259837898Z'
                    createdBy: b3e96bd8-96a6-48f5-b378-610d177be354
                    defaultConfiguration: false
                    relatedConfigurations: []
        '400':
          description: Bad Request.
  /configurations/emailverification/{configurationId}:
    get:
      tags:
        - Configuration
      summary: Read Configuration
      description: Read email verification configuration by id.
      parameters:
        - $ref: '#/components/parameters/configurationId'
      responses:
        '200':
          description: Successful operation
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EmailVerificationConfiguration'
              examples:
                readConfiguration:
                  summary: Read Configuration Successfully
                  value:
                    name: My configuration
                    configuration:
                      disposableMailChecker:
                        isEnabled: true
                        isRiskCalculationEnabled: true
                        disposableFactorWeight: 100
                      dnsblChecker:
                        isEnabled: true
                        isRiskCalculationEnabled: true
                        dnsblFactorWeight: 50
                      freemailChecker:
                        isEnabled: true
                        isRiskCalculationEnabled: true
                        freemailFactorWeight: 40
                      roleCategoryChecker:
                        isEnabled: true
                      whoisChecker:
                        isEnabled: true
                        isRiskCalculationEnabled: true
                        newBornDomainFactorWeight: 85
                        youngDomainFactorWeight: 10
                        oldDomainFactorWeight: 10
                        notPublicFactorWeight: 65
                        youngDomainAgeThreshold: 365
                        oldDomainAgeThreshold: 1095
                      sharedEmailChecker:
                        isEnabled: true
                        isRiskCalculationEnabled: true
                        sharedEmailAddressFactorWeight: 50
                      dataBreachChecker:
                        isEnabled: true
                        isRiskCalculationEnabled: true
                        recentDataBreachFactorWeight: 20
                        youngDataBreachFactorWeight: 10
                        oldDataBreachFactorWeight: 5
                        breachWithPasswordFactorWeight: 20
                        breachWithMalwareFactorWeight: 20
                        inflationaryBreachesFactorWeight: 10
                        breachedDomainFactorWeight: 5
                        youngDataBreachAgeThreshold: 365
                        oldDataBreachAgeThreshold: 1095
                        inflationaryBreachesCountThreshold: 25
                      fraudCaseChecker:
                        isEnabled: true
                        isRiskCalculationEnabled: false
                    version: 1
                    id: 67e55a52826f904dcbf63743
                    createdAt: '2025-03-27T14:01:54.259Z'
                    createdBy: b3e96bd8-96a6-48f5-b378-610d177be354
                    defaultConfiguration: false
                    relatedConfigurations: []
    put:
      tags:
        - Configuration
      summary: Update Configuration
      description: Update an existing email verification configuration.
      parameters:
        - $ref: '#/components/parameters/configurationId'
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EmailVerificationConfigurationUpdate'
            examples:
              updateConfiguration:
                summary: Update an existing configuration
                value:
                  name: My configuration
                  configuration:
                    disposableMailChecker:
                      isEnabled: true
                      isRiskCalculationEnabled: true
                      disposableFactorWeight: 100
                    dnsblChecker:
                      isEnabled: true
                      isRiskCalculationEnabled: true
                      dnsblFactorWeight: 50
                    freemailChecker:
                      isEnabled: true
                      isRiskCalculationEnabled: true
                      freemailFactorWeight: 40
                    roleCategoryChecker:
                      isEnabled: true
                    whoisChecker:
                      isEnabled: true
                      isRiskCalculationEnabled: true
                      newBornDomainFactorWeight: 85
                      youngDomainFactorWeight: 10
                      oldDomainFactorWeight: 10
                      notPublicFactorWeight: 65
                      youngDomainAgeThreshold: 365
                      oldDomainAgeThreshold: 1095
                    sharedEmailChecker:
                      isEnabled: true
                      isRiskCalculationEnabled: true
                      sharedEmailAddressFactorWeight: 50
                    dataBreachChecker:
                      isEnabled: true
                      isRiskCalculationEnabled: true
                      recentDataBreachFactorWeight: 20
                      youngDataBreachFactorWeight: 10
                      oldDataBreachFactorWeight: 5
                      breachWithPasswordFactorWeight: 20
                      breachWithMalwareFactorWeight: 20
                      inflationaryBreachesFactorWeight: 10
                      breachedDomainFactorWeight: 5
                      youngDataBreachAgeThreshold: 365
                      oldDataBreachAgeThreshold: 1095
                      inflationaryBreachesCountThreshold: 25
                    fraudCaseChecker:
                      isEnabled: false
                      isRiskCalculationEnabled: false
      responses:
        '200':
          description: Configuration updated successful
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EmailVerificationConfiguration'
              examples:
                updatedConfiguration:
                  summary: Configuration updated successfully
                  value:
                    name: My configuration
                    configuration:
                      disposableMailChecker:
                        isEnabled: true
                        isRiskCalculationEnabled: true
                        disposableFactorWeight: 100
                      dnsblChecker:
                        isEnabled: true
                        isRiskCalculationEnabled: true
                        dnsblFactorWeight: 50
                      freemailChecker:
                        isEnabled: true
                        isRiskCalculationEnabled: true
                        freemailFactorWeight: 40
                      roleCategoryChecker:
                        isEnabled: true
                      whoisChecker:
                        isEnabled: true
                        isRiskCalculationEnabled: true
                        newBornDomainFactorWeight: 85
                        youngDomainFactorWeight: 10
                        oldDomainFactorWeight: 10
                        notPublicFactorWeight: 65
                        youngDomainAgeThreshold: 365
                        oldDomainAgeThreshold: 1095
                      sharedEmailChecker:
                        isEnabled: true
                        isRiskCalculationEnabled: true
                        sharedEmailAddressFactorWeight: 50
                      dataBreachChecker:
                        isEnabled: true
                        isRiskCalculationEnabled: true
                        recentDataBreachFactorWeight: 20
                        youngDataBreachFactorWeight: 10
                        oldDataBreachFactorWeight: 5
                        breachWithPasswordFactorWeight: 20
                        breachWithMalwareFactorWeight: 20
                        inflationaryBreachesFactorWeight: 10
                        breachedDomainFactorWeight: 5
                        youngDataBreachAgeThreshold: 365
                        oldDataBreachAgeThreshold: 1095
                        inflationaryBreachesCountThreshold: 25
                      fraudCaseChecker:
                        isEnabled: false
                        isRiskCalculationEnabled: false
                    version: 2
                    id: 67e55a52826f904dcbf63743
                    createdAt: '2025-03-27T14:01:54.259Z'
                    modifiedAt: '2025-03-27T14:24:05.998010503Z'
                    createdBy: b3e96bd8-96a6-48f5-b378-610d177be354
                    defaultConfiguration: false
                    relatedConfigurations: []
        '400':
          description: Bad Request.
    delete:
      tags:
        - Configuration
      summary: Delete Configuration
      description: Delete an email verification configuration.
      parameters:
        - $ref: '#/components/parameters/configurationId'
      responses:
        '200':
          description: OK.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EmailVerificationConfiguration'
              examples:
                deletedConfiguration:
                  summary: Configuration deleted successfully
                  value:
                    name: My configuration
                    configuration:
                      disposableMailChecker:
                        isEnabled: true
                        isRiskCalculationEnabled: true
                        disposableFactorWeight: 100
                      dnsblChecker:
                        isEnabled: true
                        isRiskCalculationEnabled: true
                        dnsblFactorWeight: 50
                      freemailChecker:
                        isEnabled: true
                        isRiskCalculationEnabled: true
                        freemailFactorWeight: 40
                      roleCategoryChecker:
                        isEnabled: true
                      whoisChecker:
                        isEnabled: true
                        isRiskCalculationEnabled: true
                        newBornDomainFactorWeight: 85
                        youngDomainFactorWeight: 10
                        oldDomainFactorWeight: 10
                        notPublicFactorWeight: 65
                        youngDomainAgeThreshold: 365
                        oldDomainAgeThreshold: 1095
                      sharedEmailChecker:
                        isEnabled: true
                        isRiskCalculationEnabled: true
                        sharedEmailAddressFactorWeight: 50
                      dataBreachChecker:
                        isEnabled: true
                        isRiskCalculationEnabled: true
                        recentDataBreachFactorWeight: 20
                        youngDataBreachFactorWeight: 10
                        oldDataBreachFactorWeight: 5
                        breachWithPasswordFactorWeight: 20
                        breachWithMalwareFactorWeight: 20
                        inflationaryBreachesFactorWeight: 10
                        breachedDomainFactorWeight: 5
                        youngDataBreachAgeThreshold: 365
                        oldDataBreachAgeThreshold: 1095
                        inflationaryBreachesCountThreshold: 25
                      fraudCaseChecker:
                        isEnabled: true
                        isRiskCalculationEnabled: true
                    version: 4
                    id: 67e55a52826f904dcbf63743
                    createdAt: '2025-03-27T14:01:54.259Z'
                    modifiedAt: '2025-03-27T14:29:20.097Z'
                    createdBy: b3e96bd8-96a6-48f5-b378-610d177be354
                    defaultConfiguration: false
                    relatedConfigurations: []
        '400':
          description: Bad Request.
  /configurations/emailverification/{configurationId}/versions/{version}:
    get:
      tags:
        - Configuration
      summary: Read Email Verification Configuration Version
      description: >-
        Read a specific version of an email verification configuration by id and
        version number.
      parameters:
        - $ref: '#/components/parameters/configurationId'
        - $ref: '#/components/parameters/configurationVersion'
      responses:
        '200':
          description: Successful operation.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EmailVerificationConfigurationVersion'
              examples:
                versionConfiguration:
                  summary: Configuration version read successfully
                  value:
                    id: 67ea96a80ab6e12699b0bec0
                    name: My configuration1
                    configurationId: 67ea96a80ab6e12699b0bebf
                    version: 1
                    configuration:
                      disposableMailChecker:
                        isEnabled: true
                        isRiskCalculationEnabled: true
                        disposableFactorWeight: 100
                      dnsblChecker:
                        isEnabled: true
                        isRiskCalculationEnabled: true
                        dnsblFactorWeight: 50
                      freemailChecker:
                        isEnabled: true
                        isRiskCalculationEnabled: true
                        freemailFactorWeight: 40
                      roleCategoryChecker:
                        isEnabled: true
                      whoisChecker:
                        isEnabled: true
                        isRiskCalculationEnabled: true
                        newBornDomainFactorWeight: 85
                        youngDomainFactorWeight: 10
                        oldDomainFactorWeight: 10
                        notPublicFactorWeight: 65
                        youngDomainAgeThreshold: 365
                        oldDomainAgeThreshold: 1095
                      sharedEmailChecker:
                        isEnabled: true
                        isRiskCalculationEnabled: true
                        sharedEmailAddressFactorWeight: 50
                      dataBreachChecker:
                        isEnabled: true
                        isRiskCalculationEnabled: true
                        recentDataBreachFactorWeight: 20
                        youngDataBreachFactorWeight: 10
                        oldDataBreachFactorWeight: 5
                        breachWithPasswordFactorWeight: 20
                        breachWithMalwareFactorWeight: 20
                        inflationaryBreachesFactorWeight: 10
                        breachedDomainFactorWeight: 5
                        youngDataBreachAgeThreshold: 365
                        oldDataBreachAgeThreshold: 1095
                        inflationaryBreachesCountThreshold: 25
                      fraudCaseChecker:
                        isEnabled: true
                        isRiskCalculationEnabled: true
                    createdAt: '2025-03-31T13:20:40.677Z'
                    createdBy: b3e96bd8-96a6-48f5-b378-610d177be354
                    modifiedAt: '2025-03-31T13:20:40.677Z'
                    modifiedBy: b3e96bd8-96a6-48f5-b378-610d177be354
                    defaultConfiguration: false
components:
  securitySchemes:
    apiKey:
      type: apiKey
      in: header
      name: X-API-KEY
  parameters:
    configurationId:
      in: path
      name: configurationId
      description: ID of the configuration.
      required: true
      schema:
        type: string
        example: c074b9f3-abf0-4f8e-9a20-74deb6cfa2a4
    configurationVersion:
      in: path
      name: version
      required: true
      description: Version number of the configuration.
      schema:
        type: integer
        example: 1
    limit:
      in: query
      name: limit
      required: false
      description: Maximum number of configurations to return.
      schema:
        $ref: '#/components/schemas/Limit'
    startAfter:
      in: query
      name: startAfter
      description: Used to retrieve the next page of results.
      required: false
      schema:
        $ref: '#/components/schemas/StartAfter'
  schemas:
    EmailVerificationRequest:
      type: object
      required:
        - email
      description: Request to verify a single email address.
      properties:
        email:
          $ref: '#/components/schemas/Email'
        configurationId:
          $ref: '#/components/schemas/ConfigurationId'
    Email:
      type: string
      example: john.doe@gmail.com
      description: An email address as defined by IETF.
    RiskScore:
      type: integer
      example: 100
      minimum: 0
      maximum: 100
      description: >-
        A numerical value (0-100) representing the risk score associated with
        the email address.
    RiskClassification:
      type: object
      description: >-
        The classification of the risk based on the risk score, indicating the
        level of risk such as "Very low risk", "Low risk", "Medium risk", "High
        risk", or "Very high risk".
      properties:
        name:
          $ref: '#/components/schemas/RiskClassificationName'
        technicalKey:
          $ref: '#/components/schemas/RiskClassificationTechnicalKey'
    RiskClassificationName:
      type: string
      example: Very low risk
      description: >-
        The classification of the risk based on the risk score, indicating the
        level of risk such as "Very low risk", "Low risk", "Medium risk", "High
        risk", or "Very high risk".
    RiskClassificationTechnicalKey:
      type: string
      example: VERY_LOW_RISK
      description: >-
        The classification of the risk based on the risk score, indicating the
        level of risk such as "Very low risk", "Low risk", "Medium risk", "High
        risk", or "Very high risk".
      enum:
        - VERY_LOW_RISK
        - LOW_RISK
        - MEDIUM_RISK
        - HIGH_RISK
        - VERY_HIGH_RISK
      x-enumDescriptions:
        VERY_LOW_RISK: Very low risk
        LOW_RISK: Low risk
        MEDIUM_RISK: Medium risk
        HIGH_RISK: High risk
        VERY_HIGH_RISK: Very high risk
    IsValidFormat:
      type: boolean
      example: true
      description: Indicates whether the email address has a valid format.
    LocalPart:
      type: string
      example: john.doe
      description: The account name of the email address.
    TopLevelDomain:
      type: string
      example: com
      description: The top-level domain of the email address.
    BaseDomain:
      type: string
      example: gmail
      description: The base domain of the email address.
    Domain:
      type: string
      example: gmail.com
      description: The full domain of the email address.
    EmailParts:
      type: object
      description: >-
        Contains the different parts of an email address, including the local
        part, top-level domain, base domain, and full domain.
      properties:
        localPart:
          $ref: '#/components/schemas/LocalPart'
        topLevelDomain:
          $ref: '#/components/schemas/TopLevelDomain'
        baseDomain:
          $ref: '#/components/schemas/BaseDomain'
        domain:
          $ref: '#/components/schemas/Domain'
    IsValidDomain:
      type: boolean
      example: true
      description: >-
        Indicates whether the domain of the email address is valid and
        operational.
    IsSharedEmail:
      type: boolean
      example: true
      description: >-
        Indicates whether the email address is found in the shared email
        database of the CDQ Data Sharing Community.
    Subscribers:
      type: integer
      example: 100
      description: >-
        The number of unique community members that use this email address for
        conversations with customers or suppliers.
    WhoIsCountry:
      type: string
      example: Switzerland
      description: Country name.
    Name:
      type: object
      description: The name of a business partner.
      properties:
        value:
          $ref: '#/components/schemas/NameValue'
    Address:
      type: object
      description: Address information
      properties:
        country:
          $ref: '#/components/schemas/Country'
    Country:
      type: object
      description: Country information
      properties:
        shortName:
          $ref: '#/components/schemas/CountryShortName'
    IsRoleBased:
      type: boolean
      example: false
      description: >-
        Indicates whether the email address is a role-based address (e.g.
        support@example.com).
    RoleCategory:
      type: object
      description: The category of the role-based email address, if applicable.
      properties:
        name:
          $ref: '#/components/schemas/RoleCategoryName'
        technicalKey:
          $ref: '#/components/schemas/RoleCategoryTechnicalKey'
    RoleCategoryName:
      type: string
      example: Human Resources
      description: The category name of the role-based email address, if applicable.
    RoleCategoryTechnicalKey:
      type: string
      example: HUMAN_RESOURCES
      description: >-
        The category technical key of the role-based email address, if
        applicable.
      enum:
        - GENERAL_INQUIRIES
        - SALES_AND_MARKETING
        - CUSTOMER_SUPPORT
        - BILLING_AND_FINANCE
        - HUMAN_RESOURCES
        - TECHNICAL_SUPPORT
        - ADMINISTRATION
        - WEBSITE_AND_IT
        - MEDIA_AND_PR
        - FEEDBACK_AND_SUGGESTIONS
        - SOCIAL_MEDIA_AND_COMMUNITY
        - EVENTS_AND_PROMOTIONS
        - RESEARCH_AND_DEVELOPMENT
        - SECURITY_AND_PRIVACY
        - NEWSLETTER_SUBSCRIPTIONS
    IsFreemail:
      type: boolean
      example: false
      description: >-
        Indicates whether the email address is from a freemail provider (e.g.
        Gmail, Yahoo)
    EmailProviderName:
      type: string
      example: Gmail
      description: The name of the freemail/disposable email/dnsbl provider.
    Website:
      type: object
      description: Website related to the email provider, if applicable
      properties:
        url:
          $ref: '#/components/schemas/WebsiteUrl'
    EmailProvider:
      type: object
      description: Information about the email provider, if applicable
      properties:
        name:
          $ref: '#/components/schemas/EmailProviderName'
        website:
          $ref: '#/components/schemas/Website'
    IsDisposable:
      type: boolean
      example: false
      description: Indicates whether the email address is disposable or temporary.
    IsPublicWhois:
      type: boolean
      example: false
      description: Indicates whether the domain's WHOIS information is publicly available
    WhoIsName:
      type: string
      example: John Doe
      description: The name of the registrant.
    WhoIsOrganization:
      type: string
      example: Amazon Register, Inc.
      description: The name of the WhoIs contact.
    WhoIsStreet:
      type: string
      example: Musterstrasse 1
      description: The address of the WhoIs contact.
    WhoIsCity:
      type: string
      example: Zurich
      description: The city of the WhoIs contact.
    WhoIsState:
      type: string
      example: ZH
      description: The state of the WhoIs contact.
    WhoIsPostalCode:
      type: string
      example: '8000'
      description: The postal code of the WhoIs contact.
    WhoIsContact:
      type: object
      description: Information about the contact of a domain
      properties:
        name:
          $ref: '#/components/schemas/WhoIsName'
        organization:
          $ref: '#/components/schemas/WhoIsOrganization'
        street:
          $ref: '#/components/schemas/WhoIsStreet'
        city:
          $ref: '#/components/schemas/WhoIsCity'
        state:
          $ref: '#/components/schemas/WhoIsState'
        postalCode:
          $ref: '#/components/schemas/WhoIsPostalCode'
        country:
          $ref: '#/components/schemas/WhoIsCountry'
        email:
          $ref: '#/components/schemas/WhoIsEmail'
    WhoIsCreationDate:
      type: string
      example: '2025-09-01T14:16:48Z'
      description: The creation date of the domain.
    WhoIsUpdatedDate:
      type: string
      example: '2025-09-01T14:16:48Z'
      description: The updated date of the domain.
    WhoIsAgeInDays:
      type: integer
      format: int64
      example: 2
      description: The age of the domain in days.
    WhoIsAgeInYears:
      type: number
      format: double
      example: 0
      description: The age of the domain in years
    WhoIsEmail:
      type: string
      example: noreply@registrar.amazon.com
      description: The contact email of the domain.
    WhoisEntry:
      type: object
      description: >-
        Information about the domain's WHOIS data, including creation date, age,
        registrar, and registrant details
      properties:
        dates:
          $ref: '#/components/schemas/WhoIsDates'
        registrar:
          $ref: '#/components/schemas/WhoIsContact'
        registrant:
          $ref: '#/components/schemas/WhoIsContact'
    IsDnsBlacklisted:
      type: boolean
      example: false
      description: >-
        Indicates whether the domain's IP addresses are listed on any Domain
        Name System blacklist
    DnsBlackList:
      type: object
      description: >-
        Information about the Domain Name System blacklist the domain is listed
        on, if applicable
      properties:
        url:
          $ref: '#/components/schemas/DnsBlacklistUrl'
    DnsBlacklistUrl:
      type: string
      example: zen.spamhaus.org
      description: The url of the Domain Name System blacklist
    IsBreachedEmail:
      type: boolean
      example: false
      description: Indicates whether the email address has been found in data breaches.
    BreachedEmailCount:
      type: number
      example: 0
      description: >-
        The total number of data breaches the email address/domain has been
        found in.
    BreachName:
      type: string
      example: Adobe
      description: The name of the data breach.
    Title:
      type: string
      example: Adobe breach
      description: The title of the data breach.
    BreachedDomain:
      type: string
      example: adobe.com
      description: The domain of the data breach.
    BreachDate:
      type: string
      example: '2025-09-01T14:16:48Z'
      description: The date of the data breach.
    PwnCount:
      type: number
      example: 153000000
      description: The number of accounts exposed in the data breach.
    BreachDescription:
      type: string
      example: >-
        In October 2013, 153 million Adobe accounts were breached with each
        containing an internal ID, username, email, encrypted password and a
        password hint in plain text.
      description: The description of the data breach.
    DataClass:
      type: string
      example: Email addresses
      description: The data class exposed in the data breach.
    DataClasses:
      type: array
      items:
        $ref: '#/components/schemas/DataClass'
      example:
        - Email addresses
        - Passwords
      description: The data classes exposed in the data breach.
    IsVerified:
      type: boolean
      example: true
      description: Indicates whether the data breach has been verified.
    IsFabricated:
      type: boolean
      example: false
      description: Indicates whether the data breach has been fabricated.
    IsSensitive:
      type: boolean
      example: false
      description: Indicates whether the data breach contains sensitive information.
    IsRetired:
      type: boolean
      example: false
      description: Indicates whether the data breach has been retired.
    IsSpamList:
      type: boolean
      example: false
      description: Indicates whether the data breach is a spam list.
    IsMalware:
      type: boolean
      example: false
      description: Indicates whether the data breach contains malware.
    BreachInfo:
      type: object
      description: >-
        Information about the specific data breach the email address or domain
        has been associated with, including breach name, date, description, and
        data class exposed.
      properties:
        name:
          $ref: '#/components/schemas/BreachName'
        title:
          $ref: '#/components/schemas/Title'
        domain:
          $ref: '#/components/schemas/BreachedDomain'
        breachDate:
          $ref: '#/components/schemas/BreachDate'
        pwnCount:
          $ref: '#/components/schemas/PwnCount'
        description:
          $ref: '#/components/schemas/BreachDescription'
        dataClasses:
          $ref: '#/components/schemas/DataClasses'
        isVerified:
          $ref: '#/components/schemas/IsVerified'
        isFabricated:
          $ref: '#/components/schemas/IsFabricated'
        isSensitive:
          $ref: '#/components/schemas/IsSensitive'
        isRetired:
          $ref: '#/components/schemas/IsRetired'
        isSpamList:
          $ref: '#/components/schemas/IsSpamList'
        isMalware:
          $ref: '#/components/schemas/IsMalware'
    EmailBreaches:
      type: array
      items:
        $ref: '#/components/schemas/BreachInfo'
      description: >-
        Information about the specific data breaches the email address has been
        associated with, including breach name, date, description, and data
        class exposed.
    IsBreachedDomain:
      type: boolean
      example: false
      description: Indicates whether the domain has been found in data breaches.
    BreachedDomainCount:
      type: number
      example: 0
      description: The total number of data breaches the domain has been found in.
    DomainBreaches:
      type: array
      items:
        $ref: '#/components/schemas/BreachInfo'
      description: >-
        Information about the specific data breaches the domain has been
        associated with, including breach name, date, description, and data
        class exposed.
    EmailVerificationResult:
      type: object
      description: Object containing the email verification result.yaml.
      properties:
        email:
          $ref: '#/components/schemas/Email'
        summary:
          $ref: '#/components/schemas/EmailVerificationSummary'
        status:
          $ref: '#/components/schemas/Status'
        risk:
          $ref: '#/components/schemas/EmailRiskVerification'
        format:
          $ref: '#/components/schemas/EmailFormatVerification'
        domain:
          $ref: '#/components/schemas/EmailDomainVerification'
        sharing:
          $ref: '#/components/schemas/SharedEmailVerification'
        role:
          $ref: '#/components/schemas/EmailRoleVerification'
        freemail:
          $ref: '#/components/schemas/FreemailVerification'
        disposable:
          $ref: '#/components/schemas/EmailDisposableVerification'
        whois:
          $ref: '#/components/schemas/WhoisVerification'
        dnsBlacklist:
          $ref: '#/components/schemas/DnsBlacklistVerification'
        breaches:
          $ref: '#/components/schemas/EmailBreachesVerification'
        fraudCases:
          $ref: '#/components/schemas/EmailFraudCaseVerification'
        debugInfo:
          $ref: '#/components/schemas/EmailVerificationDebugInfo'
    EmailVerificationSummary:
      type: object
      description: Summary of the email verification result.yaml.
      properties:
        isBreachedDomain:
          $ref: '#/components/schemas/IsBreachedDomain'
        isBreachedEmail:
          $ref: '#/components/schemas/IsBreachedEmail'
        isDisposable:
          $ref: '#/components/schemas/IsDisposable'
        isBlacklisted:
          $ref: '#/components/schemas/IsDnsBlacklisted'
        isPublicWhois:
          $ref: '#/components/schemas/IsPublicWhois'
        isSharedEmail:
          $ref: '#/components/schemas/IsSharedEmail'
        isValidFormat:
          $ref: '#/components/schemas/IsValidFormat'
        isFreemail:
          $ref: '#/components/schemas/IsFreemail'
        isRoleBased:
          $ref: '#/components/schemas/IsRoleBased'
        isFraudCaseDetected:
          $ref: '#/components/schemas/IsFraudCaseDetected'
    EmailRiskVerification:
      type: object
      description: Details about the risk score and classification.
      properties:
        score:
          $ref: '#/components/schemas/RiskScore'
        classification:
          $ref: '#/components/schemas/RiskClassification'
    EmailFormatVerification:
      type: object
      description: Details about the email format.
      properties:
        isValidFormat:
          $ref: '#/components/schemas/IsValidFormat'
        parts:
          $ref: '#/components/schemas/EmailParts'
    EmailDomainVerification:
      type: object
      description: Details about the domain verification.
      properties:
        isValidDomain:
          $ref: '#/components/schemas/IsValidDomain'
    SharedEmailVerification:
      type: object
      description: Details about the shared email verification.
      properties:
        isSharedEmail:
          $ref: '#/components/schemas/IsSharedEmail'
        subscribers:
          $ref: '#/components/schemas/Subscribers'
    EmailRoleVerification:
      type: object
      description: Details about the shared email verification.
      properties:
        isRoleBased:
          $ref: '#/components/schemas/IsRoleBased'
        roleCategory:
          $ref: '#/components/schemas/RoleCategory'
    FreemailVerification:
      type: object
      description: Details about the freemail verification.
      properties:
        isFreemail:
          $ref: '#/components/schemas/IsFreemail'
        provider:
          $ref: '#/components/schemas/EmailProvider'
    EmailDisposableVerification:
      type: object
      description: Details about the disposable email verification.
      properties:
        isDisposable:
          $ref: '#/components/schemas/IsDisposable'
        provider:
          $ref: '#/components/schemas/EmailProvider'
    WhoisVerification:
      type: object
      description: Details about the WHOIS verification.
      properties:
        isPublicWhois:
          $ref: '#/components/schemas/IsPublicWhois'
        entry:
          $ref: '#/components/schemas/WhoisEntry'
    DnsBlacklistVerification:
      type: object
      description: Details about the DNS blacklist verification.
      properties:
        isDnsBlacklisted:
          $ref: '#/components/schemas/IsDnsBlacklisted'
        dnsBlacklists:
          type: array
          items:
            $ref: '#/components/schemas/DnsBlackList'
    EmailBreachesVerification:
      type: object
      description: >
        Details about the data breaches the email address has been associated
        with.

        The data originates from the website haveibeenpwned.com
      properties:
        isBreachedEmail:
          $ref: '#/components/schemas/IsBreachedEmail'
        breachedEmailCount:
          $ref: '#/components/schemas/BreachedEmailCount'
        emailBreaches:
          $ref: '#/components/schemas/EmailBreaches'
        isBreachedDomain:
          $ref: '#/components/schemas/IsBreachedDomain'
        breachedDomainCount:
          $ref: '#/components/schemas/BreachedDomainCount'
        domainBreaches:
          $ref: '#/components/schemas/DomainBreaches'
    WhoIsDates:
      type: object
      description: Dates related to the WHOIS information.
      properties:
        creationDate:
          $ref: '#/components/schemas/WhoIsCreationDate'
        updatedDate:
          $ref: '#/components/schemas/WhoIsUpdatedDate'
        ageInDays:
          $ref: '#/components/schemas/WhoIsAgeInDays'
        ageInYears:
          $ref: '#/components/schemas/WhoIsAgeInYears'
    EmailVerificationDebugInfo:
      type: object
      description: Debug information about the email verification.
      properties:
        checkerResults:
          type: array
          items:
            $ref: '#/components/schemas/EmailVerificationCheckerResultDebugInfo'
    EmailVerificationCheckerResultDebugInfo:
      type: string
      description: Debug information about the email verification checker result.
      example: a
    EmailFraudCaseVerification:
      type: object
      description: Details about the fraud case verification.
      properties:
        isFraudCaseDetected:
          $ref: '#/components/schemas/IsFraudCaseDetected'
        fraudCasesCount:
          $ref: '#/components/schemas/FraudCasesCount'
        fraudCases:
          type: array
          items:
            $ref: '#/components/schemas/FraudCase'
    IsFraudCaseDetected:
      type: boolean
      example: false
      description: Indicates whether the fraud case was detected for given email address.
    FraudCasesCount:
      type: integer
      example: 1
      description: The total number of fraud cases the email address has been found in.
    FraudCase:
      type: object
      description: >-
        Information about the specific fraud case the email address has been
        associated with.
      properties:
        cdqId:
          $ref: '#/components/schemas/FraudCaseCdqId'
        dateOfAttack:
          $ref: '#/components/schemas/FraudCaseDateOfAttack'
        description:
          $ref: '#/components/schemas/FraudCaseDescription'
    FraudCaseCdqId:
      type: string
      example: ADhby5HQCN
      description: The unique identifier of the fraud case.
    FraudCaseDateOfAttack:
      type: string
      example: '2025-09-01T14:16:48Z'
      description: The date of the fraud case attack.
    FraudCaseDescription:
      type: string
      example: Company received information from fake email address.
      description: The description of the fraud case.
    WorkspaceConfigurationPage:
      type: object
      description: Paginate through workspace configuration results.
      properties:
        startAfter:
          $ref: '#/components/schemas/StartAfter'
        nextStartAfter:
          $ref: '#/components/schemas/NextStartAfter'
        total:
          $ref: '#/components/schemas/PageTotal'
        values:
          type: array
          items:
            $ref: '#/components/schemas/WorkspaceConfigurationSearchResult'
    WorkspaceConfigurationSearchResult:
      type: object
      description: Represents the search results of workspace configurations.
      properties:
        id:
          $ref: '#/components/schemas/ConfigurationId'
        name:
          $ref: '#/components/schemas/ConfigurationName'
        createdAt:
          $ref: '#/components/schemas/CreatedAt'
        modifiedAt:
          $ref: '#/components/schemas/ModifiedAt'
        createdBy:
          $ref: '#/components/schemas/CreatedBy'
    EmailVerificationConfigurationCreate:
      type: object
      description: Used to create new email verification configurations.
      required:
        - name
        - configuration
      properties:
        name:
          $ref: '#/components/schemas/ConfigurationName'
        configuration:
          $ref: '#/components/schemas/EmailVerificationConfigurationData'
    EmailVerificationConfigurationUpdate:
      type: object
      description: Used to update existing email verification configurations.
      properties:
        transactionId:
          $ref: '#/components/schemas/TransactionId'
        featuresOn:
          $ref: '#/components/schemas/TransactionFeaturesOn'
        name:
          $ref: '#/components/schemas/ConfigurationName'
        configuration:
          $ref: '#/components/schemas/EmailVerificationConfigurationData'
    EmailVerificationConfiguration:
      type: object
      description: Represents an email verification configuration with metadata.
      properties:
        id:
          $ref: '#/components/schemas/ConfigurationId'
        name:
          $ref: '#/components/schemas/ConfigurationName'
        version:
          $ref: '#/components/schemas/ConfigurationVersionNumber'
        configuration:
          $ref: '#/components/schemas/EmailVerificationConfigurationData'
        createdAt:
          $ref: '#/components/schemas/CreatedAt'
        modifiedAt:
          $ref: '#/components/schemas/ModifiedAt'
        createdBy:
          $ref: '#/components/schemas/CreatedBy'
        transactionId:
          $ref: '#/components/schemas/TransactionId'
    EmailVerificationConfigurationVersion:
      type: object
      description: Specific version of an email verification configuration.
      properties:
        id:
          type: string
          description: >-
            Unique identifier of the email verification configuration version.
            Not to be confused with the configuration ID.
          example: c074b9f3-abf0-4f8e-9a20-74deb6cfa2a4
        name:
          type: string
          description: The name of the configuration
          example: Configuration Name
        configurationId:
          $ref: '#/components/schemas/ConfigurationId'
        version:
          $ref: '#/components/schemas/ConfigurationVersionNumber'
        configuration:
          $ref: '#/components/schemas/EmailVerificationConfigurationData'
        createdAt:
          type: string
          description: >-
            Date and time when the first version of the configuration was
            created (ISO 8601-compliant).
          example: '2025-09-01T14:16:48Z'
        modifiedAt:
          type: string
          description: >-
            Date and time when this version of the configuration was created
            (ISO 8601-compliant).
          example: '2025-09-01T14:16:48Z'
        createdBy:
          type: string
          description: User who created the first version of the configuration.
          example: '69129435489347624'
        modifiedBy:
          type: string
          description: User who created this version of the configuration.
          example: '76248934691294444'
    ConfigurationVersionNumber:
      type: integer
      description: Version number of the configuration.
      example: 1
    EmailVerificationConfigurationData:
      type: object
      description: Represents an email verification configuration.
      required:
        - disposableMailChecker
        - dnsblChecker
        - freemailChecker
        - roleCategoryChecker
        - whoisChecker
        - sharedEmailChecker
        - dataBreachChecker
        - fraudCaseChecker
      properties:
        disposableMailChecker:
          $ref: '#/components/schemas/DisposableMailCheckerConfiguration'
        dnsblChecker:
          $ref: '#/components/schemas/DnsblCheckerConfiguration'
        freemailChecker:
          $ref: '#/components/schemas/FreemailCheckerConfiguration'
        roleCategoryChecker:
          $ref: '#/components/schemas/RoleCategoryCheckerConfiguration'
        whoisChecker:
          $ref: '#/components/schemas/WhoisCheckerConfiguration'
        sharedEmailChecker:
          $ref: '#/components/schemas/SharedEmailCheckerConfiguration'
        dataBreachChecker:
          $ref: '#/components/schemas/DataBreachCheckerConfiguration'
        fraudCaseChecker:
          $ref: '#/components/schemas/FraudCaseCheckerConfiguration'
    DisposableMailCheckerConfiguration:
      type: object
      description: Configuration for the disposable mail checker.
      required:
        - isEnabled
        - isRiskCalculationEnabled
        - disposableFactorWeight
      properties:
        isEnabled:
          $ref: '#/components/schemas/CheckerIsEnabled'
        isRiskCalculationEnabled:
          $ref: '#/components/schemas/CheckerIsRiskCalculationEnabled'
        disposableFactorWeight:
          $ref: '#/components/schemas/FactorWeight'
    DnsblCheckerConfiguration:
      type: object
      description: Configuration for the DNSBL checker.
      required:
        - isEnabled
        - isRiskCalculationEnabled
        - dnsblFactorWeight
      properties:
        isEnabled:
          $ref: '#/components/schemas/CheckerIsEnabled'
        isRiskCalculationEnabled:
          $ref: '#/components/schemas/CheckerIsRiskCalculationEnabled'
        dnsblFactorWeight:
          $ref: '#/components/schemas/FactorWeight'
    FreemailCheckerConfiguration:
      type: object
      description: Configuration for the freemail checker.
      required:
        - isEnabled
        - isRiskCalculationEnabled
        - freemailFactorWeight
      properties:
        isEnabled:
          $ref: '#/components/schemas/CheckerIsEnabled'
        isRiskCalculationEnabled:
          $ref: '#/components/schemas/CheckerIsRiskCalculationEnabled'
        freemailFactorWeight:
          $ref: '#/components/schemas/FactorWeight'
    RoleCategoryCheckerConfiguration:
      type: object
      description: Configuration for the role category checker.
      required:
        - isEnabled
      properties:
        isEnabled:
          $ref: '#/components/schemas/CheckerIsEnabled'
    WhoisCheckerConfiguration:
      type: object
      description: Configuration for the WHOIS checker.
      required:
        - isEnabled
        - isRiskCalculationEnabled
        - newBornDomainFactorWeight
        - youngDomainFactorWeight
        - oldDomainFactorWeight
        - notPublicFactorWeight
        - youngDomainAgeThreshold
        - oldDomainAgeThreshold
      properties:
        isEnabled:
          $ref: '#/components/schemas/CheckerIsEnabled'
        isRiskCalculationEnabled:
          $ref: '#/components/schemas/CheckerIsRiskCalculationEnabled'
        newBornDomainFactorWeight:
          $ref: '#/components/schemas/FactorWeight'
        youngDomainFactorWeight:
          $ref: '#/components/schemas/FactorWeight'
        oldDomainFactorWeight:
          $ref: '#/components/schemas/FactorWeight'
        notPublicFactorWeight:
          $ref: '#/components/schemas/FactorWeight'
        youngDomainAgeThreshold:
          $ref: '#/components/schemas/DomainAgeThreshold'
        oldDomainAgeThreshold:
          $ref: '#/components/schemas/DomainAgeThreshold'
    DomainAgeThreshold:
      type: integer
      minimum: 0
      description: The threshold in days for age of a domain.
      example: 365
    SharedEmailCheckerConfiguration:
      type: object
      description: Configuration for the shared email checker.
      required:
        - isEnabled
        - isRiskCalculationEnabled
        - sharedEmailAddressFactorWeight
      properties:
        isEnabled:
          $ref: '#/components/schemas/CheckerIsEnabled'
        isRiskCalculationEnabled:
          $ref: '#/components/schemas/CheckerIsRiskCalculationEnabled'
        sharedEmailAddressFactorWeight:
          $ref: '#/components/schemas/FactorWeight'
    DataBreachCheckerConfiguration:
      type: object
      description: Configuration for the data breach checker.
      required:
        - isEnabled
        - isRiskCalculationEnabled
        - recentDataBreachFactorWeight
        - youngDataBreachFactorWeight
        - oldDataBreachFactorWeight
        - breachWithPasswordFactorWeight
        - breachWithMalwareFactorWeight
        - inflationaryBreachesFactorWeight
        - breachedDomainFactorWeight
        - youngDataBreachAgeThreshold
        - oldDataBreachAgeThreshold
        - inflationaryBreachesCountThreshold
      properties:
        isEnabled:
          $ref: '#/components/schemas/CheckerIsEnabled'
        isRiskCalculationEnabled:
          $ref: '#/components/schemas/CheckerIsRiskCalculationEnabled'
        recentDataBreachFactorWeight:
          $ref: '#/components/schemas/FactorWeight'
        youngDataBreachFactorWeight:
          $ref: '#/components/schemas/FactorWeight'
        oldDataBreachFactorWeight:
          $ref: '#/components/schemas/FactorWeight'
        breachWithPasswordFactorWeight:
          $ref: '#/components/schemas/FactorWeight'
        breachWithMalwareFactorWeight:
          $ref: '#/components/schemas/FactorWeight'
        inflationaryBreachesFactorWeight:
          $ref: '#/components/schemas/FactorWeight'
        breachedDomainFactorWeight:
          $ref: '#/components/schemas/FactorWeight'
        youngDataBreachAgeThreshold:
          $ref: '#/components/schemas/DataBreachAgeThreshold'
        oldDataBreachAgeThreshold:
          $ref: '#/components/schemas/DataBreachAgeThreshold'
        inflationaryBreachesCountThreshold:
          $ref: '#/components/schemas/InflationaryBreachesCountThreshold'
    DataBreachAgeThreshold:
      type: integer
      minimum: 0
      description: The threshold in days for age of a data breach.
      example: 365
    InflationaryBreachesCountThreshold:
      type: integer
      minimum: 0
      description: The threshold for the number of breaches to be considered inflationary.
      example: 10
    FraudCaseCheckerConfiguration:
      type: object
      description: Configuration for the fraud case checker.
      required:
        - isEnabled
        - isRiskCalculationEnabled
      properties:
        isEnabled:
          $ref: '#/components/schemas/CheckerIsEnabled'
        isRiskCalculationEnabled:
          $ref: '#/components/schemas/CheckerIsRiskCalculationEnabled'
    CheckerIsEnabled:
      type: boolean
      description: Indicates whether the checker is enabled.
      example: true
    CheckerIsRiskCalculationEnabled:
      type: boolean
      description: Indicates whether the risk calculation for given checker is enabled.
      example: true
    FactorWeight:
      type: integer
      minimum: 0
      maximum: 100
      description: The weight of the factor in the risk score calculation.
      example: 20
    RelatedConfigurationId:
      type: string
      description: Id of the related configuration
      example: a0200062daa56952a8640005
    RelatedConfigurationOwner:
      type: object
      description: Configuration which relates to the root configuration.
      properties:
        service:
          $ref: '#/components/schemas/RelatedConfigurationOwnerService'
        path:
          $ref: '#/components/schemas/RelatedConfigurationOwnerPath'
    RelatedConfigurationOwnerService:
      type: string
      description: Name of the service which is the owner of the configuration.
      example: reference-data-api
    RelatedConfigurationOwnerPath:
      type: string
      description: Endpoint used to read the related configuration.
      example: /public/configurations/businesspartnerlookup
    TransactionId:
      type: string
      description: >-
        Id of the transaction, pass it in subsequent requests to make them part
        of the transaction
      example: 8e37da1e-ee9d-4ee0-b03d-24a1f89988f2
    TransactionFeaturesOn:
      description: >-
        Features to be enabled. Do not use CREATE_TRANSACTION and
        COMMIT_TRANSACTION at the same time.
      type: array
      items:
        $ref: '#/components/schemas/TransactionFeatureParam'
    TransactionFeatureParam:
      type: string
      description: Feature used to control transaction process.
      example: CREATE_TRANSACTION
      enum:
        - CREATE_TRANSACTION
        - COMMIT_TRANSACTION
      x-enumDescriptions:
        CREATE_TRANSACTION: >-
          Creates a new transaction and makes the current request a part of it.
          By default turned off.
        COMMIT_TRANSACTION: Commit transaction. By default turned off.
    ConfigurationId:
      type: string
      description: Uniquely identifies a configuration.
      example: c074b9f3-abf0-4f8e-9a20-74deb6cfa2a4
    HttpStatusCode:
      type: integer
      description: RFC 7231 status code for this error.
      example: '400'
    HttpStatusTechnicalKey:
      type: string
      description: Technical key describing the status or error
      example: OK
    StatusDetailsMessageId:
      type: integer
      description: 9-digit code which is uniquely identifying a message
      example: 200000004
    StatusDetailsMessage:
      type: string
      description: Human-readable message which may also be presented in user interface.
      example: Business Partner Name is mandatory.
    StatusDetailsTechnicalKey:
      type: string
      description: Technical key to uniquely identify a message.
      example: JOB_FINISHED
    JsonPath:
      type: string
      description: JSONPath as specified by the IETF standard
      example: $.businessPartner.names[0].value
    JsonObject:
      type: string
      description: Object provided in plain JSON format.
      example: '{ "key" : "value"}'
      additionalProperties: true
    StatusDetails:
      type: object
      description: Details about this status or error
      required:
        - id
        - message
      properties:
        id:
          $ref: '#/components/schemas/StatusDetailsMessageId'
        message:
          $ref: '#/components/schemas/StatusDetailsMessage'
        technicalKey:
          $ref: '#/components/schemas/StatusDetailsTechnicalKey'
        jsonPath:
          $ref: '#/components/schemas/JsonPath'
        jsonRecord:
          $ref: '#/components/schemas/JsonObject'
    HttpPath:
      type: string
      description: Requested path which caused this error.
      example: /v2/businesspartners/lookup
    StatusTimestamp:
      type: string
      description: ISO 8601 representation of the timestamp.
      example: '2025-09-01T14:16:48Z'
    Status:
      type: object
      description: Details about status or error of a service
      required:
        - code
        - technicalKey
        - details
      properties:
        code:
          $ref: '#/components/schemas/HttpStatusCode'
        technicalKey:
          $ref: '#/components/schemas/HttpStatusTechnicalKey'
        details:
          type: array
          items:
            $ref: '#/components/schemas/StatusDetails'
        path:
          $ref: '#/components/schemas/HttpPath'
        timestamp:
          $ref: '#/components/schemas/StatusTimestamp'
    WebsiteUrl:
      type: string
      description: The actual company website URL.
      example: https://cdq.com
    ApiError:
      type: object
      description: Detailed information about API errors.
      properties:
        status:
          $ref: '#/components/schemas/Status'
    Limit:
      type: integer
      description: Number of items per page.
      example: '100'
    StartAfter:
      type: string
      description: The ID which is used to read the page.
      example: '5712566172571652'
    NextStartAfter:
      type: string
      description: Provides a value to be used as a startAfter in next page request.
      example: '5712566172571652'
    PageTotal:
      description: Total number of items which can be paged.
      example: '67'
      type: integer
    ConfigurationName:
      type: string
      description: Display name for a configuration.
      example: Client configuration.
    CreatedAt:
      type: string
      description: Date of creation (ISO 8601-compliant).
      example: '2025-09-01T14:16:48Z'
    ModifiedAt:
      type: string
      description: Date of modification (ISO 8601-compliant).
      example: '2025-09-01T14:16:48Z'
    CreatedBy:
      type: string
      description: Creator of a resource.
      example: '76248934691294444'
    WorkspaceId:
      type: string
      description: Uniquely identifying ID of the workspace.
      example: c074b9f3-abf0-4f8e-9a20-74deb6cfa2a4
    NameValue:
      type: string
      description: The actual name.
      example: Corporate Data Quality AG
    CountryShortName:
      type: string
      description: Country code (ISO 3166-1 alpha-2).
      example: CH
