Przewodnik po analizie nazw użytkowników

Czytaj w Markdown

Prognozowanie płci na podstawie nazw użytkowników i pseudonimów

Analizuj nazwy użytkowników i pseudonimy w V2: forceToGenderize, AI dla każdego elementu, wyniki nieznane i koszt ponownych prób.

Przetwarzanie plików bez kodu

Analizuj pseudonimy w swoim zbiorze danych

Zaimportuj plik Excel lub CSV, wybierz kolumnę nazw użytkowników i włącz analizę pseudonimów przed przetworzeniem rekordów.

  • Pliki Excel i CSV
  • Kolumny nazw użytkowników lub nazw wyświetlanych
  • Wzbogacone wyniki do eksportu
Otwórz narzędzie Excel/CSV
Opcja analizy nazw użytkowników i pseudonimów w przepływie plików GenderAPI
Analiza pseudonimów w przepływie plików GenderAPI.

Przykładowe dane wejściowe

Pseudonim nie jest weryfikacją tożsamości

@alice_smith może pasować do elementu imiennego. Przy prenses i forceToGenderize prognoza może zostać zwrócona, choć imię pozostaje null. user47291 może pozostać nieznany. Są to przykładowe dane wejściowe; nie przypisujemy im z góry żadnego wyniku płci.

Logika analizy

Jak działa prognozowanie płci na podstawie nazwy użytkownika?

System sprawdza czytelne elementy imienne i inne wskazówki językowe w nazwie użytkownika lub nazwie wyświetlanej. Standardowa AI szuka użytecznego prawdziwego imienia; przy forceToGenderize może zinterpretować pseudonim bez prawdziwego imienia. Wynik jest zwracany wraz z polami kontekstu; losowych lub niewystarczających danych wejściowych nie należy zmuszać do wygenerowania wyniku.

01Nazwa użytkownikaPseudonim lub nazwa wyświetlana
02Analiza sygnałówImię i kontekst
03PrognozaPłeć i pewność

Kanały użycia

Wybierz metodę dopasowaną do swoich danych

Przetwarzanie dużych zbiorów bez kodu

Przeanalizuj nazwy użytkowników z pliku Excel lub CSV w czterech krokach

  1. 01

    Otwórz narzędzie Excel/CSV

    Przejdź do narzędzia importu GenderAPI i wczytaj plik do przetworzenia.

  2. 02

    Wybierz kolumnę źródłową

    Zmapuj kolumnę zawierającą nazwy użytkowników, pseudonimy lub nazwy wyświetlane.

  3. 03

    Włącz analizę pseudonimów

    Włącz opcję, która interpretuje aliasy i nazwy używane w mediach społecznościowych.

  4. 04

    Sprawdź próbkę, a potem wyeksportuj

    Najpierw sprawdź reprezentatywny zestaw rekordów, a następnie przetwórz cały plik i pobierz wzbogacone dane.

Nowe konta obejmują 200 bezpłatnych kredytów API dziennie, dzięki czemu możesz sprawdzić przepływ na próbce przed przetworzeniem całego pliku.

Zastosowania

Używaj go jako sygnału pomocniczego, gdy brakuje prawdziwego imienia

Analiza nazw użytkowników może być przydatna w danych z mediów społecznościowych, społeczności, gier i profili tworzonych przez użytkowników, gdy pole imienia jest puste. Jeśli masz bardziej bezpośrednie i dozwolone źródło, takie jak prawdziwe imię lub adres e-mail, użyj odpowiedniego endpointu.

Ograniczenia

Nie traktuj wyniku jako zweryfikowanej tożsamości

Nie każdy pseudonim zawiera prawdziwe imię, skojarzenia kulturowe są różne, a to samo wyrażenie może mieć różne znaczenia w zależności od języka. Gdy sygnał jest niewystarczający, zaakceptuj pusty wynik, zamiast przekształcać słabe dane w ostateczny wniosek.

Przewodnik wdrożenia V2

