This article serves as an introductory resource for integrating Silent Push's powerful threat intelligence APIs into your security workflows. Whether you're enriching indicators, performing DNS lookups, or automating feeds, these endpoints provide actionable insights into domains, IPs, and emerging threats.
Prerequisites
Obtain your Silent Push API key from the Silent Push dashboard.
Replace
api_key = ""in the code examples below with your actual key.
All examples use Python with the requests, json, and pandas libraries for simplicity. Adapt as needed for your environment.
We provide a large collection of APIs that customers use to access a wide wealth of cybersecurity information, and use our solutions to improve their own cyber defenses.
With our APIs, you can:
Access an extensive data set, including information types such as domain, IPv4, IPv6, reputation, PADNS, enrichment, feeds, and scoring.
Access threat intelligence: Threat rankings, Indicators of Future Attacks (IOFAs), and threat feeds from Silent Push and third parties.
Analyze DNS data: Numerous endpoints devoted to analyzing DNS data granularly.
Capture Live Screenshots: Live screenshots of URLs.
Perform Live Scans: Information types like HTML data, favicon data, body data, SSL data, domain risk score, and redirect chains.
Integrate with security tools: Our APIs are specifically designed to integrate with existing security stacks.
Monitor API usage: API usage and quotas associated with the API.
Retrieve raw scan data: The original data we scanned.
Use SPQL: Advanced users can use Silent Push Query Language (SPQL) to retrieve information from multiple datasets.
Top APIs and endpoints
We offer a wide range of APIs for various uses, along with numerous endpoints supporting hundreds of use cases.
To start, begin with our most popular APIs and endpoints among our customers:
API Name | Endpoint | Method | Data | Description |
|---|---|---|---|---|
Explore | GET | WHOIS | Retrieve WHOIS information about domain owners. For example, name or address of the owner associated with a domain. | |
Explore | GET | PADNS, Enrichment, Reputation | Retrieve DNS information. For example, domain data and IP address data. | |
Threat Ranking | GET | Threat Feeds | Retrieve threat intelligence data to prioritize threats. For example, threat feeds. | |
Live Scan | GET | API Limits | Retrieve information associated with your API usage. For example, API credits used. | |
Live Scan | GET | Live Endpoint Scan | Retrieve information about a real-time scan of a URL. | |
Explore recipes | GET | Live Screenshot Scan | Retrieve information about a real-time screenshot of a URL. | |
SPQL | GET | IP Scanning | Query data through multiple datasets within the Silent Push Explore API. |
Use cases
We offer a suite of APIs for our customers to enhance their cybersecurity operations with various Silent Push solutions, for example:
Brand impersonation
Intelligence feeds
Proactive threat hunting
Brand impersonation
Use case: An e-commerce platform wants to safeguard its brand reputation by detecting and mitigating instances of brand impersonation that could deceive customers.
Implementation: They implement the following relevant solutions using our API's:
Domain impersonation detection: The e-commerce platform uses Silent Push’s Explore Recipes API to identify domains that closely resemble its own, a common tactic in phishing attacks.
Comprehensive asset monitoring: The API scans for more than domain impersonation; it allows customers to investigate impersonations involving email addresses, HTML titles, and favicons.
Automated alerts and response: After the detection of impersonation attempts, the Silent Push system triggers alerts, enabling the security team to take swift action.
Intelligence feeds
Use case: A financial institution wants to increase and support its cybersecurity defenses by integrating real-time threat intelligence into its existing security infrastructure.
Implementation: They implement the following relevant solutions using our API's:
Integration of early detection feeds: The financial institution uses Silent Push's API to ingest enriched data on domains, IPs, and URLs associated with malicious activities, including command and control (C2) infrastructures and phishing campaigns.
Real-Time monitoring: The security teams gain real-time insights into emerging threats by using early detection feeds. This enables them to adjust their defenses proactively.
Prioritization of threats: The enriched data provides context and risk scores, allowing the team to focus on the most critical threats and respond swiftly to potential incidents.
Proactive threat hunting
Use case: A technology company wants to identify and mitigate threats before they impact operations by uncovering the threatening infrastructure during the planning stages of an attack.
Implementation: They implement the following relevant solutions using our APIs:
Utilization of Indicators of Future Attack (IOFAs): The technology company leverages Silent Push's APIs to access IOFAs, which include data on domains, IPs, and URLs that are part of potential malicious infrastructures.
Behavioral analysis: The security analysts use this data to create behavioral fingerprints that map out adversary Tactics, Techniques, and Procedures (TTPs) before they are weaponized.
Preemptive defense measures: Armed with this intelligence, the technology company implements security measures to block or monitor the identified infrastructure, which effectively neutralizes threats before they materialize.
Enrich Indicator
Enriching an indicator (domain, IPv4, or IPv6) provides details on its origin, function, and risk level, including ASN data, reputation scores, and geolocation.
Endpoint: GET /api/v1/merge-api/explore/enrich/{indicator_type}/{indicator}?explain=1
Example Code:
import requests
import json
indicator = "157.119.237.12"
indicator_type = "ipv4"
url = f"https://api.silentpush.com/api/v1/merge-api/explore/enrich/{indicator_type}/{indicator}?explain=1"
data = requests.get(url, headers={'x-api-key': api_key})
json_data = json.loads(data.content)
print(json_data)Sample Response (Excerpt):
{
"status_code": 200,
"error": None,
"response": {
"ip2asn": [
{
"asn": 134990,
"asname": "CITYCOMNETWORK-AS-AP CiTYCOM Network, BD",
"ip_reputation": 0,
"ip_reputation_score": 0,
"ip_flags": {
"is_proxy": True,
"proxy_tags": ["residential_proxy", "922proxy", "711proxy"]
},
"ip_location": {
"continent_code": "AS",
"country_code": "BD",
"country_name": "Bangladesh"
},
"sp_risk_score": 0,
"sp_risk_score_explain": {"sp_risk_score_decider": "ip_reputation"}
}
]
}
}This response highlights the IP's proxy status and low risk score, aiding in triage.
Bulk Enrich Indicators
Bulk enrichment supports up to 100 indicators at once for efficient processing. Separate examples for domains, IPv4, and IPv6.
Domains
Endpoint: POST /api/v1/merge-api/explore/bulk/summary/domain?
Example Code:
import requests
import json
import pandas as pd
domains = ["google.com", "facebook.com", "twitter.com"]
api_url = "https://app.silentpush.com/api/v1/merge-api/explore/bulk/summary/domain?"
headers = {'X-API-KEY': api_key}
params = {"explain": 1, "scan_data": 0}
body = {'domains': domains}
bulk_response_data = requests.post(api_url, headers=headers, json=body, params=params)
bulk_response_json = json.loads(bulk_response_data.content)
bulk_response_df = pd.DataFrame(bulk_response_json)['response']
df = pd.json_normalize(bulk_response_df)
print(df)Sample Output: A normalized DataFrame with enrichment details like reputation and listings for each domain.
IPv4
Endpoint: POST /api/v1/merge-api/explore/bulk/ip2asn/ipv4?
Example Code: Similar to domains, but with ips in the body and IPv4 list (e.g., ["172.67.70.13", "104.26.10.149", "104.26.11.149"]).
Sample Output: DataFrame showing ASN, reputation, and geolocation for each IP.
IPv6
Endpoint: POST /api/v1/merge-api/explore/bulk/ip2asn/ipv6?
Example Code: Analogous to IPv4, using IPv6 addresses (e.g., ["2a02:4780:37:b262:f807:71a8:e3ee:9b64", ...]).
Sample Output: Similar DataFrame structure, adapted for IPv6.
Forward DNS Lookup
Query forward DNS records for a domain, supporting types like A, AAAA, CNAME, MX, NS, PTR4, PTR6, ANY, SOA, and TXT.
Endpoint: GET /api/v1/merge-api/explore/padns/lookup/query/{record}/{domain}?limit=1000
Example Code:
import requests
import json
import pandas as pd
domain = "silentpush.com"
record = "any"
url = f"https://app.silentpush.com/api/v1/merge-api/explore/padns/lookup/query/{record}/{domain}?limit=1000"
data = requests.get(url, headers={'x-api-key': api_key})
json_data = json.loads(data.content)['response']['records']
response = pd.DataFrame(json_data)
print(response)Sample Output: DataFrame with columns like type, value, first_seen, and last_seen for matching records.
Reverse DNS Lookup
Reverse lookups on passive DNS data, supporting similar record types plus MXHASH, NSHASH, SOAHASH, and TXTHASH.
Endpoint: GET /api/v1/merge-api/explore/padns/lookup/answer/{record}/{ip}?limit=1000
Example Code:
import requests
import json
import pandas as pd
ip = "104.26.10.149"
record = "a"
url = f"https://app.silentpush.com/api/v1/merge-api/explore/padns/lookup/answer/{record}/{ip}?limit=1000"
data = requests.get(url, headers={'x-api-key': api_key})
json_data = json.loads(data.content)['response']['records']
response = pd.DataFrame(json_data)
print(response)Sample Output: DataFrame detailing resolved domains, timestamps, and counts.
Domain Search
Search domains with filters for name servers, Whois, networks, and patterns. Supports parameters like domain, asnum, registrar, and whois_date_after.
Endpoint: GET /api/v1/merge-api/explore/domain/search?...
Example Code:
import requests
import json
import pandas as pd
domain = "*.ru"
asnum = "207713"
registrar = "REGRU-RU"
whois_date_after = "2020-01-01"
url = f"https://api.silentpush.com/api/v1/merge-api/explore/domain/search?domain={domain}&first_seen_min_mode=strict&first_seen_max_mode=strict&last_seen_min_mode=any&last_seen_max_mode=strict&asnum={asnum}&asn=in&asn_match=any®istrar={registrar}&whois_date_after={whois_date_after}&limit=100&timeline=1&ip_diversity_all_min=5&prefer=result&max_wait=25"
data = requests.get(url, headers={'x-api-key': api_key})
json_data = json.loads(data.content)['response']['records']
records = pd.DataFrame(json_data)
print(records)Sample Output (Excerpt):
Row | asn_diversity | host | ip_diversity_all | ip_diversity_groups | timeline |
|---|---|---|---|---|---|
0 | 4 | 1004539663.bulot.ru | 6 | 6 | [{'asn': 53667, 'asname': 'PONYNET, US', 'firs... |
1 | 4 | 1056804114.bulot.ru | 7 | 7 | [{'asn': 198983, 'asname': 'TORNADODATACENTER,... |
2 | 4 | 1156206008.cupata.ru | 5 | 5 | [{'asn': 63949, 'asname': 'AKAMAI-LINODE-AP Ak... |
3 | 6 | 1282855944.bulot.ru | 6 | 6 | [{'asn': 14956, 'asname': 'ROUTERHOSTING, US',... |
4 | 4 | 1336911229.bulot.ru | 5 | 5 | [{'asn': 14956, 'asname': 'ROUTERHOSTING, US',... |
… | … | … | … | … | … |
95 | 3 | position73.ozaharso.ru | 5 | 5 | [{'asn': 63949, 'asname': 'AKAMAI-LINODE-AP Ak... |
96 | 5 | read77.acaenaso.ru | 7 | 7 | [{'asn': 46261, 'asname': 'QUICKPACKET, US', '... |
97 | 4 | redim39.acaenaso.ru | 7 | 7 | [{'asn': 14956, 'asname': 'ROUTERHOSTING, US',... |
98 | 5 | responsebody42.nubiumbi.ru | 7 | 7 | [{'asn': 14956, 'asname': 'ROUTERHOSTING, US',... |
99 | 4 | responsebody45.nubiumbi.ru | 7 | 7 | [{'asn': 14956, 'asname': 'ROUTERHOSTING, US',... |
100 rows × 5 columns
Search Scan Data
Query scan data using Silent Push Query Language (SPQL) across various sources, including Webscan, Torscan, WebResources, Opendirectory, services, and Whois.
Endpoint: POST /api/v1/merge-api/explore/scandata/search/raw?limit=100&with_metadata=1
Example Code:
import requests
import pandas as pd
import json
data_source = "webscan,torscan"
query = "favicon_murmur3 = 309020573 AND domain != \"pptanupdate.info\""
full_query = f"datasource={data_source} AND {query}"
url = "https://api.silentpush.com/api/v1/merge-api/explore/scandata/search/raw?limit=100&with_metadata=1"
payload = json.dumps({"query": full_query})
headers = {
'Content-Type': 'application/json',
'x-api-key': api_key,
'meta-data': '1'
}
response = requests.request("POST", url, headers=headers, data=payload)
results = json.loads(response.text)['response']['scandata_raw']
results = pd.DataFrame(results)
print(results)Sample Output (Excerpt):
Summary Section
This section provides a high-level overview of key metadata for each scan entry.
Index | URL | Domain | Subdomain | TLD | Scan Date | Response | Scheme |
|---|---|---|---|---|---|---|---|
0 | https://www.paypal.com/nl/home | paypal.com | www | com | 2025-04-14T21:58:40Z | 200 | https |
1 | https://www.paypal.com/nl/home | paypal.com | www | com | 2025-04-14T21:58:39Z | 200 | https |
2 | https://mr-perfmon-qa-us-east-2.dev.braintree-... | N/A | N/A | N/A | 2025-04-14T18:26:35Z | 200 | https |
3 | https://3.38.115.217/ | N/A | N/A | N/A | 2025-04-13T23:39:31Z | 200 | https |
4 | https://167.172.99.54/ | N/A | N/A | N/A | 2025-04-13T08:25:01Z | 200 | https |
… | … | … | … | … | … | … | … |
95 | https://173.0.93.205/us/home | N/A | N/A | N/A | 2025-04-06T21:13:20Z | 200 | https |
96 | https://conspiracydistillery.com/ | conspiracydistillery.com | com | 2025-04-06T19:56:48Z | 200 | https | |
97 | https://www.paypal.com/signin/?returnUri=%2Fin... | paypal.com | www | com | 2025-04-06T11:03:36Z | 200 | https |
98 | https://www.paypal.com/webapps/hermes?token=8H... | paypal.com | www | com | 2025-04-05T18:12:16Z | 200 | https |
99 | https://www.paypal.com/webapps/hermes?token=22... | paypal.com | www | com | 2025-04-05T18:12:15Z | 200 | https |
Security and Analysis Section
This section focuses on adtech, body analysis, SSL details, and data hashes.
Index | Adtech | Body Analysis (excerpt) | SSL (excerpt) | Datahash |
|---|---|---|---|---|
0 | {'ads_txt': False, 'ads_txt_sha256': '', 'app-... | {'ICP_license': '', 'SHV': 'f8e3360fbb86311b21... | {'CHV': '9d3012837ff54293cbd8a53027bb549269494... | d6b890afc1fd928b891dc6807e9d0c2c4307ce7c11d3a3... |
1 | {'ads_txt': False, 'ads_txt_sha256': '', 'app-... | {'ICP_license': '', 'SHV': 'f8e3360fbb86311b21... | {'CHV': '9d3012837ff54293cbd8a53027bb549269494... | 15fc3cc3a792dc2bfc853fe8225cdc4480285fb408f282... |
2 | {'ads_txt': False, 'ads_txt_sha256': '', 'app-... | {'ICP_license': '', 'SHV': 'c61e67bfe3c7644aa2... | {'CHV': '7ef117b4ce58f51d63e20c1422bb549269494... | cbeaa5b610ac37a3e0af468ea7bcf93152d7305dc0c753... |
3 | {'ads_txt': False, 'ads_txt_sha256': '', 'app-... | {'ICP_license': '', 'SHV': '187a20769a1d32735a... | {'CHV': '14d4f1737b7ab14d4f1737b7ab6aec86565e2... | bcf72c673547835e69fd54cf635ff39ac31a38a71bf83f... |
4 | {'ads_txt': False, 'ads_txt_sha256': '', 'app-... | {'ICP_license': '', 'SHV': '187a20769a1d32735a... | {'CHV': '14d4f1737b7ab14d4f1737b7ab6aec86565e2... | 68ea86092361dc5358e0c314c3072d6bd9754a6ee140b2... |
… | … | … | … | … |
95 | {'ads_txt': False, 'ads_txt_sha256': '', 'app-... | {'ICP_license': '', 'SHV': '30712700976f863af2... | {'CHV': '9d3012837ff5451d63e20c1422bb549269494... | bbde4d050f570dbd66b4284e1dbc3e52c176eb2cdc34c3... |
96 | {'ads_txt': False, 'ads_txt_sha256': '', 'app-... | {'ICP_license': '', 'SHV': '37837d21b7a9745013... | {'CHV': '7ef117b4ce58f14d4f1737b7ab00d702c1a37... | d9bc0d8360fefdb1f4af770f52adc1202c3e414a5d85a9... |
97 | {'ads_txt': False, 'ads_txt_sha256': '', 'app-... | {'ICP_license': '', 'SHV': 'ec41809030de8ab146... | {'CHV': '9d3012837ff54293cbd8a53027bb549269494... | caa7b6c6cbe3516d91d3fdd62b64ebdd880c0a648b76b7... |
98 | {'ads_txt': False, 'ads_txt_sha256': '', 'app-... | {'ICP_license': '', 'SHV': 'bc8420d9065fdab55d... | {'CHV': '9d3012837ff54293cbd8a53027bb549269494... | d11db89ecfe59c201bcb8ca6e3dee76e5d8166353c2b85... |
99 | {'ads_txt': False, 'ads_txt_sha256': '', 'app-... | {'ICP_license': '', 'SHV': 'bc8420d9065fdab55d... | {'CHV': '9d3012837ff54293cbd8a53027bb549269494... | f57e5a987d1590c6c9e090cade42859e2e1841c4e24e65... |
Assets and Hashes Section
This section covers favicon details, HHV, and related paths/hashes.
Index | HHV | Favicon2 MD5 | Favicon2 Murmur3 | Favicon2 Path |
|---|---|---|---|---|
0 | 25d209cadf8f19cd399014a34f | 6ba0933d57939edac031f8b3177876d2 | 2080897632 | https://www.paypalobjects.com/webstatic/icon/p... |
1 | 25d209cadf8f19cd399014a34f | 6ba0933d57939edac031f8b3177876d2 | 2080897632 | https://www.paypalobjects.com/webstatic/icon/p... |
2 | 9a1cd69b80a0d142ab00e9e12a | |||
3 | 83ba7c184364fece31d5a66831 | 6ba0933d57939edac031f8b3177876d2 | 2080897632 | https://www.paypalobjects.com/webstatic/icon/p... |
4 | 83ba7c184364fece31d5a66831 | 6ba0933d57939edac031f8b3177876d2 | 2080897632 | https://www.paypalobjects.com/webstatic/icon/p... |
… | … | … | … | … |
95 | 1e58d8459b25cbe3aae676f20c | 6ba0933d57939edac031f8b3177876d2 | 2080897632 | https://www.paypalobjects.com/webstatic/icon/p... |
96 | 9c5a9fc6282c4e19fc0503949e | 6ba0933d57939edac031f8b3177876d2 | 2080897632 | https://www.paypalobjects.com/webstatic/icon/p... |
97 | 0f99373769daf53d90c023626e | |||
98 | 28dd549f6e8aa10e73aca41f21 | |||
99 | 28dd549f6e8aa10e73aca41f21 |
Network and Miscellaneous Section
This section includes resolves_to, datasource, user-agent (excerpt), and screenshot.
Index | Datasource | Resolves To (excerpt) | User-Agent (excerpt) | Screenshot |
|---|---|---|---|---|
0 | webscan | [151.101.3.1, 151.101.195.1, 162.159.141.96] | Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/53... | NaN |
1 | webscan | [151.101.3.1, 151.101.195.1, 162.159.141.96] | Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/53... | NaN |
2 | webscan | [18.216.164.195] | Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/53... | NaN |
3 | webscan | [3.38.115.217] | Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/53... | NaN |
4 | webscan | [167.172.99.54] | Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/53... | NaN |
… | … | … | … | … |
95 | webscan | [173.0.93.205] | Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/53... | NaN |
96 | webscan | [193.58.105.92, 2a02:4780:37:4b12:1061:6c1b:fc... | Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/53... | NaN |
97 | webscan | [193.58.105.63, 2a02:4780:37:a0c:9360:5ca9:af7... | Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/53... | NaN |
98 | webscan | [192.185.139.173] | Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/53... | NaN |
99 | webscan | [192.185.139.173] | Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/53... | NaN |
Live Scan
Initiate a real-time scan of a URL, configurable by OS, region, platform, and browser.
Endpoint: GET /api/v1/merge-api/explore/tools/scanondemand?url={url}&platform={platform}&OS={os}&browser={browser}®ion={region}
Example Code:
import requests
import json
import pandas as pd
url = "https://www.espn.com/"
os = "Windows"
region = "US"
platform = "Desktop"
browser = "Chrome"
api_url = f"https://api.silentpush.com/api/v1/merge-api/explore/tools/scanondemand?url={url}&platform={platform}&OS={os}&browser={browser}®ion={region}"
data = requests.get(api_url, headers={'x-api-key': api_key})
json_data = json.loads(data.content)['response']
df = pd.DataFrame(json_data)
print(df)Sample Output (Excerpt)
scan | HHV | adtech | body_analysis | datahash | domain | favicon_murmur3 | … | response | url |
|---|---|---|---|---|---|---|---|---|---|
0 | 483b66ebe5e37ca2... | {'ads_txt': True, ...} | {'SHV': '1f6b0ebb93f647396a65e45d0e', ...} | 37ee9daa87302976b0342c6dd19e346721fcf32903317e... | espn.com | -1403218946 | … | 200 | https://www.espn.com |
(Includes JARM fingerprints, HTML analysis, and resolves_to IPs.)
Get Indicator of Future Attack (IOFA) Feed
Automate exports of IOFA indicators via Feed UUID for integration with your security stack.
Endpoint: GET /api/v2/iocs/threat-ranking/?page=1&limit=10000&distinct=false&source_uuids={feed_uuid}&order=-total_ioc,-total_source_score&state=Feed&advanced=advanced
Example Code:
import requests
import json
import pandas as pd
feed_uuid = "324c613c-8b4e-4b2e-8f69-9c86fea78077"
data = requests.get(f'https://app.silentpush.com/api/v2/iocs/threat-ranking/?page=1&limit=10000&distinct=false&source_uuids={feed_uuid}&order=-total_ioc,-total_source_score&state=Feed&advanced=advanced', headers={'x-api-key': api_key})
json_data = json.loads(data.content)
response = pd.DataFrame(json_data)
# Optionally export to JSON/CSVSample Output: DataFrame of indicators with scores and sources.
Add Indicators to Feed
Programmatically add indicators and tags to a feed using its UUID.
Example Code:
import requests
feed_uuid = "a03f3a69-ac84-4fd8-a7d7-71dafd2bf3f2"
indicators = ["microsoft.com", "apple.com"]
tags = "malware, test"
def add_indicators():
url = f"https://app.silentpush.com/api/v1/feeds/{feed_uuid}/indicators/"
payload = {"indicators": indicators}
headers = {"x-api-key": api_key, "Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers, verify=False)
print("Status Code:", response.status_code)
print("Response JSON:", response.json())
def add_tags(indicator):
url = f"https://app.silentpush.com/api/v1/feeds/{feed_uuid}/indicators/{indicator}/update-tags/"
payload = {"tags": tags}
headers = {"x-api-key": api_key, "Content-Type": "application/json"}
response = requests.put(url, json=payload, headers=headers, verify=False)
print("Status Code:", response.status_code)
print("Response JSON:", response.json())
add_indicators()
for indicator in indicators:
add_tags(indicator)Sample Output:
Status Code: 201
Response JSON: {'created_or_updated': [{'uuid': 'bed9608aca5a28c3', 'name': '8.8.8.1', 'tags': ''}, ...], 'invalid_indicators': []}Get Feeds
Retrieve a list of all available feeds.
Endpoint: GET /api/v1/feeds/?page_size=200
Example Code:
import requests
url = "https://app.silentpush.com/api/v1/feeds/?page_size=200"
headers = {"x-api-key": api_key, "Content-Type": "application/json"}
response = requests.get(url, headers=headers, verify=False)
print("Status Code:", response.status_code)
print("Response JSON:", response.json())Sample Output: JSON array of feeds with UUIDs, names, and metadata.
Get Data Export
Download custom exports from Feed Scanner as CSV, enriched with metadata.
Endpoint: https://app.silentpush.com/app/v1/export/
Example: Get Organization Export
GET /api/v2/export/organisation-feeds/{feed_uuid}_enriched.csv
Example Code:
import requests
import pandas as pd
import io
feed_uuid = "7a7aa058-699a-4bc4-88bd-5256787c313b"
data = requests.get(f'https://app.silentpush.com/api/v2/export/organisation-feeds/{feed_uuid}_enriched.csv', headers={'x-api-key': api_key})
df = pd.read_csv(io.BytesIO(data.content))
print(df)Sample Output (Excerpt):
domain | sp_risk_score | tags | type | … |
|---|---|---|---|---|
securedmicrosoft365.com | 100 | [‘malware’] | domain | … |
id-reservation.com | 100 | [‘malware’] | domain | … |
… | … | … | … | … |
(Up to 51 rows across 123 columns, including certificates, NS changes, and risk explanations.)
ThreatCheck
For enterprise users: Check if an IP or hostname appears on an IOFA feed. Returns a boolean with optional text.
Endpoint: GET /v1/?t={indicator_type}&d=iofa&u={access_key}&q={indicator}
Example Code:
import requests
import json
access_key = "" # Your ThreatCheck access key
indicator = "mahombres.ru"
indicator_type = "name"
data = requests.get(f'https://api.threatcheck.silentpush.com/v1/?t={indicator_type}&d=iofa&u={access_key}&q={indicator}')
json_data = json.loads(data.content)
print(json_data)Sample Response:
{
"query": "mahombres.ru",
"is_listed": True,
"listed_txt": "listed on Silent Push IOFA feed"
}Ideal for high-volume integrations like email gateways or SIEMs.
Additional Endpoints
Silent Push offers more endpoints for advanced use cases, such as live WHOIS lookups and dangling DNS detection.
Get ASNs for a Domain
Endpoint: GET /api/v1/explore-recipes/hosting-infra-asns-recipes/query/?limit=100&domain={domain}&type=hosting_infrastructure_asn&queryType=hosting_infrastructure_asn
Example Code:
import requests
import json
import pandas as pd
url = "https://app.silentpush.com/api/v1/explore-recipes/hosting-infra-asns-recipes/query/?limit=100&domain=fox.com&type=hosting_infrastructure_asn&queryType=hosting_infrastructure_asn"
data = requests.get(url, headers={'x-api-key': api_key})
json_data = json.loads(data.content)
response = pd.DataFrame(json_data)['response']
print(response)Sample Output:
records [{'asn': 16625, 'asn_size': 7696128, 'asname': 'AOL, US', ...}]
dtype: object