> ## Documentation Index
> Fetch the complete documentation index at: https://docs.idmetagroup.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Email Insights

> Retrieve foundational email address intelligence including deliverability, domain, breach, lifecycle, and risk intelligence.



## OpenAPI

````yaml api-reference/openapi.json POST /api/v3/verifications/email-insights
openapi: 3.0.3
info:
  title: IDmeta API
  description: IDmeta verification and integration API.
  license:
    name: MIT
  version: 1.0.0
servers:
  - url: https://{environment-subdomain}.idmetagroup.com
    description: Your environment (replace `{environment-subdomain}`)
    variables:
      environment-subdomain:
        default: integrate
        enum:
          - integrate
          - api.ph
        description: >-
          IDmeta environment subdomain. Use `api.ph` for
          portalph.idmetagroup.com and `integrate` for verify.idmetagroup.com.
security:
  - bearerAuth: []
tags:
  - name: Processes
    description: Verification process endpoints
  - name: Trust Flow Links
    description: Trust Flow link generation endpoints
  - name: Compliance
    description: Compliance verification endpoints
  - name: Government Data
    description: Government data verification endpoints
  - name: Alternative Verifications
    description: Alternative verification and intelligence endpoints
  - name: OCR
    description: Document OCR extraction endpoints
paths:
  /api/v3/verifications/email-insights:
    post:
      tags:
        - Alternative Verifications
      summary: Email Insights
      description: >-
        Returns foundational email intelligence including deliverability, domain
        metadata, breach history, lifecycle signals, and email-level risk
        indicators. Powered by the Monnai `EMAIL_BASIC` insight package.


        Provide `email`, `trustFlowId`, and `trustValidationId`. IDmeta does not
        require `full_name`, `country_code`, `eventType`, `cleansingFlag`, or
        `consentDetails` for this endpoint.
      operationId: emailInsightsV3
      parameters:
        - name: Accept
          in: header
          required: false
          schema:
            type: string
            default: application/json
        - name: Content-Type
          in: header
          required: false
          schema:
            type: string
            default: application/json
      requestBody:
        required: true
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/EmailInsightsRequest'
            examples:
              default:
                summary: Email insights request
                value:
                  email: <string>
                  trustFlowId: 0
                  trustValidationId: '{your_trust_validation_id}'
      responses:
        '200':
          description: Email insights processed successfully
          headers:
            Content-Type:
              schema:
                type: string
                example: application/json
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/EmailInsightsResponse'
              example:
                success: true
                message: Email insights processed successfully
                data:
                  basic:
                    deliverable: true
                    address: john.doe@example.com
                    domain:
                      classification: valid
                      providerType: free_webmail
                      name: example.com
                      tld: .com
                      acceptAll: false
                      companyName: Example Inc
                      registered: true
                      registrarName: GoDaddy
                      createdAt: '2005-06-12T00:00:00Z'
                      updatedAt: '2023-09-21T00:00:00Z'
                      expiresAt: '2027-06-12T00:00:00Z'
                      type: CUSTOM
                      websiteExists: true
                      business:
                        identity:
                          domainRegisteredDays: 11220
                          ageBucket: '>=2y'
                          registrar: SafeNames Ltd.
                          registrarPrivacyEnabled: false
                          watchlistRegistrar: false
                          highRiskTld: false
                          expiringSoon: false
                        mailInfra:
                          mxPresent: true
                          mxRecordCount: 5
                          mxStatus: ok
                          mxHealthy: true
                        emailAuth:
                          spfPresent: true
                          spfQualifier: ~all
                          dmarcPresent: true
                          dmarcPolicy: reject
                          dkimSelectorFound: true
                          bimiPresent: false
                          bimiVmcVerified: false
                          tlsReportPresent: false
                        webPresence:
                          websiteResolves: true
                          websiteFinalStatus: 200
                          crossDomainRedirect: false
                          httpsDowngrade: false
                          hstsPresent: true
                        dns:
                          aRecordCount: 2
                          nsRecordCount: 4
                          caaPresent: true
                        risk:
                          trustScore: 87
                          fraudScore: 13
                          band: A
                          registrationPattern: established_active
                        meta:
                          dataCoveragePct: 62
                      domainAgeDays: 6800
                      emailDomainLength: 11
                      emailDomainContainsNumericChars: false
                      emailDomainHyphenCount: 0
                      emailIsCustomDomain: true
                      emailIsFreeDomain: false
                      emailIsTempDomain: false
                      emailIsSubdomain: false
                      emailSubdomainDepth: 0
                      emailIsReputedRegistrar: true
                      emailDmarcConfigured: true
                      emailSpfConfigured: true
                      emailHasValidMxRecord: true
                      emailDkimEnabled: true
                      emailIsRiskyTld: false
                      emailIsLocalTld: false
                      emailIsRareTld: false
                      abnormalTldFormat: false
                    breach:
                      isBreached: false
                      noOfBreaches: 0
                      firstBreach: null
                      lastBreach: null
                      breaches: []
                      breachRecencyDays: 0
                      timeSinceFirstBreach: 0
                    lifecycle:
                      activeSinceXDays: 2462
                    risk:
                      isDisposable: false
                      isRecentBreach: false
                      isFrequentBreached: false
                      emailBreachRiskLevel: Low
                      emailBreachRiskIndex: 0
                    emailStringAnalysis:
                      emailIsTyposquatting: false
                      emailPurposeClass: business
                      length: 4
                      countAlphanumerics: 4
                      countNonAlphanumerics: 0
                      countVowels: 1
                      countConsonants: 3
                      countPeriodCharacters: 0
                      countPlusCharacters: 0
                      countNumbers: 0
                      countUpperCaseCharacters: 0
                      countLowerCaseCharacters: 4
                      vowelRatio: 0.25
                      consonantRatio: 0.75
                      countOfDigitsInSequence: 0.3
                      emailTypingPattern: 0.2
                      emailLooksHuman: 0.3
                      emailLooksGibberish: 0.3
                      emailToNameConsistency: 0.42
                verificationStatus: VERIFIED
                verificationStatusCode: 3
                trustFlowId: 0
                trustValidationId: '{your_trust_validation_id}'
                verificationType: email_insights
                metadata: null
                createdAt: <string>
