CONNECT APP
Build with WhoisFreaks
Developer Tools
- API key
MCP
Give your agent WhoisFreaks tools
Every WhoisFreaks action is exposed as an MCP tool on Pipedream's remote server. Point a client at it with your end user's ID and Connect resolves that user's WhoisFreaks account for each tool call — you store no tokens.
// accessToken: mint a short-lived token with the Connect SDK — see the MCP guide
const transport = new StreamableHTTPClientTransport(
new URL("https://remote.mcp.pipedream.net/v3"),
{
requestInit: {
headers: {
Authorization: `Bearer ${accessToken}`,
"x-pd-project-id": "{project_id}",
"x-pd-environment": "production",
"x-pd-external-user-id": "{external_user_id}", // any stable ID for this user in your system
"x-pd-app-slug": "whoisfreaks",
},
},
},
)
const mcp = new Client({ name: "my-agent", version: "1.0.0" })
await mcp.connect(transport)
const { tools } = await mcp.listTools()
// e.g. run Bulk DNS Domain Lookup:
const result = await mcp.callTool({
name: "whoisfreaks-bulk-dns-domain-lookup",
arguments: {
domainNames: ["Domain Names"],
ipAddresses: ["IP Addresses"],
},
})# access_token: mint a short-lived token with the Connect SDK — see the MCP guide
headers = {
"Authorization": f"Bearer {access_token}",
"x-pd-project-id": "{project_id}",
"x-pd-environment": "production",
"x-pd-external-user-id": "{external_user_id}", # any stable ID for this user in your system
"x-pd-app-slug": "whoisfreaks",
}
async with streamablehttp_client("https://remote.mcp.pipedream.net/v3", headers=headers) as (read, write, _):
async with ClientSession(read, write) as session:
await session.initialize()
tools = await session.list_tools()
# e.g. run Bulk DNS Domain Lookup:
result = await session.call_tool("whoisfreaks-bulk-dns-domain-lookup", {
"domainNames": ["Domain Names"],
"ipAddresses": ["IP Addresses"],
})API PROXY
Call the WhoisFreaks API directly
For an endpoint with no pre-built tool, the Connect proxy forwards your request to the WhoisFreaks API with the connected user's credentials attached. You store no tokens and write no refresh logic.
const resp = await pd.proxy.get({
externalUserId: "{external_user_id}", // any stable ID for this user in your system
accountId: "apn_xxxxxxx",
url: "https://api.whoisfreaks.com/v1.0/whois",
})
// Any allowed WhoisFreaks endpoint works here. Pipedream attaches the
// connected account's credentials to the outgoing request.# The path segment is the target URL, URL-safe base64 encoded:
# https://api.whoisfreaks.com/v1.0/whois
curl "https://api.pipedream.com/v1/connect/{project_id}/proxy/aHR0cHM6Ly9hcGkud2hvaXNmcmVha3MuY29tL3YxLjAvd2hvaXM?external_user_id={external_user_id}&account_id=apn_xxxxxxx" \
-H "Authorization: Bearer {access_token}" \
-H "x-pd-environment: production"SDK
Run WhoisFreaks actions from your backend
Connect a user's WhoisFreaks account once, then run Bulk DNS Domain Lookup on their behalf from your own code — TypeScript, Python, or plain HTTP.
import { PipedreamClient } from "@pipedream/sdk"
const pd = new PipedreamClient({
projectId: process.env.PIPEDREAM_PROJECT_ID!,
clientId: process.env.PIPEDREAM_CLIENT_ID!,
clientSecret: process.env.PIPEDREAM_CLIENT_SECRET!,
projectEnvironment: "production",
})
const result = await pd.actions.run({
id: "whoisfreaks-bulk-dns-domain-lookup",
externalUserId: "{external_user_id}", // any stable ID for this user in your system
configuredProps: {
whoisfreaks: { authProvisionId: "apn_xxxxxxx" },
domainNames: ["Domain Names"],
ipAddresses: ["IP Addresses"],
},
})from pipedream import Pipedream
pd = Pipedream(
client_id="{oauth_client_id}",
client_secret="{oauth_client_secret}",
project_id="{project_id}",
project_environment="production",
)
result = pd.actions.run(
id="whoisfreaks-bulk-dns-domain-lookup",
external_user_id="{external_user_id}", # any stable ID for this user in your system
configured_props={
"whoisfreaks": {"authProvisionId": "apn_xxxxxxx"},
"domainNames": ["Domain Names"],
"ipAddresses": ["IP Addresses"],
},
)curl -X POST https://api.pipedream.com/v1/connect/{project_id}/actions/run \
-H "Content-Type: application/json" \
-H "X-PD-Environment: production" \
-H "Authorization: Bearer {access_token}" \
-d '{
"external_user_id": "{external_user_id}",
"id": "whoisfreaks-bulk-dns-domain-lookup",
"configured_props": {
"whoisfreaks": { "authProvisionId": "apn_xxxxxxx" },
"domainNames": ["Domain Names"],
"ipAddresses": ["IP Addresses"]
}
}'TOOLS
WhoisFreaks actions
On-demand operations your product or agent can configure and run on behalf of a connected user.
-
Bulk DNS Domain Lookup
actionRetrieve DNS records (A, AAAA, MX, NS, CNAME, TXT, PTR, SPF, DKIM, DMARC, SRV, SOA) for up to 100 domains or IP addresses in a single request. Use this action for bulk DNS auditing, infrastructure mapping, or automated monitoring. Accepts domain names and/or IP addresses; returns JSON or XML output. See the documentationRead-onlyv0.0.2 -
Bulk IP Geolocation Lookup
actionRetrieve geolocation details (country, city, ASN, ISP, coordinates) for up to 100 IP addresses in a single request. Accepts comma-separated IPv4 or IPv6 addresses and returns JSON or XML output. Use this action for bulk network analysis, fraud detection, or audience geo-enrichment. See the documentationRead-onlyv0.0.2 -
Bulk IP Reputation Lookup
actionScore up to 100 IPv4 or IPv6 addresses against real-time threat data in a single request. Returns composite threat score, VPN/proxy/Tor/bot classification, blacklist status, and ASN/ISP details for each IP. Accepts comma-separated IP addresses; returns JSON or XML output. See the documentationRead-onlyv0.0.2 -
Bulk Whois Lookup
actionRetrieve WHOIS registration data (registrant, registrar, name servers, email, phone, address, ASN, history) for up to 100 domains in a single request. Accepts comma-separated domain names across 1000+ TLDs; returns JSON or XML output. Use this action for bulk domain research, lead enrichment, or portfolio audits. See the documentationRead-onlyv0.0.2 -
Domain Availability Lookup
actionCheck if a domain name is available for registration. For example you can check whoisfreaks.com. This action supports responses in both JSON and XML format. Always use sug=false to get the response. See the documentationRead-onlyv0.0.2 -
Domain Lookup
actionRetrieve details about a domain name. See the documentationRead-onlyv0.0.3 -
Domain Reputation Lookup
actionCheck the reputation and security status of a domain — including whether it is associated with malware, phishing campaigns, or other malicious activity. Use this action for threat intelligence workflows, email security checks, or domain risk scoring. Returns JSON output. See the documentationRead-onlyv0.0.2 -
IP Geolocation Lookup
actionRetrieve geolocation details (country, city, region, ASN, ISP, coordinates) for a single IP address. Supports both IPv4 and IPv6 addresses. Use this action to enrich events with location data, perform fraud detection, or geo-target users. See the documentationRead-onlyv0.0.2 -
IP Lookup
actionRetrieve information about an IP address. See the documentationRead-onlyv0.0.3 -
IP Reputation Lookup
actionScore a single IPv4 or IPv6 address against real-time threat data. Returns a composite threat score (0-100), VPN/proxy/Tor/bot classification, provider names with confidence scores, district-level geolocation, and ASN/ISP details. Use this action for threat intelligence, access control, or fraud prevention workflows. Accepts JSON or XML output. See the documentationRead-onlyv0.0.2 -
Reverse Lookup
actionRetrieve details about a domain by keyword, email, registrant name or company. Must enter one and only one of keyword, email, owner, or company. See the documentationRead-onlyv0.0.4 -
SSL Lookup
actionRetrieve details about a domain's SSL certificate (e.g. google.com). Note that this action accepts JSON or XML format values, always requests the full certificate chain (chain=true), and suppresses the raw OpenSSL response (sslRaw=false) for cleaner outputs. See the documentationRead-onlyv0.0.2 -
Subdomain Lookup
actionDiscover subdomains for a given domain using passive DNS data from 6.3B+ indexed hostnames. Returns active, inactive, and historical subdomain records. Use this action for attack surface mapping, security audits, or competitor research. Returns JSON or XML output. See the documentationRead-onlyv0.0.2
EVENTS
WhoisFreaks triggers
Event sources your backend can deploy for users and receive through a webhook.
No WhoisFreaks triggers are available yet.
- App slug
- whoisfreaks
- Authentication
- API key
- Categories
- Developer Tools
- Actions
- 13
- Triggers
- 0
- API proxy
- Available