export type CsvHeadersFlag = boolean; export type FeedResultsLimit = number; export type FromBeginningFlag = boolean; export type SeenAfter = number | string; export type SeenBefore = number | string; export type SessionID = string; export type GetApiV1FeedIphotlistArgs = {api_username?: string | undefined, app_name?: string | undefined, app_partner?: string | undefined, app_version?: string | undefined, headers?: CsvHeadersFlag | undefined, top?: FeedResultsLimit | undefined, fromBeginning?: FromBeginningFlag | undefined, signature?: string | undefined, timestamp?: string | undefined, after?: SeenAfter | undefined, before?: SeenBefore | undefined, sessionID?: SessionID | undefined, pdns_resolutions_min?: number | undefined, bad_pdns_resolutions_min?: number | undefined, total_domains_max?: number | undefined, third_party_threats_min?: number | undefined, all_threats_combined_percent_min?: number | undefined, combined_phishing_percent_min?: number | undefined, combined_malware_percent_min?: number | undefined, combined_spam_percent_min?: number | undefined, asn?: number | undefined, organization?: string | undefined, country_code?: string | undefined, all_threats_percent_min?: number | undefined, percent_phishing_min?: number | undefined, percent_malware_min?: number | undefined, percent_spam_min?: number | undefined}; export type GetApiV1FeedIphotlistOptions = {baseUrl?: string | undefined, apiKeyAuth?: string | undefined, fetch?: typeof fetch | undefined}; /** * Returns data from the real-time IP Hotlist feed. * * GET /v1/feed/iphotlist/ * * Also accepts auth: httpBasicAuth, hmacAuth */ export const getApiV1FeedIphotlist = async (args: GetApiV1FeedIphotlistArgs, options?: GetApiV1FeedIphotlistOptions) => { 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.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.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.pdns_resolutions_min != null) query.append("pdns_resolutions_min", String(args.pdns_resolutions_min)) if (args.bad_pdns_resolutions_min != null) query.append("bad_pdns_resolutions_min", String(args.bad_pdns_resolutions_min)) if (args.total_domains_max != null) query.append("total_domains_max", String(args.total_domains_max)) if (args.third_party_threats_min != null) query.append("third_party_threats_min", String(args.third_party_threats_min)) if (args.all_threats_combined_percent_min != null) query.append("all_threats_combined_percent_min", String(args.all_threats_combined_percent_min)) if (args.combined_phishing_percent_min != null) query.append("combined_phishing_percent_min", String(args.combined_phishing_percent_min)) if (args.combined_malware_percent_min != null) query.append("combined_malware_percent_min", String(args.combined_malware_percent_min)) if (args.combined_spam_percent_min != null) query.append("combined_spam_percent_min", String(args.combined_spam_percent_min)) if (args.asn != null) query.append("asn", String(args.asn)) if (args.organization != null) query.append("organization", String(args.organization)) if (args.country_code != null) query.append("country_code", String(args.country_code)) if (args.all_threats_percent_min != null) query.append("all_threats_percent_min", String(args.all_threats_percent_min)) if (args.percent_phishing_min != null) query.append("percent_phishing_min", String(args.percent_phishing_min)) if (args.percent_malware_min != null) query.append("percent_malware_min", String(args.percent_malware_min)) if (args.percent_spam_min != null) query.append("percent_spam_min", String(args.percent_spam_min)) if (apiKeyAuth !== undefined) headers.set("X-Api-Key", apiKeyAuth) const url = `${baseUrl.replace(/\/+$/, '')}/v1/feed/iphotlist/${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() };