MC Market Cards
API

Implemented backend endpoints.

These endpoints are implemented in the Worker router. Auth and deployment wiring are intentionally deferred.

Public endpoints

GET    /health
GET    /cards
GET    /cards/:card_id
GET    /daily-digest/:date
GET    /companies
GET    /companies/:issuer_id
GET    /companies/:issuer_id/cards
GET    /companies/:issuer_id/sensitivities
GET    /sectors
GET    /sectors/:sector_id
GET    /sectors/:sector_id/cards
POST   /feedback
POST   /watchlist
DELETE /watchlist/:item_id

Internal endpoints

POST /internal/ingest/market-data
POST /internal/ingest/filings
POST /internal/ingest/documents
POST /internal/knowledge-edges
POST /internal/generate/cards
POST /internal/generate/cards:enqueue
POST /internal/generate/sector-readthrough
POST /internal/pipeline/post-market
POST /internal/review/cards/:card_id/approve
POST /internal/review/cards/:card_id/reject
POST /internal/review/cards/:card_id/edit-approve
GET  /internal/pipeline-runs
POST /internal/pipeline-runs

Example: generate one card

POST /internal/generate/cards
Content-Type: application/json

{
  "asset": {
    "issuer_id": "interglobe_aviation_ltd",
    "listing_id": "nse_indigo_eq",
    "display_name": "IndiGo",
    "symbol": "INDIGO",
    "sector_id": "aviation"
  },
  "price_bar": {
    "listing_id": "nse_indigo_eq",
    "date": "2026-04-25",
    "open": 4710,
    "high": 4930,
    "low": 4680,
    "close": 4910,
    "previous_close": 4667.3,
    "volume": 2300000
  },
  "market_return_pct": 0.8,
  "sector_return_pct": 1.4,
  "return_history": [],
  "volume_history": []
}

Status rules

  • Generation returns 201 when verifier passes, 422 when rejected by verifier.
  • Batch ingestion can return 207 when some rows are rejected or have high-severity issues.
  • Malformed JSON returns 400 invalid_json.
  • Generated cards are not public until review publishes them.