API Documentation

Error Codes

{
    "status":false,
    "errno":94,
    "errmsg":"invalid or missing key",
}
errno errmsg Description
50 access denied Unauthorized IP Address or Referer. Please check your access privileges.
90 invalid country code Check supported country codes. ISO 3166-1 alpha-2
91 name not set || email not set Missing name or email parameter on your request.
92 too many names || too many emails Limit is 100 for names, 50 for emails in one request.
93 limit reached The API key credit has been finished.
94 invalid or missing key The API key cannot be found.
99 API key has expired Please renew your API key.

Postman

  • 1. Download postman configuration file (right-click the link and click 'Save As'). Open Postman, click File->Import
  • 2. Click root folder named 'GenderAPI.io'
  • 3. Click Authorization tab and paste your API Key. Register and get your free 200 credits/day
How to import and configure Postman

Name to Gender


Single Name

Basic usage of single name request


GET /api/?name=Anna&key=<YourAPIkey> HTTP/1.1
Host: api.genderapi.io

POST /api/ HTTP/1.1
Host: api.genderapi.io
Content-Type: application/x-www-form-urlencoded
name=Anna&key=<YourAPIkey>
Select Your Programing Language
GET
$curl = curl_init();

curl_setopt_array($curl, array(
    CURLOPT_URL => 'https://api.genderapi.io/api/?name=abraham&key=<YourAPIkey>',
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_ENCODING => '',
    CURLOPT_MAXREDIRS => 10,
    CURLOPT_TIMEOUT => 0,
    CURLOPT_FOLLOWLOCATION => true,
    CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
    CURLOPT_CUSTOMREQUEST => 'GET',
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;

POST
$curl = curl_init();

curl_setopt_array($curl, array(
    CURLOPT_URL => 'https://api.genderapi.io/api/',
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_ENCODING => '',
    CURLOPT_MAXREDIRS => 10,
    CURLOPT_TIMEOUT => 0,
    CURLOPT_FOLLOWLOCATION => true,
    CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
    CURLOPT_CUSTOMREQUEST => 'POST',
    CURLOPT_POSTFIELDS => 'name=abraham&key=<YourAPIkey>',
    CURLOPT_HTTPHEADER => array(
        'Content-Type: application/x-www-form-urlencoded'
    ),
));

$response = curl_exec($curl);

curl_close($curl);
echo $response;

GET
$client = new Client();
$request = new Request('GET', 'https://api.genderapi.io/api/?name=abraham&key=<YourAPIkey>');
$res = $client->sendAsync($request)->wait();
echo $res->getBody();

POST
$client = new Client();
$headers = [
    'Content-Type' => 'application/x-www-form-urlencoded'
];
$options = [
    'form_params' => [
        'name' => 'abraham',
        'key' => '<YourAPIkey>'
    ]];
$request = new Request('POST', 'https://api.genderapi.io/api/', $headers);
$res = $client->sendAsync($request, $options)->wait();
echo $res->getBody();

GET
require_once 'HTTP/Request2.php';
$request = new HTTP_Request2();
$request->setUrl('https://api.genderapi.io/api/?name=abraham&key=<YourAPIkey>');
$request->setMethod(HTTP_Request2::METHOD_GET);
$request->setConfig(array(
    'follow_redirects' => TRUE
));
try {
    $response = $request->send();
    if ($response->getStatus() == 200) {
        echo $response->getBody();
    }
    else {
        echo 'Unexpected HTTP status: ' . $response->getStatus() . ' ' .
        $response->getReasonPhrase();
    }
}
catch(HTTP_Request2_Exception $e) {
    echo 'Error: ' . $e->getMessage();
}

POST
require_once 'HTTP/Request2.php';
$request = new HTTP_Request2();
$request->setUrl('https://api.genderapi.io/api/');
$request->setMethod(HTTP_Request2::METHOD_POST);
$request->setConfig(array(
    'follow_redirects' => TRUE
));
$request->setHeader(array(
    'Content-Type' => 'application/x-www-form-urlencoded'
));
$request->addPostParameter(array(
    'name' => 'maria',
    'key' => '<YourAPIkey>'
));
try {
    $response = $request->send();
    if ($response->getStatus() == 200) {
        echo $response->getBody();
    }
    else {
        echo 'Unexpected HTTP status: ' . $response->getStatus() . ' ' . $response->getReasonPhrase();
    }
}
catch(HTTP_Request2_Exception $e) {
    echo 'Error: ' . $e->getMessage();
}

GET
$client = new http\Client;
$request = new http\Client\Request;
$request->setRequestUrl('https://api.genderapi.io/api/?name=abraham&key=<YourAPIkey>');
$request->setRequestMethod('GET');
$request->setOptions(array());

$client->enqueue($request)->send();
$response = $client->getResponse();
echo $response->getBody();

POST
$client = new http\Client;
$request = new http\Client\Request;
$request->setRequestUrl('https://api.genderapi.io/api/');
$request->setRequestMethod('POST');
$body = new http\Message\Body;
$body->append(new http\QueryString(array(
    'name' => 'maria',
    'key' => '<YourAPIkey>')));$request->setBody($body);
$request->setOptions(array());
$request->setHeaders(array(
    'Content-Type' => 'application/x-www-form-urlencoded'
));
$client->enqueue($request)->send();
$response = $client->getResponse();
echo $response->getBody();

GET
import http.client
conn = http.client.HTTPSConnection("api.genderapi.io")
payload = ''
headers = {}
conn.request("GET", "/api/?name=abraham&key=<YourAPIkey>", payload, headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))

POST
import http.client
conn = http.client.HTTPSConnection("api.genderapi.io")
payload = 'name=maria&key=<YourAPIkey>'
headers = {
    'Content-Type': 'application/x-www-form-urlencoded'
}
conn.request("POST", "/api/", payload, headers)
res = conn.getresponse()
data = res.read()
print(data.decode("utf-8"))

GET
import requests

url = "https://api.genderapi.io/api/?name=abraham&key=<YourAPIkey>"

payload = {}
headers = {}

response = requests.request("GET", url, headers=headers, data=payload)

print(response.text)

POST
import requests

url = "https://api.genderapi.io/api/"

payload = 'name=maria&key=<YourAPIkey>'
headers = {
    'Content-Type': 'application/x-www-form-urlencoded'
}

response = requests.request("POST", url, headers=headers, data=payload)

print(response.text)

GET
OkHttpClient client = new OkHttpClient().newBuilder().build();
MediaType mediaType = MediaType.parse("text/plain");
RequestBody body = RequestBody.create(mediaType, "");
Request request = new Request.Builder()
    .url("https://api.genderapi.io/api/?name=abraham&key=<YourAPIkey>")
    .method("GET", body)
    .build();
Response response = client.newCall(request).execute();

POST
OkHttpClient client = new OkHttpClient().newBuilder()
    .build();
MediaType mediaType = MediaType.parse("application/x-www-form-urlencoded");
RequestBody body = RequestBody.create(mediaType, "name=maria&key=<YourAPIkey>");
Request request = new Request.Builder()
    .url("https://api.genderapi.io/api/")
    .method("POST", body)
    .addHeader("Content-Type", "application/x-www-form-urlencoded")
    .build();
Response response = client.newCall(request).execute();

GET
Unirest.setTimeouts(0, 0);
HttpResponse<String> response = Unirest.get("https://api.genderapi.io/api/?name=abraham&key=<YourAPIkey>")
    .asString();

POST
Unirest.setTimeouts(0, 0);
HttpResponse<String> response = Unirest.post("https://api.genderapi.io/api/")
    .header("Content-Type", "application/x-www-form-urlencoded")
    .field("name", "maria")
    .field("key", "<YourAPIkey>")
    .asString();

GET
var requestOptions = {
    method: 'GET',
    redirect: 'follow'
};

fetch("https://api.genderapi.io/api/?name=abraham&key=<YourAPIkey>", requestOptions)
    .then(response => response.text())
    .then(result => console.log(result))
    .catch(error => console.log('error', error));

POST
var myHeaders = new Headers();
myHeaders.append("Content-Type", "application/x-www-form-urlencoded");

var urlencoded = new URLSearchParams();
urlencoded.append("name", "maria");
urlencoded.append("key", "<YourAPIkey>");

var requestOptions = {
    method: 'POST',
    headers: myHeaders,
    body: urlencoded,
    redirect: 'follow'
};

fetch("https://api.genderapi.io/api/", requestOptions)
    .then(response => response.text())
    .then(result => console.log(result))
    .catch(error => console.log('error', error));

GET
var settings = {
    "url": "https://api.genderapi.io/api/?name=abraham&key=<YourAPIkey>",
    "method": "GET",
    "timeout": 0,
};

$.ajax(settings).done(function (response) {
    console.log(response);
});

POST
var settings = {
"url": "https://api.genderapi.io/api/",
"method": "POST",
"timeout": 0,
"headers": {
    "Content-Type": "application/x-www-form-urlencoded"
},
"data": {
    "name": "maria",
    "key": "<YourAPIkey>"
}
};

$.ajax(settings).done(function (response) {
    console.log(response);
});

GET
// WARNING: For GET requests, body is set to null by browsers.
var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function() {
    if(this.readyState === 4) {
        console.log(this.responseText);
    }
});

