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

# Phone Number Normalizer API

> Data quality issues start when phone numbers arrive in dozens of inconsistent formats across your contact database. The Phone Number Normalizer API standardizes phone numbers into E.164 international format, returning cleaned numbers with country codes, area codes, and validation status that ensure CRM integration compatibility and dialer system accuracy. Built for data enrichment platforms, contact management systems, and communication automation tools, this RESTful endpoint delivers normalized phone data—including format corrections, carrier type detection, and validity flags—that power click-to-dial functionality, SMS delivery optimization, and duplicate contact consolidation workflows across your sales and marketing stack.

export const ReadMore = ({link, children, className = ""}) => {
  return <div className={`${className}`}>
      <h3>Read More</h3>
      <Button href={link} target="_blank" variant="outline" size="md" color="primary" className="mt-2">
        <Icon icon="code" size={24} className="!mint-bg-emerald-600 mr-2" />
        {children}
      </Button>
    </div>;
};

export const Button = ({variant = "fill", size = "md", color = "primary", href, target, children, className = "", style = {}}) => {
  const isLink = !!href;
  const variantClassname = {
    fill: "border-none mint-bg-[var(--color)] !mint-text-white hover:mint-bg-[var(--color-dark)]",
    outline: "border !mint-border-b border-solid mint-border-[var(--color)] !mint-text-[var(--color)] mint-bg-[var(--color-lightest)] hover:mint-bg-[var(--color-lighter)]",
    text: "border-none bg-transparent !mint-text-[var(--color)] hover:mint-bg-[var(--color-lighter)]"
  };
  const sizeClassname = {
    sm: "px-3 py-1 rounded-md text-sm",
    md: "px-6 py-2 rounded-lg text-base",
    lg: "px-8 py-2.5 rounded-xl text-lg"
  };
  const colors = {
    primary: "rgb(22 163 74)",
    info: "rgb(43 127 255)",
    warning: "rgb(254 154 0)",
    error: "rgb(251 44 54)"
  };
  const Comp = isLink ? "a" : "button";
  return <Comp href={isLink ? href : undefined} target={isLink ? target : undefined} className={`inline-block duration-150 transition-all font-medium ${variantClassname[variant]} ${sizeClassname[size]} ${className}`} style={{
    "--color": colors[color],
    "--color-lightest": `color-mix(in srgb, ${colors[color]}, white 90%)`,
    "--color-lighter": `color-mix(in srgb, ${colors[color]}, white 80%)`,
    "--color-light": `color-mix(in srgb, ${colors[color]}, white 10%)`,
    "--color-dark": `color-mix(in srgb, ${colors[color]}, black 10%)`,
    ...style
  }}>
      {children}
    </Comp>;
};

export const SDKsList = ({className = ""}) => {
  const sdks = [{
    href: "https://github.com/CUFinder/cufinder-ts",
    title: "Typescript",
    description: "The Official TypeScript SDK for CUFinder APIs",
    imgSrc: "/images/logos/typescript.svg"
  }, {
    href: "https://github.com/CUFinder/cufinder-py",
    title: "Python",
    description: "The Official Python SDK for CUFinder APIs",
    imgSrc: "/images/logos/python.svg"
  }, {
    href: "https://github.com/CUFinder/cufinder-go",
    title: "Go",
    description: "The Official Go SDK for CUFinder APIs",
    imgSrc: "/images/logos/go.svg"
  }, {
    href: "https://github.com/CUFinder/cufinder-rust",
    title: "Rust",
    description: "The Official Rust SDK for CUFinder APIs",
    imgSrc: "/images/logos/rust.svg",
    darkRevert: true
  }, {
    href: "https://github.com/CUFinder/cufinder-ruby",
    title: "Ruby",
    description: "The Official Ruby SDK for CUFinder APIs",
    imgSrc: "/images/logos/ruby.svg"
  }];
  return <div className={`divide-y divide-slate-200 divide-solid ${className}`}>
      <h2>CUFinder Official SDKs</h2>
      <ul className="grid grid-cols-1 sm:grid-cols-2 lg:grid-cols-3 gap-y-4">
        {sdks.map(sdk => <li key={sdk.title}>
            <a href={sdk.href} target="_blank" className="flex items-center gap-4">
              <img src={sdk.imgSrc} alt={sdk.title} noZoom width={100} height={100} className={`w-12 !my-0 ${sdk.darkRevert ? "dark:invert-100" : ""}`} />
              <div>
                <div>
                  <p className="text-sm text-gray-800 dark:text-gray-200">{sdk.title}</p>
                </div>
                <div>
                  <p className="text-xs text-gray-500 leading-[1.2rem]">
                    {sdk.description}
                  </p>
                </div>
              </div>
            </a>
          </li>)}
      </ul>
    </div>;
};

