Průvodce obohacením e-mailových dat

Číst ve formátu Markdown

Získejte z e-mailové adresy kandidátní jméno a signál pohlaví

Získejte z e-mailové adresy kandidátní jméno a doplňte odhady i související pole se zdrojem do Excelu, Google Sheets nebo API, aniž byste měnili údaje, které osoba sama uvedla.

Obohacení e-mailových dat

Převeďte e-mailovou adresu na strukturovaná data

Odešlete podporovanou e-mailovou adresu a podívejte se, jaké kandidátní jméno, signál pohlaví, kontext země a spolehlivost GenderAPI vrátí.

  • Kandidátní jméno
  • Signál pohlaví
  • Kontext země
  • Spolehlivost
Dokumentace API pro e-mailové adresy
Postup GenderAPI, který převádí e-mailovou adresu na strukturovaná zákaznická data
E-mailová adresa může poskytnout kandidátní jméno a odhad, některá pole však mohou zůstat null.

Vyzkoušejte API V2

Analyzujte e-mailovou adresu

Datová sada + AI

Odešlete hodnotu a prohlédněte si celou odpověď, včetně neznámých výsledků a spotřebovaných kreditů.

Vždy AI (výchozí): 2 kredity, i když je výsledek neznámý. Záložní režim: 1 kredit, včetně záložní AI a neznámých výsledků. Vypnuto, jen datová sada (bez AI): 1 kredit za každý dokončený požadavek, i když je výsledek neznámý. S analýzou přezdívek: 1 kredit, pokud výsledek pochází z datové sady, nebo celkem 2 kredity, pokud se použije AI, i když je výsledek neznámý.

Odeslaná hodnota (celá e-mailová adresa) se předá do GenderAPI.io a ve výchozím režimu Vždy AI nebo v případě potřeby záložní AI také nakonfigurované službě AI; v režimu Vypnuto se jí nepředává. Přečtěte si, jak se s daty zachází.

Žádný uložený API klíč. Můžete použít sdílený zkušební režim podle IP, dokud v něm zbývají kredity.

Odpověď níže je skutečná odpověď získaná 1. října 2026. Požadavek odešlete tlačítkem Analyzovat.

Skutečná odpověď V2 · získaná 1. října 2026
JménoPetra
PohlavíŽena
Spolehlivost98 %
ZeměČesko (CZ)
ZdrojModel AI
Použité kredity2

Tato skutečná odpověď byla získána 1. října 2026; nahrazen byl pouze zůstatek účtu. Živé hodnoty se mohou lišit. Odhad není ověřená identita.

Integrace

Vyberte, kde se mají e-mailová data zpracovat

Microsoft ExcelNainstalovat doplněk →Google SheetsOtevřít Marketplace →ShopifyZobrazit aplikaci →Hromadné zpracování Excel/CSVOtevřít souborový nástroj →AirtableZobrazit rozšíření →REST APIZobrazit endpoint →

Microsoft Excel

Zpracujte sloupec e-mailových adres doplňkem pro Excel

Zvolte metodu pro e-mailové adresy a potom přiřaďte vstupní sloupec a sloupce pro výsledky. Pro dynamická vyhledávání v jednotlivých buňkách použijte GENDER.FROM_EMAIL, pro zápis výsledků jako pevných hodnot postranní panel.

Videonávod k získání jmen z e-mailových adres v ExceluPřehrát videonávod pro ExcelYouTube · otevře se na nové kartě

Google Sheets

Analyzujte e-mailové adresy doplňkem nebo vzorcem

Pro existující řádky použijte doplněk, pro nové řádky odpovídající automatický postup a pro vyhledání z jedné buňky vzorec GENDER.

REST API

Přidejte analýzu e-mailových adres na svůj server

Dokumentovaný endpoint pro e-mailové adresy volejte ze serveru a API klíč nevkládejte do prohlížeče ani do veřejného kódu. Strukturu odpovědi, chybové kódy a spotřebu kreditů zpracovávejte výslovně.

Ukázka polí se jménem a pohlavím získanými z e-mailových adres
Obrázek zachycuje výstup starší integrace a neodpovídá aktuálním pravidlům odpovědí V2.

Přesnost a odpovědné použití

