L Link Website Pro

API Documentation

Version 1 · For Agency‑plan customers · Base URL: https://linkwebsitepro.linklitepro.com/api

The Link Website Pro API lets Agency customers run scans and retrieve results programmatically. All endpoints return JSON and require authentication with an API key. Usage is subject to our API Terms and Acceptable Use Policy — you may only scan domains you own or are authorized to test.

Authentication

Create an API key from your account (Subscription → API keys). The key is shown once — store it securely. Pass it on every request using the X-API-Key header:

curl https://linkwebsitepro.linklitepro.com/api/domains \
  -H "X-API-Key: YOUR_API_KEY"
Keys are stored only as a hash and can be revoked anytime. Treat your key like a password — see Security. A missing or invalid key returns 401 Unauthorized.

Rate limits & fair use

Requests are subject to plan rate limits and fair‑use controls. If you exceed limits or threaten service stability, requests may be throttled or temporarily blocked. Design integrations to back off on errors and avoid unnecessary re‑scans. Contact support@linklitepro.com for higher‑volume needs.

Endpoints

POST /scan — Scan a single domain

curl -X POST https://linkwebsitepro.linklitepro.com/api/scan \
  -H "X-API-Key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"domain": "example.com"}'

Runs a full scan and returns the scan result (see response shape below).

POST /scan/batch — Scan multiple domains

curl -X POST https://linkwebsitepro.linklitepro.com/api/scan/batch \
  -H "X-API-Key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"domains": ["example.com", "another.com"]}'

Returns { "results": [ ... ], "blocked": 0 }. Each item is a scan result or an { "domain", "error" } object.

GET /domains — List your managed domains

curl https://linkwebsitepro.linklitepro.com/api/domains \
  -H "X-API-Key: YOUR_API_KEY"

Returns { "domains": [ { "domain", "last_result", "updated_at", ... } ] }.

POST /domains — Add & scan a domain

curl -X POST https://linkwebsitepro.linklitepro.com/api/domains \
  -H "X-API-Key: YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"domain": "example.com", "tag": "client-a"}'

GET /scans/{domain} — Scan history

curl https://linkwebsitepro.linklitepro.com/api/scans/example.com \
  -H "X-API-Key: YOUR_API_KEY"

Returns { "history": [ ... ] } (most recent first).

GET /compare?domains=a.com,b.com — Compare domains

curl "https://linkwebsitepro.linklitepro.com/api/compare?domains=example.com,another.com" \
  -H "X-API-Key: YOUR_API_KEY"

GET /report/{domain} — Download HTML report

curl https://linkwebsitepro.linklitepro.com/api/report/example.com \
  -H "X-API-Key: YOUR_API_KEY" -o report.html

DELETE /domains/{domain} — Remove a domain

curl -X DELETE https://linkwebsitepro.linklitepro.com/api/domains/example.com \
  -H "X-API-Key: YOUR_API_KEY"

Scan result shape

A successful scan returns an object similar to:

{
  "scan_id": "…",
  "domain": "example.com",
  "reachable": true,
  "statusCode": 200,
  "finalUrl": "https://example.com/",
  "ip": "…",
  "ipInfo": { … },
  "dns": { … },
  "whois": { … },
  "ssl": { "valid": true, … },
  "frontend": { … },        // detected frameworks, libraries, versions
  "stack": { … },           // full technology stack / CMS
  "integrations": { … },    // detected services (payments, booking, …)
  "mobile": { … },          // responsiveness signals
  "security": { … },        // headers, TLS, insecure forms, trackers
  "cdn": { … },
  "cohosted": { … },        // reverse-IP co-hosted domains
  "compliance": { "score": 0-100, … },
  "seo": { "score": 0-100, … },   // title, meta, H1, canonical, OG, sitemap
  "headers": { … },
  "scores": {               // 0-100 per category
    "frontend": 0, "mobile": 0, "security": 0,
    "integration": 0, "compliance": 0, "seo": 0
  }
}

Errors

StatusMeaning
400Invalid request (e.g., malformed domain)
401Missing or invalid API key
402Plan limit reached / feature requires a higher plan
429Rate limit exceeded — back off and retry
500Server error — retry later

Support

Questions, higher limits, or issues: support@linklitepro.com.