The hardware and bandwidth for this mirror is donated by dogado GmbH, the Webhosting and Full Service-Cloud Provider. Check out our Wordpress Tutorial.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]dogado.de.
Official R Client for GenderAPI.io β determine gender from names, emails, and usernames using AI, including bulk operations for high-volume analysis.
β Get a Free API Key:
https://app.genderapi.io
Since the package is not yet on CRAN, install
directly from GitHub using {devtools}
.
Install
{devtools}
if you donβt have it:
install.packages("devtools")
Then install genderapi-R:
::install_github("GenderAPI/genderapi-R") devtools
Load the package:
library(genderapi)
Make sure you have these installed:
install.packages(c("httr", "jsonlite"))
library(genderapi)
<- "YOUR_API_KEY"
api_key
<- get_gender_by_name(
result api_key = api_key,
name = "Michael"
)
print(result)
library(genderapi)
<- "YOUR_API_KEY"
api_key
<- get_gender_by_name(
result api_key = api_key,
name = "Michael"
)
print(result)
<- get_gender_by_name(
result api_key = api_key,
name = "ζι·",
country = "CN",
askToAI = TRUE,
forceToGenderize = TRUE
)
print(result)
<- get_gender_by_email(
result api_key = api_key,
email = "michael.smith@example.com"
)
print(result)
<- get_gender_by_email(
result api_key = api_key,
email = "michael.smith@example.com",
askToAI = TRUE
)
print(result)
<- get_gender_by_username(
result api_key = api_key,
username = "michael_dev"
)
print(result)
<- get_gender_by_username(
result api_key = api_key,
username = "michael_dev",
country = "US",
askToAI = TRUE,
forceToGenderize = TRUE
)
print(result)
Lookup up to 100 names in a single request.
<- list(
data list(name = "Andrea", country = "DE", id = "123"),
list(name = "andrea", country = "IT", id = "456"),
list(name = "james", country = "US", id = "789")
)
<- get_gender_by_name_bulk(
result api_key = api_key,
data = data
)
print(result)
Lookup up to 50 emails in a single request.
<- list(
data list(email = "john@example.com", country = "US", id = "abc123"),
list(email = "maria@domain.de", country = "DE", id = "def456")
)
<- get_gender_by_email_bulk(
result api_key = api_key,
data = data
)
print(result)
Lookup up to 50 usernames in a single request.
<- list(
data list(username = "cooluser", country = "US", id = "u001"),
list(username = "maria2025", country = "DE", id = "u002")
)
<- get_gender_by_username_bulk(
result api_key = api_key,
data = data
)
print(result)
Below are the parameters accepted by each function.
Parameter | Type | Required | Description |
---|---|---|---|
name | String | Yes | Name to query. |
country | String | No | Two-letter country code (e.g.Β "US" ). |
askToAI | Logical | No | Default FALSE . If TRUE , queries AI
directly (costs 3 credits). |
forceToGenderize | Logical | No | Default FALSE . If TRUE , attempts to
analyze nicknames, emojis, etc. |
Parameter | Type | Required | Description |
---|---|---|---|
data | List of named lists | Yes | Each item contains name (required),
country (optional), and id (optional). Max 100
records. |
Parameter | Type | Required | Description |
---|---|---|---|
String | Yes | Email address to query. | |
country | String | No | Two-letter country code. |
askToAI | Logical | No | Default FALSE . |
Parameter | Type | Required | Description |
---|---|---|---|
data | List of named lists | Yes | Each item contains email (required),
country (optional), and id (optional). Max 50
records. |
Parameter | Type | Required | Description |
---|---|---|---|
username | String | Yes | Username to query. |
country | String | No | Two-letter country code. |
askToAI | Logical | No | Default FALSE . |
forceToGenderize | Logical | No | Default FALSE . |
Parameter | Type | Required | Description |
---|---|---|---|
data | List of named lists | Yes | Each item contains username (required),
country (optional), and id (optional). Max 50
records. |
All functions return a list representing the JSON response.
Single lookup example:
list(
status = TRUE,
used_credits = 1,
remaining_credits = 4999,
expires = 1743659200,
q = "michael.smith@example.com",
name = "Michael",
gender = "male",
country = "US",
total_names = 325,
probability = 98,
duration = "4ms"
)
Bulk lookup example:
list(
status = TRUE,
used_credits = 3,
remaining_credits = 7265,
expires = 1717069765,
names = list(
list(
name = "andrea",
q = "Andrea",
gender = "female",
country = "DE",
total_names = 644,
probability = 88,
id = "123"
),list(
name = "andrea",
q = "andrea",
gender = "male",
country = "IT",
total_names = 13537,
probability = 98,
id = "456"
)
),duration = "5ms"
)
Field | Type | Description |
---|---|---|
status | Logical | TRUE or FALSE . Indicates success. |
used_credits | Integer | Credits used for the request. |
remaining_credits | Integer | Credits left. |
expires | Integer | Unix timestamp of account expiry. |
q | String | Original query input. |
name | String | Found name. |
gender | String | "male" , "female" , or
"null" . |
country | String | Predicted country code. |
total_names | Integer | Number of records used in prediction. |
probability | Integer | Confidence (50β100). |
duration | String | Processing time. |
If an error occurs, the API returns:
list(
status = FALSE,
errno = 94,
errmsg = "invalid or missing key"
)
Common error codes:
errno | errmsg | Description |
---|---|---|
50 | access denied | Unauthorized IP or referrer. |
90 | invalid country code | Invalid country code. |
91 | name not set || email not set | Missing input field. |
92 | too many names || too many emails | Exceeded bulk limits. |
93 | limit reached | API key credits exhausted. |
94 | invalid or missing key | Invalid API key. |
99 | API key has expired | Renew your key. |
r install.packages(c("httr", "jsonlite"))
See full API docs:
https://www.genderapi.io/api-documentation
MIT License
These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.
Health stats visible at Monitor.