xhr.open("GET", "https://api.genderapi.io/api/?name=abraham&key=<YourAPIkey>");

xhr.send();

POST
// WARNING: For POST requests, body is set to null by browsers.
var data = "name=maria&key=<YourAPIkey>";

var xhr = new XMLHttpRequest();
xhr.withCredentials = true;

xhr.addEventListener("readystatechange", function() {
    if(this.readyState === 4) {
        console.log(this.responseText);
    }
});

xhr.open("POST", "https://api.genderapi.io/api/");
xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");

xhr.send(data);

GET
var client = new HttpClient();
var request = new HttpRequestMessage(HttpMethod.Get, "https://api.genderapi.io/api/?name=abraham&key=<YourAPIkey>");
var response = await client.SendAsync(request);
response.EnsureSuccessStatusCode();
Console.WriteLine(await response.Content.ReadAsStringAsync());

POST
var client = new HttpClient();
var request = new HttpRequestMessage(HttpMethod.Post, "https://api.genderapi.io/api/");
var collection = new List<KeyValuePair<string, string>>();
collection.Add(new("name", "maria"));
collection.Add(new("key", "<YourAPIkey>"));
var content = new FormUrlEncodedContent(collection);
request.Content = content;
var response = await client.SendAsync(request);
response.EnsureSuccessStatusCode();
Console.WriteLine(await response.Content.ReadAsStringAsync());

