Skip to content
DomainAgeLookup
Developer API

Domain age data your product can trust.

Query single domains, run bulk checks, and show usage-aware upgrade states from the same credit system used by the dashboard and Chrome extension.

Base URL
https://domainagelookup.com/api
Auth
Bearer dal_ key
Billing
1 credit / domain
Format
JSON over HTTPS
Single lookup
curl -X POST https://domainagelookup.com/api/lookup \
  -H "Authorization: Bearer dal_your_api_key" \
  -H "Content-Type: application/json" \
  -d '{"domain":"example.com"}'
Bulk lookup
curl -X POST https://domainagelookup.com/api/bulk-lookup \
  -H "Authorization: Bearer dal_your_api_key" \
  -H "Content-Type: application/json" \
  -d '{"domains":["example.com","google.com"]}'
JavaScript
const response = await fetch("https://domainagelookup.com/api/lookup", {
  method: "POST",
  headers: {
    Authorization: "Bearer dal_your_api_key",
    "Content-Type": "application/json",
  },
  body: JSON.stringify({ domain: "example.com" }),
})

const result = await response.json()
Endpoint reference
Website sessions and API keys use the same credit checks.
POST/api/lookup
Single lookup result

Check one domain and return age, dates, registrar, nameservers, status, and credit usage.

{ domain: string }
POST/api/bulk-lookup
Array of lookup results

Check multiple domains. Plan limits control the maximum accepted domains per request.

{ domains: string[] }
GET/api/user/usage
Usage summary

Return used, limit, remaining, and current billing period for the authenticated user.

Bearer key or session
GET/api/user/plan
Plan summary

Return the current plan, bulk limit, credit limit, period, and billing status.

Bearer key or session
Integration notes
Security, billing, and error-handling guidance.

API keys are shown once, stored hashed, and can be revoked from the dashboard. Never ship a durable key inside frontend or extension code.

Bulk requests charge only valid accepted domains. If no result is returned, the API returns an error instead of charging credits.

Treat lookupStatus and error.code as stable machine fields. Human messages can change as the product gets clearer.

Success response
{
  "success": true,
  "data": {
    "domain": "example.com",
    "creationDate": "1995-08-14T04:00:00Z",
    "expiryDate": "2027-08-13T04:00:00Z",
    "updatedDate": "2026-06-01T12:00:00Z",
    "age": {
      "years": 30,
      "months": 10,
      "days": 6,
      "human": "30 years, 10 months",
      "totalDays": 11260
    },
    "registrar": "Example Registrar",
    "nameservers": ["a.iana-servers.net"],
    "status": ["active"],
    "registered": true,
    "available": false,
    "lookupStatus": "registered"
  },
  "usage": {
    "used": 12,
    "limit": 25,
    "remaining": 13,
    "period": "day"
  }
}
Limit response
{
  "success": false,
  "error": {
    "code": "LIMIT_REACHED",
    "message": "Lookup credit limit reached. Please upgrade your plan."
  },
  "upgradeUrl": "https://domainagelookup.com/pricing",
  "usage": {
    "used": 25,
    "limit": 25,
    "remaining": 0,
    "period": "day"
  }
}
Result fields
creationDate
ISO creation timestamp when available in the registration record.
age
Structured years, months, days, human text, and totalDays.
registered / available
Boolean availability signals when they can be determined reliably.
lookupStatus
Stable machine status: registered, available, unknown, or error.
usage
Credit state after the request is accepted and charged.
Common errors
INVALID_DOMAIN
The submitted domain could not be normalized or validated.
TOO_MANY_DOMAINS
The request exceeds the current plan's bulk limit.
LIMIT_REACHED
The current credit period is exhausted. Show the upgrade URL.
INVALID_API_KEY
The bearer token is missing, malformed, revoked, or unknown.
LOOKUP_UNAVAILABLE
Domain information is temporarily unavailable. Retry the request later.