API Documentation

Access platform data programmatically. All public endpoints are available without authentication. Rate limits apply.

Base URL

https://recon.inst.lk/api

Rate Limits: 100 requests/minute (general), 10 requests/minute (scanning)

Scanning

POST/api/scan

Initiate a new domain scan

Request Body:
{ "domain": "example.com" }
Response:
{ "success": true, "scan": { "id": "...", "status": "queued" } }
GET/api/scan/:id

Get scan results by ID

Response:
{ "scan": { "id": "...", "status": "completed", "technologies": [...] } }
GET/api/scan/:id/progress

Get current scan progress

Response:
{ "scanId": "...", "progress": 75, "currentStep": "extracting_endpoints" }
GET/api/scan/domain/:domain

Get scan history for a domain

Response:
{ "scans": [...] }
GET/api/scans/recent

Get recent completed scans

Response:
{ "scans": [...] }
GET/api/scans/popular

Get most scanned domains

Response:
{ "domains": [...] }

Technologies

GET/api/technologies

List all tracked technologies

Response:
{ "technologies": [...] }
GET/api/technologies/categories

Get technology categories

Response:
{ "categories": [...] }
GET/api/technologies/trending

Get trending technologies

Response:
{ "technologies": [...] }
GET/api/technologies/:name/domains

Search domains using a technology

Response:
{ "domains": [...] }

Search

GET/api/search

Search domains with filters

Response:
{ "results": [...], "total": 100, "page": 1 }
GET/api/search/popular

Get popular search queries

Response:
{ "searches": [...] }
GET/api/exposures

Browse exposure database

Response:
{ "results": [...], "total": 50 }

Public

GET/api/status

Platform status and health

Response:
{ "status": "operational", "services": {...} }
GET/api/domain/:domain

Get domain information

Response:
{ "domain": { ... } }
GET/api/results/recent

Recent public scan results

Response:
{ "results": [...] }

Search Parameters

ParameterTypeDescription
qstringSearch query (domain name partial match)
technologystringFilter by technology name (e.g., "Next.js")
categorystringFilter by technology category (e.g., "framework")
missingHeaderstringFilter by missing security header
hasSourceMapsbooleanFilter domains with public source maps
hostingstringFilter by hosting provider
wafstringFilter by WAF provider
minExposureScorenumberMinimum exposure score (0-100)
pagenumberPage number (default: 1)
limitnumberResults per page (max: 100, default: 20)

WebSocket - Scan Progress

Connect to receive real-time scan progress updates:

wss://recon.inst.lk/ws/scan/:scanId
Message Format:
{
  "type": "progress",
  "scanId": "uuid",
  "progress": 75,
  "step": "extracting_endpoints",
  "timestamp": 1717200000000
}