API Documentation

Free public REST API with full CORS support

Base URL

https://your-domain.vercel.app/api/v1

All endpoints support CORS and are completely free with no authentication required.

POST/api/v1/lookup

Scan a URL and return detected technologies, headers, security info, and contact details.

Request Body

{
  "url": "https://example.com"
}

Response

{
  "success": true,
  "cached": false,
  "data": {
    "url": "https://example.com",
    "domain": "example.com",
    "title": "Example Domain",
    "technologies": [
      {
        "name": "Nginx",
        "slug": "nginx",
        "category": "Web Server",
        "confidence": 100
      }
    ],
    "headers": { ... },
    "security": {
      "https": true,
      "hsts": true,
      "contentSecurityPolicy": false
    },
    "contacts": {
      "emails": [],
      "twitter": null
    },
    "pageSpeed": null,
    "scannedAt": "2024-01-01T00:00:00.000Z",
    "responseTime": 245,
    "statusCode": 200
  }
}

cURL Example

curl -X POST https://your-domain.vercel.app/api/v1/lookup \
  -H "Content-Type: application/json" \
  -d '{"url": "https://vercel.com"}'
GET/api/v1/lookup?url=https://example.com

Alternative GET endpoint. Pass the URL as a query parameter.

curl "https://your-domain.vercel.app/api/v1/lookup?url=https://github.com"

JavaScript / Fetch Example

const response = await fetch(
  'https://your-domain.vercel.app/api/v1/lookup',
  {
    method: 'POST',
    headers: { 'Content-Type': 'application/json' },
    body: JSON.stringify({ url: 'https://shopify.com' })
  }
);

const { data } = await response.json();
console.log(data.technologies);
// => [{ name: 'Shopify', category: 'E-commerce', ... }]

Rate Limits & Fair Use

This API is completely free. To keep it running smoothly for everyone, we apply generous rate limits. Results are cached for 1 hour. If you need higher throughput, consider self-hosting.