GET
var options = new RestClientOptions("https://api.genderapi.io")
{
    MaxTimeout = -1,
};
var client = new RestClient(options);
var request = new RestRequest("/api/?name=abraham&key=<YourAPIkey>", Method.Get);
RestResponse response = await client.ExecuteAsync(request);
Console.WriteLine(response.Content);

POST
var options = new RestClientOptions("https://api.genderapi.io")
{
    MaxTimeout = -1,
};
var client = new RestClient(options);
var request = new RestRequest("/api/", Method.Post);
request.AddHeader("Content-Type", "application/x-www-form-urlencoded");
request.AddParameter("name", "maria");
request.AddParameter("key", "<YourAPIkey>");
RestResponse response = await client.ExecuteAsync(request);
Console.WriteLine(response.Content);

GET
curl --location 'https://api.genderapi.io/api/?name=abraham&key=<Your-API-Key>'

POST
curl --location 'https://api.genderapi.io/api/' \
    --header 'Content-Type: application/x-www-form-urlencoded' \
    --data-urlencode 'name=maria' \
    --data-urlencode 'key=<YourAPIkey>'

GET
var dio = Dio();
var response = await dio.request(
    'https://api.genderapi.io/api/?name=abraham&key=<YourAPIkey>',
    options: Options(
        method: 'GET',
    ),
);

if (response.statusCode == 200) {
    print(json.encode(response.data));
}
else {
    print(response.statusMessage);
}

POST
var headers = {
    'Content-Type': 'application/x-www-form-urlencoded'
};
var data = {
    'name': 'maria',
    'key': '<YourAPIkey>'
};
var dio = Dio();
var response = await dio.request(
    'https://api.genderapi.io/api/',
    options: Options(
        method: 'POST',
        headers: headers,
    ),
    data: data,
);

if (response.statusCode == 200) {
    print(json.encode(response.data));
}
else {
    print(response.statusMessage);
}

GET
var request = http.Request('GET', Uri.parse('https://api.genderapi.io/api/?name=abraham&key=<YourAPIkey>'));
http.StreamedResponse response = await request.send(); if (response.statusCode == 200) { print(await response.stream.bytesToString()); } else { print(response.reasonPhrase); }
POST
var headers = {
    'Content-Type': 'application/x-www-form-urlencoded'
};
var request = http.Request('POST', Uri.parse('https://api.genderapi.io/api/'));
request.bodyFields = {
    'name': 'maria',
    'key': '<YourAPIkey>'
};
request.headers.addAll(headers);

http.StreamedResponse response = await request.send();

if (response.statusCode == 200) {
    print(await response.stream.bytesToString());
}
else {
    print(response.reasonPhrase);
}

GET
package main
import (
    "fmt"
    "net/http"
    "io/ioutil"
)

func main() {

    url := "https://api.genderapi.io/api/?name=abraham&key=<YourAPIkey>"
    method := "GET"

    client := &http.Client {}
    req, err := http.NewRequest(method, url, nil)

    if err != nil {
        fmt.Println(err)
        return
    }
    res, err := client.Do(req)
    if err != nil {
        fmt.Println(err)
        return
    }
    defer res.Body.Close()

    body, err := ioutil.ReadAll(res.Body)
    if err != nil {
        fmt.Println(err)
        return
    }
    fmt.Println(string(body))
}

POST
package main
import (
    "fmt"
    "strings"
    "net/http"
    "io/ioutil"
)

func main() {

    url := "https://api.genderapi.io/api/"
    method := "POST"

    payload := strings.NewReader("name=maria&key=<YourAPIkey>")

    client := &http.Client {
    }
    req, err := http.NewRequest(method, url, payload)

    if err != nil {
        fmt.Println(err)
        return
    }
    req.Header.Add("Content-Type", "application/x-www-form-urlencoded")

    res, err := client.Do(req)
    if err != nil {
        fmt.Println(err)
        return
    }
    defer res.Body.Close()

    body, err := ioutil.ReadAll(res.Body)
    if err != nil {
        fmt.Println(err)
        return
    }
    fmt.Println(string(body))
}

GET
val client = OkHttpClient()
val request = Request.Builder()
    .url("https://api.genderapi.io/api/?name=abraham&key=<YourAPIkey>")
    .build()
val response = client.newCall(request).execute()

POST
val client = OkHttpClient()
val mediaType = "application/x-www-form-urlencoded".toMediaType()
val body = "name=maria&key=<YourAPIkey>".toRequestBody(mediaType)
val request = Request.Builder()
    .url("https://api.genderapi.io/api/")
    .post(body)
    .addHeader("Content-Type", "application/x-www-form-urlencoded")
    .build()
val response = client.newCall(request).execute()

