API Documentation

Complete guide to the Website Launches Domain Intelligence API. Enrich domains with authority scores, age, launch detection, and industry classification.

Introduction

The Website Launches API provides comprehensive domain intelligence through a simple REST API. Query any domain to get WebL Site Authority scores, registration dates, launch detection, industry categories, and moreβ€”all in a single request.

Base URL

https://websitelaunches.com/api/v1

Key Features

  • WebL Site Authority: 0-100 score based on Common Crawl data
  • Domain Age: Exact registration date and calculated age
  • Launch Detection: Public launch status and dates
  • Industry Categories: 3-level taxonomy (L1/L2/L3)
  • Batch Processing: Up to 50,000 domains per request
  • Historical Data: Authority tracking over time (Growth+ tiers)
  • Python CLI available: pip install webl for quick terminal lookups

Authentication

All API requests require authentication using your API key. Include your key in the X-API-Key header with every request.

Get Your API Key

Sign up for free to get your API key instantly. 3,000 free lookups per month.

curl -H "X-API-Key: YOUR_API_KEY" \
  https://websitelaunches.com/api/v1/domain/github.com
import requests

headers = {
    'X-API-Key': 'YOUR_API_KEY'
}

response = requests.get(
    'https://websitelaunches.com/api/v1/domain/github.com',
    headers=headers
)
data = response.json()
const response = await fetch('https://websitelaunches.com/api/v1/domain/github.com', {
  headers: {
    'X-API-Key': 'YOUR_API_KEY'
  }
});

const data = await response.json();
<?php
$ch = curl_init('https://websitelaunches.com/api/v1/domain/github.com');
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    'X-API-Key: YOUR_API_KEY'
]);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

$response = curl_exec($ch);
$data = json_decode($response, true);

Quick Start

Get started with a simple domain lookup in under 60 seconds:

1. Get Your API Key

Get Free API Key β†’

2. Make Your First Request

Try looking up a domain:

curl -H "X-API-Key: YOUR_API_KEY" \
  https://websitelaunches.com/api/v1/domain/stripe.com
import requests

response = requests.get(
    'https://websitelaunches.com/api/v1/domain/stripe.com',
    headers={'X-API-Key': 'YOUR_API_KEY'}
)

if response.json()['ok']:
    domain_data = response.json()['data']
    print(f"Authority: {domain_data['site_authority']}")
    print(f"Age: {domain_data['domain_age']} years")
const response = await fetch(
  'https://websitelaunches.com/api/v1/domain/stripe.com',
  { headers: { 'X-API-Key': 'YOUR_API_KEY' } }
);

const { ok, data } = await response.json();

if (ok) {
  console.log(`Authority: ${data.site_authority}`);
  console.log(`Age: ${data.domain_age} years`);
}
<?php
$ch = curl_init('https://websitelaunches.com/api/v1/domain/stripe.com');
curl_setopt($ch, CURLOPT_HTTPHEADER, ['X-API-Key: YOUR_API_KEY']);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

$response = json_decode(curl_exec($ch), true);

if ($response['ok']) {
    echo "Authority: " . $response['data']['site_authority'];
    echo "\nAge: " . $response['data']['domain_age'] . " years";
}

3. View the Response

{
  "ok": true,
  "data": {
    "domain": "stripe.com",
    "site_authority": 89,
    "domain_age": 16.3,
    "domain_age_date": "2009-06-15",
    "launch_detected": true,
    "launch_date": "2010-09-01",
    "category": "Finance",
    "subcategory": "Payments",
    "subcategory2": "Payment Processing",
    "description": "Stripe is a financial infrastructure platform..."
  }
}

Prefer the command line?

Install the Python CLI: pip install webl β€” View on GitHub

Domain Lookup

GET /api/v1/domain/{domain}

Retrieve comprehensive intelligence for a single domain, including WebL Site Authority scores, age, launch detection, and industry classification.

Parameters

Parameter Type Description
domain required string Path parameter. The domain name to lookup (e.g., "github.com")
history optional boolean Query parameter. Set to "true" to include historical authority tracking (Growth+ tiers only)

Basic Example

curl -H "X-API-Key: YOUR_API_KEY" \
  https://websitelaunches.com/api/v1/domain/github.com