Nevynucujte výsledek, když adresa neobsahuje jméno

Obecné adresy, náhodné identifikátory a sdílené schránky nemusí poskytovat spolehlivý signál. Zachovejte data.result_status, data.reason a data.confidence a nejisté výsledky zpracujte zvlášť.

Průvodce implementací V2

Ukládejte zdrojová data a odhad odděleně

Zachovejte původní identifikátor záznamu. API neotevírá žádný profil, neověřuje, komu účet patří, a nepotvrzuje identitu. Kontext země posílejte jen tehdy, když máte spolehlivou informaci, a neodvozujte ho z domény ani z jazyka webu.

ZáznamPoleVýklad
Zdrojový záznamcontact_id / original_emailZdrojová data ponechte ve vlastním systému a jméno, které osoba sama uvedla, odhadem nenahrazujte. Nejde o pole odpovědi API.
Kandidátní jménodata.name / data.matchVybrané jméno může být null. Pole pro ověřené příjmení neexistuje a shoda nedokazuje, komu schránka patří.
Odhaddata.gender / data.result_status / data.reasonNeznámý výsledek uložte jako hodnotu JSON null. Řádek datové sady se shodnými počty může vrátit kandidátní jméno bez pohlaví.
Podkladydata.source / data.confidence_kind / data.confidence / data.sample_countconfidence leží mezi 0 a 1. Četnost v datové sadě a hodnota AI měří různé věci; u AI je sample_count null.
Záznam o zpracovánímeta.request_id / meta.usageUložte ID a stav účtování. Ztracená odpověď neznamená, že zpracování bylo zdarma, ani že selhalo.

Vyhledání v datové sadě analyzuje část před znakem @, odstraní příponu začínající znakem + a vyhodnotí kandidátní jména. Standardní požadavek může navíc přidat omezený počet kandidátů ze začátku a konce složených částí. Pokud odpovídá více řádků, vybere se řádek s nejvyšším počtem zaznamenaných výskytů; tento kandidát nemusí být skutečným jménem osoby. Pokud pošlete zemi, u každého kandidáta má přednost řádek dané země; pokud chybí, může se použít globální řádek. Zkontrolujte data.match.scope a country_source.

Zvolte režim zpracování a cenu v kreditech

MožnostZpracováníKredity za dokončenou položku
options.ai_mode: offPouze datová sada1 kredit
options.ai_mode: fallbackNejprve datová sada; běžná záložní AI, pokud pohlaví nelze určitCelkem 1 kredit, včetně AI
options.ai_mode: alwaysPřímo AI2 kredity
forceToGenderize: trueNejprve datová sada, poté vyhodnocení přezdívky bez požadavku na skutečné křestní jméno1, pokud stačí datová sada; celkem 2, pokud se použije AI

Výchozí hodnota pro jednotlivý požadavek je fallback, pro položky dávkového požadavku off. forceToGenderize je volitelný pro jména, e-mailové adresy i uživatelská jména; v takovém případě ai_mode vynechte nebo použijte fallback, protože tuto možnost nelze kombinovat s off ani always. Účtují se i dokončené výsledky unknown. K zahájení stačí kladný zůstatek a po dokončení zpracování může být zůstatek záporný.

Když se použije AI, obdrží celou odeslanou adresu, včetně domény a přípony za znakem +, i když má tyto části ignorovat. S forceToGenderize se může vrátit pohlaví, aniž by bylo nalezeno skutečné křestní jméno; neznamená to, že bylo do vašeho CRM získáno ověřené jméno.

Nejprve otestujte e-mailový požadavek pouze s datovou sadou

Ukázkové vstupy nezaručují konkrétní odhad. Nastavte GENDERAPI_API_KEY v serverovém prostředí a klíč nevkládejte do veřejného kódu na straně klienta. V1 i V2 používají stejný API klíč a stejný zůstatek účtu. Klíč ověřte pomocí /api/v2/usage a zkontrolujte, že meta.access.mode má hodnotu api_key.

Vyberte programovací jazyk. Nastavte API klíč, potom spusťte příklad na svém serveru.

