DEVELOPERS

WaveMan API

The same public-filings data behind the site, as JSON: insider trades, Congress trades, fund holdings, planned sales, stakes and fundamentals, each row carrying the filing it came from. Every GET endpoint below is open without a key. A Pro key raises the limits, returns up to 500 rows a call and unlocks CSV export.

AUTHENTICATION

Create a key on your account page (Pro, up to 3 active keys). Send it as a bearer token or in X-API-Key. The key is shown once; we store only a hash.

curl -H "Authorization: Bearer wm_live_YOUR_KEY" \
  "https://wave-man.com/api/v1/insiders/recent?limit=500&format=csv"

A revoked key, or a key on a lapsed plan, answers 401 with a JSON detail. Keyed responses carry X-RateLimit-Limit and X-RateLimit-Remaining for the minute, and the same pair with a -Day suffix.

LIMITS
No keyPro key
Requests a minute240 per address600 per key
Requests a day20,000 per address50,000 per key
Rows a call100500
CSV export (format=csv)Free account: 25 rows, 3 a monthYes, no cap

Over a limit you get 429 with Retry-After. Cache on your side; the datasets refresh on daily timers, Form 4 within minutes.

INSIDERS
GET /api/v1/insiders/recent CSV Newest Form 4 transactions, optionally filtered by code and minimum value.
Query paramTypeDefault
limitint100
codestrNone
min_valuefloatNone
formatstrNone
Example
https://wave-man.com/api/v1/insiders/recent
GET /api/v1/insiders/top Largest open-market buys or sells in the last N days.
Query paramTypeDefault
sidestr'buy'
daysint7
limitint20
Example
https://wave-man.com/api/v1/insiders/top
GET /api/v1/activity Daily Form 4 buy/sell dollar totals for the activity chart.
Query paramTypeDefault
daysint14
Example
https://wave-man.com/api/v1/activity
GET /api/v1/trend/monthly Monthly insider buy and sell dollar totals.
Query paramTypeDefault
monthsint60
Example
https://wave-man.com/api/v1/trend/monthly
GET /api/v1/insiders/netflow CSV Tickers with the largest net insider buying or selling over N days.
Query paramTypeDefault
daysint30
sidestr'buy'
limitint15
formatstrNone
Example
https://wave-man.com/api/v1/insiders/netflow
GET /api/v1/insiders/notable CSV Open-market purchases by the C-suite only, the cleanest signal.
Query paramTypeDefault
daysint30
min_valuefloat250000
formatstrNone
Example
https://wave-man.com/api/v1/insiders/notable
GET /api/v1/insiders/{ticker}/summary Insider buy and sell totals for one company.

No query parameters.

Example
https://wave-man.com/api/v1/insiders/AAPL/summary
GET /api/v1/insiders/clusters Cluster buys: several insiders INDEPENDENTLY purchasing the same stock.
Query paramTypeDefault
daysint90
min_insidersint3
Example
https://wave-man.com/api/v1/insiders/clusters
GET /api/v1/insiders/{ticker} Form 4 transactions for one company, newest first.
Query paramTypeDefault
limitint200
Example
https://wave-man.com/api/v1/insiders/AAPL
GET /api/v1/signals/confluence Tickers where insiders bought AND funds opened/added in the latest
Query paramTypeDefault
daysint90
Example
https://wave-man.com/api/v1/signals/confluence
GET /api/v1/asof Insider transactions as they were known on a past date (point in time).
Query paramTypeDefault
as_ofstrrequired
tickerstrNone
limitint100
Example
https://wave-man.com/api/v1/asof?as_of=2025-06-30
GET /api/v1/track-records CSV Insiders ranked by how their past purchases performed.
Query paramTypeDefault
limitint25
min_tradesint10
min_companiesint1
formatstrNone
Example
https://wave-man.com/api/v1/track-records
GET /api/v1/track-records/meta The base rate and coverage, so a client can show what "good" means.

No query parameters.