components:
  schemas:
    EmailInsightsRequest:
      type: object
      required:
        - email
        - trustFlowId
        - trustValidationId
      properties:
        email:
          type: string
          format: email
          description: Email address to analyze.
        trustFlowId:
          type: integer
          description: Trust flow ID used when you created the trust validation.
        trustValidationId:
          type: string
          description: Trust validation ID returned from create trust validation.
    EmailInsightsResponse:
      type: object
      required:
        - success
        - message
        - data
        - verificationStatus
        - verificationStatusCode
        - trustFlowId
        - trustValidationId
        - verificationType
      properties:
        success:
          type: boolean
        message:
          type: string
        data:
          type: object
          description: >-
            Email basic intelligence returned for the submitted address. Fields
            are dynamic—omitted when no data is available.
          properties:
            basic:
              $ref: '#/components/schemas/EmailInsightsBasic'
        verificationStatus:
          type: string
        verificationStatusCode:
          type: integer
        trustFlowId:
          type: integer
        trustValidationId:
          type: string
        verificationType:
          type: string
        metadata:
          nullable: true
        createdAt:
          type: string
          description: Timestamp when the verification was created.
    EmailInsightsBasic:
      type: object
      description: >-
        Deliverability, domain, breach, lifecycle, risk, and string analysis
        signals. Powered by Monnai `EMAIL_BASIC`. All fields are dynamic and may
        be omitted when unavailable.
      additionalProperties: true
      properties:
        deliverable:
          type: boolean
          description: >-
            Indicates whether the email address is deliverable based on mailbox
            and domain intelligence. Possible values: `true`, `false`.
        address:
          type: string
          description: >-
            Normalized email address after cleansing and validation. Example:
            `john.doe@example.com`.
        domain:
          $ref: '#/components/schemas/EmailInsightsDomain'
        breach:
          $ref: '#/components/schemas/EmailInsightsBreach'
        lifecycle:
          type: object
          description: Lifecycle tenure signals for the email address.
          additionalProperties: true
          properties:
            activeSinceXDays:
              type: integer
              description: Estimated email tenure in days based on available intelligence.
        risk:
          $ref: '#/components/schemas/EmailInsightsRisk'
        emailStringAnalysis:
          $ref: '#/components/schemas/EmailInsightsStringAnalysis'
    EmailInsightsDomain:
      type: object
      description: Domain metadata and derived signals for the email address.
      additionalProperties: true
      properties:
        classification:
          type: string
          description: >-
            High-level validity classification for the domain. Possible values:
            `invalid-email`, `invalid-domain`, `invalid-tld`, `valid`.
        providerType:
          type: string
          description: >-
            Classification of the email domain. Possible values: `FREE_WEBMAIL`,
            `GATED`, `DISPOSABLE`, `RELAY`, `UNKNOWN`.
        name:
          type: string
          description: 'Domain extracted from the email address. Example: `example.com`.'
        tld:
          type: string
          description: 'Top-Level Domain (TLD). Example: `.com`.'
        acceptAll:
          type: boolean
          description: >-
            Indicates whether the domain accepts all emails regardless of
            mailbox existence. Possible values: `true`, `false`.
        companyName:
          type: string
          description: WHOIS-derived company or organization name, if available.
        registered:
          type: boolean
          description: >-
            Indicates whether the domain appears registered. Possible values:
            `true`, `false`.
        registrarName:
          type: string
          description: Domain registrar name, if available.
        createdAt:
          type: string
          description: Domain creation timestamp in ISO-8601 UTC format.
        updatedAt:
          type: string
          description: Domain last updated timestamp in ISO-8601 UTC format.
        expiresAt:
          type: string
          description: Domain expiry timestamp in ISO-8601 UTC format.
        type:
          type: string
          description: >-
            Domain classification used for segmentation. Possible values:
            `PUBLIC_FREE`, `PUBLIC_PAID`, `CUSTOM`.
        websiteExists:
          type: boolean
          description: >-
            Indicates whether the domain resolves to a public website. Possible
            values: `true`, `false`.
        business:
          $ref: '#/components/schemas/EmailInsightsDomainBusiness'
        domainAgeDays:
          type: integer
          description: Age of the domain in days derived from registration metadata.
        emailDomainLength:
          type: integer
          description: Length of the domain string.
        emailDomainContainsNumericChars:
          type: boolean
          description: >-
            Indicates whether numeric characters exist in the domain name.
            Possible values: `true`, `false`.
        emailDomainHyphenCount:
          type: integer
          description: Number of hyphens in the domain name.
        emailIsCustomDomain:
          type: boolean
          description: >-
            Indicates whether the email belongs to a custom (non-free) domain.
            Possible values: `true`, `false`.
        emailIsFreeDomain:
          type: boolean
          description: >-
            Indicates whether the email belongs to a free email provider.
            Possible values: `true`, `false`.
        emailIsTempDomain:
          type: boolean
          description: >-
            Indicates whether the email belongs to a temporary or disposable
            domain. Possible values: `true`, `false`.
        emailIsSubdomain:
          type: boolean
          description: >-
            Indicates whether the email uses a subdomain. Possible values:
            `true`, `false`.
        emailSubdomainDepth:
          type: integer
          description: Depth of the subdomain hierarchy.
        emailIsReputedRegistrar:
          type: boolean
          description: >-
            Indicates whether the registrar is considered reputable. Possible
            values: `true`, `false`.
        emailDmarcConfigured:
          type: boolean
          description: >-
            Indicates whether DMARC is configured on the domain. Possible
            values: `true`, `false`.
        emailSpfConfigured:
          type: boolean
          description: >-
            Indicates whether SPF is configured on the domain. Possible values:
            `true`, `false`.
        emailHasValidMxRecord:
          type: boolean
          description: >-
            Indicates whether valid MX records exist for email delivery.
            Possible values: `true`, `false`.
        emailDkimEnabled:
          type: boolean
          description: >-
            Indicates whether DKIM is enabled on the domain. Possible values:
            `true`, `false`.
        emailIsRiskyTld:
          type: boolean
          description: >-
            Indicates whether the email TLD is considered risky. Possible
            values: `true`, `false`.
        emailIsLocalTld:
          type: boolean
          description: >-
            Indicates whether the email TLD is local or regional. Possible
            values: `true`, `false`.
        emailIsRareTld:
          type: boolean
          description: >-
            Indicates whether the email TLD is rare or uncommon. Possible
            values: `true`, `false`.
        abnormalTldFormat:
          type: boolean
          description: >-
            Indicates abnormal or malformed TLD patterns. Possible values:
            `true`, `false`.
    EmailInsightsBreach:
      type: object
      description: Breach exposure signals for the email address.
      additionalProperties: true
      properties:
        isBreached:
          type: boolean
          description: Indicates whether the email was found in known breach datasets.
        noOfBreaches:
          type: integer
          description: Total number of breach events associated with the email.
        firstBreach:
          type: string
          nullable: true
          description: Timestamp of the earliest breach exposure, if any.
        lastBreach:
          type: string
          nullable: true
          description: Timestamp of the most recent breach exposure, if any.
        breaches:
          type: array
          description: List of breach events including platform and breach date.
          items:
            type: object
            additionalProperties: true
            properties:
              platformName:
                type: string
                description: Name of the breached platform.
              domainName:
                type: string
                description: Domain associated with the breach event.
              breachDate:
                type: string
                description: Timestamp of the breach event.
        breachRecencyDays:
          type: integer
          description: Days since the most recent breach exposure.
        timeSinceFirstBreach:
          type: integer
          description: Days since the first known breach exposure.
    EmailInsightsRisk:
      type: object
      description: Email-level risk indicators.
      additionalProperties: true
      properties:
        isDisposable:
          type: boolean
          description: Indicates whether the email address is disposable or temporary.
        isRecentBreach:
          type: boolean
          description: Indicates whether the email was involved in a recent breach.
        isFrequentBreached:
          type: boolean
          description: Indicates whether the email appears repeatedly in breach datasets.
        emailBreachRiskLevel:
          type: string
          description: >-
            Risk level derived from breach signals. Possible values: `Low`,
            `Medium`, `High`.
        emailBreachRiskIndex:
          type: number
          format: float
          description: >-
            Numeric breach risk index used for modeling and scoring. Index
            range: `0` to `100`.
    EmailInsightsStringAnalysis:
      type: object
      description: String and pattern analysis of the email handle.
      additionalProperties: true
      properties:
        emailIsTyposquatting:
          type: boolean
          description: >-
            Indicates whether the email domain closely resembles a known domain
            (typosquatting behavior).
        emailPurposeClass:
          type: string
          description: >-
            Classification of email usage intent based on string and domain
            patterns. Possible values: `business`, `personal`,
            `business_with_personal_domain`, `education`, `government`,
            `nonprofit`, `unknown`.
        length:
          type: integer
          description: Length of the email handle.
        countAlphanumerics:
          type: integer
          description: Count of alphabet and numerical characters in the email handle.
        countNonAlphanumerics:
          type: integer
          description: Count of non alphabet/numerical characters in the email handle.
        countVowels:
          type: integer
          description: Count of vowels in the email handle.
        countConsonants:
          type: integer
          description: Count of consonants in the email handle.
        countPeriodCharacters:
          type: integer
          description: Count of `.` characters in the email handle.
        countPlusCharacters:
          type: integer
          description: Count of `+` characters in the email handle.
        countNumbers:
          type: integer
          description: Count of numbers/digits in the email handle.
        countUpperCaseCharacters:
          type: integer
          description: Count of upper-case characters.
        countLowerCaseCharacters:
          type: integer
          description: Count of lower-case characters.
        vowelRatio:
          type: number
          description: Ratio of vowels to total characters in the email username.
        consonantRatio:
          type: number
          description: Ratio of consonants to total characters in the email username.
        countOfDigitsInSequence:
          type: number
          description: >-
            Maximum length of a continuous numerical sequence in the email
            handle.
        emailTypingPattern:
          type: number
          format: float
          description: >-
            Detects whether the email username looks like a keyboard-typed
            pattern.
        emailLooksHuman:
          type: number
          format: float
          description: Indicates whether the email username appears natural and human-like.
        emailLooksGibberish:
          type: number
          format: float
          description: Flags whether the email username seems random or nonsensical.
        emailToNameConsistency:
          type: number
          format: float
          description: >-
            Score indicating alignment between the email and the provided input
            name. Range: `0.0`–`0.99`. Only returned when a full name is
            provided.
    EmailInsightsDomainBusiness:
      type: object
      description: >-
        Business domain intelligence for custom domains. Not available for
        generic email providers (for example, gmail.com, yahoo.com). Fields are
        only returned when data is available.
      additionalProperties: true
      properties:
        identity:
          type: object
          description: Domain registration identity and age signals.
          additionalProperties: true
          properties:
            domainRegisteredDays:
              type: integer
              description: Number of days since the domain was first registered.
            ageBucket:
              type: string
              description: >-
                Age range of the domain. Possible values: `<7d`, `<30d`, `<6mo`,
                `<2y`, `>=2y`.
            registrar:
              type: string
              description: Name of the domain registrar. Only returned when available.
            registrarPrivacyEnabled:
              type: boolean
              description: >-
                `true` when WHOIS registrant data is hidden behind a privacy
                proxy.
            watchlistRegistrar:
              type: boolean
              description: >-
                `true` when the registrar is associated with high fraud domain
                registrations.
            highRiskTld:
              type: boolean
              description: >-
                `true` when the domain uses a TLD associated with high abuse
                rates.
            expiringSoon:
              type: boolean
              description: '`true` when the domain is due to expire within 90 days.'
            registrantOrganization:
              type: string
              description: >-
                Legal organisation name of the domain registrant. Only returned
                when available.
        mailInfra:
          type: object
          description: Mail infrastructure health signals.
          additionalProperties: true
          properties:
            mxPresent:
              type: boolean
              description: '`true` when at least one MX record exists for the domain.'
            mxRecordCount:
              type: integer
              description: Number of MX records published for the domain.
            mxStatus:
              type: string
              description: >-
                Mail infrastructure health status. Possible values: `ok`,
                `partial`, `error`.
            mxHealthy:
              type: boolean
              description: '`true` when all mail servers are reachable and healthy.'
        emailAuth:
          type: object
          description: Email authentication configuration signals.
          additionalProperties: true
          properties:
            spfPresent:
              type: boolean
              description: '`true` when an SPF record is published for the domain.'
            spfQualifier:
              type: string
              description: >-
                SPF enforcement level. Possible values: `-all` (hard fail),
                `~all` (soft fail), `?all` (neutral), `+all` (permit all —
                anti-pattern).
            dmarcPresent:
              type: boolean
              description: '`true` when a DMARC record is published for the domain.'
            dmarcPolicy:
              type: string
              description: >-
                DMARC enforcement policy. Possible values: `none`, `quarantine`,
                `reject` (strongest).
            dkimSelectorFound:
              type: boolean
              description: '`true` when a DKIM key is found for the domain.'
            bimiPresent:
              type: boolean
              description: '`true` when a BIMI record is published for the domain.'
            bimiVmcVerified:
              type: boolean
              description: >-
                `true` when a Verified Mark Certificate is present in the BIMI
                record.
            mtaStsMode:
              type: string
              description: >-
                MTA-STS enforcement mode. Possible values: `enforce`, `testing`.
                Only returned when configured.
            tlsReportPresent:
              type: boolean
              description: '`true` when a TLS reporting record is published for the domain.'
        webPresence:
          type: object
          description: Website reachability and security signals.
          additionalProperties: true
          properties:
            websiteResolves:
              type: boolean
              description: >-
                `true` when the domain's website returns a successful HTTP
                response.
            websiteFinalStatus:
              type: integer
              description: >-
                Final HTTP status code. `0` = unreachable, `200` = active, `403`
                / `404` = restricted or missing.
            crossDomainRedirect:
              type: boolean
              description: '`true` when the website redirects to a different domain.'
            httpsDowngrade:
              type: boolean
              description: '`true` when the website redirects from HTTPS to HTTP.'
            hstsPresent:
              type: boolean
              description: >-
                `true` when HTTP Strict Transport Security is enabled. Only
                returned when the website resolves.
        dns:
          type: object
          description: DNS record signals for the domain.
          additionalProperties: true
          properties:
            aRecordCount:
              type: integer
              description: Number of A records for the domain.
            nsRecordCount:
              type: integer
              description: Number of authoritative nameservers for the domain.
            caaPresent:
              type: boolean
              description: '`true` when CAA records are published for the domain.'
        risk:
          type: object
          description: Domain-level trust and fraud scoring.
          additionalProperties: true
          properties:
            trustScore:
              type: integer
              description: Domain trust score from 0 to 100. Higher is better.
            fraudScore:
              type: integer
              description: Domain fraud score from 0 to 100. Higher indicates higher risk.
            band:
              type: string
              description: >-
                Risk band assigned to the domain. `A` is the lowest risk and `F`
                is the highest risk.
            registrationPattern:
              type: string
              description: >-
                Classification of the domain's registration and infrastructure
                pattern. Possible values: `established_active`,
                `established_dormant`, `aged_parked`, `fresh_thin_setup`,
                `typosquat_adjacent`, `unknown`.
        meta:
          type: object
          description: Metadata about business signal coverage.
          additionalProperties: true
          properties:
            dataCoveragePct:
              type: integer
              description: Percentage of business data fields available for the domain.
  securitySchemes:
    bearerAuth:
      type: http
      scheme: bearer
      bearerFormat: JWT
      description: Use `Bearer {your_api_token}` in the Authorization header.

````

This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.