export type CsvHeadersFlag = boolean; export type DomainFilter = string; export type FeedResultsLimit = number; export type FromBeginningFlag = boolean; export type RiskScoreMinParam = number; export type SeenAfter = number | string; export type SeenBefore = number | string; export type SessionID = string; export type GetApiV1FeedDomainhotlistArgs = {api_username?: string | undefined, app_name?: string | undefined, app_partner?: string | undefined, app_version?: string | undefined, headers?: CsvHeadersFlag | undefined, domain?: DomainFilter | undefined, top?: FeedResultsLimit | undefined, fromBeginning?: FromBeginningFlag | undefined, signature?: string | undefined, timestamp?: string | undefined, malware_min?: RiskScoreMinParam | undefined, overall_min?: RiskScoreMinParam | undefined, phishing_min?: RiskScoreMinParam | undefined, proximity_min?: RiskScoreMinParam | undefined, after?: SeenAfter | undefined, before?: SeenBefore | undefined, sessionID?: SessionID | undefined, spam_min?: RiskScoreMinParam | undefined}; export type GetApiV1FeedDomainhotlistOptions = {baseUrl?: string | undefined, apiKeyAuth?: string | undefined, fetch?: typeof fetch | undefined}; /** * Returns data from the real-time Domain Hotlist feed. * * GET /v1/feed/domainhotlist/ * * Also accepts auth: httpBasicAuth, hmacAuth */ export const getApiV1FeedDomainhotlist = async (args: GetApiV1FeedDomainhotlistArgs, options?: GetApiV1FeedDomainhotlistOptions) => { const {baseUrl = "https://api.domaintools.com", fetch: fetchFn = fetch, apiKeyAuth} = options ?? {} const query = new URLSearchParams() const headers = new Headers() headers.set('accept', "application/x-ndjson") if (args.api_username != null) query.append("api_username", String(args.api_username)) if (args.app_name != null) query.append("app_name", String(args.app_name)) if (args.app_partner != null) query.append("app_partner", String(args.app_partner)) if (args.app_version != null) query.append("app_version", String(args.app_version)) if (args.headers != null) query.append("headers", String(args.headers)) if (args.domain != null) query.append("domain", String(args.domain)) if (args.top != null) query.append("top", String(args.top)) if (args.fromBeginning != null) query.append("fromBeginning", String(args.fromBeginning)) if (args.signature != null) query.append("signature", String(args.signature)) if (args.timestamp != null) query.append("timestamp", String(args.timestamp)) if (args.malware_min != null) query.append("malware_min", String(args.malware_min)) if (args.overall_min != null) query.append("overall_min", String(args.overall_min)) if (args.phishing_min != null) query.append("phishing_min", String(args.phishing_min)) if (args.proximity_min != null) query.append("proximity_min", String(args.proximity_min)) if (args.after != null) query.append("after", String(args.after)) if (args.before != null) query.append("before", String(args.before)) if (args.sessionID != null) query.append("sessionID", String(args.sessionID)) if (args.spam_min != null) query.append("spam_min", String(args.spam_min)) if (apiKeyAuth !== undefined) headers.set("X-Api-Key", apiKeyAuth) const url = `${baseUrl.replace(/\/+$/, '')}/v1/feed/domainhotlist/${query.size > 0 ? `?${query}` : ''}` const res = await fetchFn(url, {method: "GET", headers}) if (!res.ok) throw new Error(`Request failed with status ${res.status}`, {cause: {status: res.status, body: await res.text()}}) return res.blob() };