Market API
4 endpoints in this group.
GET /api/market/intel
Get Intel
Query stored external_intel rows with optional filters.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
ticker | query | — | optional | Filter by ticker symbol |
event_types | query | — | optional | Comma-separated event types |
days | query | integer | optional | Look-back window in days |
min_sentiment | query | — | optional | |
limit | query | integer | optional | |
sort_by | query | — | optional | |
sort_dir | query | — | optional |
Responses
| Code | Description |
|---|---|
200 | Successful Response |
422 | Validation Error |
GET /api/market/last-session-recap
Get Last Session Recap
Responses
| Code | Description |
|---|---|
200 | Successful Response |
500 | last_session_recap_unavailable: unexpected failure. |
503 | last_session_recap_unavailable: a database or schema error (not an empty recap). |
GET /api/market/overview
Market Overview
Return the freshly ingested external_intel rows. Ingestion itself runs
in the background via portfolio_scheduler._ingest_external_intel —
this endpoint only reads from the DB so the page renders in ~50ms
instead of blocking on 5 scraper HTTP round-trips (~7s).
Returns: { "data": [ {source, ticker, event_type, value, sentiment_score, headline, url, as_of_date, fetched_at}, ... ] }
Responses
| Code | Description |
|---|---|
200 | Successful Response |
GET /api/market/status
Get Market Status
Responses
| Code | Description |
|---|---|
200 | Successful Response |