curl -X POST "https://developer.encrata.com/api/lookup/email/gender" \
-H "Authorization: Bearer enc_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" \
-H "Content-Type: application/json" \
-d '{"email": "jane.doe@example.com"}'
import requests
resp = requests.post(
"https://developer.encrata.com/api/lookup/email/gender",
headers={"Authorization": "Bearer enc_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"},
json={"email": "jane.doe@example.com"},
)
print(resp.json())
const resp = await fetch("https://developer.encrata.com/api/lookup/email/gender", {
method: "POST",
headers: {
Authorization: "Bearer enc_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"Content-Type": "application/json",
},
body: JSON.stringify({ email: "jane.doe@example.com" }),
});
const data = await resp.json();
{
"email": "jane.doe@example.com",
"name": "jane",
"gender": "female",
"country": "US",
"probability": 98,
"credits": 1
}
{
"email": "info@example.com",
"name": "info",
"gender": "unknown",
"country": "NULL",
"probability": 50,
"credits": 1
}
{
"code": "insufficient_credits",
"error": "You don't have enough credits for this lookup. Top up to continue."
}
Email
Email Gender
Predict the likely gender and country behind an email address. 1 credit, with free repeats for 6 months.
POST
/
api
/
lookup
/
email
/
gender
curl -X POST "https://developer.encrata.com/api/lookup/email/gender" \
-H "Authorization: Bearer enc_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" \
-H "Content-Type: application/json" \
-d '{"email": "jane.doe@example.com"}'
import requests
resp = requests.post(
"https://developer.encrata.com/api/lookup/email/gender",
headers={"Authorization": "Bearer enc_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"},
json={"email": "jane.doe@example.com"},
)
print(resp.json())
const resp = await fetch("https://developer.encrata.com/api/lookup/email/gender", {
method: "POST",
headers: {
Authorization: "Bearer enc_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"Content-Type": "application/json",
},
body: JSON.stringify({ email: "jane.doe@example.com" }),
});
const data = await resp.json();
{
"email": "jane.doe@example.com",
"name": "jane",
"gender": "female",
"country": "US",
"probability": 98,
"credits": 1
}
{
"email": "info@example.com",
"name": "info",
"gender": "unknown",
"country": "NULL",
"probability": 50,
"credits": 1
}
{
"code": "insufficient_credits",
"error": "You don't have enough credits for this lookup. Top up to continue."
}
Overview
Email Gender infers the likely gender and country of the person behind an address from the name embedded in the local part (for examplejane.doe@ or
j.smith@). It returns a single verdict with a confidence score, backed by
genderapi.io. Use it to personalise outreach, segment a list, or fill a missing
gender field before a campaign.
Predict for a single address here (1 credit), or label a whole list with the
bulk job pipeline below.
Authentication
Requires an API key in theAuthorization header.
Authorization: Bearer enc_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Request
string
required
The email address to predict gender for.
Example request
curl -X POST "https://developer.encrata.com/api/lookup/email/gender" \
-H "Authorization: Bearer enc_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" \
-H "Content-Type: application/json" \
-d '{"email": "jane.doe@example.com"}'
import requests
resp = requests.post(
"https://developer.encrata.com/api/lookup/email/gender",
headers={"Authorization": "Bearer enc_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"},
json={"email": "jane.doe@example.com"},
)
print(resp.json())
const resp = await fetch("https://developer.encrata.com/api/lookup/email/gender", {
method: "POST",
headers: {
Authorization: "Bearer enc_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"Content-Type": "application/json",
},
body: JSON.stringify({ email: "jane.doe@example.com" }),
});
const data = await resp.json();
Response
string
The email address that was analysed.
string
The predicted gender:
male, female, or unknown when the name cannot be
resolved with confidence.string | null
The most likely country for the name as an ISO alpha-2 code (for example
US,
GB). When no country signal is available, the live API can return the string
"NULL" or JSON null.string
The name extracted from the local part that the prediction was made from.
This field is present even when
gender is unknown.number
Confidence in the
gender verdict, from 0 to 100. A low value on an
unknown verdict means the name was ambiguous or not recognised.number
Credits charged for this request.
1 on a fresh charge, or 0 when you were
already charged for this address during the
6-month free-repeat window.boolean
Present and
true only when the verdict was served from cache. The key is
omitted entirely when the result was not cached - it is never false.
This is independent of billing: a cached result is still charged 1 on your
first request for that address in the window.Errors
Errors return a JSON body of the form{"error": "<message>", "code": "<code>"}
with the matching HTTP status code.
| Status | Message | Cause |
|---|---|---|
400 | Invalid request body | Malformed JSON |
400 | Invalid email address | Address fails syntax parsing |
401 | API key required / bad key | Missing or invalid API key |
401 | Unauthorized | The key’s account could not be resolved |
402 | You don't have enough credits for this lookup. Top up to continue. | Not enough credits and not a free repeat |
405 | Only POST method is allowed | Wrong HTTP method |
413 | body too large | Request body exceeds 1 MiB |
502 | Gender lookup failed. Please try again. | Transient provider error, retry shortly |
503 | Gender lookup is temporarily unavailable | Gender provider not configured |
A transient provider error (
502) is never billed. An unknown verdict from a
successful lookup is billed like any other result.Credits
Each lookup costs 1 credit. Billing is per-customer: 1 on the first lookup of an address,0 for repeats during the
6-month free-repeat window. See
Credits for details.
Known issue:
country is the string "NULL", not JSON null, when no
country is found. Check for both values.curl -X POST "https://developer.encrata.com/api/lookup/email/gender" \
-H "Authorization: Bearer enc_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" \
-H "Content-Type: application/json" \
-d '{"email": "jane.doe@example.com"}'
import requests
resp = requests.post(
"https://developer.encrata.com/api/lookup/email/gender",
headers={"Authorization": "Bearer enc_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"},
json={"email": "jane.doe@example.com"},
)
print(resp.json())
const resp = await fetch("https://developer.encrata.com/api/lookup/email/gender", {
method: "POST",
headers: {
Authorization: "Bearer enc_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"Content-Type": "application/json",
},
body: JSON.stringify({ email: "jane.doe@example.com" }),
});
const data = await resp.json();
{
"email": "jane.doe@example.com",
"name": "jane",
"gender": "female",
"country": "US",
"probability": 98,
"credits": 1
}
{
"email": "info@example.com",
"name": "info",
"gender": "unknown",
"country": "NULL",
"probability": 50,
"credits": 1
}
{
"code": "insufficient_credits",
"error": "You don't have enough credits for this lookup. Top up to continue."
}
Bulk jobs
To label a whole list, submit it as a bulk job instead of looping this endpoint. One entrypoint handles every lookup - settype=gender - and a webhook
delivers the finished file when it’s done.
curl -X POST "https://developer.encrata.com/api/jobs/bulk" \
-H "Authorization: Bearer enc_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx" \
-F "type=gender" \
-F "download_link=true" \
-F "file=@list.csv"
- Up to 1,000,000 emails per job, charged 1 credit per email.
download_link=truereturns adownload_urlin thebulk.completedwebhook; fetch it with your API key.- Export filters:
all,found.
Was this page helpful?