Skip to main content

Installation

Authentication

Save your API key (stored in ~/.config/shoal-cli):
shoal auth YOUR_API_KEY

Commands

Signal

# Get top signal events by score
shoal signal top
shoal signal top --limit 5

# Get all signal events
shoal signal all
shoal signal all --limit 10 --offset 0

# Get events from the last 2 hours
shoal signal all --since 2h

# Get signal events for a specific org
shoal signal org 526
shoal signal org 526 --since 1d

# Get signal events by category
shoal signal category partnership
shoal signal category funding --since 2h

# Get daily signal/radar activity history for an org
shoal signal history 526
shoal signal history 526 --days 60

Radar

# Get all radar events
shoal radar all
shoal radar all --limit 10

# Get events from the last day
shoal radar all --since 1d

# Get radar events for a specific org
shoal radar org 526
shoal radar org 526 --since 1d

# Get radar events by category
shoal radar category partnership
shoal radar category regulation_legal --since 2h

Organizations

# Search by name
shoal orgs search "Ethereum"

# Get by ID with optional embedded events
shoal orgs get 526
shoal orgs get 526 --include radar,signal

Brief

# Single org brief (radar + signal combined)
shoal brief org 526
shoal brief org 526 --since 2h --limit 10

# Compact mode for agents
shoal brief org 526 --since 8h --compact

# Batch brief for multiple orgs
shoal brief batch 526,765,1024
shoal brief batch 526,765,1024 --since 8h --compact

Webhooks

# List all webhooks
shoal webhooks list

# Create a webhook (receives both radar and signal by default)
shoal webhooks create https://your-server.com/webhook

# Create a webhook for signal events only
shoal webhooks create https://your-server.com/webhook --events signal

# Get a webhook by ID
shoal webhooks get 42

# Update a webhook
shoal webhooks update 42 --url https://new-endpoint.com/webhook
shoal webhooks update 42 --no-active   # disable
shoal webhooks update 42 --active      # re-enable

# Delete a webhook
shoal webhooks delete 42

Enrich

Enrich a contacts file with Shoal radar and signal events. Input is a JSON array of [{name, company}] objects.
# Enrich and print to stdout
shoal enrich contacts.json

# Write results to a file (progress shown in terminal)
shoal enrich contacts.json --output enriched.json

# Limit to 10 events per company
shoal enrich contacts.json --limit 10
Input format:
[
  { "name": "alice@example.com", "company": "Chainlink" },
  { "name": "bob@example.com", "company": "Arbitrum" }
]
Each contact is enriched with matched, shoal_org (id + label), and filtered radar/signal arrays where the company is the primary event owner. See the Business Development use case for a full walkthrough.

Categories

# List all event categories
shoal categories

Usage

# Show usage stats and budget
shoal usage

Relative Time Syntax

The --since flag supports relative time shortcuts:
ShortcutMeaning
30m30 minutes ago
2h2 hours ago
1d1 day ago
You can also pass a full ISO 8601 timestamp: --since 2026-02-28T00:00:00Z

Output

All commands output JSON. Pipe to jq for formatting:
shoal signal top | jq '.data[].title'

Agent Integration (MCP)

shoal-cli ships a second binary, shoal-mcp, that runs a Model Context Protocol server over stdio. Once configured, AI agents can call Shoal tools directly — no shell commands needed. Prerequisites: run shoal auth YOUR_API_KEY first.
Add to ~/.claude/settings.json:
{
  "mcpServers": {
    "shoal": {
      "command": "shoal-mcp"
    }
  }
}
Or use the CLI:
claude mcp add --transport stdio shoal -- shoal-mcp
After restarting your agent, the following tools will be available:
ToolDescription
signal_topTop signal events by score
signal_allAll signal events (paginated, filterable by time)
signal_orgSignal events for a specific org
signal_categorySignal events by category
signal_historyDaily signal/radar activity for an org (up to 90 days)
radar_allAll radar events (paginated, filterable by time)
radar_orgRadar events for a specific org
radar_categoryRadar events by category
orgs_searchSearch organizations by name
orgs_getGet an org by ID with optional embedded events
brief_orgIntelligence brief for one org
brief_batchBriefs for up to 25 orgs in one call
categoriesList all event categories
webhooks_listList all webhooks
webhooks_createRegister a new webhook
webhooks_getGet a webhook by ID
webhooks_updateUpdate a webhook
webhooks_deleteDelete a webhook
enrichEnrich a list of contacts with Shoal intelligence
usageAPI usage and quota