Každý požadavek na odhad je nová zpoplatněná operace, včetně opakování. Tyto příklady požadavky automaticky neopakují. Před odesláním dalšího požadavku zkontrolujte stav účtování.

Před spuštěním: přístup a zpracování chyb

Tyto příklady spouštějte na svém serveru. V prostředí procesu nastavte GENDERAPI_API_KEY na svůj stávající API klíč. Ověřte, že meta.access.mode je api_key: nerozpoznaný klíč může přejít na zkušební režim podle IP.

U odpovědí JSON s HTTP 4xx a 5xx příklady zachovají tělo chyby a skončí s nenulovým návratovým kódem. Před opakováním požadavku zkontrolujte code, action a meta.usage.billing_status.

Průvodce chybami a opakováním požadavků →
cURL
curl --silent --show-error --fail-with-body --max-time 30 \
  --request POST 'https://api.genderapi.io/api/v2/gender' \
  --header "Authorization: Bearer ${GENDERAPI_API_KEY:?Set GENDERAPI_API_KEY}" \
  --header 'Content-Type: application/json' \
  --data '{
  "type": "email",
  "value": "alice.smith@example.com",
  "options": {
    "ai_mode": "off"
  }
}'

cURL 7.76+ v shellu POSIX. Spusťte v terminálu. Dokumentace běhového prostředí

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 = {
  "type": "email",
  "value": "alice.smith@example.com",
  "options": {
    "ai_mode": "off"
  }
};

