urlscan.io for AI agents

urlscan.io scans and analyzes websites for threat intelligence, used by security teams investigating suspicious URLs and tracking phishing infrastructure. Connect it once through Arc0, and your agent, or Claude, ChatGPT and Cursor, can use it through one MCP endpoint, limited to what each user approved.

Security and identityAPI keyMCP + RESTurlscan.io
AUDIT LOG · URLSCAN.IOPOLICY: acme-support
09:41:07 · claude · u_8f2read
urlscan_io.list_channels
List Notification Channels✓ allowed · 212ms
09:41:08 · claude · u_8f2read
urlscan_io.get_dom
Get Scan DOM✓ allowed · 164ms
09:41:09 · claude · u_8f2write
urlscan_io.create_channel
Create Notification Channel✓ approved · approved by user
09:41:12 · claude · u_8f2destructive
urlscan_io.delete_result
Delete Scan Result✕ blocked · policy: deny
EVERY URLSCAN.IO CALL, ON THE RECORD
01 · USE CASES

What agents do in urlscan.io.

01

Scan a URL

Submit a URL for a live scan and get back its behavior and screenshot.

02

Get a scan result

Pull a prior scan's findings as a read-only lookup.

03

Confirm before deleting a saved search

Check with the user before deleting a saved search, since it may be used by an ongoing investigation.

02 · ACTIONS

51 urlscan.io actions, graded by risk.

Every urlscan.io action is tagged read, write or destructive, so one policy covers the whole app and new actions inherit the right default.

read

29

Look things up. Allowed by default.

  • urlscan_io.get_dom
    Get Scan DOM
  • urlscan_io.get_quotas
    Get API Quotas
  • urlscan_io.get_result
    Get Scan Result
  • urlscan_io.get_channel
    Get Notification Channel
  • urlscan_io.get_incident
    Get Incident
  • urlscan_io.search_scans
    Search Scans
  • urlscan_io.get_phishfeed
    Get Deprecated Phishing Feed
  • urlscan_io.list_channels
    List Notification Channels
  • urlscan_io.get_screenshot
    Get Scan Screenshot
  • urlscan_io.list_data_dumps
    List Data Dumps
  • urlscan_io.list_user_agents
    Get Scan User Agents
  • urlscan_io.get_brand_summary
    Get Brand Summary
  • urlscan_io.get_data_dump_link
    Get Data Dump Download Link
  • urlscan_io.list_live_scanners
    List Live Scanners
  • urlscan_io.list_subscriptions
    List Alert Subscriptions
  • urlscan_io.get_incident_states
    Get Incident States
+ 13 MORE

write

16

Create and change things. Allow, or ask the user first.

  • urlscan_io.create_channel
    Create Notification Channel
  • urlscan_io.update_channel
    Update Notification Channel
  • urlscan_io.create_incident
    Create Incident
  • urlscan_io.update_incident
    Update Incident
  • urlscan_io.create_saved_search
    Create Saved Search
  • urlscan_io.create_subscription
    Create Alert Subscription
  • urlscan_io.update_saved_search
    Update Saved Search
  • urlscan_io.update_subscription
    Update Alert Subscription
  • urlscan_io.create_live_scan_task
    Create Live Scan Task
  • urlscan_io.update_result_visibility
    Update Scan Visibility
  • urlscan_io.create_live_scan_blocking
    Run Blocking Live Scan
  • urlscan_io.submit_scan
    Submit Scan
  • urlscan_io.copy_incident
    Copy Incident
  • urlscan_io.fork_incident
    Fork Incident
  • urlscan_io.restart_incident
    Restart Incident
  • urlscan_io.store_live_scan_result
    Store Live Scan Result

destructive

6

Delete, cancel or archive. Ask first, or deny outright.

  • urlscan_io.delete_result
    Delete Scan Result
  • urlscan_io.delete_saved_search
    Delete Saved Search
  • urlscan_io.delete_subscription
    Delete Alert Subscription
  • urlscan_io.close_incident
    Close Incident
  • urlscan_io.purge_live_scan_result
    Purge Live Scan Result
  • urlscan_io.reset_result_visibility
    Reset Scan Visibility
03 · HOW IT WORKS

urlscan.io in three steps.

  1. 01Your users connect urlscan.ioThey add their urlscan.io api key on Arc0 Connect, under your brand. It goes straight into the vault.
  2. 02You set the rulesReads run, writes like “create Notification Channel” can wait for the user, and “delete Scan Result” can be denied outright.
  3. 03Any agent can actYour agent calls urlscan.io through the Arc0 SDK or MCP, and so can Claude, ChatGPT and Cursor. Every call lands on the audit log.
POLICY.TS
await arc0.policies.set('urlscan_io', {
  read: 'allow',
  write: 'ask',        // create_channel
  destructive: 'deny',  // delete_result
})

# Claude Code: the same connection, one URL
$ claude mcp add --transport http arc0 \
    https://mcp.arc0.ai/u/u_8f2
04 · AUTH AND DATA

How urlscan.io connects.

Users add their urlscan.io api key on Arc0 Connect. It is encrypted in the vault, never shown to the model, and each user can rotate or revoke it at any time.

The same urlscan.io connection serves your agent over MCP and your own backend over REST and the proxy, so a user connects once. How Arc0 handles credentials →

AUTH
API key
CREDENTIALS
Per-tenant encrypted vault
MODEL SEES
Results only, never credentials
AUDIT LOG
Every call, on every plan
05 · WORKS WITH

Use urlscan.io from any agent.

Claude
ChatGPT
Cursor
Codex
VS Code
OpenAI Agents SDK
Claude Agent SDK
Vercel AI SDK
Mastra
LangGraph
07 · FAQ

urlscan.io and Arc0, answered.

Q01

Can I use urlscan.io with Claude, ChatGPT or Cursor?

Yes. Connect urlscan.io to Arc0 once, then add your Arc0 MCP URL to Claude, ChatGPT, Cursor, Claude Code or any other remote-MCP client. Each assistant only gets the urlscan.io actions you allow.

Q02

How do users connect urlscan.io?

Users add their urlscan.io api key on Arc0 Connect. It is encrypted in the vault, never shown to the model, and each user can rotate or revoke it at any time.

Q03

Which urlscan.io actions can my agent take?

51 in total: 29 read, 16 write and 6 destructive, such as “create Notification Channel”. Your policies decide which of them each agent may call.

Q04

Can I stop my agent from deleting things in urlscan.io?

Yes. Actions like “delete Scan Result” are graded destructive. Set destructive actions to deny, or to ask so the user approves each one, and blocked calls still show up on the audit log.

Q05

Can my own backend call urlscan.io too?

Yes. The same urlscan.io connection is available over REST and through the Arc0 proxy, so your product and your agent share one connection per user.

Get started

Plug urlscan.io into your agent.

Your users connect urlscan.io once, under your brand. Your agent gets 51 actions behind your policies, with every call on the record.

Free to build · MCP + REST · Audit log on every plan