Skip to main content

Get an API Key

Base URL: https://api.shoal.xyz/v1

Install the CLI (Optional)

The fastest way to explore the API — no code required.
curl -fsSL https://api.shoal.xyz/install | bash
Then authenticate and start querying:
shoal auth YOUR_API_KEY
shoal signal top
shoal radar all --since 1h

Make Your First Request

curl -sS "https://api.shoal.xyz/v1/organizations/all?limit=1" \
  -H "Authorization: Bearer YOUR_API_KEY"

Test Request (Python)

import os, requests

API_KEY = os.environ.get("SHOAL_API_KEY", "YOUR_API_KEY")
resp = requests.get(
    "https://api.shoal.xyz/v1/organizations/all",
    headers={"Authorization": f"Bearer {API_KEY}"},
    params={"limit": 1},
    timeout=10,
)
resp.raise_for_status()
print(resp.json())

Test Request (JavaScript)

const API_KEY = process.env.SHOAL_API_KEY || 'YOUR_API_KEY';
const url = new URL('https://api.shoal.xyz/v1/organizations/all');
url.searchParams.set('limit', 1);

const res = await fetch(url, { headers: { Authorization: `Bearer ${API_KEY}` } });
if (!res.ok) throw new Error(`HTTP ${res.status}`);
const data = await res.json();
console.log(data);

Next Steps

  • Browse organizations: /v1/organizations/all
  • Get radar events: /v1/radar/all?since=2026-02-01T00:00:00Z
  • Get scored signals: /v1/signal/all?since=2026-02-01T00:00:00Z
  • Get top signals: /v1/signal/top
  • Filter by category: /v1/radar/byCategory?category=partnership
The since parameter is required on /v1/radar/all and /v1/signal/all. Use an ISO 8601 timestamp (e.g. 2026-02-01T00:00:00Z).

Common Errors

  • 400 Bad Request: missing required parameter (e.g., since, id, category) or invalid timestamp
  • 401 Unauthorized: missing or malformed Authorization header
  • 403 Forbidden: invalid API key
  • 404 Not Found: invalid endpoint path
  • 429 Too Many Requests: rate limit exceeded (100 req/min per key)
  • 500 Internal Server Error: temporary issue; retry with backoff