scan_url
Submit a URL to urlscan.io to analyze it for threats, receiving a scan ID to fetch the report once scanning completes.
Instructions
Submit a URL to urlscan.io for scanning.
Requires an API key. Returns immediately with a UUID: the scan is not
finished. Wait poll_after_seconds, then call get_scan_result.
Visibility is a disclosure decision, not a preference, and it defaults to the safe answer. "unlisted" keeps the scan off urlscan's public listing. "public" is visible to everyone, including whoever operates the URL being scanned, so choosing it during a live incident tells an attacker they were caught. Choose "public" only when contributing a confirmed phishing page to the community is the actual intent.
Scanning fetches the URL from urlscan's infrastructure, which is a real interaction with a possibly hostile site. Do not submit URLs containing session tokens, password-reset links or anything else single-use.
At most 10 tags. country requests a scanner location, for example
"fr" or "us", for sites that serve different content by geography.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| url | Yes | ||
| tags | No | ||
| country | No | ||
| visibility | No | unlisted |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| uuid | No | Scan UUID; pass to get_scan_result | |
| quota | No | Remaining urlscan allowance | |
| api_url | No | API URL for the result | |
| message | No | urlscan's response message | |
| result_url | No | Human-readable report, once finished | |
| visibility | No | public, unlisted or private | |
| submitted_url | No | URL that was submitted | |
| poll_after_seconds | No | Seconds to wait before calling get_scan_result |