<div id="cuf-use-cases" className="cuf-use-cases">
  ## Common Use Cases

  Consistent phone formatting keeps dialers, deduplication, and compliance running smoothly.

  * **Data Hygiene:** Standardizing phone numbers to a consistent format before storage.
  * **Deduplication:** Matching records that store the same number different ways.
  * **Dialer Readiness:** Formatting numbers so calling tools dial correctly.
  * **Compliance:** Keeping numbers in a valid format for messaging and consent.
  * **Data Integration:** Reconciling phone formats across systems and imports.
</div>

<Badge color="blue" size="lg" icon="star" className="mt-3">
  Credit usage is 1 per record found.
</Badge>

## Attributes

<ParamField body="phone" type="string" required>
  Phone Number
</ParamField>

## Response

<CodeGroup>
  ```json Response theme={null}
  {
      "status": 1,
      "data": {
          "confidence_level": 99,
          "query": "+13108073300",
          "phone": "+1 310 807 3300",
          "credit_count": 22
      }
  }
  ```
</CodeGroup>

<SDKsList className="mt-20" />

<div className="mt-20">
  ## Phone Number Normalizer API Typescript SDK

  <CodeGroup>
    ```typescript Request theme={null}
    import { Cufinder } from '@cufinder/cufinder-ts';

    // Initialize the client
    const client = new Cufinder('your-api-key-here');

    // Initialize with more options
    const client = new Cufinder('your-api-key-here', { timeout: 60000 });

    const result = await client.nao('+18006676389')
    console.log(result); 
    ```
  </CodeGroup>
</div>

<div className="mt-12">
  ## Phone Number Normalizer API Python SDK

  <CodeGroup>
    ```python Request theme={null}
    from cufinder import Cufinder

    # Initialize the client
    client = Cufinder('your-api-key-here')

    # Initialize with more options
    client = Cufinder('your-api-key-here', timeout=60)

    result = client.nao('+18006676389')
    print(result)
    ```
  </CodeGroup>
</div>

<div className="mt-12">
  ## Phone Number Normalizer API Go SDK

  <CodeGroup>
    ```go Request theme={null}
    package main

    import (
        "fmt"
        "log"
        
        "github.com/cufinder/cufinder-go"
    )

    func main() {
        // Initialize the client
        sdk := cufinder.NewSDK("your-api-key-here")
        
        // Initialize with more options
        sdk := cufinder.NewSDKWithConfig(cufinder.ClientConfig{
            APIKey:     "your-api-key-here",
            BaseURL:    "https://api.cufinder.io/v2",
            Timeout:    60 * time.Second,
            MaxRetries: 3,
        })
    }
    result, err := sdk.NAO("+18006676389")
    if err != nil {
        log.Fatal(err)
    }
    fmt.Println(result)
    ```
  </CodeGroup>
</div>

<div className="mt-12">
  ## Phone Number Normalizer API Ruby SDK

  <CodeGroup>
    ```ruby Request theme={null}
     require 'cufinder_ruby'

    # Initialize the client
    client = Cufinder::Client.new(api_key: 'your-api-key-here')

    # Initialize with more options
    client = Cufinder::Client.new(
        api_key: 'your-api-key-here',
        timeout: 60,
        max_retries: 3
    )

    result = client.nao(phone: "+18006676389")
    puts result
    ```
  </CodeGroup>
</div>

<div className="mt-12">
  ## Phone Number Normalizer API Rust SDK

  <CodeGroup>
    ```rust Request theme={null}
    use cufinder_rust::CufinderSDK;

    #[tokio::main]
    async fn main() -> Result<(), Box<dyn std::error::Error>> {
        // Initialize the client
        let sdk = CufinderSDK::new("your-api-key-here".to_string())?;
        
        // Initialize with more options
        let sdk = CufinderSDK::with_config(ClientConfig {
            api_key: "your-api-key-here".to_string(),
            base_url: "https://api.cufinder.io/v2".to_string(),
            timeout: Duration::from_secs(60),
            max_retries: 3,
        })?;
        
        Ok(())
    }

    let result = sdk.nao("+18006676389").await?;
    println!("{:?}", result);
    ```
  </CodeGroup>
</div>

## Related APIs

<CardGroup cols={2}>
  <Card title="Address Normalizer" icon="map-pin" href="/apis/address-normalizer">
    Standardize and validate postal addresses.
  </Card>

  <Card title="Company Normalizer" icon="building" href="/apis/company-name-normalizer">
    Clean and standardize company names.
  </Card>

  <Card title="Company Phone Finder" icon="phone" href="/apis/company-phone-finder">
    Find a company's phone numbers.
  </Card>

  <Card title="Company Enrichment" icon="building" href="/apis/company-enrichment">
    Enrich a company with full firmographics.
  </Card>
</CardGroup>