const response = await fetch("https://api.genderapi.io/api/v2/gender", {
  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+; vestavěné fetch. Uložte jako example.mjs a spusťte node example.mjs. Dokumentace běhového prostředí

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("{\"type\":\"email\",\"value\":\"alice.smith@example.com\",\"options\":{\"ai_mode\":\"off\"}}")

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",
    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+; standardní knihovna. Uložte jako example.py a spusťte python3 example.py. Dokumentace běhového prostředí

PHP
<?php
$apiKey = getenv('GENDERAPI_API_KEY');
if (!$apiKey) {
    throw new RuntimeException('Set GENDERAPI_API_KEY');
}
$body = json_decode('{"type":"email","value":"alice.smith@example.com","options":{"ai_mode":"off"}}', true, 512, JSON_THROW_ON_ERROR);

$ch = curl_init('https://api.genderapi.io/api/v2/gender');
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+ s rozšířením cURL. Uložte jako example.php a spusťte php example.php. Dokumentace běhového prostředí

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 = "{\"type\":\"email\",\"value\":\"alice.smith@example.com\",\"options\":{\"ai_mode\":\"off\"}}";
        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"))
            .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+; standardní HTTP klient. Uložte jako GenderApiExample.java a spusťte java GenderApiExample.java. Dokumentace běhového prostředí

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");
request.Headers.Authorization = new AuthenticationHeaderValue("Bearer", apiKey);
request.Content = new StringContent("{\"type\":\"email\",\"value\":\"alice.smith@example.com\",\"options\":{\"ai_mode\":\"off\"}}", 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.
}

Konzolová aplikace .NET 8+. Použijte jako Program.cs v konzolovém projektu a potom spusťte dotnet run. Dokumentace běhového prostředí

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 := "{\"type\":\"email\",\"value\":\"alice.smith@example.com\",\"options\":{\"ai_mode\":\"off\"}}"
    request, err := http.NewRequest("POST", "https://api.genderapi.io/api/v2/gender", 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+; standardní knihovna. Uložte jako main.go a spusťte go run main.go. Dokumentace běhového prostředí

Zpracujte výsledky seznamů a opakované pokusy

POST /api/v2/gender/batch přijímá až 50 položek s API klíčem a 10 ve zkušebním režimu podle IP. Každé položce zadejte vlastní hodnoty type, value a options. Pokud chcete použít běžnou záložní AI, musíte fallback výslovně nastavit v každé položce. id musí být v rámci dávkového požadavku jedinečné a index začíná nulou v rámci odeslaného dávkového požadavku. Vlastní ID úloh a zdrojových řádků ukládejte zvlášť.

HTTP 200 neznamená, že byly dokončeny všechny položky. Výsledky identified, unknown a error zpracujte zvlášť; meta.summary.succeeded započítává identified i unknown. Vyhodnoťte data.gender, source, confidence_kind, confidence, match a reason společně a hodnotu AI nezaměňujte s četností v datové sadě.

Pokud má meta.usage.billing_status hodnotu confirmed, opakujte jen chyby, které nový pokus připouštějí. Pokud je stav unconfirmed nebo se odpověď ztratila, zastavte se a zkontrolujte účtování. Pokud stejnou položku odešlete znovu, a to i dokončený výsledek unknown, účtuje se jako nová operace; nikdy znovu neposílejte celý seznam bez kontroly.

Pravidla dávkových požadavků · Pole odpovědi · Možnosti AI · Hodnocení přesnosti a spolehlivosti · Zásady ochrany osobních údajů

Doplňky pro Excel a Google Sheets a další hotové integrace mohou používat vlastní připojení a vlastní formát výsledků. Nepředpokládejte, že jejich výstup odpovídá tomuto schématu JSON V2; přečtěte si aktuální návod k příslušné integraci.

Časté dotazy

Jméno a pohlaví z e-mailové adresy

Lze z e-mailové adresy získat jméno?

U podporovaných osobních adres může GenderAPI z části před znakem @ získat kandidátní jméno a, pokud existuje výsledek, vrátit pohlaví, zemi a spolehlivost. Kandidátní jméno je odhad, nikoli ověřené jméno vlastníka schránky.

Obsahuje každá e-mailová adresa jméno?

Ne. Obecné adresy, náhodné identifikátory a lokální části bez skutečného jména nemusí poskytovat spolehlivý signál. V odpovědi V2 zkontrolujte data.result_status, data.reason, data.confidence a data.confidence_kind.

Ukládají se e-mailové dotazy?

Podle zveřejněných zásad se e-mailové dotazy neuchovávají jako opakovaně použitelné záznamy dotazů. Pro samostatné technické a bezpečnostní protokoly platí doby uchovávání uvedené v zásadách ochrany osobních údajů. Ve veřejné ukázce nepoužívejte citlivé osobní údaje.

Mohu to použít v Excelu a Google Sheets?

Ano. Sloupce s e-mailovými adresami lze zpracovat doplňkem pro Excel, doplňkem pro Google Sheets nebo souborovým nástrojem pro Excel a CSV. Tyto integrace mají vlastní formát výsledků, který se od JSON V2 liší.

Jaká pole API vrací?

V2 vrací data.name, data.gender, data.match a pole pro zdroj a spolehlivost, v meta také ID požadavku a spotřebu kreditů. Kandidátní jméno nebo pohlaví může být null. Pole pro ověřené příjmení neexistuje.

Kdy se používá AI?

U jednotlivého požadavku V2 je běžná záložní AI ve výchozím nastavení zapnutá. V této ukázce můžete použít standardní požadavek nebo forceToGenderize; off a always nastavíte v API požadavku. Běžná záložní AI stojí celkem 1 kredit, always 2 kredity. S forceToGenderize stojí výsledek z datové sady 1 kredit a výsledek s AI celkem 2 kredity; výsledek přesto může být unknown.

Mohu to vyzkoušet zdarma?

Účet získává 200 bezplatných kreditů denně a sdílený zkušební režim podle IP poskytuje 10 kreditů na veřejnou IP adresu každých 24 hodin. Chybějící nebo nerozpoznaný klíč může vést ke zkušebnímu režimu podle IP, proto v odpovědi zkontrolujte meta.access.mode. Počítají se kredity, nikoli počet požadavků.

Publikováno: 21. července 2025Naposledy zkontrolováno:

Připravte integraci API

Otestujte analýzu e-mailových adres na serveru

Použijte dokumentovaný endpoint pro e-mailové adresy a API klíč uchovávejte pouze na serveru.

Dokumentace API pro e-mailové adresy

Pokračovat v testování

Použít klíč GenderAPI

Po vyčerpání sdílených kreditů 24hodinového zkušebního režimu podle IP vložte API klíč ze svého účtu GenderAPI a pokračujte v testování. Uložení klíče neodešle žádný požadavek – až budete připraveni, odešlete jej znovu.

Ukládá se pouze pro tuto kartu prohlížeče a po jejím zavření se odstraní.