# 이메일 주소에서 후보 이름과 성별 신호 추출하기

> 이메일 주소에서 후보 이름을 추출하고, 본인이 제공한 정보를 바꾸지 않은 채 추정값과 관련 출처 필드를 Excel, Google Sheets 또는 API 워크플로에 추가하세요.

Canonical HTML: https://www.genderapi.io/ko/blog/extract-names-from-email-addresses

Last reviewed: 2026-09-30

## 게시 정보

최초 게시일: 2025-06-14T12:00:00.000Z

최종 검토일: 2026-09-30T00:00:00.000Z

## GenderAPI로 이메일 주소에서 이름을 추출할 수 있나요?

네. 지원되는 개인 이메일 주소라면 GenderAPI가 @ 앞부분에서 후보 이름을 추출하고 성별 신호, 국가 컨텍스트와 신뢰도를 반환합니다. 이는 추정값이며 신원 확인이 아닙니다. 공유 주소나 무작위 주소에서는 결과가 나오지 않을 수 있습니다.

- [실시간 V2 데모와 옵션](https://www.genderapi.io/ko/blog/extract-names-from-email-addresses#demo)

## 이메일 주소 분석하기

값을 하나 보내면 알 수 없는 결과와 사용한 크레딧을 포함한 전체 응답을 확인할 수 있습니다.

항상 AI(기본값): 결과가 알 수 없음이어도 2크레딧. 폴백: AI 폴백과 알 수 없는 결과를 포함해 1크레딧. 끄기, 데이터셋만(AI 미사용): 완료된 요청마다 알 수 없는 결과를 포함해 1크레딧. 별명 해석 사용 시: 데이터셋에서 결과를 얻으면 1크레딧, AI를 사용하면 결과가 알 수 없음이어도 총 2크레딧.

보내는 값(이메일 주소 전체)은 GenderAPI.io로 전송되며, 기본값인 항상 AI 모드이거나 AI 폴백이 필요하면 설정된 AI 서비스로도 전달됩니다. 끄기 모드에서는 전달되지 않습니다. [데이터 처리 방식 자세히 보기](https://www.genderapi.io/ko/data-provenance).

이 실제 응답은 2026년 10월 1일에 수집했으며 계정 잔액만 바꿨습니다. 실시간 값은 다를 수 있습니다. 추정 결과는 확인된 신원이 아닙니다.

**2026년 10월 1일에 수집한 실제 V2 응답입니다**

```json
{
  "data": {
    "input": {
      "type": "email",
      "value": "jihoon.k@example.com",
      "country": null
    },
    "name": "jihoon",
    "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": "2b11ba86-dba0-437c-b210-c8ce68452d1c",
    "duration_ms": 391,
    "access": {
      "mode": "api_key",
      "reason": null
    },
    "usage": {
      "charged_credits": 2,
      "remaining_credits": 49999,
      "billing_status": "confirmed",
      "resets_at": null,
      "limit": null,
      "period_seconds": null
    }
  }
}
```

- [계정을 만드세요](https://app.genderapi.io/user/register)

## 이메일 주소에서 구조화된 데이터까지

- 입력: emilyblack@email.com
- 추출된 이름: Emily
- 데이터 보강: 성별 + 신뢰도

## 이메일 데이터를 처리할 곳 선택하기

- [Microsoft Excel 부가기능 설치 →](https://appsource.microsoft.com/en-us/product/office/WA200008555)
- [Google Sheets Marketplace 열기 →](https://workspace.google.com/marketplace/app/gender_api_for_google_sheets_determines/712811575775)
- [Shopify 앱 보기 →](https://apps.shopify.com/gender-api)
- [Excel/CSV 일괄 처리 파일 도구 열기 →](https://app.genderapi.io/csv)
- [Airtable 확장 프로그램 보기 →](https://airtable.com/marketplace/blkqCasjQIqmmBrmb/gender-api-io-determine-gender)
- [REST API 엔드포인트 보기 →](https://www.genderapi.io/ko/docs/v2/gender-from-email)

## Excel 부가기능으로 이메일 주소 열 처리하기

이메일 주소 방식을 선택한 뒤 입력 열과 결과 열을 지정하세요. 셀마다 동적으로 조회하려면 GENDER.FROM_EMAIL을, 결과를 고정값으로 기록하려면 사이드바를 사용하세요.

- [Excel 동영상 가이드 보기](https://youtu.be/6j4w-3oMZnA)
- [GenderAPI Excel 부가기능 가이드](https://www.genderapi.io/ko/blog/genderize-excel-names-using-genderapi-excel-add-in)
- [Excel의 GENDER 수식](https://www.genderapi.io/ko/blog/gender-formula-for-microsoft-excel)

## 부가기능 또는 수식으로 이메일 주소 분석하기

기존 행에는 부가기능을, 새 행에는 그에 맞는 워크플로를, 셀 하나를 조회할 때는 GENDER 수식을 사용하세요.

- [Google Sheets 부가기능 가이드](https://www.genderapi.io/ko/blog/how-to-determine-gender-in-google-sheets-using-gender-api-add-on)
- [Google Sheets의 GENDER 수식](https://www.genderapi.io/ko/blog/gender-formula-google-sheets-detect-gender-from-names)

## 서버에 이메일 주소 분석 추가하기

문서화된 이메일 주소 엔드포인트는 서버에서 호출하고, API 키를 브라우저나 공개 코드에 넣지 마세요. 응답 구조, 오류 코드와 크레딧 사용량을 명시적으로 처리하세요.

이 이미지는 이전 연동의 결과를 보여 주며 현재 V2 응답 규칙을 나타내지 않습니다.

- [이메일 주소 하나를 보내는 요청](https://www.genderapi.io/ko/docs/v2/gender-from-email)
- [여러 이메일 주소를 보내는 요청](https://www.genderapi.io/ko/docs/v2/batch)

## 주소에 이름이 없으면 결과를 억지로 만들지 마세요

역할 주소, 무작위 식별자와 공유 메일함에서는 신뢰할 수 있는 신호를 얻지 못할 수 있습니다. data.result_status, data.reason, data.confidence를 보존하고 불확실한 결과는 따로 처리하세요.

이메일 주소의 일치 결과는 주소 소유자의 신원이나 이름을 확인해 주지 않습니다. 자체 데이터에서 품질을 측정하고, 개인에게 중대한 영향을 미치는 결정을 이 추정값만으로 내리지 마세요.

## 원본 데이터와 추정 결과를 따로 보관하기

레코드의 원래 식별자를 보관하세요. API는 프로필을 열람하지 않고, 계정 소유자를 확인하지 않으며, 신원을 확인하지도 않습니다. 국가 컨텍스트는 신뢰할 수 있는 정보가 있을 때만 보내고, 도메인이나 웹사이트 언어에서 추론하지 마세요.

데이터셋 조회는 @ 앞부분을 분석하고, +로 시작하는 접미사를 제거한 뒤 후보 이름을 평가합니다. 기본 요청은 복합 부분의 앞과 뒤에서 제한된 수의 후보를 추가할 수도 있습니다. 여러 레코드가 일치하면 저장된 건수가 가장 많은 레코드가 선택되며, 그 후보가 반드시 그 사람의 실제 이름인 것은 아닙니다. 국가를 보내면 후보마다 해당 국가의 레코드가 우선되고, 없으면 전역 레코드가 사용될 수 있습니다. data.match.scope와 country_source를 확인하세요.

| 레코드 | 필드 | 해석 |
| --- | --- | --- |
| 원본 레코드 | contact_id / original_email | 원본 데이터는 자체 시스템에 보관하고, 본인이 직접 제공한 이름을 추정값으로 덮어쓰지 마세요. 이 값들은 API 응답 필드가 아닙니다. |
| 후보 이름 | data.name / data.match | 선택된 이름은 null일 수 있습니다. 확인된 성씨를 담는 필드는 없으며, 일치 결과가 메일함 소유자를 증명하지도 않습니다. |
| 추정 결과 | data.gender / data.result_status / data.reason | 알 수 없는 결과는 JSON null로 저장하세요. 데이터셋에서 건수가 동률인 레코드는 성별 없이 후보 이름만 반환할 수 있습니다. |
| 근거 | data.source / data.confidence_kind / data.confidence / data.sample_count | confidence는 0에서 1 사이의 값입니다. 데이터셋 빈도와 AI 점수는 서로 다른 것을 측정하며, AI 결과의 sample_count는 null입니다. |
| 처리 기록 | meta.request_id / meta.usage | 요청 ID와 과금 상태를 저장하세요. 응답을 받지 못했다고 해서 처리가 무료였거나 실패했다는 뜻은 아닙니다. |

### 처리 모드와 크레딧 비용 선택하기

단일 요청의 기본값은 fallback이고, 일괄 요청 항목의 기본값은 off입니다. forceToGenderize는 이름, 이메일 주소, 사용자 이름에 선택적으로 사용할 수 있으며, off 및 always와 함께 쓸 수 없으므로 ai_mode를 생략하거나 fallback을 사용하세요. 정상 처리된 unknown 결과도 과금됩니다. 시작 잔액이 0보다 크면 요청을 시작할 수 있고, 처리가 끝난 뒤 잔액이 마이너스가 될 수 있습니다.

AI가 사용되면 도메인과 + 뒤의 접미사를 포함해 보낸 주소 전체를 받습니다. 이러한 부분은 무시하도록 지시받더라도 마찬가지입니다. forceToGenderize를 사용하면 실제 이름을 찾지 못해도 성별이 반환될 수 있으며, 이는 확인된 이름이 CRM으로 추출되었다는 뜻이 아닙니다.

| 옵션 | 처리 방식 | 정상 처리된 항목당 크레딧 |
| --- | --- | --- |
| options.ai_mode: off | 데이터셋만 사용 | 1크레딧 |
| options.ai_mode: fallback | 먼저 데이터셋을 조회하고, 성별을 판단할 수 없으면 일반 AI 폴백 사용 | AI 포함 총 1크레딧 |
| options.ai_mode: always | AI로 바로 요청 | 2크레딧 |
| forceToGenderize: true | 먼저 데이터셋을 조회한 뒤, 실제 이름이 없어도 별명을 해석 | 데이터셋으로 충분하면 1, AI를 사용하면 총 2 |

### 먼저 데이터셋만 사용하는 이메일 요청을 테스트하기

입력 예시가 특정 추정 결과를 보장하지는 않습니다. GENDERAPI_API_KEY는 서버 환경에 설정하고, 공개 클라이언트 코드에 키를 넣지 마세요. V1과 V2는 같은 API 키와 같은 계정 잔액을 사용합니다. /api/v2/usage로 키를 확인하고 meta.access.mode가 api_key인지 확인하세요.

프로그래밍 언어를 선택하세요. [API 키 설정하기](https://www.genderapi.io/ko/docs/v2/authentication#environment-setup), 그다음 서버에서 예시를 실행하세요.

재시도를 포함해 모든 추정 요청은 새로 과금되는 작업입니다. 이 예시는 자동으로 재시도하지 않습니다. 다른 요청을 보내기 전에 과금 상태를 확인하세요.

### 실행하기 전에: 접근과 오류 처리

이 예시는 서버에서 실행하세요. 프로세스 환경 변수 GENDERAPI_API_KEY에 기존 API 키를 설정하세요. 인식되지 않는 키는 IP 체험으로 전환될 수 있으므로 meta.access.mode가 api_key인지 확인하세요.

HTTP 4xx 및 5xx JSON 응답에서는 오류 본문을 그대로 출력하고 0이 아닌 종료 코드를 반환합니다. 재시도하기 전에 code, action과 meta.usage.billing_status를 확인하세요.

**cURL**

POSIX 셸의 cURL 7.76+. 터미널에서 실행하세요. [런타임 문서](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+, 내장 fetch. example.mjs로 저장하고 node example.mjs를 실행하세요. [런타임 문서](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+, 표준 라이브러리. example.py로 저장하고 python3 example.py를 실행하세요. [런타임 문서](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+, cURL 확장. example.php로 저장하고 php example.php를 실행하세요. [런타임 문서](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+, 표준 HTTP 클라이언트. GenderApiExample.java로 저장하고 java GenderApiExample.java를 실행하세요. [런타임 문서](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**

.NET 8+ 콘솔 애플리케이션. 콘솔 프로젝트의 Program.cs로 사용한 다음 dotnet run을 실행하세요. [런타임 문서](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+, 표준 라이브러리. main.go로 저장하고 go run main.go를 실행하세요. [런타임 문서](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)
    }
}
```

- [오류와 재시도 가이드 →](https://www.genderapi.io/ko/docs/v2/errors-and-retries)

### 목록 결과와 재시도 처리하기

POST /api/v2/gender/batch는 API 키를 사용하면 최대 50개 항목, IP 체험에서는 최대 10개 항목을 받습니다. 항목마다 type, value와 options를 따로 지정하세요. 일반 AI 폴백을 사용하려면 각 항목에 fallback을 명시해야 합니다. id는 일괄 요청 안에서 고유해야 하며, index는 제출한 일괄 요청에서 0부터 시작합니다. 자체 작업 ID와 원본 행 ID는 따로 저장하세요.

HTTP 200이 모든 항목이 정상 처리되었다는 뜻은 아닙니다. identified, unknown, error 결과를 각각 처리하세요. meta.summary.succeeded에는 identified와 unknown이 모두 포함됩니다. data.gender, source, confidence_kind, confidence, match와 reason을 함께 평가하고, AI 점수와 데이터셋 빈도를 같은 것으로 취급하지 마세요.

meta.usage.billing_status가 confirmed이면 재시도가 허용된 오류만 다시 보내세요. 상태가 unconfirmed이거나 응답을 받지 못했다면 중단하고 과금 여부를 확인하세요. 정상 처리된 unknown 결과를 포함해 같은 항목을 다시 보내면 새 작업으로 과금되므로, 확인 없이 목록 전체를 다시 보내지 마세요.

[일괄 요청 규칙](https://www.genderapi.io/ko/docs/v2/batch) · [응답 필드](https://www.genderapi.io/ko/docs/v2/responses) · [AI 옵션](https://www.genderapi.io/ko/docs/v2/ai-options) · [정확도와 신뢰도 평가](https://www.genderapi.io/ko/accuracy-methodology) · [개인정보 처리방침](https://www.genderapi.io/ko/privacy-policy)

Excel과 Google Sheets 부가기능 및 그 밖의 기성 연동은 자체 연결 방식과 결과 형식을 사용할 수 있습니다. 이러한 도구의 출력이 이 V2 JSON 스키마를 따른다고 가정하지 말고, 해당 연동의 최신 가이드를 확인하세요.

## 이메일 주소에서 이름과 성별 찾기

### 이메일 주소에서 이름을 추출할 수 있나요?

지원되는 개인 주소라면 GenderAPI가 @ 앞부분에서 후보 이름을 추출하고, 결과가 있을 때 성별, 국가와 신뢰도를 반환할 수 있습니다. 후보 이름은 추정값이며 메일함 소유자의 확인된 이름이 아닙니다.

### 모든 이메일 주소에서 이름을 얻을 수 있나요?

아닙니다. 역할 주소, 무작위 식별자, 실제 이름이 없는 로컬 파트에서는 신뢰할 수 있는 신호를 얻지 못할 수 있습니다. V2 응답의 data.result_status, data.reason, data.confidence와 data.confidence_kind를 확인하세요.

### 이메일 요청이 저장되나요?

공개된 정책에 따르면 이메일 요청은 재사용 가능한 요청 기록으로 보관되지 않습니다. 별도의 기술 로그와 보안 로그에는 개인정보 처리방침에 명시된 보존 기간이 적용됩니다. 공개 데모에는 민감한 개인정보를 입력하지 마세요.

### Excel과 Google Sheets에서도 사용할 수 있나요?

네. 이메일 주소 열은 Excel 부가기능, Google Sheets 부가기능 또는 Excel/CSV 파일 도구로 처리할 수 있습니다. 이러한 연동은 V2 JSON과 다른 자체 결과 형식을 사용합니다.

### API는 어떤 필드를 반환하나요?

V2는 data.name, data.gender, data.match와 출처 및 신뢰도 필드를 반환하고, meta에는 요청 ID와 크레딧 사용량이 들어 있습니다. 후보 이름이나 성별은 null일 수 있습니다. 확인된 성씨를 담는 필드는 없습니다.

### AI는 언제 사용되나요?

V2 단일 요청에서는 일반 AI 폴백이 기본으로 켜져 있습니다. 이 데모에서는 기본 요청 또는 forceToGenderize를 사용할 수 있으며, off와 always는 API 요청에서 지정합니다. 일반 AI 폴백은 총 1크레딧, always는 2크레딧입니다. forceToGenderize를 사용하면 데이터셋 결과는 1크레딧, AI 결과는 총 2크레딧이며, 결과가 여전히 unknown일 수 있습니다.

### 무료로 테스트할 수 있나요?

계정에는 매일 200크레딧이 무료로 제공되며, 공유 IP 체험은 공개 IP 주소마다 24시간에 10크레딧을 제공합니다. 키가 없거나 인식되지 않으면 IP 체험이 사용될 수 있으므로 응답의 meta.access.mode를 확인하세요. 요청 횟수가 아니라 크레딧이 차감됩니다.