import requests

url = 'https://websitelaunches.com/api/v1/domain/github.com'
headers = {'X-API-Key': 'YOUR_API_KEY'}

response = requests.get(url, headers=headers)
data = response.json()
const url = 'https://websitelaunches.com/api/v1/domain/github.com';

const response = await fetch(url, {
  headers: { 'X-API-Key': 'YOUR_API_KEY' }
});

const data = await response.json();
<?php
$url = 'https://websitelaunches.com/api/v1/domain/github.com';

$ch = curl_init($url);
curl_setopt($ch, CURLOPT_HTTPHEADER, ['X-API-Key: YOUR_API_KEY']);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

$response = curl_exec($ch);
$data = json_decode($response, true);

Response

{
  "ok": true,
  "data": {
    "domain": "github.com",
    "site_authority": 85,
    "domain_age": 17.2,
    "domain_age_date": "2007-10-01",
    "launch_detected": true,
    "launch_date": "2008-04-10",
    "category": "Developer Tools",
    "subcategory": "Code Hosting",
    "subcategory2": "Git",
    "description": "GitHub is a development platform...",
    "website_launches_url": "https://websitelaunches.com/site.php?id=12345"
  },
  "meta": {
    "tier": "growth",
    "usage": {
      "used": 1247,
      "limit": 250000,
      "resets_at": "2025-11-01"
    },
    "response_time_ms": 42
  }
}

With Historical Data

Add ?history=true to include historical authority tracking over time.

Growth+ Tiers Only

Historical data is available for Growth, Pro, Business, and Enterprise tiers.

curl -H "X-API-Key: YOUR_API_KEY" \
  "https://websitelaunches.com/api/v1/domain/github.com?history=true"
import requests

url = 'https://websitelaunches.com/api/v1/domain/github.com'
params = {'history': 'true'}
headers = {'X-API-Key': 'YOUR_API_KEY'}

response = requests.get(url, params=params, headers=headers)
data = response.json()
const url = 'https://websitelaunches.com/api/v1/domain/github.com?history=true';

const response = await fetch(url, {
  headers: { 'X-API-Key': 'YOUR_API_KEY' }
});

const data = await response.json();
<?php
$url = 'https://websitelaunches.com/api/v1/domain/github.com?history=true';

$ch = curl_init($url);
curl_setopt($ch, CURLOPT_HTTPHEADER, ['X-API-Key: YOUR_API_KEY']);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

$response = curl_exec($ch);
$data = json_decode($response, true);

Response with History

{
  "ok": true,
  "data": {
    "domain": "github.com",
    // ... standard fields ...
    "history": [
      {
        "date": "2018-01",
        "authority": 75,
        "release_id": "CC-MAIN-2018-05"
      },
      {
        "date": "2019-01",
        "authority": 78,
        "release_id": "CC-MAIN-2019-04"
      },
      {
        "date": "2025-10",
        "authority": 85,
        "release_id": "CC-MAIN-2025-40"
      }
    ],
    "history_data_points": 6,
    "authority_change": {
      "absolute": 10,
      "percentage": 13.3
    }
  }
}

Response Fields

Field Type Description
domain string The queried domain name
site_authority integer WebL Site Authority score 0-100 based on Common Crawl data
domain_age float Domain age in years
domain_age_date string Domain registration date (YYYY-MM-DD)
launch_detected boolean Whether a public launch was detected
launch_date string Public launch date if detected (YYYY-MM-DD)
category string L1 industry category
subcategory string L2 subcategory
subcategory2 string L3 detailed subcategory
description string AI-generated site description (Starter+ tiers)
history array Historical authority data points (Growth+ tiers, when ?history=true)
history_data_points integer Number of historical data points available (with history parameter)
authority_change object Authority change over time with absolute and percentage values (with history parameter)

Batch Lookup

POST /api/v1/domain/batch

Process up to 50,000 domains in a single request for efficient bulk enrichment.

Growth+ Tiers Only

Batch processing is available for Growth, Pro, Business, and Enterprise tiers.

Batch Size Limits

  • Growth/Pro: 10,000 domains per request
  • Business: 50,000 domains per request
  • Enterprise: Unlimited

Request Body