GET
CURL *curl;
CURLcode res;
curl = curl_easy_init();
if(curl) {
    curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "GET");
    curl_easy_setopt(curl, CURLOPT_URL, "https://api.genderapi.io/api/?name=abraham&key=<YourAPIkey>");
    curl_easy_setopt(curl, CURLOPT_FOLLOWLOCATION, 1L);
    curl_easy_setopt(curl, CURLOPT_DEFAULT_PROTOCOL, "https");
    struct curl_slist *headers = NULL;
    curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
    res = curl_easy_perform(curl);
}
curl_easy_cleanup(curl);

POST
CURL *curl;
CURLcode res;
curl = curl_easy_init();
if(curl) {
    curl_easy_setopt(curl, CURLOPT_CUSTOMREQUEST, "POST");
    curl_easy_setopt(curl, CURLOPT_URL, "https://api.genderapi.io/api/");
    curl_easy_setopt(curl, CURLOPT_FOLLOWLOCATION, 1L);
    curl_easy_setopt(curl, CURLOPT_DEFAULT_PROTOCOL, "https");
    struct curl_slist *headers = NULL;
    headers = curl_slist_append(headers, "Content-Type: application/x-www-form-urlencoded");
    curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
    const char *data = "name=maria&key=<YourAPIkey>";
    curl_easy_setopt(curl, CURLOPT_POSTFIELDS, data);
    res = curl_easy_perform(curl);
}
curl_easy_cleanup(curl);

GET
const axios = require('axios');

let config = {
    method: 'get',
    maxBodyLength: Infinity,
    url: 'https://api.genderapi.io/api/?name=abraham&key=<YourAPIkey>',
    headers: { }
};

axios.request(config)
    .then((response) => {
        console.log(JSON.stringify(response.data));
    })
    .catch((error) => {
        console.log(error);
    });

POST
const axios = require('axios');
const qs = require('qs');

let data = qs.stringify({
    'name': 'maria',
    'key': '<YourAPIkey>'
});

let config = {
    method: 'post',
    maxBodyLength: Infinity,
    url: 'https://api.genderapi.io/api/',
    headers: {
        'Content-Type': 'application/x-www-form-urlencoded'
    },
    data : data
};

axios.request(config)
    .then((response) => {
        console.log(JSON.stringify(response.data));
    })
    .catch((error) => {
        console.log(error);
    });

GET
var https = require('follow-redirects').https;
var fs = require('fs');

var options = {
    'method': 'GET',
    'hostname': 'api.genderapi.io',
    'path': '/api/?name=abraham&key=<YourAPIkey>',
    'headers': {},
    'maxRedirects': 20
};

var req = https.request(options, function (res) {
    var chunks = [];

    res.on("data", function (chunk) {
        chunks.push(chunk);
    });

    res.on("end", function (chunk) {
        var body = Buffer.concat(chunks);
        console.log(body.toString());
    });

    res.on("error", function (error) {
        console.error(error);
    });
});

req.end();

POST
var https = require('follow-redirects').https;
var fs = require('fs');

var qs = require('querystring');

var options = {
    'method': 'POST',
    'hostname': 'api.genderapi.io',
    'path': '/api/',
    'headers': {
        'Content-Type': 'application/x-www-form-urlencoded'
    },
    'maxRedirects': 20
};

var req = https.request(options, function (res) {
    var chunks = [];

    res.on("data", function (chunk) {
        chunks.push(chunk);
    });

    res.on("end", function (chunk) {
        var body = Buffer.concat(chunks);
        console.log(body.toString());
    });

    res.on("error", function (error) {
        console.error(error);
    });
});

var postData = qs.stringify({
    'name': 'maria',
    'key': '<YourAPIkey>'
});

req.write(postData);

req.end();

GET
var request = require('request');
var options = {
    'method': 'GET',
    'url': 'https://api.genderapi.io/api/?name=abraham&key=<YourAPIkey>',
    'headers': {}
};
request(options, function (error, response) {
    if (error) throw new Error(error);
    console.log(response.body);
});

POST
var request = require('request');
var options = {
    'method': 'POST',
    'url': 'https://api.genderapi.io/api/',
    'headers': {
        'Content-Type': 'application/x-www-form-urlencoded'
    },
    form: {
        'name': 'maria',
        'key': '<YourAPIkey>'
    }
};
request(options, function (error, response) {
    if (error) throw new Error(error);
    console.log(response.body);
});

GET
var unirest = require('unirest');
var req = unirest('GET', 'https://api.genderapi.io/api/?name=abraham&key=<YourAPIkey>')
    .end(function (res) {
        if (res.error) throw new Error(res.error);
        console.log(res.raw_body);
    });

POST
var unirest = require('unirest');
var req = unirest('POST', 'https://api.genderapi.io/api/')
    .headers({
        'Content-Type': 'application/x-www-form-urlencoded'
    })
    .send('name=maria')
    .send('key=<YourAPIkey>')
    .end(function (res) {
        if (res.error) throw new Error(res.error);
        console.log(res.raw_body);
    });

GET
#import <Foundation/Foundation.h>
dispatch_semaphore_t sema = dispatch_semaphore_create(0);

NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:@"https://api.genderapi.io/api/?name=abraham&key=<YourAPIkey>"]
  cachePolicy:NSURLRequestUseProtocolCachePolicy
  timeoutInterval:10.0];

[request setHTTPMethod:@"GET"];

NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *dataTask = [session dataTaskWithRequest:request
completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
    if (error) {
        NSLog(@"%@", error);
        dispatch_semaphore_signal(sema);
    } else {
        NSHTTPURLResponse *httpResponse = (NSHTTPURLResponse *) response;
        NSError *parseError = nil;
        NSDictionary *responseDictionary = [NSJSONSerialization JSONObjectWithData:data options:0 error:&parseError];
        NSLog(@"%@",responseDictionary);
        dispatch_semaphore_signal(sema);
    }
}];
[dataTask resume];
dispatch_semaphore_wait(sema, DISPATCH_TIME_FOREVER);

POST
#import <Foundation/Foundation.h>
dispatch_semaphore_t sema = dispatch_semaphore_create(0);

NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:@"https://api.genderapi.io/api/"]
    cachePolicy:NSURLRequestUseProtocolCachePolicy
    timeoutInterval:10.0];
NSDictionary *headers = @{
    @"Content-Type": @"application/x-www-form-urlencoded"
};

[request setAllHTTPHeaderFields:headers];
NSMutableData *postData = [[NSMutableData alloc] initWithData:[@"name=maria" dataUsingEncoding:NSUTF8StringEncoding]];
[postData appendData:[@"&key=<YourAPIkey>" dataUsingEncoding:NSUTF8StringEncoding]];
[request setHTTPBody:postData];

[request setHTTPMethod:@"POST"];

NSURLSession *session = [NSURLSession sharedSession];
NSURLSessionDataTask *dataTask = [session dataTaskWithRequest:request
completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
    if (error) {
        NSLog(@"%@", error);
        dispatch_semaphore_signal(sema);
    } else {
        NSHTTPURLResponse *httpResponse = (NSHTTPURLResponse *) response;
        NSError *parseError = nil;
        NSDictionary *responseDictionary = [NSJSONSerialization JSONObjectWithData:data options:0 error:&parseError];
        NSLog(@"%@",responseDictionary);
        dispatch_semaphore_signal(sema);
    }
}];
[dataTask resume];
dispatch_semaphore_wait(sema, DISPATCH_TIME_FOREVER);

GET
open Lwt
open Cohttp
open Cohttp_lwt_unix

let reqBody =
let uri = Uri.of_string "https://api.genderapi.io/api/?name=abraham&key=<YourAPIkey>" in
Client.call `GET uri >>= fun (_resp, body) ->
body |> Cohttp_lwt.Body.to_string >|= fun body -> body

let () =
let respBody = Lwt_main.run reqBody in
print_endline (respBody)

POST
open Lwt
open Cohttp
open Cohttp_lwt_unix

let postData = ref "name=maria&key=<YourAPIkey>";;

let reqBody =
let uri = Uri.of_string "https://api.genderapi.io/api/" in
let headers = Header.init ()
|> fun h -> Header.add h "Content-Type" "application/x-www-form-urlencoded"
in
let body = Cohttp_lwt.Body.of_string !postData in

Client.call ~headers ~body `POST uri >>= fun (_resp, body) ->
body |> Cohttp_lwt.Body.to_string >|= fun body -> body

let () =
let respBody = Lwt_main.run reqBody in
print_endline (respBody)

GET
$response = Invoke-RestMethod 'https://api.genderapi.io/api/?name=abraham&key=<YourAPIkey>' -Method 'GET' -Headers $headers
$response | ConvertTo-Json

POST
$headers = New-Object "System.Collections.Generic.Dictionary[[String],[String]]"
$headers.Add("Content-Type", "application/x-www-form-urlencoded")

$body = "name=maria&key=<YourAPIkey>"

$response = Invoke-RestMethod 'https://api.genderapi.io/api/' -Method 'POST' -Headers $headers -Body $body
$response | ConvertTo-Json

GET
library(httr)
res <- VERB("GET", url = "https://api.genderapi.io/api/?name=abraham&key=<YourAPIkey>") cat(content(res, 'text'))
POST
library(httr)

headers = c(
    'Content-Type' = 'application/x-www-form-urlencoded'
)

body = list(
    'name' = 'maria',
    'key' = '<YourAPIkey>'
)

res <- VERB("POST", url = "https://api.genderapi.io/api/", body = body, add_headers(headers), encode = 'form')

cat(content(res, 'text'))

GET
library(RCurl)
res <- getURL("https://api.genderapi.io/api/?name=abraham&key=<YourAPIkey>", .opts=list(followlocation = TRUE))
cat(res)

POST
library(RCurl)
headers = c(
    "Content-Type" = "application/x-www-form-urlencoded"
)
params = c(
    "name" = "maria",
    "key" = "<YourAPIkey>"
)
res <- postForm("https://api.genderapi.io/api/", .params = params, .opts=list(httpheader = headers, followlocation = TRUE), style = "post")
cat(res)

GET
require "uri"
require "net/http"

url = URI("https://api.genderapi.io/api/?name=abraham&key=<YourAPIkey>")

https = Net::HTTP.new(url.host, url.port)
https.use_ssl = true

request = Net::HTTP::Get.new(url)

response = https.request(request)
puts response.read_body

POST
require "uri"
require "net/http"

url = URI("https://api.genderapi.io/api/")

https = Net::HTTP.new(url.host, url.port)
https.use_ssl = true

