Abstract API Phone Validation API

Single GET endpoint that validates and verifies a phone number and returns validity, local and international formats, country, registered location, line type, and carrier. Authenticated with an api_key query parameter; number is supplied via the phone query parameter in E.164 format. Endpoint, method, and auth were live-confirmed 2026-07-12; response fields are grounded in Abstract API documentation and official SDKs.

OpenAPI Specification

abstractapi-phone-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Abstract API Phone Validation
  description: >-
    The Abstract API Phone Number Validation & Verification API validates and
    verifies a phone number in a single request. Send a number (ideally in E.164
    format) and the API returns whether the number is valid, its local and
    international formats, the country it belongs to, the registered location,
    the line type (mobile, landline, VoIP, etc.), and the carrier. It is a
    single GET endpoint authenticated with an API key passed as a query
    parameter. This is one product in the broader Abstract API suite (which also
    includes email validation, IP geolocation, and other data APIs), each with
    its own host and its own API key.

    Endpoint path, HTTP method, and authentication were live-confirmed against
    the production host on 2026-07-12 (GET only; api_key query parameter; 401
    "Invalid API key provided" on a bad key). The response field set is grounded
    in Abstract API's published documentation and official SDKs; exact example
    values are illustrative.
  version: '1.0'
  contact:
    name: Abstract API
    url: https://www.abstractapi.com
  x-grounding: >-
    Endpoint/method/auth live-probed 2026-07-12 at
    https://phonevalidation.abstractapi.com/v1/. Response schema modeled from
    Abstract API docs and official SDK field lists.
servers:
  - url: https://phonevalidation.abstractapi.com/v1
    description: Abstract API Phone Validation production host
security:
  - apiKeyQuery: []
tags:
  - name: Phone Validation
    description: Validate and verify a phone number and return carrier, line type, and location.
paths:
  /:
    get:
      operationId: validatePhone
      tags:
        - Phone Validation
      summary: Validate and verify a phone number
      description: >-
        Validates a single phone number and returns validity, local and
        international formats, country, registered location, line type, and
        carrier. The number should be supplied in E.164 format (for example
        +14152007986); an optional country hint can help interpret numbers
        supplied without a country code.
      parameters:
        - name: api_key
          in: query
          required: true
          description: Your Abstract API Phone Validation API key.
          schema:
            type: string
        - name: phone
          in: query
          required: true
          description: >-
            The phone number to validate and verify, ideally in E.164 format
            (e.g. +14152007986).
          schema:
            type: string
        - name: country
          in: query
          required: false
          description: >-
            Optional ISO 3166-1 alpha-2 country code used to interpret a phone
            number submitted without an international dialing code.
          schema:
            type: string
      responses:
        '200':
          description: Validation and verification result for the submitted phone number.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PhoneValidationResult'
        '204':
          description: No content returned (for example, when the phone parameter is missing).
        '401':
          description: Missing or invalid API key.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '422':
          description: A required parameter is missing or malformed.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
        '429':
          description: Rate limit or monthly quota exceeded.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
components:
  securitySchemes:
    apiKeyQuery:
      type: apiKey
      in: query
      name: api_key
      description: >-
        Abstract API authenticates by an API key passed as the `api_key` query
        parameter. Each Abstract API product (phone validation, email
        validation, etc.) has its own distinct key.
  schemas:
    PhoneFormat:
      type: object
      description: Local (national) and international representations of the number.
      properties:
        international:
          type: string
          description: The number in international E.164 format, e.g. +14152007986.
        local:
          type: string
          description: The number in national/local format, e.g. (415) 200-7986.
    PhoneCountry:
      type: object
      description: The country the phone number is registered to.
      properties:
        code:
          type: string
          description: ISO 3166-1 alpha-2 country code, e.g. US.
        name:
          type: string
          description: Country name, e.g. United States.
        prefix:
          type: string
          description: Country calling code / dialing prefix, e.g. +1.
    PhoneValidationResult:
      type: object
      description: >-
        The validation and verification result. Field names and structure follow
        Abstract API's documented classic phone validation response.
      properties:
        phone:
          type: string
          description: The phone number that was submitted, normalized.
        valid:
          type: boolean
          description: Whether the number is valid.
        format:
          $ref: '#/components/schemas/PhoneFormat'
        country:
          $ref: '#/components/schemas/PhoneCountry'
        location:
          type: string
          description: Registered location (region/state/city) associated with the number.
        type:
          type: string
          description: >-
            Line type of the number. Documented values include mobile, landline,
            voip, toll_free, personal, pager, and unknown.
        carrier:
          type: string
          description: The carrier / telecom provider the number is registered with.
    Error:
      type: object
      properties:
        error:
          type: object
          properties:
            message:
              type: string
            code:
              type: string
            details:
              type: object
              nullable: true
              additionalProperties: true