Back in March 2018, I developed a public rest api to quickly and easily check the availability of a username/handle on various services and social media platforms.
The api returns a consistent response from each service, so it’s easy to automate. I don’t charge to use it, so anyone is welcome to use it however they like as long as they provide some small attribution to me. You can simply link my twitter.
API Usage
There are currently three main endpoints. These will never change format without proper notice as I don’t want to break anyone’s scripts. Also, the API is very stable and has 99% uptime.
Get a list of currently supported services (GET)
https://api.getpenguin.com/check/services
Response:
{
"services" [
"twitter",
"instagram",
"steamid",
"steamgroup",
"mixer",
"youtube"
]
}
Get a list of currently supported services with additional details about each service (GET)
https://api.getpenguin.com/check/services/details
Response:
{
"services": [{
"id": 1,
"name": "Twitter",
"slug": "twitter",
"endpoints": {
"baseUrl": "https://www.twitter.com",
"profileUrl": "https://twitter.com/%name%",
"requestUrl": "https://api.twitter.com/i/users/username_available.json?username=%name%"
},
"httpMethod": "GET",
"usernameCriteria": {
"minLength": 5,
"maxLength": 15,
"allowedUsernamePattern": "([a-zA-Z0-9_]+)",
"prohibitedWords": ["twitter", "admin"]
}
}]
}
Checks a username on a specific service (GET)
https://api.getpenguin.com/check/[service]/[username]
For [service]
, plug in the slug
found in the response for the service details endpoint.
For [username]
, plug in the username you want to check.
Response:
{
"service":"twitter",
"username":"acrockr",
"status":"taken",
"timestamp":1521982922188
}
If you end up using my API in a project, I’d love to hear about it here or on Twitter!