urlscan.io APIs (1.0.0)

Introduction

API endpoints for urlscan.io and urlscan Pro. Most of these API endpoints require authentication.

The fastest way to start working with our APIs is by using one of the many existing commercial or open-source integrations.

Download OpenAPI description
Overview
urlscan Support

support@urlscan.io

Languages
Servers

https://urlscan.io/

Generic

API endpoints related to the platform or the user account.

Operations

Scanning

These APIs allow URLs to be scanned and the results of the scans to be retrieved.

Operations

Live Scanning

urlscan Pro - Live Scanning allows users to scan websites from different geographical locations and using different device settings.

See additional info about this proprietary feature on urlscan Pro.

Operations

Saved Searches

urlscan Pro - Saved Searches are rules that are executed inline against new incoming scans and hostnames.

Operations

Subscriptions

urlscan Pro - Subscriptions allow notifications for Saved Searches.

Operations

Hostnames

urlscan Pro - Historical information on hostnames and domains

Operations

Brands

urlscan Pro - Information about tracked brands

Operations

Files

urlscan Pro - Downloaded files

Operations

Incidents

urlscan Pro - Incidents track observables, like hostnames and domains, and automatically scan and alert on changes.

Operations

Channels

Operations

Channels

Request

Get a list of notification channels for the current user.

Security
apikeyAuth
curl -i -X GET \
  https://urlscan.io/api/v1/user/channels/ \
  -H 'api-key: YOUR_API_KEY_HERE'

Responses

Successful response

Bodyapplication/json
channelsArray of objects(channelResponse)
Example: [{"_id":"{{channelId}}","type":"webhook","webhookURL":"https://example.com/cgi-bin/urlscan","name":"Test webhook","description":"Webhook testing channel.","isActive":true,"ignoreTime":false}]
Response
application/json
{ "channels": [ {} ] }

Create Channel

Request

Create a new channel.

Security
apikeyAuth
Bodyapplication/json
channelobjectrequired
Example: {"_id":"{{channelId}}","type":"webhook","webhookURL":"https://example.com/cgi-bin/urlscan","name":"Test webhook","description":"Webhook testing channel.","isActive":true,"ignoreTime":false}
channel.​_idstring

Channel ID

Example: "{{channelId}}"
channel.​typestringrequired

Type of channel, "webhook" (default) or "email".

Example: "webhook"
channel.​webhookURLstring

Frequency of notifications.

Enum"live""hourly""daily"
Example: "https://example.com/cgi-bin/urlscan"
channel.​frequencystring

Frequency of notifications ("live", "hourly", or "daily").

channel.​emailAddressesArray of strings(email)

Email addresses receiving the notifications.

channel.​utcTimestring

24 hour UTC time that daily emails are sent (e.g. 09:00).

channel.​namestringrequired

Name of the subscription.

Example: "Test webhook"
channel.​isActiveboolean

Whether the channel is active.

Example: true
channel.​isDefaultboolean

Whether the channel is the default (default: false).

channel.​ignoreTimeboolean

Whether to ignore time constraints (default: false).

channel.​weekDaysArray of strings

Days of the week alerts will be generated.

Items Enum"Monday""Tuesday""Wednesday""Thursday""Friday""Saturday""Sunday"
channel.​permissionsArray of strings
Items Enum"team:read""team:write"
curl -i -X POST \
  https://urlscan.io/api/v1/user/channels/ \
  -H 'Content-Type: application/json' \
  -H 'api-key: YOUR_API_KEY_HERE' \
  -d '{
    "channel": {
      "_id": "{{channelId}}",
      "type": "webhook",
      "webhookURL": "https://example.com/cgi-bin/urlscan",
      "name": "Test webhook",
      "description": "Webhook testing channel.",
      "isActive": true,
      "ignoreTime": false
    }
  }'

Responses

Successful response

