Skip to content

markus-perl/gender-api-client

Repository files navigation

Gender-API.com PHP Client

About

PHP client for the Gender-API.com API.

Homepage: https://gender-api.com

FAQ: https://gender-api.com/en/frequently-asked-questions

API Docs: https://gender-api.com/en/api-docs

Contact: https://gender-api.com/en/contact

Installation

my-project$ composer require gender-api/client 

API-Key

Get a free API key here: https://gender-api.com/en/account

Development

Start the dockerized development machine with

docker-compose up 

Install all required packages

bin/composer install 

Run all unit tests with mock data

bin/phpunit 

Run all unit tests against the API

API_KEY=<yourkey> bin/phpunit 

Simple Usage

useGenderApi\ClientasGenderApiClient; try { $apiClient = newGenderApiClient('insert your API key'); $name = $apiClient->getByFirstName('elisabeth'); if ($name->genderFound()) { echo$name->getGender(); // will return "female" (possible values: male, female, unknown) } } catch (GenderApi\Exception$e) { // Name lookup failed due to a network error or insufficient requests left// See https://gender-api.com/en/api-docs/error-codesecho'Exception: ' . $e->getMessage(); }

Advanced Usage

useGenderApi\ClientasGenderApiClient; try { $apiClient = newGenderApiClient('insert your API key'); ```` // Get gender by first name and country$name = $apiClient->getByFirstNameAndCountry('elisabeth', 'US'); // Get gender by first name and client IP$name = $apiClient->getByFirstNameAndClientIpAddress('elisabeth', '178.27.52.144'); // Get gender by first name and browser locale$name = $apiClient->getByFirstNameAndLocale('elisabeth', 'en_US'); //Query multiple names with a single callforeach ($apiClient->getMultipleNames(array('stefan', 'elisabeth')) as$name) { if ($name->genderFound()) { echo$name->getName() . ': ' . $name->getGender(); // will return "female" (possible values: male, female, unknown) } } } catch (GenderApi\Exception$e) { // Name lookup failed due to a network error or insufficient requests left// See https://gender-api.com/en/api-docs/error-codesecho'Exception: ' . $e->getMessage(); }

Email Address

useGenderApi\ClientasGenderApiClient; try { $apiClient = newGenderApiClient('insert your API key'); // Get gender by email address name and country$name = $apiClient->getByEmailAddress('elisabeth1499@gmail.com'); if ($name->genderFound()) { echo$name->getGender(); // will return "female" } // Get gender by email address name and country$name = $apiClient->getByEmailAddressAndCountry('elisabeth.smith776@gmail.com', 'US'); echo$name->getGender(); // will return "female"if ($name->genderFound()) { echo$name->getGender(); // will return "female" } } catch (GenderApi\Exception$e) { // Name lookup failed due to a network error or insufficient requests left// See https://gender-api.com/en/api-docs/error-codesecho'Exception: ' . $e->getMessage(); }

Split First And Last Name

useGenderApi\ClientasGenderApiClient; try { $apiClient = newGenderApiClient('insert your API key'); // Get gender by email address name and country$name = $apiClient->getByFirstNameAndLastName('Frank Underwood'); if ($name->genderFound()) { echo$name->getGender(); // will return "male"echo$name->getFirstName(); // will return "Frank"echo$name->getLastName(); // will return "Underwood" } } catch (GenderApi\Exception$e) { // Name lookup failed due to a network error or insufficient requests left// See https://gender-api.com/en/api-docs/error-codesecho'Exception: ' . $e->getMessage(); }

Country Of Origin

useGenderApi\ClientasGenderApiClient; try { $apiClient = newGenderApiClient('insert your API key'); // Get gender by email address name and country$name = $apiClient->getCountryOfOrigin('Frank'); if ($name->genderFound()) { echo$name->getGender(); // will return "male"echo$name->getFirstName(); // will return "Frank"echo$name->getLastName(); // will return "Underwood"echo$name->getCountryOfOriginMapUrl(); // will return a link to a map that displays the result in a rendered forforeach ($name->getCountryOfOrigin() as$country) { var_dump($country); // country of origin } } } catch (GenderApi\Exception$e) { // Name lookup failed due to a network error or insufficient requests left// See https://gender-api.com/en/api-docs/error-codesecho'Exception: ' . $e->getMessage(); }

Statistics

useGenderApi\ClientasGenderApiClient; try { $apiClient = newGenderApiClient('insert your API key'); $stats = $apiClient->getStats(); // Check your query limitif ($stats->isLimitReached()) { echo"query limit reached."; } // Get remaining requestsecho$stats->getRemainingRequests() . ' requests left.'; } catch (GenderApi\Exception$e) { // Name lookup failed due to a network error// See https://gender-api.com/en/api-docs/error-codesecho'Exception: ' . $e->getMessage(); }

Proxy

If you need a proxy server to access the Internet in your company, you can set one via the setProxy command.

useGenderApi\ClientasGenderApiClient; $apiClient = newGenderApiClient('insert your API key'); $apiClient->setProxy('localhost', 3128);
close