Przechowuj dane źródłowe i prognozę osobno

Zachowaj oryginalny identyfikator rekordu. API nie otwiera żadnego profilu, nie weryfikuje, do kogo należy konto, ani nie potwierdza niczyjej tożsamości. Kontekst kraju wysyłaj tylko wtedy, gdy masz wiarygodną informację; nie wyprowadzaj go z domeny ani z języka strony.

Przykładowe dane wejściowePole lub opcjaJak interpretować
@alice_smithdata.name / data.matchZachowaj oryginalną nazwę użytkownika; nie traktuj dopasowanego fragmentu jako zweryfikowanego imienia.
prensesforceToGenderize: truePozwala zinterpretować pseudonim bez prawdziwego imienia. Płeć może zostać zwrócona przy data.name równym null; nie wymyślaj imienia dla tej osoby.
user47291data.result_status: unknownNieprzejrzyste lub niewystarczające dane wejściowe mogą pozostać nieznane. Nie jest to powód do automatycznego ponawiania zapytania.

Wyślij nazwę użytkownika z type: username; nie wysyłaj adresu URL profilu. Wyszukiwanie w zbiorze danych usuwa początkowy znak @, normalizuje tekst i tworzy kandydatów na podstawie separatorów i cyfr. Standardowe zapytanie może dodać ograniczoną liczbę dopasowań według prefiksu i sufiksu; forceToGenderize nie korzysta z tych dodatkowych fragmentów. Jeśli pasuje kilka rekordów, wybierany jest ten z najwyższą zarejestrowaną liczebnością. Dla adresów e-mail używaj type: email, a dla prawdziwych imion type: name.

Wybierz tryb przetwarzania i jego koszt w kredytach

OpcjaPrzetwarzanieKoszt za udany element
options.ai_mode: offTylko zbiór danych1 kredyt
options.ai_mode: fallbackNajpierw zbiór danych, a jeśli płeć nie zostanie ustalona, standardowa AIŁącznie 1 kredyt, wraz z AI
options.ai_mode: alwaysBezpośrednio AI2 kredyty
forceToGenderize: trueNajpierw zbiór danych, a następnie interpretacja pseudonimu bez wymogu prawdziwego imienia1, jeśli wystarczy zbiór danych; łącznie 2, jeśli użyto AI

W pojedynczym zapytaniu wartością domyślną jest fallback, a w elementach partii off. forceToGenderize jest opcjonalne dla imion, adresów e-mail i nazw użytkowników; w takim przypadku pomiń ai_mode lub użyj fallback, ponieważ ta opcja nie jest zgodna z off i always. Udane wyniki unknown również są rozliczane. Do rozpoczęcia wystarczy dodatnie saldo początkowe; po zakończeniu operacji saldo może spaść poniżej zera.

Przypisz każdemu elementowi partii własne opcje

Przykładowe dane wejściowe nie gwarantują żadnej konkretnej prognozy. Ustaw GENDERAPI_API_KEY w środowisku serwera i nie umieszczaj klucza w publicznym kodzie po stronie klienta. V1 i V2 korzystają z tego samego klucza konta i tego samego salda. Sprawdź klucz za pomocą /api/v2/usage i upewnij się, że meta.access.mode ma wartość api_key.

Wybierz język programowania. Skonfiguruj klucz API, następnie uruchom przykład na swoim serwerze.

Każde zapytanie o prognozę, łącznie z ponownymi próbami, jest nową płatną operacją. Te przykłady nie ponawiają zapytań automatycznie. Przed wysłaniem kolejnego zapytania sprawdź status rozliczenia.

Zanim uruchomisz: dostęp i obsługa błędów

Uruchamiaj te przykłady na swoim serwerze. Ustaw w środowisku procesu zmienną GENDERAPI_API_KEY na swój istniejący klucz API. Upewnij się, że meta.access.mode ma wartość api_key: nierozpoznany klucz może spowodować przejście na próbę dla adresu IP.