request = Net::HTTP::Post.new(url)
request["Content-Type"] = "application/x-www-form-urlencoded"
request.body = "name=maria&key=<YourAPIkey>"

response = https.request(request)
puts response.read_body

GET
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
    let client = reqwest::Client::builder()
        .build()?;

    let request = client.request(reqwest::Method::GET, "https://api.genderapi.io/api/?name=abraham&key=<YourAPIkey>");

    let response = request.send().await?;
    let body = response.text().await?;

    println!("{}", body);

    Ok(())
}

POST
#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
    let client = reqwest::Client::builder()
        .build()?;

    let mut headers = reqwest::header::HeaderMap::new();
    headers.insert("Content-Type", "application/x-www-form-urlencoded".parse()?);

    let mut params = std::collections::HashMap::new();
    params.insert("name", "maria");
    params.insert("key", "<YourAPIkey>");

    let request = client.request(reqwest::Method::POST, "https://api.genderapi.io/api/")
        .headers(headers)
        .form(&params);

    let response = request.send().await?;
    let body = response.text().await?;

    println!("{}", body);

    Ok(())
}

GET
var request = URLRequest(url: URL(string: "https://api.genderapi.io/api/?name=Anna&key=<YourAPIkey>")!,timeoutInterval: Double.infinity)
request.httpMethod = "GET"

let task = URLSession.shared.dataTask(with: request) { data, response, error in
    guard let data = data else {
        print(String(describing: error))
        return
    }
    print(String(data: data, encoding: .utf8)!)
}

task.resume()

POST
let parameters = "name=abraham&key=<YourAPIkey>"
let postData =  parameters.data(using: .utf8)

var request = URLRequest(url: URL(string: "https://api.genderapi.io/api/")!,timeoutInterval: Double.infinity)
request.addValue("application/x-www-form-urlencoded", forHTTPHeaderField: "Content-Type")

request.httpMethod = "POST"
request.httpBody = postData

let task = URLSession.shared.dataTask(with: request) { data, response, error in
    guard let data = data else {
        print(String(describing: error))
        return
    }
    print(String(data: data, encoding: .utf8)!)
}

task.resume()

GET
http --follow --timeout 3600 GET 'https://api.genderapi.io/api/?name=Anna&key=<YourAPIkey>'

POST
http --ignore-stdin --form --follow --timeout 3600 POST 'https://api.genderapi.io/api/' \
    'name'='abraham' \
    'key'='<YourAPIkey>' \
    Content-Type:'application/x-www-form-urlencoded'

GET
wget --no-check-certificate --quiet \
    --method GET \
    --timeout=0 \
    --header '' \
    'https://api.genderapi.io/api/?name=Anna&key=<YourAPIkey>'

POST
wget --no-check-certificate --quiet \
    --method POST \
    --timeout=0 \
    --header 'Content-Type: application/x-www-form-urlencoded' \
    --body-data 'name=abraham&key=<YourAPIkey>' \
    'https://api.genderapi.io/api/'


RESPONSE
{
    "status": true,
    "used_credits": 1,
    "remaining_credits": 7295,
    "expires": 1717069765,
    "q": "anna",
    "name": "anna",
    "gender": "female",
    "country": "US",
    "total_names": 80455,
    "probability": 99,
    "duration": "4ms"
}
Field Data Type Value Description
status Boolean true,false Please check error codes when false
used_credits Integer Any Number of credits used on recent request
remaining_credits Integer Any Number of credits remaining on your package
expires Integer Any Expiration date of your package in timestamp as seconds
q String Any Your query
name String Any The found name
gender enum[String] ["male","female","null"] Result of the gender
country enum[String] ["US","DE","FR","IT",...] The most encountered country
total_names Integer Any The number of samples
probability Integer 50 - 100 The percentage likelihood of the result
duration String milliseconds "4ms" Processing time of your request on server

Single Name with Country Filter

In one country, a name can be female while in another country, it can be male.
By adding the country filter to your queries, you can obtain gender information specific to that country.
Find the ISO 3166-1 alpha-2 country codes

* If there is no result with given country filter, we will give the global name result.


GET /api/?name=Anna&country=US&key=<YourAPIkey> HTTP/1.1
Host: api.genderapi.io

POST /api/ HTTP/1.1
Host: api.genderapi.io
Content-Type: application/x-www-form-urlencoded
name=Anna&country=US&key=<YourAPIkey>
Select Your Programing Language
Loading...

RESPONSE
{
    "status": true,
    "used_credits": 1,
    "remaining_credits": 7295,
    "expires": 1717069765,
    "q": "anna",
    "name": "anna",
    "gender": "female",
    "country": "US",
    "total_names": 80455,
    "probability": 99,
    "duration": "4ms"
}
Field Data Type Value Description
status Boolean true,false Please check error codes when false
used_credits Integer Any Number of credits used on recent request
remaining_credits Integer Any Number of credits remaining on your package
expires Integer Any Expiration date of your package in timestamp as seconds
q String Any Your query
name String Any The found name
gender enum[String] ["male","female","null"] Result of the gender
country enum[String] ["US","DE","FR","IT",...] The most encountered country
total_names Integer Any The number of samples
probability Integer 50 - 100 The percentage likelihood of the result
duration String milliseconds "4ms" Processing time of your request on server

