Walidacja i formatowanie telefonu za pomocą API v2
Sprawdź i sformatuj międzynarodowe lub krajowe numery telefonów za pomocą GenderAPI v2. Zobacz wymagany kontekst kraju, pola JSON i opłatę za jeden kredyt.
Sprawdź i sformatuj numer telefonu
POST /phone/validate akceptuje number i opcjonalne pole country. Użyj międzynarodowego numeru telefonu zaczynającego się od +. W przypadku krajowego numeru telefonu podaj kod kraju ISO wielkimi literami. Odpowiedź zawiera valid, possible, e164, country i country_calling_code wewnątrz data oraz współdzielony obiekt meta. Sprawdza to strukturę numeru telefonu, a nie to, czy abonent istnieje. Każda ukończona weryfikacja kosztuje 1 kredyt, włączając nieprawidłowe wyniki. Poniższa przykładowa odpowiedź pokazuje nieprawidłowy numer i jest niezależna od przykładu żądania.
Pole JSON
Typ
Reguła
number
string
Wymagane, 3–32 znaki. ASCII cyfry, spacje, nawiasy i łączniki z opcjonalnym wiodącym +. Rozszerzenia i znaki alfabetu nie są akceptowane.
country
string
Kod ISO 3166-1 alfa-2 wielkimi literami. Wymagane w przypadku krajowego numeru telefonu. Opcjonalne, gdy wartość number zaczyna się od +. Pomiń to pole, jeśli nie jest potrzebne.
Wybierz język programowania.Skonfiguruj klucz API, następnie uruchom przykład na swoim serwerze.
Każde żądanie prognozy jest nową płatną operacją, włączając ponowne próby. W tych przykładach nie następuje automatycznie ponowna próba. Sprawdź status płatności przed wysłaniem kolejnej prośby.
Zanim uruchomisz: dostęp i obsługa błędów
Uruchom te przykłady na swoim serwerze. Ustaw GENDERAPI_API_KEY w środowisku procesowym na istniejący klucz API. Potwierdź, że meta.access.mode to api_key: nierozpoznany klucz może wrócić do wersji próbnej IP.
Odpowiedzi HTTP 4xx i 5xx JSON zachowują treść błędu i zwracają niezerowy status wyjścia. Przed ponowną próbą sprawdź code, action i meta.usage.billing_status.
import jsonimport osimport sysimport urllib.errorimport urllib.requestapi_key = os.environ.get("GENDERAPI_API_KEY")if not api_key: raise RuntimeError("Set GENDERAPI_API_KEY")body = json.loads("{\"number\":\"+905321234567\"}")class NoRedirect(urllib.request.HTTPRedirectHandler): def redirect_request(self, req, fp, code, msg, headers, newurl): return Nonerequest = urllib.request.Request( "https://api.genderapi.io/api/v2/phone/validate", method="POST", data=json.dumps(body).encode("utf-8"), headers={ "Authorization": "Bearer " + api_key, "Content-Type": "application/json", },)opener = urllib.request.build_opener(NoRedirect())try: response = opener.open(request, timeout=30)except urllib.error.HTTPError as error: response = error # Keep the Problem Details body on non-2xx responses.with response: status = response.status raw = response.read().decode("utf-8") if "json" not in response.headers.get("Content-Type", ""): raise RuntimeError(f"HTTP {status}: expected a JSON response") result = json.loads(raw)print(json.dumps(result, indent=2), file=sys.stderr if status >= 300 else sys.stdout)if not 200 <= status < 300: sys.exit(1) # Inspect code, action and billing before retrying.# For batches, inspect every item even when HTTP status is 200.
using System;using System.Net.Http;using System.Net.Http.Headers;using System.Text;using System.Text.Json;string RequiredEnv(string name) => !string.IsNullOrWhiteSpace(Environment.GetEnvironmentVariable(name)) ? Environment.GetEnvironmentVariable(name)! : throw new InvalidOperationException($"Set {name}");var apiKey = RequiredEnv("GENDERAPI_API_KEY");using var handler = new HttpClientHandler { AllowAutoRedirect = false };using var client = new HttpClient(handler) { Timeout = TimeSpan.FromSeconds(30) };using var request = new HttpRequestMessage(HttpMethod.Post, "https://api.genderapi.io/api/v2/phone/validate");request.Headers.Authorization = new AuthenticationHeaderValue("Bearer", apiKey);request.Content = new StringContent("{\"number\":\"+905321234567\"}", Encoding.UTF8, "application/json");using var response = await client.SendAsync(request);var raw = await response.Content.ReadAsStringAsync();if (!(response.Content.Headers.ContentType?.MediaType?.Contains("json") ?? false)) throw new InvalidOperationException($"HTTP {(int)response.StatusCode}: expected JSON");using var result = JsonDocument.Parse(raw);if (!response.IsSuccessStatusCode){ Console.Error.WriteLine(result.RootElement); // Preserve Problem Details. Environment.ExitCode = 1;}else{ Console.WriteLine(result.RootElement); // For batches, inspect every item even on HTTP 200.}
Nieprawidłowo sformułowane dane wejściowe zostały odrzucone przy użyciu protokołu HTTP 422 przed rozliczeniem. Jeśli format żądania jest poprawny, ale nie można przeanalizować numeru telefonu, operacja może zwrócić HTTP 200 z polami formatującymi valid: false i null. Ta ukończona weryfikacja kosztuje 1 punkt. Liczba, którą można przeanalizować, ale jest nieprawidłowa, może nadal mieć wartość e164. Sprawdź valid; sam sformatowany numer nie jest dowodem ważności.
Pole wewnątrz data
Znaczenie
valid
Czy numer jest zgodny z zasadami sprawdzania poprawności planu numeracji.
possible
Czy liczba ma wiarygodną długość w swoim planie numeracji; słabszy niż ważny.
e164
Numer w formacie międzynarodowym po pomyślnym przeanalizowaniu, w przeciwnym razie null.
country
Region uzyskany na podstawie numeru lub null, gdy jest niedostępny; nie lokalizuje abonenta.
country_calling_code
Numeryczny numer kierunkowy międzynarodowy lub null, gdy jest niedostępny.
Uwierzytelnianie i ponowne próby
Wyślij swój istniejący klucz API przy użyciu uwierzytelniania Bearer i Content-Type: application/json. Przykłady odczytują GENDERAPI_API_KEY ze środowiska. Pole country jest wymagane w przypadku krajowych numerów telefonów i opcjonalne, gdy wartość number zaczyna się od +.