W przypadku odpowiedzi JSON z kodem HTTP 4xx i 5xx przykłady zachowują treść błędu i zwracają niezerowy kod wyjścia. Przed ponowną próbą sprawdź code, action i meta.usage.billing_status. W odpowiedziach dla partii z kodem HTTP 200 sprawdź też data lub error w każdym elemencie.

Przewodnik po błędach i ponawianiu zapytań →
cURL
curl --silent --show-error --fail-with-body --max-time 30 \
  --request POST 'https://api.genderapi.io/api/v2/gender/batch' \
  --header "Authorization: Bearer ${GENDERAPI_API_KEY:?Set GENDERAPI_API_KEY}" \
  --header 'Content-Type: application/json' \
  --data '{
  "items": [
    {
      "id": "profile-001",
      "type": "username",
      "value": "@alice_smith",
      "options": {
        "ai_mode": "off"
      }
    },
    {
      "id": "profile-002",
      "type": "username",
      "value": "alexriver",
      "options": {
        "ai_mode": "fallback"
      }
    },
    {
      "id": "profile-003",
      "type": "username",
      "value": "prenses",
      "country": "TR",
      "forceToGenderize": true
    }
  ]
}'

cURL 7.76+ w powłoce POSIX. Uruchom w terminalu. Dokumentacja środowiska uruchomieniowego

JavaScript / Node.js
// Server-side Node.js. Save as example.mjs.
const apiKey = process.env.GENDERAPI_API_KEY;
if (!apiKey) throw new Error("Set GENDERAPI_API_KEY");
const body = {
  "items": [
    {
      "id": "profile-001",
      "type": "username",
      "value": "@alice_smith",
      "options": {
        "ai_mode": "off"
      }
    },
    {
      "id": "profile-002",
      "type": "username",
      "value": "alexriver",
      "options": {
        "ai_mode": "fallback"
      }
    },
    {
      "id": "profile-003",
      "type": "username",
      "value": "prenses",
      "country": "TR",
      "forceToGenderize": true
    }
  ]
};

