TToolBox
💻
💻 dev
10 апреля 2026 г.7 мин чтения

Как искать проверенные номера телефонов с TypeScript

Как искать проверенные номера телефонов с TypeScript
В этой статье

С помощью TypeScript и публичных API можно за 200 мс получить подтверждённый номер телефона — достаточно добавить несколько строк кода.

По данным аналитики 2026 года, проверка телефонных номеров в реальном времени занимает менее 200 мс — с помощью TypeScript и публичных API можно быстро получить подтверждённый номер. Для разработчиков это значит, что в приложении можно отобразить статус «верифицирован» за секунды.

Как настроить проект TypeScript для поиска проверенных номеров?

Для начала необходимо установить нужные пакеты и создать базовую конфигурацию.

  • 1. Инициализируйте npm‑проект: npm init -y.
  • 2. Установите TypeScript и типы: npm i -D typescript @types/node.
  • 3. Создайте tsconfig.json со следующими настройками:
    {
      "compilerOptions": {
        "target": "ES2022",
        "module": "commonjs",
        "strict": true,
        "esModuleInterop": true,
        "outDir": "dist"
      }
    }
  • 4. Добавьте библиотеку для HTTP‑запросов, например Axios: npm i axios.
  • 5. Напишите файл src/index.ts и импортируйте Axios:
    import axios from 'axios';
    
    async function verifyPhone(phone: string): Promise {
      const apiKey = 'YOUR_API_KEY';
      const url = `https://api.phoneverify.io/v1/lookup?number=${phone}&key=${apiKey}`;
      const response = await axios.get(url);
      console.log('Статус:', response.data.status);
    }
    
    verifyPhone('+79161234567');
  • 6. Скомпилируйте и запустите: npx tsc && node dist/index.js. В консоли вы увидите статус верификации.

Почему стоит использовать публичные API для верификации номеров?

Публичные сервисы предоставляют актуальные базы данных и гарантируют точность выше 98 %.

  • • Обновления в реальном времени: базы обновляются каждый день, что снижает риск устаревших данных.
  • • Масштабируемость: в 2026 году более 85 % компаний используют такие API, обслуживая до 10 млн запросов в сутки без деградации.
  • • Стоимость: базовый тариф «Starter» стоит 199 руб. в месяц и включает 10 000 проверок.
  • • Безопасность: запросы идут по HTTPS, а ответы подписываются HMAC‑подписью.

Что делать, если API возвращает ошибку 429 (превышен лимит запросов)?

Ошибка 429 означает, что вы превысили допустимое количество запросов за минуту.

  • 1. Проверьте текущий лимит в документации – обычно 60 запросов в секунду.
  • 2. Внедрите экспоненциальную задержку (back‑off). Пример кода:
    let retry = 0;
    while (retry < 5) {
      try {
        const res = await axios.get(url);
        return res;
      } catch (e) {
        if (e.response?.status === 429) {
          const delay = Math.pow(2, retry) * 1000; // 1s, 2s, 4s, …
          await new Promise(r => setTimeout(r, delay));
          retry++;
        } else {
          throw e;
        }
      }
    }
  • 3. При постоянных превышениях обратитесь в поддержку сервиса и запросите повышение лимита.
  • 4. Рассмотрите кеширование результатов на 5–10 минут, чтобы уменьшить количество повторных запросов.

Какие ограничения существуют при работе с верификацией в 2026 году?

Сервисы вводят ограничения, связанные с законодательством и нагрузкой.

  • • Гео‑ограничения: в России доступен только отечественный провайдер с поддержкой формата E.164.
  • • Ограничение по количеству запросов: бесплатный план позволяет до 5 000 запросов в месяц, платный – до 1 000 000.
  • • Сроки хранения данных: согласно ФЗ‑152, хранить результаты более 30 дней без согласия пользователя нельзя.
  • • Стоимость дополнительных запросов: каждый запрос сверх лимита стоит 0,05 руб.

Как интегрировать результат проверки в пользовательский интерфейс?

Отображайте статус сразу после ввода номера, используя реактивные фреймворки.

  • 1. В React‑компоненте создайте состояние status и функцию handleChange.
    import React, { useState } from 'react';
    import axios from 'axios';
    
    function PhoneInput() {
      const [status, setStatus] = useState('');
      const [value, setValue] = useState('');
    
      const handleChange = async (e: React.ChangeEvent<HTMLInputElement>) => {
        const phone = e.target.value;
        setValue(phone);
        if (phone.length >= 11) {
          try {
            const res = await axios.get(`https://api.phoneverify.io/v1/lookup?number=${phone}&key=YOUR_API_KEY`);
            setStatus(res.data.status === 'valid' ? '✅ Верифицирован' : '❌ Не найден');
          } catch (err) {
            setStatus('⚠ Ошибка сервера');
          }
        }
      };
    
      return (
        
    {status}
    ); } export default PhoneInput;
  • 2. Стилизуйте статус с помощью CSS‑классов .valid и .invalid для визуального акцента.
  • 3. При необходимости отправляйте полученный статус на бекенд для дальнейшего анализа и хранения в базе.
Воспользуйтесь бесплатным инструментом Phone Verify API Tester на toolbox-online.ru — работает онлайн, без регистрации.
Поделиться:

Теги

#typescript#api#javascript#nodejs#validation