Phone number lookup
Sepa qué es un número. Antes de enviarle algo.
Un POST, una respuesta, sin recursos que crear ni consultar. La consulta base devuelve el país del número, la red que lo sirve actualmente, la red que emitió su rango, un indicador de si se ha movido entre ambas y qué tipo de línea es. Cinco propiedades adicionales están disponibles con solo nombrarlas.
const answer = await bird.lookup.phoneNumber({
phone_number: "+31612345678",
type: ["classification", "porting"],
});
console.log(answer.country_code, answer.line_type);
// → "NL" "mobile"
console.log(answer.network_info?.carrier_name);
// → "KPN"
console.log(answer.original_network_info?.carrier_name);
// → "Vodafone"
console.log(answer.flags);
// → ["ported"]
if (answer.porting?.status === "ok") {
console.log(answer.porting.ported, answer.porting.last_ported_at);
// → true "2021-04-18T00:00:00Z"
}
Dos redes y la diferencia entre ellas.
Esa diferencia es cómo se ve la portabilidad en una respuesta.
Phone number lookup es una de las dos operaciones de la Bird Lookup API. Envíe un número en formato internacional, con o sin el signo más inicial, y recibirá country_code, un bloque network_info del operador que sirve el número actualmente y un bloque original_network_info del operador al que se asignó su rango. Cuando ambos difieren, el número ha sido portado y flags lo indica. Los números exclusivamente nacionales se rechazan en lugar de adivinarse, así que una entrada errónea falla de forma explícita en vez de devolver una respuesta plausible sobre el país equivocado.
Qué se devuelve y cuándo.
Los tres primeros llegan con cada consulta. El resto llega cuando los nombra en type.
- 01
País y ambos operadores.
country_code es el país ISO del rango y está ausente para números no geográficos en lugar de adivinarse. network_info y original_network_info incluyen el nombre del operador más los códigos de país y red móvil, que es lo que necesita si enruta por MCC y MNC en lugar de por nombre.
- 02
Tipo de línea, de una lista cerrada.
mobile, fixed_line, voip, toll_free, premium_rate, satellite, pager, payphone, m2m, service, other o unknown. La lista es cerrada, así que un switch sobre ella se mantiene exhaustivo, y es el campo a verificar antes de decidir si un SMS es siquiera posible.
- 03
El indicador de portabilidad, sin coste adicional.
flags incluye ported cuando el número ha cambiado de red en algún momento. Llega con la respuesta base, así que la pregunta sencilla de si un número ha sido portado alguna vez no requiere ninguna propiedad adicional.
- 04
classification, una segunda opinión sobre la línea.
Una lectura más detallada de una fuente diferente, con valores que line_type no tiene: fixed_line_or_mobile, shared_cost, national_rate, personal_number, isp, voice_mail, short_codes y más. Se sitúa junto a line_type en la respuesta en lugar de reemplazarlo, para que pueda comparar ambos cuando un número parece inusual.
- 05
porting, con fechas e historial.
ported como booleano, last_ported_at como marca de tiempo, last_ported_at_is_approximate cuando el registro solo conoce el mes, e history como la lista de eventos de portabilidad del más antiguo al más reciente. Cada evento incluye un código de acción específico del registro, que vale la pena mostrar pero no ramificar sobre él.
- 06
presence y roaming, desde la red en tiempo real.
presence consulta la red e informa reachable, que es lo más cercano a preguntar si la línea está encendida. roaming informa is_roaming más el MCC y MNC de la red visitada, así que un registro desde un número conectado a una red extranjera es algo que puede ver en lugar de inferir.
- 07
score, un único número de 0 a 100.
Una puntuación de credibilidad compuesta. No se puede derivar de las demás propiedades, que es precisamente la razón de solicitarla: un entero sobre el que puede establecer un umbral en un flujo de registro sin escribir reglas sobre nombres de operadores y tipos de línea usted mismo.
Cada propiedad indica si respondió.
Cada bloque lleva su propio estado: ok, unavailable o inconclusive. Solo ok incluye un valor, así que nunca tiene que inspeccionar una respuesta para saber que está vacía, y un campo sin valor se omite en lugar de establecerse como null. La facturación sigue la misma lógica. La consulta base se factura una vez, una propiedad se factura solo cuando su estado es ok, y una consulta fallida no se factura.
const answer = await bird.lookup.phoneNumber({
phone_number: "+31612345678",
type: ["presence", "roaming", "score"],
});
// Only a block whose status is ok carries a value.
if (answer.presence?.status === "ok") {
console.log(answer.presence.reachable);
}
if (answer.roaming?.status === "ok") {
console.log(answer.roaming.is_roaming, answer.roaming.mcc, answer.roaming.mnc);
}
// unavailable and inconclusive both mean no value, and no charge.
if (answer.score?.status !== "ok") {
console.log("no credibility score on this answer");
}
Un número por solicitud.
No existe formato por lotes, por diseño: una consulta es una petición en tiempo real contra datos de operadores, y un lote ocultaría cuál de las mil filas fue respondida y cuál no. El límite de tasa comienza en 10 solicitudes por minuto por credencial activa y Lookup tiene su propio presupuesto, así que la verificación de números nunca consume su cuota de envío. Envíe un Idempotency-Key y un reintento reproduce la respuesta que ya pagó en lugar de comprar una segunda.
Profundice en la documentación.
Consultar un número de teléfono recorre la solicitud y cada campo que puede devolver. La descripción general de Lookup cubre ambas operaciones y los estados de propiedades en una página, límites de tasa documenta el grupo de lookup, e idempotencia explica cuánto cuesta una respuesta reproducida.
Preguntas sobre phone number lookup, respondidas.
Formato, tipos de línea, portabilidad y lo que una consulta no hace.
¿Qué responde una consulta de número de teléfono?
¿Cómo debo escribir el número?
¿Por qué fue rechazado mi número?
¿Qué tipos de línea puede devolver?
¿Cómo sé si un número ha sido portado?
¿Por qué falta country_code en mi respuesta?
¿Una consulta llama o envía un mensaje al número?
Ponlo en práctica.
Continúa con la documentación, guías y ejemplos sobre este tema. Los recursos están en inglés.
El resto de Lookup
Una clave API, un formato de error. Explore la otra capacidad.
Ejecute su primera consulta con un número que conozca.
El panel ejecuta la misma operación con un número a la vez, lo que es la forma más rápida de ver un resultado antes de escribir código.