Multiple Names

You can query multiple names at once. The maximum limit is 100.


GET /api/?name[]=Anna&name[]=james&key=<YourAPIkey> HTTP/1.1
Host: api.genderapi.io

POST /api/ HTTP/1.1
Host: api.genderapi.io
Content-Type: application/x-www-form-urlencoded
name=Anna&name=james&key=<YourAPIkey>
Select Your Programing Language
Loading...

RESPONSE
{
    "status": true,
    "used_credits": 2,
    "remaining_credits": 7291,
    "expires": 1717069765,
    "q": "anna;james brown",
    "names": [
        {
            "name": "james",
            "q": "james brown",
            "gender": "male",
            "country": "US",
            "total_names": 70373,
            "probability": 99
        },
        {
            "name": "anna",
            "q": "anna",
            "gender": "female",
            "country": "US",
            "total_names": 80455,
            "probability": 99
        }
    ],
    "duration": "2ms"
}
Field Data Type Value Description
status Boolean true,false Please check error codes when false
used_credits Integer Any Number of credits used on recent request
remaining_credits Integer Any Number of credits remaining on your package
expires Integer Any Expiration date of your package in timestamp as seconds
names Array Any List of your results
duration String milliseconds("4ms") Processing time of your request on server
names(Array)
Field Data Type Value Description
q String Any Your query
name String Any The found name
gender enum[String] ["male","female","null"] Result of the gender
country enum[String] ["US","DE","FR","IT",...] The most encountered country
total_names Integer Any The number of samples
probability Integer 50 - 100 The percentage likelihood of the result

Multiple Names with Country Filter

In one country, a name can be female while in another country, it can be male.
By adding the country filter to your queries, you can obtain gender information specific to that country.
Find the ISO 3166-1 alpha-2 country codes

* If there is no result with given country filter, we will give the global name result.

* You can query multiple names at once. The maximum limit is 100.


POST /api/name/multi/country HTTP/1.1
Host: api.genderapi.io
Content-Type: application/json

{
"key":"<YourAPIkey>",
"data":[
    {"name":"Andrea", "country":"DE", "id":"optional"},
    {"name":"andrea", "country":"IT", "id":"optional"},
    {"name":"james", "country":"US", "id":"optional"}
  ]
}

Select Your Programing Language
Loading...

RESPONSE
{
    "status": true,
    "used_credits": 3,
    "remaining_credits": 7265,
    "expires": 1717069765,
    "names": [
        {
            "name": "andrea",
            "q": "Andrea",
            "gender": "female",
            "country": "DE",
            "total_names": 644,
            "probability": 88,
            "id":"optional"
        },
        {
            "name": "andrea",
            "q": "andrea",
            "gender": "male",
            "country": "IT",
            "total_names": 13537,
            "probability": 98,
            "id":"optional"
        },
        {
            "name": "james",
            "q": "james",
            "gender": "male",
            "country": "US",
            "total_names": 45274,
            "probability": 100,
            "id":"optional"
        }
    ],
    "duration": "5ms"
}
Field Data Type Value Description
status Boolean true,false Please check error codes when false
used_credits Integer Any Number of credits used on recent request
remaining_credits Integer Any Number of credits remaining on your package
expires Integer Any Expiration date of your package in timestamp as seconds
names Array Any List of your results
duration String milliseconds("4ms") Processing time of your request on server
names(Array)
Field Data Type Value Description
q String Any Your query
name String Any The found name
gender enum[String] ["male","female","null"] Result of the gender
country enum[String] ["US","DE","FR","IT",...] The most encountered country
total_names Integer Any The number of samples
probability Integer 50 - 100 The percentage likelihood of the result
id Any Any optional

Email to Gender


Single Email

Basic usage of single email request


GET /api/email/?email=annarobinson@gmail.com&key=<YourAPIkey> HTTP/1.1
Host: api.genderapi.io

POST /api/email/ HTTP/1.1
Host: api.genderapi.io
Content-Type: application/x-www-form-urlencoded
email=annarobinson@gmail.com&key=<YourAPIkey>
Select Your Programing Language
Loading...

RESPONSE
{
    "status": true,
    "used_credits": 1,
    "remaining_credits": 4,
    "expires": 1717046468,
    "q": "annarobinson@gmail.com",
    "name": "anna",
    "gender": "female",
    "country": "US",
    "total_names": 80455,
    "probability": 99,
    "duration": "11ms"
}
Field Data Type Value Description
status Boolean true,false Please check error codes when false
used_credits Integer Any Number of credits used on recent request
remaining_credits Integer Any Number of credits remaining on your package
expires Integer Any Expiration date of your package in timestamp as seconds
q String Any Your query
name String Any The found name
gender enum[String] ["male","female","null"] Result of the gender
country enum[String] ["US","DE","FR","IT",...] The most encountered country
total_names Integer Any The number of samples
probability Integer 50 - 100 The percentage likelihood of the result
duration String milliseconds "4ms" Processing time of your request on server

Single Email with Country Filter

In one country, a name can be female while in another country, it can be male.
By adding the country filter to your queries, you can obtain gender information specific to that country.
Find the ISO 3166-1 alpha-2 country codes

* If there is no result with given country filter, we will give the global name result.