Bodyapplication/json
channelobject(channelResponse)
Example: {"_id":"{{channelId}}","type":"webhook","webhookURL":"https://example.com/cgi-bin/urlscan","name":"Test webhook","description":"Webhook testing channel.","isActive":true,"ignoreTime":false}
Response
application/json
{ "channel": { "_id": "{{channelId}}", "type": "webhook", "webhookURL": "https://example.com/cgi-bin/urlscan", "name": "Test webhook", "description": "Webhook testing channel.", "isActive": true, "ignoreTime": false } }

Channel Search Results

Request

Get the search results for a specific notification channel.

Security
apikeyAuth
Path
channelIdstringrequired
curl -i -X GET \
  'https://urlscan.io/api/v1/user/channels/{channelId}' \
  -H 'api-key: YOUR_API_KEY_HERE'

Responses

Successful response

Bodyapplication/json
channelobject(channelResponse)
Example: {"_id":"{{channelId}}","type":"webhook","webhookURL":"https://example.com/cgi-bin/urlscan","name":"Test webhook","description":"Webhook testing channel.","isActive":true,"ignoreTime":false}
Response
application/json
{ "channel": { "_id": "{{channelId}}", "type": "webhook", "webhookURL": "https://example.com/cgi-bin/urlscan", "name": "Test webhook", "description": "Webhook testing channel.", "isActive": true, "ignoreTime": false } }

Update Channel

Request

Update an existing channel.

Security
apikeyAuth
Bodyapplication/json
channelobjectrequired
Example: {"_id":"{{channelId}}","type":"webhook","webhookURL":"https://example.com/cgi-bin/urlscan","name":"Test webhook","description":"Webhook testing channel.","isActive":true,"ignoreTime":false}
channel.​_idstring

Channel ID

Example: "{{channelId}}"
channel.​typestringrequired

Type of channel, "webhook" (default) or "email".

Example: "webhook"
channel.​webhookURLstring

Frequency of notifications.

Enum"live""hourly""daily"
Example: "https://example.com/cgi-bin/urlscan"
channel.​frequencystring

Frequency of notifications ("live", "hourly", or "daily").

channel.​emailAddressesArray of strings(email)

Email addresses receiving the notifications.

channel.​utcTimestring

24 hour UTC time that daily emails are sent (e.g. 09:00).

channel.​namestringrequired

Name of the subscription.

Example: "Test webhook"
channel.​isActiveboolean

Whether the channel is active.

Example: true
channel.​isDefaultboolean

Whether the channel is the default (default: false).

channel.​ignoreTimeboolean

Whether to ignore time constraints (default: false).

channel.​weekDaysArray of strings

Days of the week alerts will be generated.

Items Enum"Monday""Tuesday""Wednesday""Thursday""Friday""Saturday""Sunday"
channel.​permissionsArray of strings
Items Enum"team:read""team:write"
curl -i -X PUT \
  'https://urlscan.io/api/v1/user/channels/{channelId}' \
  -H 'Content-Type: application/json' \
  -H 'api-key: YOUR_API_KEY_HERE' \
  -d '{
    "channel": {
      "_id": "{{channelId}}",
      "type": "webhook",
      "webhookURL": "https://example.com/cgi-bin/urlscan",
      "name": "Test webhook",
      "description": "Webhook testing channel.",
      "isActive": true,
      "ignoreTime": false
    }
  }'

Responses

Successful response

Bodyapplication/json
channelobject(channelResponse)
Example: {"_id":"{{channelId}}","type":"webhook","webhookURL":"https://example.com/cgi-bin/urlscan","name":"Test webhook","description":"Webhook testing channel.","isActive":true,"ignoreTime":false}
Response
application/json
{ "channel": { "_id": "{{channelId}}", "type": "webhook", "webhookURL": "https://example.com/cgi-bin/urlscan", "name": "Test webhook", "description": "Webhook testing channel.", "isActive": true, "ignoreTime": false } }