domainlooker
Version:
A fast CLI and MCP server for inspecting domains: WHOIS/RDAP, DNS, SSL, ports, subdomains, with CSV/JSON export.
177 lines • 4.71 kB
TypeScript
export interface DomainAnalysisResponse {
meta: ResponseMetadata;
data: DomainAnalysisData[];
}
export interface ResponseMetadata {
version: string;
timestamp: string;
requestId: string;
executionTimeMs: number;
totalDomains: number;
options: AnalysisOptions;
}
export interface AnalysisOptions {
includeSubdomains: boolean;
includeNetworkScan: boolean;
quickScan: boolean;
verbose: boolean;
}
export interface DomainAnalysisData {
domain: string;
status: 'success' | 'partial' | 'failed';
timestamp: string;
executionTimeMs: number;
whois: WhoisAnalysis | null;
dns: DnsAnalysis | null;
ssl: SslAnalysis | null;
network: NetworkAnalysis | null;
subdomains: SubdomainAnalysis | null;
threatAssessment: ThreatAssessment;
sources: DataSources;
}
export interface WhoisAnalysis {
status: 'success' | 'failed' | 'not_available';
data: {
registrar?: string;
registrationDate?: string;
expirationDate?: string;
registrantCountry?: string;
nameServers?: string[];
status?: string[];
daysUntilExpiry?: number;
} | null;
error?: string;
}
export interface DnsAnalysis {
status: 'success' | 'partial' | 'failed';
data: {
records: {
a?: string[];
aaaa?: string[];
mx?: Array<{
priority: number;
exchange: string;
}>;
ns?: string[];
txt?: string[];
cname?: string[];
soa?: {
primary: string;
admin: string;
serial: number;
refresh: number;
retry: number;
expiration: number;
minimum: number;
};
};
summary: {
totalRecords: number;
recordTypes: string[];
hasIpv4: boolean;
hasIpv6: boolean;
hasMail: boolean;
};
} | null;
error?: string;
}
export interface SslAnalysis {
status: 'success' | 'failed' | 'no_certificate';
data: {
certificate: {
subject: string;
issuer: string;
validFrom: string;
validTo: string;
serialNumber: string;
fingerprint: string;
signatureAlgorithm?: string;
};
validation: {
isValid: boolean;
daysUntilExpiry: number;
isExpired: boolean;
isSelfSigned: boolean;
};
security: {
keySize?: number;
protocol?: string;
vulnerabilities?: string[];
};
} | null;
error?: string;
}
export interface NetworkAnalysis {
status: 'success' | 'partial' | 'failed' | 'skipped';
data: {
ports: {
open: number[];
filtered: number[];
total: number;
};
services: Array<{
port: number;
protocol: string;
service: string;
version?: string;
confidence: 'high' | 'medium' | 'low';
}>;
summary: {
totalOpenPorts: number;
commonServices: string[];
unusualPorts: number[];
};
} | null;
error?: string;
}
export interface SubdomainAnalysis {
status: 'success' | 'partial' | 'failed' | 'skipped';
data: {
subdomains: string[];
sources: {
certificateTransparency: string[];
commonNames: string[];
};
statistics: {
total: number;
bySource: {
[source: string]: number;
};
patterns: {
[pattern: string]: number;
};
depthAnalysis: {
[depth: number]: number;
};
};
} | null;
error?: string;
}
export interface ThreatAssessment {
overallRisk: 'low' | 'medium' | 'high' | 'critical';
riskScore: number;
threats: ThreatIndicator[];
recommendations: string[];
summary: {
criticalIssues: number;
warnings: number;
informational: number;
};
}
export interface ThreatIndicator {
type: 'ssl_expiry' | 'missing_ssl' | 'recent_registration' | 'open_ports';
severity: 'critical' | 'high' | 'medium' | 'low' | 'info';
title: string;
description: string;
recommendation?: string;
evidence?: any;
}
export interface DataSources {
whois: string[];
dns: string[];
ssl: string[];
network: string[];
subdomains: string[];
threatIntelligence: string[];
}
//# sourceMappingURL=api-schema.d.ts.map