> ## 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.

# Phone Number Insights

> Retrieve foundational phone number intelligence including carrier data, lifecycle history, and risk indicators.



## OpenAPI

````yaml api-reference/openapi.json POST /api/v3/verifications/phone-number-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/phone-number-insights:
    post:
      tags:
        - Alternative Verifications
      summary: Phone Number Insights
      description: >-
        Returns foundational phone number intelligence including carrier data,
        network signals, lifecycle history, and phone-level risk indicators.
        Powered by the Monnai `PHONE_BASIC` insight package.


        Provide `country_code` (for example, `+60`) and `phone_number` without
        the country prefix. The response is returned under `data.basic`. IDmeta
        does not require `eventType`, `cleansingFlag`, or `consentDetails` for
        this endpoint.
      operationId: phoneNumberInsightsV3
      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/PhoneNumberInsightsRequest'
            examples:
              default:
                summary: Phone number insights request
                value:
                  country_code: <string>
                  phone_number: <string>
                  trustFlowId: 0
                  trustValidationId: '{your_trust_validation_id}'
      responses:
        '200':
          description: Phone number insights processed successfully
          headers:
            Content-Type:
              schema:
                type: string
                example: application/json
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PhoneNumberInsightsResponse'
              example:
                success: true
                message: Phone number insights processed successfully
                data:
                  basic:
                    phoneNumber: '60173413545'
                    country: MY
                    phoneType: MOBILE
                    isActive: 'YES'
                    simType: POSTPAID
                    originalCarrier: MAXIS BROADBAND SDN BHD
                    currentCarrier:
                      carrierType: MNO_MAJOR
                      prepaidMarketDominance: HIGH
                      simRegistrationRegime: STRICT_ID
                      networkName: MAXIS BROADBAND SDN BHD
                      serviceProfileId: '60503'
                      mcc: '502'
                      mnc: '12'
                    lifecycle:
                      activation:
                        tenure:
                          min: 24
                          max: 48
                        tenureBracket: morethan24months
                        activationDate: '2021-07-18T10:45:30Z'
                        activeSinceXDays: 900
                      porting:
                        portedDate: '2023-11-02T14:20:00Z'
                        numberOfPorts: 1
                        portedSinceXDays: 120
                        portedEvents:
                          - carrierCircle: MAXIS BROADBAND SDN BHD
                            portedDate: '2023-11-02T14:20:00Z'
                        avgDaysBetweenPorts: 0
                        portAgeBucket: Moderate (91–180 days)
                        portFrequency: 0.08
                        portingVelocityCategory: Low
                        portingPattern: Unknown
                        portingYearBucket: Last Year
                        recentPortFlag: false
                    risk:
                      isPorted: true
                      isDisposable: false
                      phoneTypeRisk: Low
                      phoneTrustIndex: 0
                      networkStabilityIndex: 5
                      currentNetworkIsPremium: 'True'
                verificationStatus: VERIFIED
                verificationStatusCode: 3
                trustFlowId: 0
                trustValidationId: '{your_trust_validation_id}'
                verificationType: phone_number_insights
                metadata: null
                createdAt: <string>
