---
title: "Validate a single phone number"
method: POST
path: "/v1/validate-phone/single"
tags: ["Validation"]
---

# Validate a single phone number

`POST /v1/validate-phone/single`

Validates a phone number and returns detailed information including whether it's valid, reachable (active/alive), carrier information, and the caller ID name associated with the number.

<span>⚡ <strong>Rate limit:</strong> 60 requests per 1 minute</span>

<span>💰 <strong>Cost:</strong> 3 credits per phone validation&nbsp;<span title="Pricing shown is default pricing. Actual pricing may vary.">ⓘ</span></span>

## Request body

- object
  - `apiKey` string, required — Your Fiber API key
  - `phoneNumber` string, required — Phone number to validate. E.164 (e.g. +14155551234) is recommended; other formats with spaces, dashes, or parentheses are accepted.

## Response `200`

Default Response

- object
  - `output` object, required
    - `formattedNumber` string, nullable — Phone number in international format (e.g., +1 234 567 8900)
    - `nationalFormat` string, nullable — Phone number in national format
    - `countryCallingCode` string, nullable — Country calling code with plus prefix (e.g. '+1', '+44'), derived from validation result; not used as request input.
    - `countryIsoCode` string, nullable — ISO 3166-1 alpha-2 country code (e.g. 'US', 'GB'), derived from validation result; not used as request input.
    - `countryName` string, nullable — Full country name (e.g. 'United States'), derived from validation result.
    - `isValid` boolean, required — Whether the phone number is valid
    - `isReachable` 'reachable' | 'not_reachable' | 'bad_number' | 'unknown', required — Whether the phone number is currently reachable (alive/active status)
    - `isPorted` boolean, required — Whether the number has been ported to a different carrier
    - `isRoaming` boolean, required — Whether the number is currently roaming
    - `currentCarrier` object, nullable — Information about the current carrier
      - `name` string, nullable
      - `networkType` string, nullable
      - `country` string, nullable
    - `originalCarrier` object, nullable — Information about the original carrier that issued the number
      - `name` string, nullable
      - `networkType` string, nullable
      - `country` string, nullable
    - `callerIdName` string, nullable — The name associated with this phone number (what shows up on caller ID)
    - `validationScore` integer, required — Validation score from 0-10 (10 = valid and reachable, 6 = valid but not reachable, 2 = unknown, 0 = invalid)
    - `validationStatus` 'valid_reachable' | 'valid_not_reachable' | 'invalid' | 'unknown', required — Overall validation status
  - `chargeInfo` union, required
    - object — Credits were charged immediately for this operation
      - `method` 'charged-now', required
      - `creditsCharged` number, required
      - `lowCreditAlert` object, nullable — Contains a link to get more credits, a warning message, and the remaining credit count.
        - `getMoreCreditsUrl` string, uri, required — URL to top up credits or restart billing cycle to get fresh credits.
        - `message` string, required — Human-readable credits warning.
        - `availableCredits` number, required — Number of credits remaining in the current billing period.
    - object — Credits will be charged after the operation completes
      - `method` 'charging-later', required
      - `message` string, required
      - `lowCreditAlert` object, nullable — Contains a link to get more credits, a warning message, and the remaining credit count.
        - `getMoreCreditsUrl` string, uri, required — URL to top up credits or restart billing cycle to get fresh credits.
        - `message` string, required — Human-readable credits warning.
        - `availableCredits` number, required — Number of credits remaining in the current billing period.
    - object — Credits that were charged for an asynchronous operation
      - `method` 'charged-for-async-process', required
      - `creditsCharged` number, required
      - `message` string, required
      - `lowCreditAlert` object, nullable — Contains a link to get more credits, a warning message, and the remaining credit count.
        - `getMoreCreditsUrl` string, uri, required — URL to top up credits or restart billing cycle to get fresh credits.
        - `message` string, required — Human-readable credits warning.
        - `availableCredits` number, required — Number of credits remaining in the current billing period.
    - object — No credits were charged for this operation
      - `method` 'free', required
      - `message` string, required
      - `lowCreditAlert` object, nullable — Contains a link to get more credits, a warning message, and the remaining credit count.
        - `getMoreCreditsUrl` string, uri, required — URL to top up credits or restart billing cycle to get fresh credits.
        - `message` string, required — Human-readable credits warning.
        - `availableCredits` number, required — Number of credits remaining in the current billing period.
    - object — Credits were refunded for this operation
      - `method` 'credits-refunded', required
      - `creditsRefunded` number, required
      - `message` string, required
      - `lowCreditAlert` object, nullable — Contains a link to get more credits, a warning message, and the remaining credit count.
        - `getMoreCreditsUrl` string, uri, required — URL to top up credits or restart billing cycle to get fresh credits.
        - `message` string, required — Human-readable credits warning.
        - `availableCredits` number, required — Number of credits remaining in the current billing period.
  - `warnings` object[], nullable — Warnings about extraneous fields in request
    - `field` string, required — Full path to extraneous field (e.g., 'searchParams.ExtraField')
    - `message` string, required — Warning message
  - `advice` string[], nullable — Tips, recommendations, and suggestions for using this API effectively.

## Other responses

- `400` — Default Response
- `401` — Default Response
- `402` — Default Response
- `403` — Default Response
- `404` — Default Response
- `422` — Default Response
- `429` — Default Response
- `500` — Default Response
- `503` — Default Response

---

[API](https://skmtc.net/fiber/apis/fiber-ai-api.md) · [All operations](https://skmtc.net/fiber/apis/fiber-ai-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/fiber/fiber-ai-api/versions/0c537984b99f/schema)