GET /api/email/?email=annarobinson@gmail.com&country=US&key=<YourAPIkey> HTTP/1.1
Host: api.genderapi.io

POST /api/email/ HTTP/1.1
Host: api.genderapi.io
Content-Type: application/x-www-form-urlencoded
email=annarobinson@gmail.com&country=US&key=<YourAPIkey>
Select Your Programing Language
Loading...

RESPONSE
{
    "status": true,
    "used_credits": 1,
    "remaining_credits": 4,
    "expires": 1717046468,
    "q": "annarobinson@gmail.com",
    "name": "anna",
    "gender": "female",
    "country": "US",
    "total_names": 80455,
    "probability": 99,
    "duration": "11ms"
}
Field Data Type Value Description
status Boolean true,false Please check error codes when false
used_credits Integer Any Number of credits used on recent request
remaining_credits Integer Any Number of credits remaining on your package
expires Integer Any Expiration date of your package in timestamp as seconds
q String Any Your query
name String Any The found name
gender enum[String] ["male","female","null"] Result of the gender
country enum[String] ["US","DE","FR","IT",...] The most encountered country
total_names Integer Any The number of samples
probability Integer 50 - 100 The percentage likelihood of the result
duration String milliseconds "4ms" Processing time of your request on server

Multiple Emails

You can query multiple emails at once. The maximum limit is 50.


GET /api/email/?email[]=annarobinson@gmail.com&email[]=jameswhite@gmail.com&key=<YourAPIkey> HTTP/1.1
Host: api.genderapi.io

POST /api/email/ HTTP/1.1
Host: api.genderapi.io
Content-Type: application/x-www-form-urlencoded
email=annarobinson@gmail.com&email=jameswhite@gmail.com&key=<YourAPIkey>
Select Your Programing Language
Loading...

RESPONSE
{
    "status": true,
    "used_credits": 2,
    "remaining_credits": 7276,
    "expires": 1717069765,
    "q": "annarobinson@mail.com;jameswhite@mail.com",
    "names": [
        {
            "name": "anna",
            "q": "annawhite@mail.com",
            "gender": "female",
            "country": "US",
            "total_names": 80455,
            "probability": 99
        },
        {
            "name": "james",
            "q": "jamesbrown@mail.com",
            "gender": "male",
            "country": "US",
            "total_names": 70373,
        "probability": 99
        }
    ],
    "duration": "4ms"
}
Field Data Type Value Description
status Boolean true,false Please check error codes when false
used_credits Integer Any Number of credits used on recent request
remaining_credits Integer Any Number of credits remaining on your package
expires Integer Any Expiration date of your package in timestamp as seconds
names Array Any List of your results
duration String milliseconds("4ms") Processing time of your request on server
names(Array)
Field Data Type Value Description
q String Any Your query
name String Any The found name
gender enum[String] ["male","female","null"] Result of the gender
country enum[String] ["US","DE","FR","IT",...] The most encountered country
total_names Integer Any The number of samples
probability Integer 50 - 100 The percentage likelihood of the result

Multiple Emails with Country Filter

In one country, a name can be female while in another country, it can be male.
By adding the country filter to your queries, you can obtain gender information specific to that country.
Find the ISO 3166-1 alpha-2 country codes

* If there is no result with given country filter, we will give the global name result.

* You can query multiple emails at once. The maximum limit is 50.


POST /api/email/multi/country HTTP/1.1
Host: api.genderapi.io
Content-Type: application/json

{
"key":"<YourAPIkey>",
"data":[
    {"email":"Andreawhite@mail.com", "country":"DE", "id":"optional"},
    {"email":"andreabrown@gmail.com", "country":"IT", "id":"optional"},
    {"email":"jamesblack@yandex.com", "country":"US", "id":"optional"}
  ]
}

Select Your Programing Language
Loading...

RESPONSE
{
    "status": true,
    "used_credits": 3,
    "remaining_credits": 7282,
    "expires": 1717069765,
    "duration": "6ms",
    "names": [
        {
            "name": "andrea",
            "q": "Andreablack@email.com",
            "gender": "female",
            "country": "DE",
            "total_names": 644,
            "probability": 88,
            "id":"optional"
        },
        {
            "name": "andrea",
            "q": "andreawhite@gmail.com",
            "gender": "male",
            "country": "IT",
            "total_names": 13537,
            "probability": 98,
            "id":"optional"
        },
        {
            "name": "james",
            "q": "jamesbrown@gmail.com",
            "gender": "male",
            "country": "US",
            "total_names": 45274,
            "probability": 100,
            "id":"optional"
        }
    ]
}
Field Data Type Value Description
status Boolean true,false Please check error codes when false
used_credits Integer Any Number of credits used on recent request
remaining_credits Integer Any Number of credits remaining on your package
expires Integer Any Expiration date of your package in timestamp as seconds
names Array Any List of your results
duration String milliseconds("4ms") Processing time of your request on server
names(Array)
Field Data Type Value Description
q String Any Your query
name String Any The found name
gender enum[String] ["male","female","null"] Result of the gender
country enum[String] ["US","DE","FR","IT",...] The most encountered country
total_names Integer Any The number of samples
probability Integer 50 - 100 The percentage likelihood of the result
id Any Any Optional