components:
  schemas:
    PhoneNumberInsightsRequest:
      type: object
      required:
        - country_code
        - phone_number
        - trustFlowId
        - trustValidationId
      properties:
        country_code:
          type: string
          description: 'Country calling code for the phone number. Example: `+60`.'
        phone_number:
          type: string
          description: Phone number without the country code prefix.
        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.
    PhoneNumberInsightsResponse:
      type: object
      required:
        - success
        - message
        - data
        - verificationStatus
        - verificationStatusCode
        - trustFlowId
        - trustValidationId
        - verificationType
      properties:
        success:
          type: boolean
        message:
          type: string
        data:
          type: object
          description: >-
            Phone basic intelligence returned for the submitted number. Fields
            are dynamic—omitted when no data is available.
          properties:
            basic:
              $ref: '#/components/schemas/PhoneNumberInsightsBasic'
        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.
    PhoneNumberInsightsBasic:
      type: object
      description: >-
        Carrier, lifecycle, and risk signals for the phone number. Powered by
        Monnai `PHONE_BASIC`. All fields are dynamic and may be omitted when
        unavailable.
      additionalProperties: true
      properties:
        phoneNumber:
          type: string
          description: >-
            Normalized phone number after cleansing and validation. Example:
            `+14155552671`.
        country:
          type: string
          description: >-
            Country inferred from numbering plan and carrier intelligence.
            Example: `US`.
        phoneType:
          type: string
          description: >-
            Classification of the phone line type, useful for detecting
            VOIP-based or non-mobile risk patterns. Possible values: `MOBILE`,
            `FIXED`, `VOIP`, `UNKNOWN`.
        isActive:
          type: string
          description: >-
            Indicates whether the phone line is currently active or reachable
            based on telecom intelligence. Possible values: `YES`, `NO`,
            `UNKNOWN`.
        simType:
          type: string
          description: >-
            Indicates whether the SIM subscription is prepaid or postpaid, which
            can correlate with stability. Possible values: `PREPAID`,
            `POSTPAID`.
        originalCarrier:
          type: string
          description: >-
            Carrier that originally issued the number. Helps identify number
            provenance and telecom lineage. Example: `T-Mobile US`.
        currentCarrier:
          type: object
          description: Current network serving the phone number.
          additionalProperties: true
          properties:
            carrierType:
              type: string
              description: >-
                Type of carrier for the phone number. Possible values: `MOBILE`,
                `LANDLINE`, `VOIP`, `PAGER`, `SATELLITE`, `UNKNOWN`. May also
                return carrier classification values such as `MNO_MAJOR` or
                `MNO_MINOR`.
            prepaidMarketDominance:
              type: string
              description: >-
                Dominance of prepaid SIM usage in the carrier's market. Possible
                values: `HIGH`, `MEDIUM`, `LOW`, `UNKNOWN`.
            simRegistrationRegime:
              type: string
              description: >-
                SIM registration policy of the carrier's country. Possible
                values: `MANDATORY`, `VOLUNTARY`, `NOT_APPLICABLE`, `UNKNOWN`.
                May also return values such as `STRICT_ID` or
                `STRICT_BIOMETRIC`.
            networkName:
              type: string
              description: >-
                Carrier currently serving the number. Useful for carrier-level
                trust segmentation. Example: `Verizon Wireless`.
            serviceProfileId:
              type: string
              description: >-
                Provider-specific identifier for subscription/service profile
                configuration. Example: `151971`.
            mcc:
              type: string
              description: >-
                MCC (Mobile Country Code) identifying the country of the carrier
                network. Example: `310`.
            mnc:
              type: string
              description: >-
                MNC (Mobile Network Code) identifying the carrier within the
                MCC. Example: `012`.
        lifecycle:
          type: object
          description: Activation tenure and porting history for the phone number.
          additionalProperties: true
          properties:
            activation:
              type: object
              description: Activation tenure signals for the phone number.
              additionalProperties: true
              properties:
                tenure:
                  type: object
                  description: >-
                    Estimated tenure range (in months) that the number has been
                    active.
                  properties:
                    min:
                      type: integer
                      description: 'Minimum estimated tenure in months. Example: `24`.'
                    max:
                      type: integer
                      description: 'Maximum estimated tenure in months. Example: `48`.'
                tenureBracket:
                  type: string
                  description: >-
                    Bucketed representation of tenure, useful for simple
                    rule-based risk segmentation. Possible values: `Unknown`,
                    `lessthan6months`, `6to11months`, `12to24months`,
                    `morethan24months`.
                activationDate:
                  type: string
                  description: >-
                    Earliest known timestamp when the number was activated and
                    became usable. Example: `2021-07-18T10:45:30Z`.
                activeSinceXDays:
                  type: integer
                  description: >-
                    Days since first known activation. Helps estimate account
                    stability. Example: `900`.
            porting:
              type: object
              description: Carrier porting history and velocity signals.
              additionalProperties: true
              properties:
                portedDate:
                  type: string
                  description: >-
                    Timestamp of the most recent porting event, if the number
                    changed carriers. Example: `2023-11-02T14:20:00Z`.
                numberOfPorts:
                  type: integer
                  description: >-
                    Total count of carrier ports. Higher counts may indicate
                    SIM-swap or identity cycling patterns. Example: `1`.
                portedSinceXDays:
                  type: integer
                  description: >-
                    Days since the most recent porting event. Lower values may
                    indicate higher short-term risk. Example: `120`.
                portedEvents:
                  type: array
                  description: >-
                    Historical porting events containing carrier identity and
                    timestamps.
                  items:
                    type: object
                    properties:
                      carrierCircle:
                        type: string
                        description: >-
                          Carrier associated with the porting event. Example:
                          `Verizon Wireless`.
                      portedDate:
                        type: string
                        description: >-
                          Timestamp of this porting event. Example:
                          `2023-11-02T14:20:00Z`.
                avgDaysBetweenPorts:
                  type: number
                  format: float
                  description: >-
                    Average interval between porting events. Lower values
                    indicate frequent switching. Example: `0.0`.
                portAgeBucket:
                  type: string
                  description: >-
                    Categorizes porting recency to simplify risk interpretation.
                    Possible values: `Not Ported`, `Very Recent (≤30 days)`,
                    `Recent (31–90 days)`, `Moderate (91–180 days)`, `Old
                    (181–365 days)`, `Very Old (>365 days)`.
                portFrequency:
                  type: number
                  format: float
                  description: >-
                    Normalized frequency score describing how often the number
                    is ported. Expected range: `0.0` to `50.0`.
                portingVelocityCategory:
                  type: string
                  description: >-
                    Qualitative classification of porting speed based on
                    observed patterns. Possible values: `High`, `Medium`, `Low`,
                    `Unknown`.
                portingPattern:
                  type: string
                  description: >-
                    Indicates whether porting is regular or irregular. Irregular
                    porting can be a signal of suspicious behavior. Possible
                    values: `Regular`, `Somewhat Regular`, `Irregular`,
                    `Unknown`.
                portingYearBucket:
                  type: string
                  description: >-
                    Bucket indicating how long ago the most recent port
                    occurred. Possible values: `Current Year`, `Last Year`, `2
                    Years Ago`, `3 Years Ago`, `More than 3 Years Ago`,
                    `Unknown`.
                recentPortFlag:
                  type: boolean
                  description: >-
                    Indicates whether the number was ported within the last 30
                    days (commonly used for SIM-swap screening). Example:
                    `false`.
        risk:
          type: object
          description: Phone-level risk and trust indicators.
          additionalProperties: true
          properties:
            isPorted:
              type: boolean
              description: >-
                Indicates whether the number has ever been ported to another
                carrier. Example: `true`.
            isDisposable:
              type: boolean
              description: >-
                Indicates whether the number is likely disposable or temporary.
                Example: `false`.
            phoneTypeRisk:
              type: string
              description: >-
                Risk level derived from phone type (for example, VOIP numbers
                often have higher fraud correlation). Possible values: `High`,
                `Medium`, `Low`, `Unknown`.
            phoneTrustIndex:
              type: integer
              description: >-
                Aggregated trust score based on tenure, porting history, and
                stability indicators. Possible values: `0`, `1`, `2`, `3` —
                where `0` indicates Very Low trust and `3` indicates High trust.
            networkStabilityIndex:
              type: integer
              description: >-
                Numeric stability index where higher values typically indicate
                long tenure and fewer carrier changes. Index range: `0` to `8`.
            currentNetworkIsPremium:
              type: string
              description: >-
                Indicates whether the current carrier is classified as premium
                based on Monnai’s network classification. Possible values:
                `True`, `False`, `Unknown`.
  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.