Sign inGet Started

Eine Nummer kaufen und freigeben

Der Kauf einer Nummer erfordert zwei Aufrufe: Durchsuchen Sie ein Land nach verfügbaren Nummern und bestellen Sie dann die gewünschte. Alles hier erfordert einen API-Schlüssel mit dem Scope numbers, und der erste Kauf in einer Organisation erfordert eine Identitätsprüfung.

Ein Land durchsuchen

Die Suche ist immer auf ein Land beschränkt, daher ist country_code erforderlich. Grenzen Sie weiter ein mit number_type, capabilities oder einem prefix nationaler Ziffern.
// The search is always country-scoped, so country_code is required.
const page = await bird.numbers.available.list({
  country_code: "GB",
  capabilities: ["sms", "voice"],
});
for (const candidate of page.data) {
  console.log(candidate.number, candidate.number_type);
}
Verwenden Sie den regionalen Host, der zum bk_{region}_-Präfix Ihres Schlüssels passt: https://us1.platform.bird.com oder https://eu1.platform.bird.com.
Jedes Ergebnis enthält nur das, was Sie für die Auswahl brauchen:
Codebeispiel
{
  "data": [
    {
      "number": "+447700900123",
      "country_code": "GB",
      "number_type": "mobile",
      "capabilities": ["sms", "voice"]
    }
  ],
  "next_cursor": null,
  "prev_cursor": null
}
Unser eigener Bestand wird zuerst zurückgegeben und paginiert normal. Die letzte Seite kann Nummern enthalten, die ein Carrier live anbietet – eine Nummer, die gerade noch gelistet war, kann zum Zeitpunkt Ihrer Bestellung bereits vergeben sein.
Um vor der Bestellung zu prüfen, ob eine Nummer noch verfügbar ist, rufen Sie sie mit GET /v1/numbers/available/{number} ab. Ein 404 bedeutet, dass sie derzeit nicht zum Kauf verfügbar ist, egal ob ein Carrier sie zurückgezogen hat oder unser eigener Bestand sie reserviert hält. Die Nachprüfung nutzt dasselbe numbers_availability-Rate-Limit wie die Suche – prüfen Sie daher nur den Kandidaten, den Sie bestellen möchten, und nicht jedes Ergebnis.

Die Nummer bestellen

Übergeben Sie eine Nummer aus der Suche an POST /v1/numbers/orders. Zum Schutz vor doppelten Anfragen siehe Idempotenz.
const order = await bird.numbers.orders.create({ number: "+447700900201" });
// Most orders finish inside the request. One that has to wait on a carrier
// comes back without a number_id. Poll it until it is completed or failed.
if (order.status === "completed") {
  console.log("allocated as", order.number_id);
} else {
  console.log("still", order.status, "; poll", order.id);
}
Die meisten Bestellungen werden innerhalb des Requests abgeschlossen und antworten mit 201, wobei die Nummer bereits Ihnen gehört:
Codebeispiel
{
  "id": "nor_01m0da22b0e39anhzyhtw3gzdg",
  "number": "+447700900123",
  "country_code": "GB",
  "number_type": "mobile",
  "status": "completed",
  "number_id": "nda_7eqywfwzxwa1za9n8wp7e1xkr8",
  "failure_reason": null,
  "completed_at": "2026-08-19T15:25:56.479320Z",
  "created_at": "2026-08-19T15:25:56.448051Z",
  "updated_at": "2026-08-19T15:25:56.479320Z"
}
number_id ist das Handle für alles Weitere: die Nummer lesen und freigeben.

Eine nicht abgeschlossene Bestellung abfragen

Eine Bestellung, die auf einen Carrier warten muss, antwortet stattdessen mit 202, wobei number_id noch null ist. Rufen Sie sie erneut ab, bis status den Wert completed oder failed hat.
const order = await bird.numbers.orders.get("nor_01krdgeqcxet5s7t44vh8rt9mg");
// failure_reason says what went wrong, and only ever on a failed order.
console.log(order.status, order.failure_reason ?? "");
Eine Bestellung durchläuft charging, ordering und pending, bevor sie abgeschlossen ist. Bei failed beschreibt failure_reason in verständlichen Worten, was schiefgelaufen ist. Eine bereits erhobene Einrichtungsgebühr wird nicht erstattet, eine fehlgeschlagene Bestellung kann also eine Belastung hinterlassen; wenden Sie sich in diesem Fall an den Support.

Eine Nummer freigeben

Die Freigabe beendet die monatliche Gebühr, und die Nummer funktioniert nicht mehr für Sie. Nur eine dedicated-Nummer kann freigegeben werden, und eine freigegebene Nummer wird nicht sofort wieder zum Verkauf angeboten.
// Releasing stops the monthly charge and the number stops working for you.
// Only a dedicated number can be released; a shared one answers E14002.
await bird.numbers.release("nda_01krdgeqcxet5s7t44vh8rt9mg");
Eine erfolgreiche Freigabe antwortet mit 204 ohne Body.

Wenn eine Bestellung abgelehnt wird

Vier Ablehnungsgründe decken nahezu jeden fehlgeschlagenen Kauf ab.
402 mit E03000 bedeutet, dass das Guthaben nicht für die Nummer ausreicht. Laden Sie es auf und bestellen Sie erneut. Es wird keine Bestellung angelegt, daher entstehen keine Kosten.
412 bedeutet, dass die Organisation die für einen Erstkauf erforderliche Identitätsprüfung noch nicht abgeschlossen hat. Schließen Sie sie ab und versuchen Sie es erneut.
409 mit E14000 bedeutet, dass die Nummer vergeben wurde, während Sie sie ausgewählt haben. Suchen Sie erneut und wählen Sie eine andere.
409 mit E14001 bedeutet, dass zu viele Ihrer Bestellungen bereits in Bearbeitung sind. Warten Sie, bis eine abgeschlossen ist, und bestellen Sie dann erneut.

Nächste Schritte

Verwandte Ressourcen

Weiter mit der Dokumentation, Anleitungen und Beispielen zu diesem Thema. Die Ressourcen sind auf Englisch.

Implementierungs-Briefing erhalten