Developer API

WhatsMyName API
Documentation

Integrate username checking across 700+ platforms into your applications. Powerful RESTful API for OSINT, cybersecurity, and brand protection tools.

High Performance

Optimized API with concurrent processing and smart caching for sub-second response times.

Rate Limited & Secure

Built-in rate limiting and security measures to ensure reliable service for all users.

RESTful Design

Clean, intuitive RESTful API design with comprehensive error handling and status codes.

Easy Integration

Simple authentication and well-documented endpoints for quick integration.

Quick Start Guide

Get started with the WhatsMyName API in minutes. No API key required for basic usage.

Basic Usage

1

Initiate Search

POST request to /api/search with username

2

Get Query ID

Receive queryId for polling results

3

Poll Results

GET request to check search progress

4

Process Results

Handle completed search data

Rate Limits

Free Tier

  • • 10 searches per 15 minutes
  • • No API key required
  • • Full platform coverage

Professional

  • • 1000 searches per hour
  • • Priority processing
  • • API key authentication

Advertisement

API Endpoints

Complete reference for all available API endpoints and their parameters.

POST/api/search

Search Username

Initiate a username search across all supported platforms

Parameters

usernamestringrequired

The username to search for

Response Example

{
  "queryId": "string",
  "status": "running",
  "totalPlatforms": 725,
  "estimatedTime": 30
}
GET/api/search?id={queryId}

Get Search Results

Retrieve results for a specific search query

Parameters

idstringrequired

The query ID returned from the search endpoint

Response Example

{
  "queryId": "string",
  "status": "completed",
  "username": "john",
  "results": [
    {
      "platform": "Twitter",
      "url": "https://twitter.com/john",
      "status": "hit",
      "responseTime": 245
    }
  ]
}
GET/api/platforms

List Platforms

Get information about all supported platforms

Parameters

categorystring

Filter by platform category

Response Example

{
  "platforms": [
    {
      "name": "Twitter",
      "category": "Social Media",
      "url": "https://twitter.com",
      "enabled": true
    }
  ],
  "total": 725
}

Code Examples

Ready-to-use code examples in popular programming languages.

javascript

// Initialize a username search
const searchResponse = await fetch('/api/search', {
  method: 'POST',
  headers: {
    'Content-Type': 'application/json',
  },
  body: JSON.stringify({
    username: 'john'
  })
});

const searchData = await searchResponse.json();
console.log('Search initiated:', searchData.queryId);

// Poll for results
const pollResults = async (queryId) => {
  const response = await fetch(`/api/search?id=${queryId}`);
  const data = await response.json();

  if (data.status === 'completed') {
    console.log('Results:', data.results);
    return data;
  } else {
    // Continue polling
    setTimeout(() => pollResults(queryId), 1000);
  }
};

pollResults(searchData.queryId);

python

import requests
import time

# Initialize search
search_response = requests.post('/api/search', json={
    'username': 'john'
})

search_data = search_response.json()
query_id = search_data['queryId']

print(f"Search initiated: {query_id}")

# Poll for results
while True:
    response = requests.get(f'/api/search?id={query_id}')
    data = response.json()

    if data['status'] == 'completed':
        print("Results:", data['results'])
        break
    elif data['status'] == 'error':
        print("Search failed:", data.get('error'))
        break
    else:
        print(f"Status: {data['status']}")
        time.sleep(1)

curl

# Initialize search
curl -X POST https://whatsmyname.ink/api/search \
  -H "Content-Type: application/json" \
  -d '{"username": "john"}'

# Response: {"queryId": "abc123", "status": "running", ...}

# Get results (replace abc123 with actual queryId)
curl https://whatsmyname.ink/api/search?id=abc123

# Get platform list
curl https://whatsmyname.ink/api/platforms

Error Handling

Comprehensive error codes and handling strategies for robust integrations.

HTTP Status Codes

200
Success
Request completed successfully
400
Bad Request
Invalid request parameters
429
Rate Limited
Too many requests
500
Server Error
Internal server error

Best Practices

  • Implement exponential backoff for rate limits
  • Cache results to reduce API calls
  • Handle network timeouts gracefully
  • Validate user input before API calls
  • Monitor API usage and performance

Advertisement