Beta / evaluation only - not certified for regulatory compliance use.
AI-assisted surveillance platform for spoofing, layering, wash trading, quote stuffing, pump-and-dump, pre-announcement trading, cross-asset spoofing, and options-equity manipulation.
- Real-time API + WebSocket alert feed.
- Hybrid detection stack: rules + unsupervised ML ensemble.
- Tenant isolation with JWT auth + API keys.
- Investigation workflow: cases, evidence, prioritization.
- Reporting exports: SAR markdown and MAR XML.
- Audit-chain verification endpoint.
make demoThis starts:
- API at
http://localhost:8000 - Frontend at
http://localhost:5173 - Local Postgres, Redis, Kafka (Redpanda), Neo4j
- Automatic synthetic event seeding via
scripts/simulate.py
Stop demo:
make demo-down- Public URL:
https://juy595711--trade-surveillance-ai-fastapi-app.modal.run - Health:
GET /health - Notes: demo runs with
DEMO_MODE=trueandREQUIRE_API_KEY=falsefor frictionless evaluation.
- Register:
curl -sX POST http://localhost:8000/auth/register \
-H "Content-Type: application/json" \
-d '{"email":"eval@example.com","password":"EvalPass!12345"}'- Get JWT:
TOKEN=$(curl -sX POST http://localhost:8000/auth/token \
-H "Content-Type: application/json" \
-d '{"email":"eval@example.com","password":"EvalPass!12345"}' | jq -r '.access_token')- Create API key:
API_KEY=$(curl -sX POST http://localhost:8000/auth/api-keys \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json" \
-d '{"name":"institution-a"}' | jq -r '.api_key')- Ingest an event:
curl -sX POST http://localhost:8000/events \
-H "Content-Type: application/json" \
-H "x-api-key: $API_KEY" \
-d '{
"event_id":"evt-1",
"ts":"2026-02-25T12:00:00Z",
"venue":"SIM",
"asset_class":"equity",
"symbol":"AAPL",
"account_id":"acct-1",
"side":"BUY",
"event_type":"new_order",
"order_id":"ord-1",
"quantity":100,
"price":190,
"order_type":"LIMIT",
"metadata":{}
}'- Fetch alerts:
curl -s http://localhost:8000/alerts -H "x-api-key: $API_KEY"POST /auth/registerPOST /auth/tokenPOST /auth/api-keysGET /auth/api-keysPOST /eventsGET /alertsGET /alerts/{alert_id}/priorityPOST /casesGET /casesGET /cases/{case_id}/evidenceGET /reports/sar/{case_id}GET /reports/mar/{case_id}GET /audit/verifyGET /healthGET /metricsWS /ws/alerts
Import:
postman/trade-surveillance-ai.postman_collection.json
- License:
LICENSE - Evaluation terms:
TERMS.md
make install
make test
make lint
make backtest
make loadUse .env.example as template.
For local demo mode:
DEMO_MODE=trueREQUIRE_API_KEY=false
For institutional evaluation mode:
DEMO_MODE=falseREQUIRE_API_KEY=true
