API Documentation

Everything you need to integrate LookEyes API

Getting Started

Welcome to the LookEyes API documentation. This guide will help you get started with our powerful data search API.

Quick Start

  1. Purchase an API key
    Visit the homepage and select a plan. Complete the payment to receive your API key.
  2. Store your API key securely
    Save your API key in a secure location. Never expose it in client-side code or public repositories.
  3. Make your first request
    Use your API key in the x-api-key header to authenticate your requests.
Important

Keep your API key secret! Anyone with your key can access the API and consume your quota.

Authentication

All API requests must include your API key in the request headers:

x-api-key: YOUR_API_KEY_HERE

Example Request

curl -X GET "https://lookeyes.st/search?value=john.doe@example.com&type=EMAIL" \ -H "x-api-key: YOUR_API_KEY_HERE"

API Endpoints

Search Endpoint

GET /search

Search for data with optional type filtering and relation depth.

Query Parameters

Parameter Type Required Description
value string Yes The search value (email, phone, name, etc.)
type string No Data type filter (EMAIL, PHONE, NAME, ADDRESS, etc.)
depth number No Relation search depth (default: 2)
limit number No Maximum results (default: 50)

Example Request

GET /search?value=john.doe@example.com&type=EMAIL&limit=20

Example Response (Success)

{ "results": [ { "email": "john.doe@example.com", "firstName": "John", "lastName": "Doe", "phone": "+1234567890", "address": "123 Main St", "source": "database_name" } ], "total": 1, "page": 1 }

Suggest Endpoint (Fuzzy Search)

GET /search/suggest

Fuzzy search with pagination for autocomplete and partial matches.

Query Parameters

Parameter Type Required Description
query string Yes Partial search term
type string No Data type filter
source string No Filter by data source ID
limit number No Results per page (default: 20)
page number No Page number (default: 1)

Example Request

GET /search/suggest?query=john&type=NAME&limit=10&page=1

Stats Endpoint

GET /search/stats

Get database statistics and record counts.

Example Response

{ "totalRecords": 125000000, "sources": 15, "lastUpdated": "2025-01-15T12:00:00Z" }

Key Info Endpoint

GET /search/key-info

Get information about your API key.

Example Response

{ "role": "tempuser", "createdAt": "2025-01-01T10:00:00Z", "expiresAt": "2026-01-01T10:00:00Z", "requestCount": 1250, "lastUsedAt": "2025-01-15T14:30:00Z", "isActive": true }

Data Types Endpoint

GET /search/data-types

Get available data types for filtering searches.

Example Response

{ "availableTypes": ["EMAIL", "PHONE", "NAME", "ADDRESS", "IP", "USERNAME", ...] }

Health Check

GET /api/health

Check API status (no authentication required).

{ "status": "ok", "timestamp": "2025-01-15T10:30:00Z" }

Rate Limits

Plan Rate Limit Burst Limit
Test (Monthly) 100 req/min 150 req/min
Test (Yearly) 100 req/min 150 req/min
Rate Limit Headers

Each response includes headers showing your current rate limit status:

X-RateLimit-Limit: 100 X-RateLimit-Remaining: 95 X-RateLimit-Reset: 1642252800

Error Codes

Code Status Description
400 Bad Request Invalid request parameters
401 Unauthorized Missing or invalid API key
403 Forbidden API key expired or quota exceeded
404 Not Found No results found
429 Too Many Requests Rate limit exceeded
500 Internal Server Error Server error, please retry

Error Response Format

{ "success": false, "error": { "code": "INVALID_API_KEY", "message": "The provided API key is invalid or expired" } }

Best Practices

  • Always use HTTPS for API requests
  • Store API keys securely (use environment variables)
  • Implement proper error handling in your application
  • Cache responses when appropriate to reduce API calls
  • Monitor your rate limits to avoid throttling
  • Use exact search when possible for better performance
  • Never expose API keys in client-side code
  • Don't hardcode API keys in your source code
  • Avoid making unnecessary duplicate requests

Code Examples

JavaScript / Node.js

const axios = require('axios'); async function searchAPI(value, type = 'EMAIL') { try { const response = await axios.get('https://lookeyes.st/search', { params: { value, type, limit: 50 }, headers: { 'x-api-key': process.env.LOOKEYES_API_KEY } }); console.log(response.data); } catch (error) { console.error('Error:', error.response?.data); } } searchAPI('john.doe@example.com', 'EMAIL');

Python

import requests import os def search_api(value, data_type='EMAIL'): url = 'https://lookeyes.st/search' headers = { 'x-api-key': os.getenv('LOOKEYES_API_KEY') } params = { 'value': value, 'type': data_type, 'limit': 50 } response = requests.get(url, params=params, headers=headers) return response.json() result = search_api('john.doe@example.com', 'EMAIL') print(result)

PHP

$value, 'type' => $type, 'limit' => 50 ]); $ch = curl_init($url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_HTTPHEADER, ['x-api-key: ' . $apiKey]); $response = curl_exec($ch); curl_close($ch); $result = json_decode($response, true); print_r($result);

Need Help?

If you need assistance or have questions about the API:

Join our Discord

Get help from our community and support team

Get Support