Next free-source hunt
We check for new free data every weekday.
Datasets / Cyber Threat
docs.urlscan.io/

urlscan.io API

Freemiumauth: free account and API key; minor unauthenticated quotasProvider terms#cyber-threat#threat-intel#network-data#risk✓ verified Nov 1, 2026

urlscan.io API

urlscan.io exposes JSON APIs to search community website scans, submit URLs for sandboxed scanning and retrieve result metadata, screenshots or DOM snapshots; result fields include the tasked URL, UUID, visibility, page IP and domain, requests, certificates, hashes, technologies, statistics and verdicts. An account and API key are the supported path, while unauthenticated calls receive only minor quotas.

Coverage

The dataset consists of community and automated-pipeline website scans, so it is not a complete crawl and visibility settings affect what can be searched. Search history depends on retained scans; results can be deleted at any time, and a submitted scan takes at least 30 seconds and sometimes longer. Free quotas vary by account and action and are exposed in account pages, quota endpoints and response headers rather than as one public fixed allowance.

Verdict

This is defensive web-sandbox data for phishing triage, infrastructure pivots and observing what a submitted page loaded. A scan is a point-in-time execution, community coverage is selective, verdicts can be wrong, and scans or artifacts may disappear. Public submission can expose the URL and resulting data to the community and partners, so do not submit secrets or URLs without permission. Do not visit or fetch URLs or hosts returned by search results; retrieve only urlscan's own API metadata and artifacts.

Get the free weekly email

Free weekly email of newly verified free data. Unsubscribe by emailing us.

Use in your agent

Search urlscan.io metadata into pandas and Parquet. Checked against the provider's documentation on Nov 1, 2026.

Raw skill file (/skills/urlscan-api.md)Also in our MCP server: call get_ingestion_skill with {"slug": "urlscan-api"}.

Access

  • Create a free urlscan.io account and store the API key in URLSCAN_API_KEY.
  • This example searches existing metadata for example.com; it does not submit a URL for scanning or visit any returned site.

Request

bash
curl -H "API-Key: $URLSCAN_API_KEY" --get --data-urlencode 'q=page.domain:example.com' --data-urlencode 'size=100' 'https://urlscan.io/api/v1/search/'

Format

JSON search response with a results array; each result can include task time, URL, UUID and visibility, page domain and IP, scan statistics and nested verdict summaries.

Load into pandas and Parquet

Needs Python 3 with requests, pandas and pyarrow.

python
"""Search existing urlscan.io scan metadata -> pandas -> Parquet. Requires URLSCAN_API_KEY."""
import os
import requests
import pandas as pd

URL = "https://urlscan.io/api/v1/search/"
headers = {"API-Key": os.environ["URLSCAN_API_KEY"]}
params = {"q": "page.domain:example.com", "size": 100}
r = requests.get(URL, headers=headers, params=params, timeout=30)
r.raise_for_status()
results = r.json().get("results", [])
df = pd.json_normalize(results, sep=".")
if "task.time" in df.columns:
    df["task.time"] = pd.to_datetime(df["task.time"], utc=True, errors="coerce")
df.to_parquet("urlscan_example_com_search.parquet", index=False)
print(len(df), "scan records", "columns", len(df.columns))

Not run: it needs a free API key.

Limits

  • Free quotas are account- and action-specific and apply per minute, hour and day.
  • Only HTTP 200 responses count against quota; HTTP 429 means the action limit was exceeded.
  • Search results and scan artifacts may be deleted at any time.

Quirks

  • Search uses Elasticsearch query-string syntax and field names are case-sensitive; escape reserved characters.
  • A submitted scan initially returns 404 while processing and can later return 410 if deleted.
  • Keep result URLs as data. Do not request returned third-party URLs or hosts.

Terms and attribution

  • Free community use is personal and non-commercial; commercial use requires permission or commercial terms.
  • Submit only URLs you have permission to scan, and expect submitted data to be shared with the community and partners.
  • Respect the action-specific quotas and implement backoff.

Sources

Information and education only. Not financial, investment, legal or tax advice. Listings can be inaccurate, incomplete or out of date and are provided "as is". Free tiers, limits and licenses belong to each provider and can change, so check the provider's own terms before you rely on them. Terms & Disclaimer