Invest
Koder Invest
- *rea:*Industry Solutions (Fintech)
- *ath:*
products/vertical/invest/engine - *ind:*Multi-asset trading platform — Go API + Flutter client
- *ersion:*0.2.0
- *tatus:*Active — paper trading live at
bull.koder.dev
Role in the stack
Koder Invest is the hyperscale global investment platform — stocks, ETFs, crypto, forex, fixed income, and derivatives unified under a single account, wallet, and tax view. It serves retail investors who want professionalgrade tools and power users who demand lowlatency execution.
The platform consists of:
- *invest
api`*— Go HTTP gateway (REST + WebSocket) handling OMS, portfolio, KYC, social trading, roboadvisor, notifications, and news - *invest
marketdata`*— Go market data service (quotes, bars, WebSocket fanout) - *lutter app*(
flutter_app/) — Web, Android, and Linux clients with trading UI, charts, portfolio view, news, and settings
Primary couplings
| Module | Relationship |
|---|---|
services/foundation/id/platform |
User authentication and KYC via OIDC |
infra/jet |
TLS reverse proxy for invest-api.koder.dev and bull.koder.dev |
| Binance API | Crypto venue adapter (live or paper) |
| Alpaca API | US equities venue adapter (live or paper) |
| Firebase FCM | Push notification delivery |
Public Interfaces
*EST API*(documented at https://invest-api.koder.dev/docs):
POST /v1/orders— submit marketlimitstopOCObracket ordersGET /v1/orders?page=N&per_page=N— paginated order listGET /v1/portfolio— consolidated portfolio with live valuesGET /v1/positions?page=N— paginated holdingsGET /v1/notifications?page=N— notification inboxGET /v1/watchlists?page=N,GET /v1/alerts?page=N— watchlists and price alertsGET /v1/news?page=N&class=equity— market news feedGET /v1/social/leaderboard— public copy-trading strategiesGET /v1/robo/goals— robo-advisor goalsGET /docs— Swagger UIGET /docs/openapi.yaml— raw OpenAPI 3.0 specGET /v1/ws/portfolio— WebSocket live portfolio stream
Pagination Standard
All list endpoints use ?page=1&per_page=50 and return:
{"data": [...], "pagination": {"page":1,"per_page":50,"count":50,"has_more":true}}