Batch Investigations

Process multiple URLs in a single run with concurrency control, structured event output, and resume support.

From the Console

The Console supports single-URL submission. For batch processing, use the CLI or API.

From the CLI

Basic batch

Create a text file with one URL per line:

https://suspicious-site-1.example
https://suspicious-site-2.example
https://suspicious-site-3.example
# Lines starting with # are skipped

Run:

# Passive-only batch
ssi investigate batch urls.txt --passive

# Full investigation batch
ssi investigate batch urls.txt

# Custom output directory
ssi investigate batch urls.txt --output ./batch-evidence

Each URL gets its own timestamped subdirectory under the output folder.

Concurrency

Control how many investigations run in parallel:

The default is sequential (one at a time). Higher concurrency values use asyncio.Semaphore to cap parallel execution — useful for large batches but increases memory and CPU usage.

Structured JSON input

For per-URL options, use a JSON file instead of plain text:

A JSON schema for the batch input format is available at config/schemas/batch_input.schema.json.

Event streaming

Emit real-time JSONL events to stdout — the same event types as the WebSocket monitor:

Each line is a JSON object (state_change, action, wallet_found, complete, etc.). Pipe to a log aggregator or alerting system for automated processing.

Resume support

If a batch run is interrupted, resume from where it left off:

The --resume flag checks the output directory and skips URLs that already have completed results.

Querying past investigations

From the Console

Navigate to SSI → Investigations to browse past investigations. Filter by domain, status, date range, or risk score.

From the CLI

From the API

Scheduling batch runs

For recurring scans (e.g., daily PhishTank feed processing), schedule the batch command with cron:

For Cloud Run Jobs, Cloud Scheduler, and campaign runner scripts, see the Batch Scheduling Guidearrow-up-right in the developer docs.

Last updated