const response = await fetch("https://api.genderapi.io/api/v2/gender/batch", {
  method: "POST",
  headers: {
    Authorization: `Bearer ${apiKey}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify(body),
  signal: AbortSignal.timeout(30_000),
  redirect: "error",
});
const raw = await response.text();
if (!(response.headers.get("content-type") ?? "").includes("json")) {
  throw new Error(`HTTP ${response.status}: expected JSON; request ID ${response.headers.get("x-request-id")}`);
}
const result = JSON.parse(raw); // Also accepts application/problem+json.
if (!response.ok) {
  console.error(`HTTP ${response.status}`, result);
  process.exitCode = 1; // A retry is a new operation; inspect billing first.
} else {
  console.log(JSON.stringify(result, null, 2));
  // For batches, inspect every item: HTTP 200 may contain item errors.
}

Node.js 22+; wbudowany fetch. Zapisz jako example.mjs i uruchom node example.mjs. Dokumentacja środowiska uruchomieniowego

Python
import json
import os
import sys
import urllib.error
import urllib.request

api_key = os.environ.get("GENDERAPI_API_KEY")
if not api_key:
    raise RuntimeError("Set GENDERAPI_API_KEY")
body = json.loads("{\"items\":[{\"id\":\"profile-001\",\"type\":\"username\",\"value\":\"@alice_smith\",\"options\":{\"ai_mode\":\"off\"}},{\"id\":\"profile-002\",\"type\":\"username\",\"value\":\"alexriver\",\"options\":{\"ai_mode\":\"fallback\"}},{\"id\":\"profile-003\",\"type\":\"username\",\"value\":\"prenses\",\"country\":\"TR\",\"forceToGenderize\":true}]}")

class NoRedirect(urllib.request.HTTPRedirectHandler):
    def redirect_request(self, req, fp, code, msg, headers, newurl):
        return None

request = urllib.request.Request(
    "https://api.genderapi.io/api/v2/gender/batch",
    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.

Python 3.10+; biblioteka standardowa. Zapisz jako example.py i uruchom python3 example.py. Dokumentacja środowiska uruchomieniowego

PHP
<?php
$apiKey = getenv('GENDERAPI_API_KEY');
if (!$apiKey) {
    throw new RuntimeException('Set GENDERAPI_API_KEY');
}
$body = json_decode('{"items":[{"id":"profile-001","type":"username","value":"@alice_smith","options":{"ai_mode":"off"}},{"id":"profile-002","type":"username","value":"alexriver","options":{"ai_mode":"fallback"}},{"id":"profile-003","type":"username","value":"prenses","country":"TR","forceToGenderize":true}]}', true, 512, JSON_THROW_ON_ERROR);

$ch = curl_init('https://api.genderapi.io/api/v2/gender/batch');
curl_setopt_array($ch, [
    CURLOPT_CUSTOMREQUEST => 'POST',
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_FOLLOWLOCATION => false,
    CURLOPT_TIMEOUT => 30,
    CURLOPT_HTTPHEADER => [
        'Authorization: Bearer ' . $apiKey,
        'Content-Type: application/json',
    ],
    CURLOPT_POSTFIELDS => json_encode($body, JSON_THROW_ON_ERROR),
]);
$raw = curl_exec($ch);
if ($raw === false) {
    throw new RuntimeException(curl_error($ch));
}
$status = curl_getinfo($ch, CURLINFO_HTTP_CODE);
$contentType = curl_getinfo($ch, CURLINFO_CONTENT_TYPE) ?: '';
curl_close($ch);
if (strpos($contentType, 'json') === false) {
    throw new RuntimeException("HTTP $status: expected a JSON response");
}
$result = json_decode($raw, true, 512, JSON_THROW_ON_ERROR);
$output = json_encode($result, JSON_PRETTY_PRINT | JSON_THROW_ON_ERROR) . PHP_EOL;
if ($status < 200 || $status >= 300) {
    fwrite(STDERR, $output); // Preserve the Problem Details body.
    exit(1);
}
echo $output;
// For batches, inspect every item; HTTP 200 can contain item errors.

PHP 8+ z rozszerzeniem cURL. Zapisz jako example.php i uruchom php example.php. Dokumentacja środowiska uruchomieniowego

Java
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.nio.charset.StandardCharsets;
import java.time.Duration;

public class GenderApiExample {
    private static String requiredEnv(String name) {
        String value = System.getenv(name);
        if (value == null || value.isBlank()) throw new IllegalStateException("Set " + name);
        return value;
    }

    public static void main(String[] args) throws Exception {
        String apiKey = requiredEnv("GENDERAPI_API_KEY");
        String body = "{\"items\":[{\"id\":\"profile-001\",\"type\":\"username\",\"value\":\"@alice_smith\",\"options\":{\"ai_mode\":\"off\"}},{\"id\":\"profile-002\",\"type\":\"username\",\"value\":\"alexriver\",\"options\":{\"ai_mode\":\"fallback\"}},{\"id\":\"profile-003\",\"type\":\"username\",\"value\":\"prenses\",\"country\":\"TR\",\"forceToGenderize\":true}]}";
        HttpClient client = HttpClient.newBuilder()
            .connectTimeout(Duration.ofSeconds(10))
            .followRedirects(HttpClient.Redirect.NEVER)
            .build();
        HttpRequest request = HttpRequest.newBuilder(URI.create("https://api.genderapi.io/api/v2/gender/batch"))
            .timeout(Duration.ofSeconds(30))
            .header("Authorization", "Bearer " + apiKey)
            .header("Content-Type", "application/json")
            .POST(HttpRequest.BodyPublishers.ofString(body, StandardCharsets.UTF_8))
            .build();
        HttpResponse<String> response = client.send(request,
            HttpResponse.BodyHandlers.ofString(StandardCharsets.UTF_8));
        if (!response.headers().firstValue("content-type").orElse("").contains("json")) {
            throw new IllegalStateException("HTTP " + response.statusCode() + ": expected JSON");
        }
        // JSON text; parse with your application's JSON library when integrating.
        if (response.statusCode() < 200 || response.statusCode() >= 300) {
            System.err.println(response.body()); // Includes Problem Details.
            System.exit(1);
        }
        System.out.println(response.body());
        // For batches, inspect each item's data or error, including on HTTP 200.
    }
}

Java 17+; standardowy klient HTTP. Zapisz jako GenderApiExample.java i uruchom java GenderApiExample.java. Dokumentacja środowiska uruchomieniowego

C# / .NET
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/gender/batch");
request.Headers.Authorization = new AuthenticationHeaderValue("Bearer", apiKey);
request.Content = new StringContent("{\"items\":[{\"id\":\"profile-001\",\"type\":\"username\",\"value\":\"@alice_smith\",\"options\":{\"ai_mode\":\"off\"}},{\"id\":\"profile-002\",\"type\":\"username\",\"value\":\"alexriver\",\"options\":{\"ai_mode\":\"fallback\"}},{\"id\":\"profile-003\",\"type\":\"username\",\"value\":\"prenses\",\"country\":\"TR\",\"forceToGenderize\":true}]}", 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.
}

Aplikacja konsolowa .NET 8+. Użyj jako Program.cs w projekcie konsolowym, a następnie uruchom dotnet run. Dokumentacja środowiska uruchomieniowego

Go
package main

import (
    "encoding/json"
    "fmt"
    "io"
    "net/http"
    "os"
    "strings"
    "time"
)

func requiredEnv(name string) string {
    value := os.Getenv(name)
    if value == "" { panic("Set " + name) }
    return value
}

func run() error {
    apiKey := requiredEnv("GENDERAPI_API_KEY")
    body := "{\"items\":[{\"id\":\"profile-001\",\"type\":\"username\",\"value\":\"@alice_smith\",\"options\":{\"ai_mode\":\"off\"}},{\"id\":\"profile-002\",\"type\":\"username\",\"value\":\"alexriver\",\"options\":{\"ai_mode\":\"fallback\"}},{\"id\":\"profile-003\",\"type\":\"username\",\"value\":\"prenses\",\"country\":\"TR\",\"forceToGenderize\":true}]}"
    request, err := http.NewRequest("POST", "https://api.genderapi.io/api/v2/gender/batch", strings.NewReader(body))
    if err != nil { return err }
    request.Header.Set("Authorization", "Bearer " + apiKey)
    request.Header.Set("Content-Type", "application/json")
    client := &http.Client{
        Timeout: 30 * time.Second,
        CheckRedirect: func(req *http.Request, via []*http.Request) error {
            return http.ErrUseLastResponse
        },
    }
    response, err := client.Do(request)
    if err != nil { return err }
    defer response.Body.Close()
    raw, err := io.ReadAll(response.Body)
    if err != nil { return err }
    if !strings.Contains(response.Header.Get("Content-Type"), "json") || !json.Valid(raw) {
        return fmt.Errorf("HTTP %d: expected a JSON response", response.StatusCode)
    }
    if response.StatusCode < 200 || response.StatusCode >= 300 {
        return fmt.Errorf("HTTP %d: %s", response.StatusCode, raw)
    }
    fmt.Println(string(raw))
    // For batches, inspect every item even on HTTP 200.
    return nil
}

func main() {
    if err := run(); err != nil {
        fmt.Fprintln(os.Stderr, err) // Keep Problem Details for error handling.
        os.Exit(1)
    }
}

Go 1.22+; biblioteka standardowa. Zapisz jako main.go i uruchom go run main.go. Dokumentacja środowiska uruchomieniowego

Obsługuj wyniki listy i ponowne próby

POST /api/v2/gender/batch przyjmuje do 50 elementów z kluczem API i 10 w ramach próby dla adresu IP. Każdemu elementowi przypisz własne type, value i options. Jeśli chcesz używać standardowego przejścia na AI, ustaw fallback jawnie w każdym elemencie. id musi być unikalne w obrębie partii; index zaczyna się od zera w wysłanej partii. Własne identyfikatory zadania i wiersza źródłowego przechowuj osobno.

Kod HTTP 200 nie oznacza, że wszystkie elementy zakończyły się powodzeniem. Wyniki identified, unknown i error obsługuj osobno; meta.summary.succeeded liczy zarówno identified, jak i unknown. Oceniaj łącznie data.gender, source, confidence_kind, confidence, match i reason. Nie traktuj wyniku AI i częstości w zbiorze danych jako równoważnych.

Jeśli meta.usage.billing_status ma wartość confirmed, ponawiaj tylko te błędy operacyjne, które dopuszczają ponowną próbę. Jeśli status to unconfirmed lub odpowiedź została utracona, zatrzymaj się i uzgodnij rozliczenie. Ponowne wysłanie tego samego rekordu, także udanego wyniku unknown, tworzy nową płatną operację; nigdy nie wysyłaj ponownie całej listy na ślepo.

Kontrakt zapytań zbiorczych · Pola odpowiedzi · Opcje AI · Ocena dokładności i pewności · Polityka prywatności

Dodatki do Excela i Google Sheets oraz inne gotowe integracje mogą korzystać z własnego połączenia i własnego formatu wyników. Nie zakładaj, że ich wynik jest zgodny z tym schematem JSON V2; sprawdź aktualny przewodnik każdej integracji.

Najczęściej zadawane pytania

Płeć na podstawie nazwy użytkownika lub pseudonimu

Czy można określić płeć na podstawie nazwy użytkownika?

W V2, jeśli włączysz forceToGenderize, najpierw sprawdzany jest zbiór danych; jeśli płeć nie zostanie ustalona, AI może zinterpretować pseudonim bez wymogu prawdziwego imienia. Wynik może pozostać unknown i nie jest zweryfikowaną tożsamością. Standardowa AI wymaga natomiast użytecznego prawdziwego imienia.

Które nazwy użytkowników dają najbardziej przydatne wyniki?

Bardziej przydatny sygnał mogą dać wartości zawierające prawdziwe imię, czytelne zdrobnienie lub wyraźny element imienny. Losowe ciągi znaków i nazwy marek mogą nie dać żadnego wyniku.

Czy mogę przeanalizować pojedynczą nazwę użytkownika przez API?

Tak. Pojedynczy endpoint analizuje jeden rekord. Do wielu rekordów służy osobny endpoint zapytań zbiorczych.

Czy mogę zaimportować plik Excel lub CSV?

Tak. W narzędziu do plików możesz wybrać kolumnę nazwy użytkownika lub nazwy wyświetlanej i włączyć analizę pseudonimów.

Dlaczego warto przechowywać razem pola pewności i źródła z V2?

W V2 data.confidence przyjmuje wartości od 0 do 1. Oceniaj je razem z source i confidence_kind, ponieważ wynik AI i częstość w zbiorze danych to różne miary. Zachowuj wyniki unknown i pole reason.

Czy wynik nadaje się do segmentacji?

Może służyć jako sygnał pomocniczy w analizach zbiorczych i wzbogacaniu danych, ale nie powinien samodzielnie decydować o sprawach o dużym wpływie na konkretną osobę ani służyć do przesądzania o jej tożsamości.

Czy mogę przetestować usługę bezpłatnie?

Nowe konta GenderAPI obejmują 200 bezpłatnych kredytów API dziennie do testowania reprezentatywnych próbek przez API lub pliki.

Opublikowano: 4 czerwca 2025Ostatnia weryfikacja:

Przetestuj swoją integrację

Przeanalizuj nazwę użytkownika za pomocą dedykowanego API

Zacznij od 200 bezpłatnych kredytów API dziennie i podłącz endpoint dopasowany do swojego przepływu.