# Extrahera ett förnamn och en könssignal från en e-postadress

> Extrahera en namnkandidat från en e-postadress och komplettera ditt flöde i Excel, Google Sheets eller API:et med prediktionen och dess källfält, utan att ersätta de uppgifter som personen själv har lämnat.

Canonical HTML: https://www.genderapi.io/sv/blog/extrahera-namn-fran-e-postadresser

Last reviewed: 2026-09-28

## Publiceringsuppgifter

Först publicerad: 2025-06-14T12:00:00.000Z

Senast granskad: 2026-09-28T00:00:00.000Z

## Kan GenderAPI extrahera ett förnamn från en e-postadress?

Ja. För personliga adresser som stöds kan GenderAPI extrahera en namnkandidat ur delen före @ och returnera en könssignal, landskontext och konfidens. Det är en härledning, ingen identitetskontroll, och allmänna eller slumpmässiga adresser kan förbli utan resultat.

- [Livedemo för V2 och dess alternativ](https://www.genderapi.io/sv/blog/extrahera-namn-fran-e-postadresser#demo)

## Analysera en e-postadress

Skicka ett värde och granska hela svaret, inklusive okända resultat och förbrukade krediter.

Alltid AI (standard): 2 krediter, även när resultatet är okänt. Reserv: 1 kredit, inklusive AI som reserv och okända resultat. Av, endast datamängd (ingen AI): 1 kredit per slutförd förfrågan, även när resultatet är okänt. Med smeknamnstolkning: 1 kredit om datamängden ger resultatet, eller totalt 2 om AI används, även när resultatet är okänt.

Det skickade värdet (hela e-postadressen) går till GenderAPI.io och vidarebefordras till den konfigurerade AI-tjänsten i läget Alltid AI (standard) eller om AI behövs som reserv, men inte i läget Av. [Mer om databehandlingen](https://www.genderapi.io/sv/data-provenance).

Det här riktiga svaret hämtades den 1 oktober 2026; endast kontosaldot har ersatts. Livevärden kan skilja sig. En prediktion är ingen bekräftad identitet.

**Riktigt V2-svar; hämtat 1 oktober 2026**

```json
{
  "data": {
    "input": {
      "type": "email",
      "value": "lars.andersson@example.com",
      "country": null
    },
    "name": "lars",
    "gender": "male",
    "country": null,
    "confidence": 0.98,
    "confidence_kind": "model_reported",
    "sample_count": null,
    "source": "ai",
    "result_status": "identified",
    "reason": null,
    "country_source": null,
    "match": {
      "name": null,
      "method": "model_inference",
      "scope": null,
      "country": null
    }
  },
  "meta": {
    "request_id": "d93a34aa-27a6-4044-b819-a86d09a8044f",
    "duration_ms": 380,
    "access": {
      "mode": "api_key",
      "reason": null
    },
    "usage": {
      "charged_credits": 2,
      "remaining_credits": 49999,
      "billing_status": "confirmed",
      "resets_at": null,
      "limit": null,
      "period_seconds": null
    }
  }
}
```

- [skapa ett konto](https://app.genderapi.io/user/register)

## Från e-postadress till strukturerade data

- Indata: emilyblack@email.com
- Extrahering: Emily
- Berikning: Kön + konfidens

## Välj var du bearbetar e-postdata

- [Microsoft Excel Installera tillägget →](https://appsource.microsoft.com/en-us/product/office/WA200008555)
- [Google Sheets Öppna Marketplace →](https://workspace.google.com/marketplace/app/gender_api_determines_gender_of_name_or/712811575775)
- [Shopify Visa appen →](https://apps.shopify.com/gender-api)
- [Excel / CSV i batch Öppna verktyget →](https://app.genderapi.io/csv)
- [Airtable Visa tillägget →](https://airtable.com/marketplace/blkqCasjQIqmmBrmb/gender-api-io-determine-gender)
- [REST API Visa endpointen →](https://www.genderapi.io/sv/docs/v2/gender-from-email)

## Bearbeta adresskolumner med Excel-tillägget

Välj metoden för e-postadresser och koppla sedan källkolumnen och resultatfälten. Använd GENDER.FROM_EMAIL för dynamiska uppslag i celler eller sidopanelen för beständiga resultat.

- [Se videoguiden för Excel](https://youtu.be/6j4w-3oMZnA)
- [GenderAPI-tillägget för Excel](https://www.genderapi.io/sv/blog/genderize-excel-names-using-genderapi-excel-add-in)
- [GENDER-formler i Excel](https://www.genderapi.io/sv/blog/gender-formel-for-microsoft-excel)

## Analysera e-postadresser med tillägget eller en formel

Använd tillägget för befintliga rader, ett flöde som stöds för nya rader eller formeln GENDER för uppslag i enskilda celler.

- [Guide till tillägget](https://www.genderapi.io/sv/blog/hur-man-bestammer-kon-i-google-sheets-med-gender-api-add-on)
- [GENDER-formeln i Google Sheets](https://www.genderapi.io/sv/blog/konsformel-google-sheets-upptack-kons-utifran-namn)

## Bygg in e-postanalys i ditt backend

Anropa den autentiserade endpointen för e-postadresser från servern, utan att exponera API-nyckeln i webbläsaren eller i offentlig kod. Hantera svarsschema, felkoder och förbrukning av krediter uttryckligen.

Skärmbild av resultat från en äldre integration; den visar inte det aktuella svarsavtalet i V2.

- [Enskild förfrågan för en e-postadress](https://www.genderapi.io/sv/docs/v2/gender-from-email)
- [Förfrågan för flera e-postadresser](https://www.genderapi.io/sv/docs/v2/batch)

## Tvinga inte fram ett resultat när adressen saknar förnamn

Funktionsadresser, slumpmässiga identifierare och delade inkorgar ger kanske ingen tillförlitlig signal. Behåll data.result_status, data.reason och data.confidence och hantera osäkra resultat separat.

En träff i en e-postadress bekräftar varken identiteten eller förnamnet hos den som äger inkorgen. Mät kvaliteten med dina egna data och basera inget beslut med stor påverkan för en enskild person enbart på denna prediktion.

## Spara källdata och prediktion separat

Behåll postens ursprungliga identifierare. API:et öppnar ingen profil, kontrollerar inte vem som äger ett konto och bekräftar ingen identitet. Skicka landskontext bara när du har en tillförlitlig uppgift; härled den inte från domänen eller webbplatsens språk.

Sökningen i datamängden analyserar delen före @, tar bort ett tillägg som börjar med + och bedömer namnkandidater. En standardförfrågan kan dessutom lägga till ett begränsat antal kandidater efter prefix och suffix i sammansatta delar. Om flera poster matchar väljs den med högst registrerat antal; den kandidaten behöver inte vara personens riktiga förnamn. Om du skickar ett land föredras landets post för varje kandidat; saknas den kan en global post användas. Kontrollera data.match.scope och country_source.

| Post | Fält | Tolkning |
| --- | --- | --- |
| Källpost | contact_id / original_email | Behåll källdata i ditt eget system och ersätt inte ett förnamn som personen själv har angett med prediktionen. Detta är inte fält i API-svaret. |
| Namnkandidat | data.name / data.match | Det valda namnet kan vara null. Det finns inget fält för ett verifierat efternamn, och en träff bevisar inte identiteten hos den som äger inkorgen. |
| Prediktion | data.gender / data.result_status / data.reason | Spara ett okänt resultat som ett inbyggt JSON-null. En post i datamängden med lika utfall kan innehålla en namnkandidat utan kön. |
| Underlag | data.source / data.confidence_kind / data.confidence / data.sample_count | confidence ligger mellan 0 och 1. Frekvens i datamängden och ett AI-värde är olika mått; för AI är sample_count null. |
| Åtgärdslogg | meta.request_id / meta.usage | Behåll id:t och debiteringsstatusen; ett förlorat svar betyder varken att åtgärden var kostnadsfri eller att den misslyckades. |

### Välj bearbetningsläge och kostnad i krediter

För en enskild förfrågan är fallback standardvärdet, för poster i en batch off. forceToGenderize är valfritt för namn, e-postadresser och användarnamn; utelämna då ai_mode eller använd fallback, eftersom alternativet inte kan kombineras med off och always. Även lyckade unknown-resultat debiteras. Det räcker med ett positivt startsaldo för att starta; när åtgärden är slutförd kan saldot bli negativt.

När AI används får den hela den skickade adressen, inklusive domän och +-tillägg, även om den instrueras att ignorera dessa delar. forceToGenderize kan ge en koppling till ett kön utan att ett riktigt förnamn hittas; det betyder inte att ett verifierat förnamn har extraherats till ditt CRM.

| Alternativ | Bearbetning | Kostnad per lyckad post |
| --- | --- | --- |
| options.ai_mode: off | Endast datamängd | 1 kredit |
| options.ai_mode: fallback | Först datamängden; om inget kön fastställs, vanlig AI-reserv | Totalt 1 kredit, inklusive AI |
| options.ai_mode: always | Direkt till AI | 2 krediter |
| forceToGenderize: true | Först datamängden, därefter tolkning av smeknamnet utan krav på ett riktigt förnamn | 1 om datamängden räcker; totalt 2 om AI används |

### Testa först en e-postförfrågan som bara använder datamängden

Exempelindata garanterar ingen viss prediktion. Ange GENDERAPI_API_KEY i servermiljön och lägg inte nyckeln i offentlig kod på klientsidan. V1 och V2 använder samma kontonyckel och samma saldo. Kontrollera nyckeln med /api/v2/usage och se till att meta.access.mode har värdet api_key.

Välj ett programmeringsspråk. [Konfigurera din API-nyckel](https://www.genderapi.io/sv/docs/v2/authentication#environment-setup), kör sedan exemplet på din server.

Varje prediktionsförfrågan är en ny debiterbar åtgärd, även vid nya försök. Exemplen gör inga automatiska nya försök. Kontrollera debiteringsstatus innan du skickar en ny förfrågan.

### Innan du kör: åtkomst och felhantering

Kör exemplen på din server. Sätt GENDERAPI_API_KEY i processmiljön till din befintliga API-nyckel. Kontrollera att meta.access.mode är api_key: en nyckel som inte känns igen kan leda till IP-provperioden.

Vid JSON-svar med HTTP 4xx och 5xx behålls felinnehållet och exemplet avslutas med en slutstatus som inte är noll. Kontrollera code, action och meta.usage.billing_status innan du försöker igen.

**cURL**

cURL 7.76+ i ett POSIX-skal. Kör i terminalen. [Dokumentation för körmiljön](https://curl.se/docs/manpage.html)

```bash
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"
  }
}'
```

**JavaScript / Node.js**

Node.js 22+; inbyggd fetch. Spara som example.mjs och kör node example.mjs. [Dokumentation för körmiljön](https://nodejs.org/api/globals.html#fetch)

```javascript
// 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.
}
```

**Python**

Python 3.10+; standardbiblioteket. Spara som example.py och kör python3 example.py. [Dokumentation för körmiljön](https://docs.python.org/3/library/urllib.request.html)

```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.
```

**PHP**

PHP 8+ med tillägget cURL. Spara som example.php och kör php example.php. [Dokumentation för körmiljön](https://www.php.net/manual/en/book.curl.php)

```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.
```

**Java**

Java 17+; inbyggd HTTP-klient. Spara som GenderApiExample.java och kör java GenderApiExample.java. [Dokumentation för körmiljön](https://docs.oracle.com/en/java/javase/17/docs/api/java.net.http/java/net/http/HttpClient.html)

```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.
    }
}
```

**C# / .NET**

Konsolapplikation med .NET 8+. Använd som Program.cs i ett konsolprojekt och kör sedan dotnet run. [Dokumentation för körmiljön](https://learn.microsoft.com/en-us/dotnet/fundamentals/networking/http/httpclient)

```csharp
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.
}
```

**Go**

Go 1.22+; standardbiblioteket. Spara som main.go och kör go run main.go. [Dokumentation för körmiljön](https://pkg.go.dev/net/http)

```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)
    }
}
```

- [Guide om fel och nya försök →](https://www.genderapi.io/sv/docs/v2/errors-and-retries)

### Hantera listresultat och upprepade förfrågningar

POST /api/v2/gender/batch tar emot upp till 50 poster med API-nyckel och 10 i IP-provperioden. Ge varje post egna värden för type, value och options. Om du vill använda vanlig AI-reserv anger du fallback uttryckligen i varje post. id måste vara unikt inom batchen; index räknas från noll inom den skickade batchen. Spara dina egna jobb- och källradsidentifierare separat.

HTTP 200 betyder inte att alla poster lyckades. Hantera resultaten identified, unknown och error separat; meta.summary.succeeded räknar både identified och unknown. Bedöm data.gender, source, confidence_kind, confidence, match och reason tillsammans. Behandla inte ett AI-värde och en frekvens i datamängden som likvärdiga.

Om meta.usage.billing_status har värdet confirmed upprepar du bara driftfel som tillåter en ny förfrågan. Om statusen är unconfirmed eller svaret har gått förlorat stoppar du och stämmer av debiteringen. Att skicka samma post igen, även ett lyckat unknown-resultat, skapar en ny avgiftsbelagd åtgärd; skicka aldrig om hela listan i blindo.

[Avtal för batchförfrågningar](https://www.genderapi.io/sv/docs/v2/batch) · [Svarsfält](https://www.genderapi.io/sv/docs/v2/responses) · [AI-alternativ](https://www.genderapi.io/sv/docs/v2/ai-options) · [Bedöm noggrannhet och konfidens](https://www.genderapi.io/sv/accuracy-methodology) · [Integritetspolicy](https://www.genderapi.io/sv/privacy-policy)

Tilläggen för Excel och Google Sheets samt andra färdiga integrationer kan använda en egen anslutning och ett eget resultatformat. Utgå inte från att deras utdata följer detta JSON-schema för V2; läs den aktuella guiden för respektive integration.

## Förnamn och kön från e-postadresser

### Kan ett förnamn extraheras från en e-postadress?

GenderAPI kan extrahera en namnkandidat ur delen före @ i personliga adresser som stöds och, när det finns, returnera signaler om kön, land och konfidens. Kandidaten är en härledning och inte ett verifierat förnamn för den som äger inkorgen.

### Ger varje adress ett förnamn?

Nej. Funktionsadresser, slumpmässiga identifierare och lokala delar utan ett riktigt förnamn ger kanske ingen tillförlitlig signal. Kontrollera data.result_status, data.reason, data.confidence och data.confidence_kind i V2-svaret.

### Sparas e-postförfrågningar?

Enligt den publicerade policyn lagras e-postförfrågningar inte som återanvändbara förfrågningsposter. För separata tekniska loggar och säkerhetsloggar gäller de perioder som anges i integritetspolicyn. Använd inte känsliga personuppgifter i den offentliga demon.

### Kan jag använda funktionen i Excel och Google Sheets?

Ja. Kolumner med adresser kan bearbetas med Excel-tillägget, Google Sheets-tillägget eller importverktyget för Excel- och CSV-filer. Dessa integrationer har ett eget resultatformat som skiljer sig från V2-JSON.

### Vilka fält returnerar API:et?

V2 returnerar data.name, data.gender, data.match samt fält för källa och konfidens, och i meta dessutom åtgärdens id och förbrukningen av krediter. Namnkandidat eller kön kan vara null. Det finns inget fält för ett verifierat efternamn.

### När används AI?

För en enskild förfrågan i V2 är vanlig AI-reserv aktiverad som standard. I den här demon kan du använda en standardförfrågan eller forceToGenderize; off och always anger du i API-förfrågan. Vanlig AI-reserv kostar totalt 1 kredit, always 2. Med forceToGenderize debiteras 1 kredit om datamängden löser förfrågan, eller totalt 2 om AI används; resultatet kan förbli unknown.

### Kan jag testa tjänsten kostnadsfritt?

Konton innehåller 200 kostnadsfria krediter per dag, och den delade IP-provperioden ger 10 krediter per offentlig IP-adress inom 24 timmar. En saknad eller okänd nyckel kan leda till IP-provperioden; kontrollera fältet meta.access.mode i svaret. Det handlar om krediter, inte om ett antal förfrågningar.
