Endpoints
All data endpoints are GET and live under /api/v1. The paths are the same on both brands; only the text content in the responses is localised.
Without an entry a list returns 25 records per page; a larger limit is capped at 100 rather than rejected. meta.total says how much lies behind it.
GET /api/v1/status
Self-description of your access: plan, requests so far, quota. The first place to look when setting up — a 200 means key and header are right.
Parameters
none
Example request
curl -H "X-Api-Key: $API_KEY" \
"https://tickerguard.com/api/v1/status"
Example response
{
"data": {
"plan": "beta",
"email_masked": "d****@example.com",
"requests_total": 128,
"rate_limit_per_minute": 60,
"created_at": "2026-07-29T08:14:02+00:00"
},
"meta": {
"as_of": "2026-07-30T06:12:44+00:00",
"source": "own-analysis",
"brand": "minnowstreet",
"docs": "https://tickerguard.com/developers"
}
}
Shortened. The field names are real, the values are made up.
GET /api/v1/signals
The newest early-warning signals from all four scanners, newest first. pattern narrows the list to one scanner, since to signals from a given day onwards.
Parameters
-
pattern
catalyst | insider | volume | exit
-
since
YYYY-MM-DD
-
limit
integer, 1–100
-
page
integer, ≥ 1
Example request
curl -H "X-Api-Key: $API_KEY" \
"https://tickerguard.com/api/v1/signals?pattern=catalyst&limit=1"
Example response
{
"data": [
{
"ticker": "EXMPL",
"company_name": "Example Industries Inc.",
"pattern": "catalyst",
"signal_date": "2026-07-28",
"title": "Earnings on 12 Aug - first report after the acquisition",
"recommendation": "Watch ahead of the date, do not buy",
"assessment": "The catalyst is dated and expectations are low; leverage remains the sticking point.",
"outcome": {
"max_gain_pct": 18.4,
"max_drawdown_pct": -6.1,
"finalized_at": null
}
}
],
"meta": {
"as_of": "2026-07-30T06:12:44+00:00",
"source": "own-analysis",
"brand": "minnowstreet",
"docs": "https://tickerguard.com/developers",
"page": 1,
"per_page": 1,
"total": 47
}
}
Shortened. The field names are real, the values are made up.
GET /api/v1/signals/{ticker}
Every signal we have recorded for one symbol, newest first. A symbol we do not hold answers with a 404 — a statement about our coverage, not about the company.
Parameters
-
limit
integer, 1–100
-
page
integer, ≥ 1
Example request
curl -H "X-Api-Key: $API_KEY" \
"https://tickerguard.com/api/v1/signals/EXMPL"
Example response
{
"data": [
{
"ticker": "EXMPL",
"company_name": "Example Industries Inc.",
"pattern": "catalyst",
"signal_date": "2026-07-28",
"title": "Earnings on 12 Aug - first report after the acquisition",
"recommendation": "Watch ahead of the date, do not buy",
"assessment": "The catalyst is dated and expectations are low; leverage remains the sticking point.",
"outcome": {
"max_gain_pct": 18.4,
"max_drawdown_pct": -6.1,
"finalized_at": null
}
}
],
"meta": {
"as_of": "2026-07-30T06:12:44+00:00",
"source": "own-analysis",
"brand": "minnowstreet",
"docs": "https://tickerguard.com/developers",
"page": 1,
"per_page": 25,
"total": 3
}
}
Shortened. The field names are real, the values are made up.
GET /api/v1/call-ratings
Our verdicts on the earnings calls, ordered by symbol. rating narrows the list to one level.
Parameters
-
rating
positive | neutral | flagged
-
limit
integer, 1–100
-
page
integer, ≥ 1
Example request
curl -H "X-Api-Key: $API_KEY" \
"https://tickerguard.com/api/v1/call-ratings?rating=flagged&limit=1"
Example response
{
"data": [
{
"ticker": "EXMPL",
"company_name": "Example Industries Inc.",
"rating": "flagged",
"label": "Promise and delivery diverge",
"as_of": "2026-07-22"
}
],
"meta": {
"as_of": "2026-07-30T06:12:44+00:00",
"source": "own-analysis",
"brand": "minnowstreet",
"docs": "https://tickerguard.com/developers",
"page": 1,
"per_page": 1,
"total": 61
}
}
Shortened. The field names are real, the values are made up.
GET /api/v1/call-ratings/{ticker}
The verdict for one symbol. A company whose calls we have not evaluated carries no verdict and answers with a 404 — not with a neutral one.
Parameters
none
Example request
curl -H "X-Api-Key: $API_KEY" \
"https://tickerguard.com/api/v1/call-ratings/EXMPL"
Example response
{
"data": {
"ticker": "EXMPL",
"company_name": "Example Industries Inc.",
"rating": "flagged",
"label": "Promise and delivery diverge",
"as_of": "2026-07-22"
},
"meta": {
"as_of": "2026-07-30T06:12:44+00:00",
"source": "own-analysis",
"brand": "minnowstreet",
"docs": "https://tickerguard.com/developers"
}
}
Shortened. The field names are real, the values are made up.
GET /api/v1/superinvestors
The investors we follow through their quarterly filings, with our five-year calculation against the S&P 500. Largest lead first.
Parameters
-
limit
integer, 1–100
-
page
integer, ≥ 1
Example request
curl -H "X-Api-Key: $API_KEY" \
"https://tickerguard.com/api/v1/superinvestors?limit=1"
Example response
{
"data": [
{
"slug": "example-investor",
"name": "Example Investor",
"fund_name": "Example Capital Management",
"latest_period": "2026-03-31",
"portfolio_value": 18420000000,
"positions_count": 42,
"perf_5y": {
"portfolio": 91.4,
"spx": 74.8,
"diff": 16.6
}
}
],
"meta": {
"as_of": "2026-07-30T06:12:44+00:00",
"source": "own-analysis",
"brand": "minnowstreet",
"docs": "https://tickerguard.com/developers",
"page": 1,
"per_page": 1,
"total": 15
}
}
Shortened. The field names are real, the values are made up.
GET /api/v1/superinvestors/{slug}
One investor's reported positions for a single quarter, largest first, each with the change against the previous quarter. period selects an earlier quarter; a 13F is always a snapshot, never a live portfolio.
Parameters
-
period
YYYY-MM-DD
-
limit
integer, 1–100
-
page
integer, ≥ 1
Example request
curl -H "X-Api-Key: $API_KEY" \
"https://tickerguard.com/api/v1/superinvestors/example-investor?period=2026-03-31&limit=1"
Example response
{
"data": {
"slug": "example-investor",
"name": "Example Investor",
"fund_name": "Example Capital Management",
"latest_period": "2026-03-31",
"portfolio_value": 18420000000,
"positions_count": 42,
"perf_5y": {
"portfolio": 91.4,
"spx": 74.8,
"diff": 16.6
},
"period": "2026-03-31",
"holdings": [
{
"ticker": "EXMPL",
"company_name": "Example Industries Inc.",
"put_call": null,
"value_usd": 2140000000,
"shares": 9800000,
"pct_portfolio": 11.62,
"share_change": 1200000,
"is_new": false,
"rank": 1
}
]
},
"meta": {
"as_of": "2026-07-30T06:12:44+00:00",
"source": "own-analysis",
"brand": "minnowstreet",
"docs": "https://tickerguard.com/developers",
"page": 1,
"per_page": 1,
"total": 42
}
}
Shortened. The field names are real, the values are made up.
GET /api/v1/politicians
The curated representatives and senators with our buy-side result against the index. Deliberately curated rather than complete.
Parameters
-
limit
integer, 1–100
-
page
integer, ≥ 1
Example request
curl -H "X-Api-Key: $API_KEY" \
"https://tickerguard.com/api/v1/politicians?limit=1"
Example response
{
"data": [
{
"slug": "example-politician",
"name": "Example Representative",
"chamber": "house",
"party": "independent",
"state": "XX",
"buy_performance": {
"perf_pct": 23.9,
"spx_pct": 14.2,
"diff_pct": 9.7,
"hit_rate": 61.5,
"rated": 26,
"total": 31,
"as_of": "2026-07-30"
}
}
],
"meta": {
"as_of": "2026-07-30T06:12:44+00:00",
"source": "own-analysis",
"brand": "minnowstreet",
"docs": "https://tickerguard.com/developers",
"page": 1,
"per_page": 1,
"total": 11
}
}
Shortened. The field names are real, the values are made up.
GET /api/v1/politicians/{slug}
One person's disclosed transactions, newest first — with the side, the official amount range, the trade date and the disclosure date.
Parameters
-
limit
integer, 1–100
-
page
integer, ≥ 1
Example request
curl -H "X-Api-Key: $API_KEY" \
"https://tickerguard.com/api/v1/politicians/example-politician?limit=1"
Example response
{
"data": {
"slug": "example-politician",
"name": "Example Representative",
"chamber": "house",
"party": "independent",
"state": "XX",
"buy_performance": {
"perf_pct": 23.9,
"spx_pct": 14.2,
"diff_pct": 9.7,
"hit_rate": 61.5,
"rated": 26,
"total": 31,
"as_of": "2026-07-30"
},
"trades": [
{
"ticker": "EXMPL",
"asset_name": "Example Industries Inc.",
"side": "buy",
"amount_label": "$15,001 - $50,000",
"traded_at": "2026-06-18",
"disclosed_at": "2026-07-11",
"performance": {
"change_pct": 12.4,
"spx_change_pct": 3.1
}
}
]
},
"meta": {
"as_of": "2026-07-30T06:12:44+00:00",
"source": "own-analysis",
"brand": "minnowstreet",
"docs": "https://tickerguard.com/developers",
"page": 1,
"per_page": 1,
"total": 31
}
}
Shortened. The field names are real, the values are made up.
GET /api/v1/hype
Two rankings in one response: our own Reddit scanner and, where this instance carries them, the wallstreet-online lists. This endpoint does not paginate — limit caps both lists.
Parameters
Example request
curl -H "X-Api-Key: $API_KEY" \
"https://tickerguard.com/api/v1/hype?limit=1"
Example response
{
"data": {
"reddit": [
{
"ticker": "EXMPL",
"name": "Example Industries Inc.",
"mentions": 214,
"first_seen_at": "2026-07-29T21:04:11+00:00"
}
],
"wo": [
{
"name": "Example Industries",
"ticker": "EXMPL",
"source": "discussed",
"score": 7,
"first_seen_at": "2026-07-30T05:02:39+00:00"
}
]
},
"meta": {
"as_of": "2026-07-30T06:12:44+00:00",
"source": "own-analysis",
"brand": "minnowstreet",
"docs": "https://tickerguard.com/developers",
"limit": 1,
"reddit_total": 38,
"wo_total": 20,
"wo_available": true
}
}
Shortened. The field names are real, the values are made up.
POST /api/v1/mcp
The MCP server: JSON-RPC 2.0 over HTTP, the only POST in the interface. It fetches its data through the same controllers as the GET endpoints and therefore returns exactly the same thing by construction.
Parameters
none
Example request
curl -X POST "https://tickerguard.com/api/v1/mcp" \
-H "X-Api-Key: $API_KEY" \
-H "Content-Type: application/json" \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/call","params":{"name":"get_signals","arguments":{"pattern":"catalyst","limit":1}}}'
Example response
{
"jsonrpc": "2.0",
"id": 1,
"result": {
"isError": false,
"structuredContent": {
"data": [
{
"ticker": "EXMPL",
"company_name": "Example Industries Inc.",
"pattern": "catalyst",
"signal_date": "2026-07-28",
"title": "Earnings on 12 Aug - first report after the acquisition",
"recommendation": "Watch ahead of the date, do not buy",
"assessment": "The catalyst is dated and expectations are low; leverage remains the sticking point.",
"outcome": {
"max_gain_pct": 18.4,
"max_drawdown_pct": -6.1,
"finalized_at": null
}
}
],
"meta": {
"as_of": "2026-07-30T06:12:44+00:00",
"source": "own-analysis",
"brand": "minnowstreet",
"docs": "https://tickerguard.com/developers",
"page": 1,
"per_page": 1,
"total": 47
}
}
}
}
Shortened. The field names are real, the values are made up.