Sign inGet Started

Telefonnummer nachschlagen

Ein einziger Aufruf beantwortet, was eine Nummer ist. Alles hier erfordert einen API-Key mit dem Scope lookup.

Einfache Abfrage ausführen

Senden Sie die Nummer ohne weitere Parameter. Die Basisabfrage wird immer genau einmal berechnet und liefert immer das Land, das aktuell zustellende Netz, das ursprünglich zuweisende Netz und einen groben Leitungstyp.
const answer = await bird.lookup.phoneNumber({
  phone_number: "+31612345678",
  type: ["classification", "score"],
});
console.log(answer.country_code, answer.line_type);
// Only a block whose status is ok carries a value, and only that one is billed.
if (answer.score?.status === "ok") console.log(answer.score.value);

So schreiben Sie die Nummer

Senden Sie die Landesvorwahl, dann die nationale Nummer. Das führende + ist optional und 00 funktioniert an seiner Stelle, sodass +31612345678, 31612345678 und 0031612345678 alle dieselbe Nummer sind.
Eine Nummer, die zum Wählen innerhalb eines Landes formatiert ist und keinen Ländercode enthält, wird abgelehnt statt geraten. 0612345678 gibt E22000 zurück, weil das Voranstellen eines Ländercodes eine reale Nummer anderswo benennen und Ihnen deren Abfrage berechnen würde.

Was die Basisabfrage liefert

country_code ist das Land der Nummer. Es fehlt, wenn die Nummer keinem einzelnen Land zugehört, wie es bei einem nicht-geografischen Nummernbereich der Fall ist.
network_info ist das Netz, das die Nummer aktuell bedient, und original_network_info ist das Netz, das den Nummernbereich vergeben hat. Beide unterscheiden sich, wenn die Nummer portiert wurde, und in diesem Fall enthält flags den Wert ported.
line_type gibt an, welche Art von Anschluss die Nummer ist: mobile, fixed_line, voip, toll_free, premium_rate, satellite, pager, payphone, m2m, service, other oder unknown. unknown bedeutet, dass die Carrier-Plattform keine Klassifikation für den Bereich hat; other bedeutet, dass eine Klassifikation existiert, die hier kein Äquivalent hat. Für den zugewiesenen Dienst in feinerer Auflösung fordern Sie die Eigenschaft classification an. Sie antwortet aus einer anderen Quelle mit einem umfangreicheren Vokabular und wird separat gemeldet, sodass Sie die beiden immer unterscheiden können.

Eigenschaften hinzufügen

Geben Sie die gewünschten Eigenschaften in type an. Jede wird einzeln berechnet und nur bei Lieferung.
EigenschaftWas sie liefert
classificationDen genauen zugewiesenen Dienst des Bereichs: Premium-Rate, Satellit, M2M, Münztelefon.
portingWann die Nummer zuletzt das Netz gewechselt hat und jeder Wechsel in der Historie.
presenceOb die Nummer derzeit im Netz aktiv ist.
roamingOb sie sich im Roaming befindet und in welchem Netz.
sim_swapWann die SIM zuletzt gewechselt wurde.
scoreEin Glaubwürdigkeitswert von 0 bis 100.
classification, porting und score lesen gespeicherte Daten und antworten schnell. presence, roaming und sim_swap greifen auf das Live-Netz zu und sind daher langsamer; ihre Abdeckung variiert je nach Betreiber. Erwarten Sie unavailable oder inconclusive bei diesen häufiger als bei den gespeicherten.
Zwei Eigenschaften beantworten Fragen, die die Basisabfrage bereits berührt, in höherer Auflösung. porting liefert Ihnen das Datum und die vollständige Historie, während das Flag ported der Basisabfrage nur angibt, ob ein Wechsel jemals stattgefunden hat. classification löst line_type zum genauen zugewiesenen Dienst auf.

Lesen Sie den Status vor dem Wert

Jeder Eigenschaftsblock enthält einen status, und nur ok enthält einen Wert.
Codebeispiel
{
  "phone_number": "+441904123456",
  "country_code": "GB",
  "line_type": "service",
  "classification": {
    "status": "ok",
    "value": "premium_rate"
  },
  "score": {
    "status": "unavailable"
  }
}
In dieser Antwort wurde Ihnen die Basisabfrage und classification berechnet. score wurde Ihnen nicht berechnet.
Lesen Sie zuerst status und behandeln Sie jeden Wert außer ok als "not answered". Das Vokabular ist offen, ein Ihnen unbekannter Wert ist also ein künftiger Status und kein Fehler.
Zwei Blöcke melden eine Grenze statt eines exakten Werts, wenn das Netz keinen herausgibt. sim_swap gibt min_days und max_days anstelle von last_swapped_at zurück, wenn nur ein Aktualitätsband bekannt ist. porting setzt last_ported_at_is_approximate, wenn ein Register den Zeitraum eines Wechsels erfasst, aber nicht den Tag.
Ein Feld liest sich wie ein negativer Befund, ist aber ein positiver: porting.ported mit dem Wert false bedeutet, dass das Register abgefragt wurde und keinen Wechsel für diese Nummer verzeichnet, nicht dass nichts geprüft werden konnte. Genau diese Unterscheidung ist der Zweck von status.

Erneut versuchen, ohne doppelt zu zahlen

Eine Abfrage wird berechnet, daher darf ein wiederholter Request keine zweite Antwort kaufen. Senden Sie einen Idempotency-Key, und eine Wiederholung desselben Requests spielt die gespeicherte Antwort ab, statt eine neue Abfrage auszuführen. Siehe Idempotenz.
Die GET-Variante dieser Operation, die die Nummer in die URL setzt, kann keinen Idempotenz-Schlüssel übertragen. Verwenden Sie die POST-Variante für alles Automatisierte.

Fehler

CodeWas passiert ist
E22000Die Nummer ist keine gültige Telefonnummer im internationalen Format. Es wurde nichts berechnet.
E22001Das Guthaben der Organisation reicht nicht für die Abfrage. Laden Sie es auf und versuchen Sie es erneut. Es wurde nichts berechnet.
E22002Die Abfrage ist vorübergehend nicht verfügbar. Versuchen Sie es mit Backoff erneut. Es wurde nichts berechnet.
Eine fehlschlagende Eigenschaft ist kein Fehler. Sie wird als Status in ihrem Block zurückgegeben, und die Basisabfrage wird daneben ausgeliefert.

Nächste Schritte

Verwandte Ressourcen

Weiter mit der Dokumentation, Anleitungen und Beispielen zu diesem Thema.