Get Scan Result

urlscan.get_result
ActionBusiness appsconnection required

Calls the urlscan.io API with the connection's credentials.

Read a finished scan's verdict, page metadata and contacted hosts.

Connection

Required
Yes — the node will not save without one
Auth type
API key
Providers
urlscan.io
Secret shape
the API key, or {"api_key": "…"}
Resolved by
config.connection_id, else node.connection_id

Configuration

2 fields, 1 required. A dotted path is a nested object and name[] an array of objects — the editor renders the same tree.

FieldTypeRequiredDefaultConstraintsExample
uuid
The scan id returned by urlscan.scan; a full urlscan result URL also works.
stringYes——0e37e828-a9d9-45c0-ac50-1ca579b86c72
include_data
Also return the raw 'data' object — every request, cookie, console message and link of the page load. It is often several megabytes.
booleanNofalse——

Example configuration

Every value below is the contract’s own example or default — nothing invented.

{
  "include_data": false,
  "uuid": "0e37e828-a9d9-45c0-ac50-1ca579b86c72"
}

Output

One shape.

result

FieldTypeExample
uuid
The scan id this result belongs to.
string—
done
False while urlscan.io is still scanning; poll again after a delay.
boolean—
url
The URL that was submitted for this scan.
string—
submitted_at
When the scan was created, as ISO-8601.
string—
visibility
The visibility level this scan was run at.
string—
method
How the scan was tasked: api, manual or automatic.
string—
tags
The tags supplied when the scan was submitted.
array—
page_url
The URL of the primary request after redirects.
string—
page_domain
Hostname of the primary request.
string—
page_title
Title of the page that was loaded.
string—
page_ip
IP address contacted for the primary request.
string—
page_country
GeoIP country of that IP address.
string—
page_server
The primary response's HTTP Server header.
string—
page_status
HTTP response code of the primary request.
string—
page_asn
Autonomous System number of the primary IP.
string—
page_asn_name
Autonomous System name of the primary IP.
string—
verdict_score
urlscan.io's overall verdict, from -100 (legitimate) to 100 (malicious).
number—
verdict_categories
urlscan.io's maliciousness categories, such as 'phishing'.
array—
brands
Identifiers of brands urlscan.io detected a phish of.
array—
verdicts
The whole verdicts object, exactly as returned.
object—
stats
urlscan.io's computed stats for the page load.
object—
lists
Roll-ups of what the page contacted: domains, ips, asns, urls, hashes.
object—
data
The raw page-load data; present only when asked for.
object—
report_url
Link to the human-readable report on urlscan.io.
string—
screenshot_url
Direct URL of the PNG screenshot for this scan.
string—
dom_url
Direct URL of the stored DOM snapshot for this scan.
string—
{
  "brands": [],
  "data": {},
  "dom_url": "",
  "done": false,
  "lists": {},
  "method": "",
  "page_asn": "",
  "page_asn_name": "",
  "page_country": "",
  "page_domain": "",
  "page_ip": "",
  "page_server": "",
  "page_status": "",
  "page_title": "",
  "page_url": "",
  "report_url": "",
  "screenshot_url": "",
  "stats": {},
  "submitted_at": "",
  "tags": [],
  "url": "",
  "uuid": "",
  "verdict_categories": [],
  "verdict_score": 0,
  "verdicts": {},
  "visibility": ""
}

Notes

  • A scan takes tens of seconds: submit with urlscan.scan, wait with control.delay, then poll urlscan.get_result until 'done' is true.
  • Submit anything with personal data in the URL as 'unlisted' or 'private' — a public scan is visible on urlscan.io's front page and in its search.

See Get Scan Result run in a workflow.

In a technical demo we add the urlscan.io connection, drop the node on the canvas and let Workflow Health pre-flight it before the first real run.