Field Type Description
domains required array Array of domain names to lookup (strings)

Example Request

curl -X POST \
  -H "X-API-Key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"domains": ["github.com", "google.com", "stripe.com"]}' \
  https://websitelaunches.com/api/v1/domain/batch
import requests

url = 'https://websitelaunches.com/api/v1/domain/batch'
headers = {
    'X-API-Key': 'YOUR_API_KEY',
    'Content-Type': 'application/json'
}
payload = {
    'domains': ['github.com', 'google.com', 'stripe.com']
}

response = requests.post(url, json=payload, headers=headers)
data = response.json()
const url = 'https://websitelaunches.com/api/v1/domain/batch';

const response = await fetch(url, {
  method: 'POST',
  headers: {
    'X-API-Key': 'YOUR_API_KEY',
    'Content-Type': 'application/json'
  },
  body: JSON.stringify({
    domains: ['github.com', 'google.com', 'stripe.com']
  })
});

const data = await response.json();
<?php
$url = 'https://websitelaunches.com/api/v1/domain/batch';
$payload = [
    'domains' => ['github.com', 'google.com', 'stripe.com']
];

$ch = curl_init($url);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($payload));
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    'X-API-Key: YOUR_API_KEY',
    'Content-Type: application/json'
]);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

$response = curl_exec($ch);
$data = json_decode($response, true);

Response

{
  "ok": true,
  "data": {
    "results": [
      {
        "domain": "github.com",
        "site_authority": 85,
        "domain_age": 17.2,
        "launch_detected": true,
        "category": "Developer Tools",
        // ... full domain data ...
      },
      {
        "domain": "google.com",
        "site_authority": 95,
        "domain_age": 27.1,
        // ...
      },
      {
        "domain": "stripe.com",
        "site_authority": 89,
        // ...
      }
    ],
    "count": 3,
    "processed_in_ms": 89
  }
}

Response Format

All API responses follow a consistent JSON structure with an ok status field.

Success Response

{
  "ok": true,
  "data": {
    // Response data
  },
  "meta": {
    "tier": "growth",
    "usage": {
      "used": 1247,
      "limit": 250000,
      "resets_at": "2025-11-01"
    },
    "response_time_ms": 42
  }
}

Error Response

{
  "ok": false,
  "error": {
    "code": "RATE_LIMIT_EXCEEDED",
    "message": "Monthly API limit exceeded"
  }
}

Rate Limits

API limits are based on your subscription tier and reset monthly.

Monthly Limits by Tier

Tier Monthly Lookups Batch Endpoint Max Batch Size
Free 3,000 ❌ β€”
Starter 50,000 ❌ β€”
Growth 250,000 βœ… 10,000
Pro 1,000,000 βœ… 10,000
Business 5,000,000 βœ… 50,000
Enterprise Unlimited βœ… Unlimited

Track Your Usage

View your current usage and limits in the API dashboard. The meta field in API responses also includes real-time usage data.

Error Codes

The API uses standard HTTP status codes and returns detailed error information in the response body.

HTTP Status Codes

Status Code Description
200 Success - Request completed successfully
400 Bad Request - Invalid parameters or malformed request
401 Unauthorized - Missing or invalid API key
403 Forbidden - Feature not available for your tier
429 Too Many Requests - Rate limit exceeded
500 Internal Server Error - Contact support if this persists

Error Response Codes

Error Code Description
INVALID_API_KEY API key is missing or invalid
RATE_LIMIT_EXCEEDED Monthly usage limit reached for your tier
INVALID_DOMAIN Domain parameter is missing or malformed
DOMAIN_NOT_FOUND Domain data not available in our database
FEATURE_NOT_AVAILABLE Feature requires a higher tier subscription
BATCH_SIZE_EXCEEDED Batch request exceeds your tier's limit

Example Error Response

{
  "ok": false,
  "error": {
    "code": "RATE_LIMIT_EXCEEDED",
    "message": "Monthly API limit of 3,000 requests exceeded. Upgrade your plan to continue.",
    "details": {
      "current_tier": "free",
      "used": 3000,
      "limit": 3000,
      "resets_at": "2025-11-01"
    }
  }
}

Need Help?

Have questions or need assistance? We're here to help:

Get Free API Key β†’