Example
https://wave-man.com/api/v1/track-records/meta
CONGRESS
GET /api/v1/congress/recent CSV Newest STOCK Act trades by members of Congress.
Query paramTypeDefault
limitint100
tickerstrNone
memberstrNone
sidestrNone
formatstrNone
Example
https://wave-man.com/api/v1/congress/recent
GET /api/v1/congress/top Most-traded names. Ranked by how many DISTINCT members touched a
Query paramTypeDefault
daysint90
limitint25
Example
https://wave-man.com/api/v1/congress/top
GET /api/v1/congress/members Most active members of Congress by trade count.
Query paramTypeDefault
daysint365
limitint25
Example
https://wave-man.com/api/v1/congress/members
GET /api/v1/congress/overlap Names bought by BOTH a company insider and a member of Congress in the
Query paramTypeDefault
daysint180
limitint25
Example
https://wave-man.com/api/v1/congress/overlap
FUNDS
GET /api/v1/funds/top Largest 13F filers by reported portfolio value.
Query paramTypeDefault
limitint20
Example
https://wave-man.com/api/v1/funds/top
GET /api/v1/holdings/{ticker} Funds holding one company, from the latest 13F quarter.
Query paramTypeDefault
limitint25
Example
https://wave-man.com/api/v1/holdings/AAPL
GET /api/v1/13f/new-positions Biggest brand-new fund positions in the latest quarter.
Query paramTypeDefault
limitint20
Example
https://wave-man.com/api/v1/13f/new-positions
PLANNED SALES
GET /api/v1/planned-sales CSV Form 144 notices of planned insider sales.
Query paramTypeDefault
limitint40
daysint90
min_valuefloatNone
tickerstrNone
formatstrNone
Example
https://wave-man.com/api/v1/planned-sales
GET /api/v1/planned-sales/{ticker} Form 144 notices for one company.
Query paramTypeDefault
limitint25
Example
https://wave-man.com/api/v1/planned-sales/AAPL
COMPANIES
GET /api/v1/stakes CSV New 5%+ stakes (13D/13G), activist filings by default.
Query paramTypeDefault
limitint40
daysint180
activist_onlyboolTrue
min_pctfloatNone
tickerstrNone
include_amendmentsboolFalse
formatstrNone
Example
https://wave-man.com/api/v1/stakes
GET /api/v1/stakes/{ticker} 13D/13G stakes in one company.
Query paramTypeDefault
limitint25
Example
https://wave-man.com/api/v1/stakes/AAPL
GET /api/v1/financials/{ticker} Fundamentals for one company: the last N periods of every concept.
Query paramTypeDefault
freqstr'annual'
as_ofstrNone
periodsint5
Example
https://wave-man.com/api/v1/financials/AAPL
GET /api/v1/financials/{ticker}/series One concept as a time series, the shape a chart or a model wants.
Query paramTypeDefault
conceptstrrequired
freqstr'annual'
as_ofstrNone
limitint20
Example
https://wave-man.com/api/v1/financials/AAPL/series?concept=Revenues
GET /api/v1/financials/{ticker}/restatements Every reported version of a concept, newest filing first.
Query paramTypeDefault
conceptstrrequired
limitint50
Example
https://wave-man.com/api/v1/financials/AAPL/restatements?concept=Revenues
SCREENER
GET /api/v1/screen CSV Filter the universe on any combination of signals.
Query paramTypeDefault
sortstr'insider_net_usd_180d'
descboolTrue
limitint100
formatstrNone
sectorstrNone
Example
https://wave-man.com/api/v1/screen
GET /api/v1/heat Filing intensity by sector and dataset, against each cell's own
Query paramTypeDefault
daysint30
as_ofstrNone
Example
https://wave-man.com/api/v1/heat
GET /api/v1/spark 90-day trend shapes for the desk's TREND column. Values are indexed to
Query paramTypeDefault
tickersstrrequired
Example
https://wave-man.com/api/v1/spark?tickers=value
GET /api/v1/screen/meta What the screener can filter on, and how fresh it is, so a client can

No query parameters.

Example
https://wave-man.com/api/v1/screen/meta
SONAR
GET /api/v1/sonar.json Every scored company with its seven scores, one fetch for the

No query parameters.

Example
https://wave-man.com/api/v1/sonar.json
SEARCH
OTHER
GET /api/v1/stats Row counts, date range and ingest health for every dataset.

No query parameters.

Example
https://wave-man.com/api/v1/stats
GET /api/v1/today Filings received since midnight UTC and the newest insider trades,

No query parameters.

Example
https://wave-man.com/api/v1/today
TERMS

The data is from public SEC and House filings, provided as information only: not investment advice, and no share prices are served. Use is under our terms and privacy policy. Attribute WaveMan when you republish.

Questions? support@wave-man.com.