Check Websites for Scams with AI
Use a cloud browser agent to check URLs for scam signals and export results.
Introduction
30 Second Summary
A suspicious link can leave you choosing between curiosity and caution. Opening it yourself creates the exposure you were trying to investigate.
In this project, you will build a Python script that sends suspicious URLs to a Browser Use Cloud browser agent. The script returns evidence-backed verdicts in a CSV without opening those sites on your machine.
What You'll Build
Your finished script turns five chosen URLs into a spreadsheet of verdicts with evidence and run times.
By the end of this project, you'll have:
- A live cloud browser view where you can watch a suspicious page being inspected away from your machine.
- Evidence-backed verdicts for five URLs. Each result includes the page title plus the warning signs the agent found.
- A spreadsheet-ready results file for comparing verdicts and run times. The dashboard shows the cost of each task.
- Secret Mission: Add a manual-review flag that highlights uncertain verdicts without opening the site yourself.
Are there any prerequisites?
You need Python for the batch script. You also need curl for the first test request.
The project guides you through creating your Browser Use Cloud account and API key.
Before We Start
Suspicious links are safest when your own browser never touches them. Browser Use Cloud runs each check inside a cloud browser agent.
This setup gives the later script a protected credential. You will also prepare the Python runtime inside a local workspace.
In this step, get ready to:
- Create a Browser Use Cloud account with an API key.
- Confirm Python 3 is available for the script.
- Prepare a local workspace for the scam checker.
Create your cloud account and API key
An API key lets your later requests use your Browser Use Cloud project. Anyone holding the key can spend your project's credits.
Keep the Key Private
Creating a key reveals a live credential. You will copy it once before closing the reveal.
Keep the key out of screenshots plus project files. The terminal environment will hold it for this project.
- Visit Browser Use Cloud in your browser.
- Create an account through the available sign-up flow.
- Complete the sign-in process to reach the Browser Use Cloud dashboard.
- Open Project Settings in the dashboard.
- Select API keys.
- Use the key creation control to generate a new API key.
- Copy the generated key to your clipboard.
- Close the key reveal.
You'll see the new key listed in masked form under API keys. This confirms that your Browser Use Cloud project can authenticate later requests.
Good progress. Your Browser Use Cloud project now has a key without exposing it in your screenshot.
Prepare Python and your project folder
Python runs the script that submits each URL. A dedicated folder keeps the script beside its CSV output.
macOS
- Press Cmd+Space to open Spotlight.
- Type Terminal before pressing Enter.
- Check for Python 3 by running this command:
python3 --version
What Does This Command Check?
The --version option prints the Python version before exiting. A result beginning with Python 3 confirms that the runtime is available.
✔️ I see Python 3
Python is ready to run the scam checker. You have confirmed the first local dependency.
ⓧ Command not found
The macOS installer may request an administrator password. This gives Python permission to install for all users.
- Visit the official Python downloads for macOS page.
- Download the most recent supported macOS installer.
- Open the downloaded .pkg file.
- Select Continue through the installer information screens.
- Select Agree to accept the license.
- Select Install.
- Return to Terminal after the installation completes.
- Run the version check shown above again.
You'll see output beginning with Python 3.
The version check confirms that your Mac can run the future script. The next visible result is its dedicated folder.
- Press Cmd+Space to open Spotlight.
- Type Finder before pressing Enter.
- Select Desktop in the Finder sidebar.
- Select File in the macOS menu bar.
- Select New Folder.
- Type website-scam-checker before pressing Enter.
You'll see an empty website-scam-checker folder on your Desktop. It is ready for the Python files plus CSV output.
Windows
- Press the Windows key to open Search.
- Type PowerShell before pressing Enter.
- Check for Python 3 by running this command:
python --version
What Does This Command Check?
The --version option prints the active Python version before exiting. A result beginning with Python 3 confirms that the runtime is available.
✔️ I see Python 3
Python is ready to run the scam checker. You have confirmed the first local dependency.
ⓧ Command not found
Windows may request permission when you install Python. The first runtime launch may also offer to add Python's command directory to PATH.
- Visit the official Python downloads for Windows page.
- Download the Python install manager.
- Open the downloaded installer.
- Approve the Windows installation prompt if it appears.
- Select Install.
- Return to PowerShell after the installation completes.
- Run the version check shown above again.
- Accept the PATH prompt if it appears.
You'll see output beginning with Python 3.
The version check confirms that your Windows computer can run the future script. The next visible result is its dedicated folder.
- Press the Windows key to open Search.
- Type File Explorer before pressing Enter.
- Select Desktop in the File Explorer sidebar.
- Select New in the toolbar.
- Select Folder.
- Type website-scam-checker before pressing Enter.
You'll see an empty website-scam-checker folder on your Desktop. It is ready for the Python files plus CSV output.
Still Unable to Run Python?
- Close your terminal after installing Python. Open a fresh terminal before repeating the version check.
- Confirm that the official installer completed without reporting a failure.
- Use Help me get Python 3 working after installation..
Load the API key into your terminal
An environment variable gives a program a value from its terminal session. This keeps the live key out of your Python files.
Keep the Terminal Open
Your API key stays in the current terminal session. It disappears when you close that terminal.
Keep the session open for the next step. Your secret stays outside the website-scam-checker folder.
macOS
- Return to Terminal from the Python check.
- Replace your_key in the command below with the key on your clipboard.
- Load the key into this Terminal session by running the updated command:
export BROWSER_USE_API_KEY=your_key
What Does This Command Do?
The command stores your key under BROWSER_USE_API_KEY for this Terminal session. Programs started from this session can read the key without finding it in a project file.
Before the check, which result seems more likely: API key loaded or API key missing.
- Check for the environment variable without printing its value by running this command:
python3 -c "import os; print('API key loaded' if os.getenv('BROWSER_USE_API_KEY') else 'API key missing')"
What Does This Check Do?
Python checks whether the environment variable contains a value. It prints only the result of that check, so your secret stays hidden.
You'll see API key loaded. This confirms that the future script can access the credential.
- Switch to Finder.
- Select Desktop in the sidebar.
- Confirm that website-scam-checker appears on your Desktop.
- Keep Terminal open for the next step.
Seeing API Key Missing?
Confirm that you replaced your_key before running the export command. Run both commands in the same Terminal session.
Use Help me load BROWSER_USE_API_KEY safely on macOS..
Windows
- Return to PowerShell from the Python check.
- Replace your_key in the command below with the key on your clipboard.
- Load the key into this PowerShell session by running the updated command:
$Env:BROWSER_USE_API_KEY = "your_key"
What Does This Command Do?
The command stores your key under BROWSER_USE_API_KEY for this PowerShell session. Programs started from this session can read the key without finding it in a project file.
Before the check, which result seems more likely: API key loaded or API key missing.
- Check for the environment variable without printing its value by running this command:
python -c "import os; print('API key loaded' if os.getenv('BROWSER_USE_API_KEY') else 'API key missing')"
What Does This Check Do?
Python checks whether the environment variable contains a value. It prints only the result of that check, so your secret stays hidden.
You'll see API key loaded. This confirms that the future script can access the credential.
- Switch to File Explorer.
- Select Desktop in the sidebar.
- Confirm that website-scam-checker appears on your Desktop.
- Keep PowerShell open for the next step.
Seeing API Key Missing?
Confirm that you replaced your_key before running the assignment command. Run both commands in the same PowerShell session.
Use Help me load BROWSER_USE_API_KEY safely in PowerShell..
That's the setup complete. Your local folder is ready while Python can access the Browser Use Cloud key without reading it from a file.
Your account plus local workspace are ready. Next, you'll start a cloud browser and open its live view.
Start a Cloud Browser with Curl
Your Browser Use Cloud API key is ready in BROWSER_USE_API_KEY. This step proves that it can start a browser away from your machine.
A cloud browser keeps the browser process on hosted infrastructure. You will use curl to start one before opening its live view.
In this step, get ready to:
- Start a five-minute cloud browser session with curl.
- Read the live-view URL from the API response.
- Open the live view to confirm the remote browser is running.
Check the cloud browser path
The browser API accepts your key through an authentication header. The request below creates a temporary session that stops itself after five minutes.
- Return to the terminal where BROWSER_USE_API_KEY is available.
- Create the temporary browser session by running this command:
curl -sS https://api.browser-use.com/api/v4/browsers \
-H "X-Browser-Use-API-Key: $BROWSER_USE_API_KEY" \
-H "Content-Type: application/json" \
-d '{"timeout": 5}'
What Does This Command Do?
- The request asks the Browser Use Cloud API to create a browser session.
- The X-Browser-Use-API-Key header reads your key from BROWSER_USE_API_KEY.
- The JSON body sets the session timeout to five minutes.
- The response includes a liveUrl for watching the browser.
- Inspect the JSON response in the same terminal.
- Confirm that the response includes a liveUrl value.
That's the connection working. Your API key has created a browser session without being written into a file.
Does the Request Fail?
- Return to the terminal where you set BROWSER_USE_API_KEY if the response reports 401.
- Confirm that every backslash remains at the end of its command line.
- Retry the request after checking the copied command.
Help me diagnose the browser session request.
Open the live browser view
The liveUrl opens an interactive view of the active cloud session. The browser viewport inside that page runs on Browser Use Cloud.
Keep the Live URL Private
The liveUrl grants access to the active session. Anyone with it can interact with the cloud browser.
- Keep the liveUrl out of screenshots.
- Keep the URL out of shared messages.
Before you open the live view, think about whether the viewport runs locally or in the cloud.
- Find the liveUrl field in the terminal response.
- Copy only the URL value.
- Switch back to the local browser from earlier.
- Press Cmd+T (macOS) or Ctrl+T (Windows) to create a new tab.
- Paste the copied URL into the address bar.
- Press Enter to load the live view.
You'll see an active browser viewport inside the live-view page. Your local browser is displaying the session that Browser Use Cloud hosts.
The test session has no target URL, so no suspicious site has touched your local browser.
Can't See an Active Browser?
- Return to the terminal if the five-minute session has already stopped.
- Rerun the browser request to create a fresh session.
- Copy the liveUrl from the newest response.
Help me restore the cloud browser view.
- Capture only the active cloud browser viewport in a screenshot.
- Exclude your local address bar from the screenshot.
Your cloud browser path now works. Next, you will turn this session test into one evidence-based site check.
Check One Website
Opening a suspicious website in your local browser can expose your machine to the very page you want to assess. A cloud-hosted browser agent keeps that inspection away from your computer.
Your Browser Use Cloud session already proved that remote browsing works. This step turns that session into a focused website check with a verdict plus supporting evidence.
In this step, get ready to:
- Define a safe inspection task for one test URL.
- Launch the task with the bu-ultrafast model.
- Review the verdict plus its supporting evidence in the dashboard.
Set safe inspection boundaries
A useful result starts with a specific task. The agent also needs clear limits that prevent it from entering credentials or submitting forms.
- Choose one URL for this first check.
- Record your test URL here: https://example.com.
- Leave that URL unopened in your local browser.
Why Set Boundaries?
The task asks the agent to inspect the page without interacting with forms or credential fields. This keeps the run focused on visible evidence.
The requested page title helps identify which page the agent actually assessed. That detail makes the verdict easier to review.
Prepare the cloud request
An API run combines your instructions with a model selection. The existing environment variable authenticates the request without placing your key in the command.
Before you send the task, consider whether the test URL ever needs to open in your local browser.
- Create one cloud run for your recorded URL by running this command:
curl https://api.browser-use.com/api/v4/runs \
-H "X-Browser-Use-API-Key: $BROWSER_USE_API_KEY" \
-H "Content-Type: application/json" \
-d '{"task":"Visit [[TEST_URL=\"https://example.com\"]]. Determine whether the site appears to be a scam or legitimate. Return the verdict. Return warning signs or evidence. Return the page title. Do not type credentials. Do not submit forms.","model":"bu-ultrafast"}'
What Does This Command Do?
- The https://api.browser-use.com/api/v4/runs endpoint starts a new cloud run.
- The X-Browser-Use-API-Key header reads the key from BROWSER_USE_API_KEY.
- The Content-Type: application/json header identifies the request body as JSON.
- The task field gives the agent its inspection criteria plus its safety limits.
- The model field selects bu-ultrafast for this run.
- Check that the terminal returns a JSON response for the new run.
The response confirms that Browser Use Cloud accepted your task. The cloud agent now handles the target site away from your local browser.
Does the Request Fail?
- Confirm that BROWSER_USE_API_KEY remains available in the same terminal.
- Check that the copied command still contains matching quotation marks around the JSON body.
- Confirm that the model value is spelled bu-ultrafast.
Help me diagnose the rejected Browser Use Cloud request.
Review the returned verdict
The completed response should connect every verdict to observable details from the page. The page title provides another clue that the agent inspected the intended destination.
Before you inspect the result, predict which page details could support a scam-or-legitimate verdict.
- Return to the Browser Use Cloud dashboard from earlier.
- Refresh the dashboard.
- Select the newest run associated with your test URL.
- Wait for the run to finish.
- Review the completed task response.
You should see a scam-or-legitimate verdict plus warning signs or supporting evidence. You should also see the page title returned with the assessment.
That is the key isolation loop working. Your cloud agent inspected the website while your local browser stayed away from it.
Your first cloud-only website check is complete. Next, you will turn this single run into a five-URL batch.
Check Your URL List
The first Browser Use Cloud task proved that a cloud browser can inspect one target. Your local browser stayed away from the target site.
A five-address list makes the process repeatable. A Python loop sends each address through the same safety-focused prompt.
In this step, get ready to:
- Create a list with three trusted URLs plus two uncertain URLs.
- Send each URL to Browser Use Cloud with bu-ultrafast.
- Confirm all five task runs finish in the Browser Use Cloud dashboard.
Prepare the script and URL list
The Browser Use SDK lets Python reuse the cloud task flow from your single-site check. One client can submit every address without exposing your API key in the file.
- Return to the terminal where BROWSER_USE_API_KEY is available.
- Install the browser-use-sdk package by running this command:
pip install --upgrade browser-use-sdk
What Does This Command Do?
This command installs the hosted Browser Use SDK. The --upgrade option updates an existing installation so the script can use the current cloud client.
- Confirm the terminal reports that the package installation completed successfully.
Does the Package Installation Fail?
Confirm that the terminal uses the same Python installation you prepared earlier. A different package installer can place the SDK where your script cannot import it.
Check that your internet connection permits package downloads.
Help me fix the Browser Use SDK installation.
Handling uncertain links can feel tense because one accidental click defeats the safety boundary. The URL list keeps every address as text until Browser Use Cloud opens it remotely.
- Choose three addresses for sites you already trust.
- Choose two addresses for sites you want the cloud agent to assess.
- Record the first trusted address as https://trusted-one.example.
- Record the second trusted address as https://trusted-two.example.
- Record the third trusted address as https://trusted-three.example.
- Record the first uncertain address as https://uncertain-one.example.
- Record the second uncertain address as https://uncertain-two.example.
- Use your code editor's new-file control to create scam_check.py inside the local project folder from earlier.
- Add the SDK import plus your five-address list by pasting this code:
from browser_use_sdk.v4 import BrowserUse
# Keep every target as text until the cloud browser opens it.
urls = [
"[[URL_ONE=\"https://trusted-one.example\"]]",
"[[URL_TWO=\"https://trusted-two.example\"]]",
"[[URL_THREE=\"https://trusted-three.example\"]]",
"[[URL_FOUR=\"https://uncertain-one.example\"]]",
"[[URL_FIVE=\"https://uncertain-two.example\"]]",
]
What Does This Code Do?
- The BrowserUse import provides the client that creates cloud task runs.
- The urls list stores five addresses as plain text. This keeps uncertain sites out of your local browser.
- Save scam_check.py.
- Confirm scam_check.py appears in your code editor's file list.
Does the URL List Look Broken?
Confirm the filename ends with .py. Check that every URL has matching quotation marks.
Confirm the list ends with a closing square bracket.
Help me check my Python URL list.
Send each URL to the cloud
A sequential loop keeps each URL beside its own result. Waiting for one task to finish makes the five checks easy to follow in the terminal.
- Add the task loop directly below the urls list in scam_check.py by pasting this code:
# Reuse one authenticated client while checking each target in sequence.
with BrowserUse() as client:
for url in urls:
# Request evidence without entering sensitive data on the target site.
task = (
f"Visit {url}. Do not type credentials or submit forms. "
"Return the page title, a verdict of scam or legitimate, "
"and the warning signs or other evidence supporting the verdict."
)
run = client.runs.create(
task,
model="bu-ultrafast",
)
# Wait so each result prints beside the URL that produced it.
result = client.runs.wait_for_completion(run.id)
print(f"\nURL: {url}")
print(result.result)
What Does This Code Do?
- The with BrowserUse() block creates one authenticated client using the environment variable from earlier.
- The for url in urls loop builds one safety-focused task for each address.
- The model="bu-ultrafast" argument sends every check through the selected model.
- The wait_for_completion() call keeps each printed result beside the correct URL.
- Save scam_check.py.
✔️ Awesome, I've got everything!
Your saved script now contains five URLs plus the loop that checks them one at a time.
ⓧ I'd like to double check the full code
from browser_use_sdk.v4 import BrowserUse
# Keep every target as text until the cloud browser opens it.
urls = [
"[[URL_ONE=\"https://trusted-one.example\"]]",
"[[URL_TWO=\"https://trusted-two.example\"]]",
"[[URL_THREE=\"https://trusted-three.example\"]]",
"[[URL_FOUR=\"https://uncertain-one.example\"]]",
"[[URL_FIVE=\"https://uncertain-two.example\"]]",
]
# Reuse one authenticated client while checking each target in sequence.
with BrowserUse() as client:
for url in urls:
# Request evidence without entering sensitive data on the target site.
task = (
f"Visit {url}. Do not type credentials or submit forms. "
"Return the page title, a verdict of scam or legitimate, "
"and the warning signs or other evidence supporting the verdict."
)
run = client.runs.create(
task,
model="bu-ultrafast",
)
# Wait so each result prints beside the URL that produced it.
result = client.runs.wait_for_completion(run.id)
print(f"\nURL: {url}")
print(result.result)
The script creates exactly five billed task runs. Your short list keeps this test bounded.
Each cloud check can take a little while. Before you run the script, how many URL and result pairs should the completed batch print?
macOS
- Run the five checks from the terminal in your local project folder by running this command:
python3 scam_check.py
What Happens During the Run?
Python sends one URL to Browser Use Cloud at a time. The SDK waits for that task before starting the next URL.
You will see one URL plus one returned result at a time. The terminal returns to its prompt after the fifth result.
Windows
- Run the five checks from PowerShell in your local project folder by running this command:
py scam_check.py
What Happens During the Run?
Python sends one URL to Browser Use Cloud at a time. The SDK waits for that task before starting the next URL.
You will see one URL plus one returned result at a time. PowerShell returns to its prompt after the fifth result.
Linux
- Run the five checks from the terminal in your local project folder by running this command:
python3 scam_check.py
What Happens During the Run?
Python sends one URL to Browser Use Cloud at a time. The SDK waits for that task before starting the next URL.
You will see one URL plus one returned result at a time. The terminal returns to its prompt after the fifth result.
Does the Batch Stop Early?
- Confirm BROWSER_USE_API_KEY remains available in the terminal that runs the script.
- Confirm the Browser Use SDK was installed for the same Python interpreter that runs scam_check.py.
- Check the Browser Use Cloud dashboard before retrying so you do not create duplicate task runs.
Help me diagnose my interrupted URL batch.
Confirm all five runs
The terminal proves that the script received five results. The dashboard confirms that Browser Use Cloud recorded all five task runs.
- Return to the Browser Use Cloud dashboard from earlier.
- Refresh the dashboard's task history.
- Count the five new task runs created by scam_check.py.
- Confirm every new task run has finished.
That is your first batch complete. Every target now has a page title plus a scam-or-legitimate verdict plus supporting evidence.
Your five checks are complete. Next, you will turn those results into a CSV table that opens in a spreadsheet.
Export Results to CSV
Five completed checks now sit in your Browser Use Cloud dashboard. That is your batch running from start to finish.
Those results are split across separate task responses, so comparing them is slow. A CSV places one task on each row for review in a spreadsheet.
In this step, get ready to:
- Match each task response to a consistent set of table columns.
- Extend the batch script with a CSV export.
- Review five exported rows in a spreadsheet.
Match task responses to table columns
A useful table maps the same facts from every task into the same columns. One completed task gives you the template for the entire batch.
- Switch back to the Browser Use Cloud dashboard from earlier.
- Open one completed task from your five-site batch.
- Identify the checked URL in the task details.
- Identify the returned page title.
- Identify the scam-or-legitimate verdict.
- Identify the reasons or evidence supporting that verdict.
- Locate the run time for the completed task.
You can now connect one completed task to five table values. The same mapping applies to every URL in the batch.
Why Keep Verdict and Reasons Separate?
The verdict makes the table quick to scan. The reasons preserve the evidence behind that decision.
This separation lets you compare outcomes without losing the details that make each result useful.
Export the batch from scam_check.py
Reasons can contain commas or line breaks. CSV-aware file writing keeps that evidence inside one spreadsheet cell.
Shape of the Export
- Each checked URL contributes exactly one row.
- The URL column identifies the site that was checked.
- The page title column records the title returned by the task.
- The verdict column records whether the task classified the site as scam or legitimate.
- The reasons column preserves the evidence returned by the task.
- The run time column records the duration of that task.
- The completed collection is written to results.csv after the batch finishes.
- Open scam_check.py in the editor you used for the batch.
- Update the existing batch flow so every completed response contributes the five fields above to a CSV-aware export.
- Save scam_check.py.
Rerunning the script starts five fresh cloud tasks. Keeping the batch at five limits the extra usage.
Before you rerun the batch, what should one completed task contribute to the exported table?
- Rerun the saved script with the same Python command you used for the five-site batch.
You’ll see all five task runs finish. You’ll also find a new results.csv file beside scam_check.py.
Is results.csv Missing or Incomplete?
- Confirm that you saved scam_check.py before rerunning the batch.
- Confirm that each completed task contributes one row to the export collection.
- Confirm that the file-writing step runs after the batch loop so it receives all five rows.
Help me troubleshoot my CSV export.
✔️ Awesome, I've got everything!
That’s the export working. Your five cloud task responses now become one spreadsheet-ready file.
ⓧ I'd like to double check the full code
Use this checklist to compare the finished behavior of scam_check.py.
- Confirm that the existing list still contains your five selected URLs.
- Confirm that the existing task loop still creates Browser Use Cloud tasks with bu-ultrafast.
- Confirm that the task prompt still requests the page title.
- Confirm that the task prompt still requests a scam-or-legitimate verdict.
- Confirm that the task prompt still requests reasons or evidence.
- Confirm that every completed task contributes one output row.
- Confirm that every row contains the URL plus the page title.
- Confirm that every row contains the verdict plus the reasons.
- Confirm that every row contains the run time.
- Confirm that the batch writes the completed rows to results.csv.
Open results.csv in a spreadsheet
The spreadsheet is your final verification surface. It shows whether every cloud task became one complete row.
Before you open the file, how many data rows should the finished table contain?
- Return to the local project folder from earlier in Finder on macOS or File Explorer on Windows.
- Confirm that the folder contains scam_check.py.
- Confirm that the folder contains results.csv.
- Double-click results.csv to open it in your spreadsheet application.
- Scan the reasons column to confirm that each task’s evidence remains inside one cell.
You’ll see columns for URL, page title, verdict, reasons, and run time. You’ll see five data rows beneath the header.
Does the Spreadsheet Look Wrong?
If every value appears in one column, import the file using a comma as the separator. If fewer than five rows appear, confirm that the script adds one row after every completed task.
Help me fix my spreadsheet output.
Your scam checks are now organised into a table you can compare. Next, you’ll connect each result to its task duration and spend.
Compare Task Cost and Duration
Your batch checker now turns five URL checks into a CSV that you can inspect in a spreadsheet. The results show what the browser agent found.
The Browser Use Cloud dashboard adds operational context. You will connect each task's duration plus spend to its matching row in results.csv.
In this step, get ready to:
- Review the duration shown for every completed task.
- Review the spend shown for every completed task.
- Connect the dashboard metrics to the matching rows in results.csv.
Review each completed task
Duration tells you how long a task ran. Spend tells you what that task cost.
- Switch back to the Browser Use Cloud dashboard from earlier.
- Locate the five completed task runs created through scam_check.py.
- Select the first completed task.
- Find its duration in the task details.
- Find its spend in the same details.
- Return to the list of task runs.
- Repeat the review for the remaining four completed tasks.
Good progress. You have now found the timing plus cost record for every completed check.
Why Compare Both Metrics?
Duration measures how long the cloud task needed to finish. Spend records the cost shown for that specific task.
Reviewing both metrics exposes differences between your five checks. The dashboard gives you the actual values for your own runs.
Can't Find the Metrics?
- Refresh the dashboard if the latest task runs are missing.
- Confirm that every run has finished before reviewing its details.
- Confirm that the dashboard shows the same project used by scam_check.py.
Help me find the task metrics in Browser Use Cloud.
Match tasks to CSV rows
Matching five tasks to five spreadsheet rows can feel fiddly because the information lives in two views. The URL gives you a stable link between them.
- Switch back to the spreadsheet application from earlier.
- Place the spreadsheet next to the dashboard on your screen.
- Match the first dashboard task to the row with the same URL in results.csv.
- Compare the dashboard duration with the run time value in the matched row.
- Review the matched verdict in the context of the task's spend.
- Repeat the comparison for the remaining four tasks.
- Identify the task with the longest duration.
- Identify the task with the highest spend.
What Does This Comparison Show?
The CSV shows the browser agent's verdict plus evidence. The dashboard shows the operational record behind that result.
This pairing places each output beside the resources used to produce it. You now have the basis for evaluating each task's efficiency.
Verify the cost trail
Before the final check, do you expect the longest task to also have the highest spend?
- Review the five matched tasks one final time.
- Confirm that every completed task shows a duration.
- Confirm that every completed task shows a spend value.
You should be able to identify one duration plus one spend value for each of the five tasks. You should also be able to connect every task to a row in results.csv.
That closes the loop. Every scam check now has an outcome plus a visible cost trail.
Secret mission
Audit a Scam Verdict
Choose one uncertain-site result and audit its verdict against the task evidence. Decide whether the result is supported, needs more evidence, or conflicts with the evidence.
Clean Up Your Resources
Clean Up Your Resources
Choose whether to keep your resources, pause your local work, or delete them. Future Browser Use Cloud checks use your one-time signup credits.
Resources you used:
- The Browser Use Cloud API key created in Project Settings, which is available locally as BROWSER_USE_API_KEY.
- The local project folder containing scam_check.py plus results.csv.
Keep everything running
No action is needed. Choose this if you plan to run more checks or revisit your results.
- Keep the Browser Use Cloud API key private.
- Keep the local project folder so you can reuse scam_check.py.
- Keep results.csv as a record of your five completed checks.
Pause - I'll come back to this later
Close your local views for now. Your API key plus project folder remain ready for another session.
- Close the browser tab showing the cloud browser live view.
- Close the spreadsheet view displaying results.csv.
- Close the terminal session where BROWSER_USE_API_KEY is set.
- Keep the Browser Use Cloud API key active for future checks.
- Keep the local project folder containing scam_check.py plus results.csv.
Delete - I don't want to use this again
Deleting the API key is permanent for this credential. Your existing results remain available until you remove the local project folder.
- Return to the Browser Use Cloud dashboard.
- Select Project Settings.
- Locate the API key created for this project.
- Use the deletion control beside the API key.
- Approve the confirmation prompt.
- Confirm that the API key no longer appears in Project Settings.
- Close the browser tab showing the cloud browser live view.
- Close the terminal session where BROWSER_USE_API_KEY is set.
The sensitive credential is now handled. The deleted key can no longer authorize scam_check.py.
- Select your operating system below to remove the local project folder.
macOS
Emptying the Trash permanently removes the local project folder. Any separate copies of your results remain untouched.
- Close the code editor displaying scam_check.py.
- Close the spreadsheet displaying results.csv.
- Press Cmd+Space to open Spotlight.
- Type Finder into Spotlight.
- Press Enter to open Finder.
Finder is ready for the final cleanup.
- Return to the parent location where you created the local project folder.
- Move the local project folder containing scam_check.py plus results.csv to the Trash.
- Empty the Trash.
- Confirm that the parent location no longer shows the local project folder.
Windows
The permanent delete shortcut skips the Recycle Bin. Files stored elsewhere remain untouched.
- Close the code editor displaying scam_check.py.
- Close the spreadsheet displaying results.csv.
Your project files are now closed, so Windows can remove the folder cleanly.
- Press the Windows key to open Search.
- Type File Explorer into Search.
- Press Enter to open File Explorer.
- Return to the parent location where you created the local project folder.
- Select the local project folder containing scam_check.py plus results.csv.
- Press Shift+Delete to remove the selected folder permanently.
- Approve the confirmation prompt.
- Confirm that the parent location no longer shows the local project folder.
Linux
Emptying the trash permanently removes the local project folder. Any separate copies of your results remain untouched.
- Close the code editor displaying scam_check.py.
- Close the spreadsheet displaying results.csv.
Your project files are now closed, so the file manager can remove the folder cleanly.
- Open your applications menu.
- Search for your file manager.
- Open the file manager from the search results.
- Return to the parent location where you created the local project folder.
- Move the local project folder containing scam_check.py plus results.csv to the trash.
- Empty the trash from the file manager.
- Confirm that the parent location no longer shows the local project folder.
Nice Work!
Nice Work!
You did it! You built a Python scam checker that uses Browser Use Cloud to inspect five URLs away from your local machine. Your findings now sit in a spreadsheet-ready CSV report.
You've learned how to:
- Start a cloud browser session for a target URL. Follow its live view without opening the target site on your own machine.
- Automate five URL checks with scam_check.py using bu-ultrafast. Capture a page title for every URL. Record a scam-or-legitimate verdict with supporting evidence.
- Write each finding to a CSV report in results.csv. Open the report in a spreadsheet. Compare each task's run time with its dashboard spend.
- Secret Mission: Take on an optional challenge to push your cloud browser automation skills further.
Ready to quiz yourself?