{"openapi":"3.1.0","info":{"title":"Stock Trainer","version":"0.1.0"},"paths":{"/api/v1/me":{"get":{"summary":"Me","operationId":"me_api_v1_me_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"AgentBearer":[]}]}},"/api/v1/workspaces":{"get":{"summary":"Workspaces","operationId":"workspaces_api_v1_workspaces_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"AgentBearer":[]}]}},"/api/v1/auth/config":{"get":{"summary":"Auth Config","operationId":"auth_config_api_v1_auth_config_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/auth/google/start":{"get":{"summary":"Google Start","operationId":"google_start_api_v1_auth_google_start_get","parameters":[{"name":"code","in":"query","required":false,"schema":{"type":"string","default":"","title":"Code"}},{"name":"portfolio","in":"query","required":false,"schema":{"type":"string","default":"","title":"Portfolio"}},{"name":"tab","in":"query","required":false,"schema":{"type":"string","default":"overview","title":"Tab"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/auth/google/callback":{"get":{"summary":"Google Callback","operationId":"google_callback_api_v1_auth_google_callback_get","parameters":[{"name":"state","in":"query","required":false,"schema":{"type":"string","default":"","title":"State"}},{"name":"code","in":"query","required":false,"schema":{"type":"string","default":"","title":"Code"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/connections":{"get":{"summary":"Connections","operationId":"connections_api_v1_connections_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"AgentBearer":[]}]},"post":{"summary":"Create Key","operationId":"create_key_api_v1_connections_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/KeyInput"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"AgentBearer":[]}]}},"/api/v1/connections/{cid}":{"delete":{"summary":"Revoke","operationId":"revoke_api_v1_connections__cid__delete","parameters":[{"name":"cid","in":"path","required":true,"schema":{"type":"string","title":"Cid"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"AgentBearer":[]}]}},"/api/v1/agent/device":{"post":{"summary":"Device","operationId":"device_api_v1_agent_device_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Named"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/agent/approval":{"get":{"summary":"Approval Details","operationId":"approval_details_api_v1_agent_approval_get","parameters":[{"name":"code","in":"query","required":true,"schema":{"type":"string","title":"Code"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"AgentBearer":[]}]},"post":{"summary":"Approve","operationId":"approve_api_v1_agent_approval_post","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Approval"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"AgentBearer":[]}]}},"/api/v1/agent/token":{"post":{"summary":"Exchange","operationId":"exchange_api_v1_agent_token_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Exchange"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/portfolios/{pid}/records/{kind}":{"get":{"summary":"Records","operationId":"records_api_v1_portfolios__pid__records__kind__get","parameters":[{"name":"pid","in":"path","required":true,"schema":{"type":"string","title":"Pid"}},{"name":"kind","in":"path","required":true,"schema":{"enum":["ledger","orders","order-events","research","strategies","valuations","trading-notices"],"type":"string","title":"Kind"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":500,"minimum":1,"default":200,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0,"title":"Offset"}},{"name":"as_of","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"As Of"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"AgentBearer":[]}]}},"/api/v1/market/{symbol}":{"get":{"summary":"Market Snapshot","operationId":"market_snapshot_api_v1_market__symbol__get","parameters":[{"name":"symbol","in":"path","required":true,"schema":{"type":"string","title":"Symbol"}},{"name":"base","in":"query","required":false,"schema":{"enum":["USD","AUD","CAD","GBP"],"type":"string","default":"USD","title":"Base"}},{"name":"portfolio_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Portfolio Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"AgentBearer":[]}]}},"/api/v1/market/{symbol}/observations":{"get":{"summary":"Market Observations","description":"Original receipts by recorded time, including FX and legacy AIM records.","operationId":"market_observations_api_v1_market__symbol__observations_get","parameters":[{"name":"symbol","in":"path","required":true,"schema":{"type":"string","title":"Symbol"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":500,"minimum":1,"default":200,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0,"title":"Offset"}},{"name":"as_of","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"As Of"}},{"name":"since","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Since"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"AgentBearer":[]}]}},"/api/v1/portfolios/{pid}/trading-notices":{"post":{"summary":"Add Notice","operationId":"add_notice_api_v1_portfolios__pid__trading_notices_post","parameters":[{"name":"pid","in":"path","required":true,"schema":{"type":"string","title":"Pid"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/TradingNoticeInput"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"AgentBearer":[]}]},"get":{"summary":"Notices","operationId":"notices_api_v1_portfolios__pid__trading_notices_get","parameters":[{"name":"pid","in":"path","required":true,"schema":{"type":"string","title":"Pid"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":500,"minimum":1,"default":200,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0,"title":"Offset"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"AgentBearer":[]}]}},"/api/v1/portfolios/{pid}/market-refresh":{"post":{"summary":"Portfolio Market Refresh","operationId":"portfolio_market_refresh_api_v1_portfolios__pid__market_refresh_post","parameters":[{"name":"pid","in":"path","required":true,"schema":{"type":"string","title":"Pid"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/MarketRefreshInput"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"AgentBearer":[]}]}},"/api/v1/portfolios/{pid}/settle":{"post":{"summary":"Settle","operationId":"settle_api_v1_portfolios__pid__settle_post","parameters":[{"name":"pid","in":"path","required":true,"schema":{"type":"string","title":"Pid"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/SettlementInput"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"AgentBearer":[]}]}},"/health":{"get":{"summary":"Health","operationId":"health_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/session":{"post":{"summary":"Login","operationId":"login_api_v1_session_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Login"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"AgentBearer":[]}]},"delete":{"summary":"Logout","operationId":"logout_api_v1_session_delete","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"AgentBearer":[]}]}},"/api/v1/openapi.json":{"get":{"summary":"Spec","operationId":"spec_api_v1_openapi_json_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/openapi.json":{"get":{"summary":"Spec","operationId":"spec_openapi_json_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/portfolios":{"get":{"summary":"Portfolios","operationId":"portfolios_api_v1_portfolios_get","parameters":[{"name":"workspace_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Workspace Id"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":100,"title":"Limit"}},{"name":"offset","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0,"title":"Offset"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"AgentBearer":[]}]},"post":{"summary":"New Portfolio","operationId":"new_portfolio_api_v1_portfolios_post","requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PortfolioInput"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"AgentBearer":[]}]}},"/api/v1/portfolios/{pid}":{"get":{"summary":"Portfolio","operationId":"portfolio_api_v1_portfolios__pid__get","parameters":[{"name":"pid","in":"path","required":true,"schema":{"type":"string","title":"Pid"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"AgentBearer":[]}]}},"/api/v1/portfolios/{pid}/archive":{"post":{"summary":"Archive Portfolio","operationId":"archive_portfolio_api_v1_portfolios__pid__archive_post","parameters":[{"name":"pid","in":"path","required":true,"schema":{"type":"string","title":"Pid"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"AgentBearer":[]}]}},"/api/v1/portfolios/{pid}/reconcile":{"post":{"summary":"Review Reconcile","operationId":"review_reconcile_api_v1_portfolios__pid__reconcile_post","parameters":[{"name":"pid","in":"path","required":true,"schema":{"type":"string","title":"Pid"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"AgentBearer":[]}]}},"/api/v1/portfolios/{pid}/strategies":{"post":{"summary":"New Strategy","operationId":"new_strategy_api_v1_portfolios__pid__strategies_post","parameters":[{"name":"pid","in":"path","required":true,"schema":{"type":"string","title":"Pid"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Rules"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"AgentBearer":[]}]}},"/api/v1/portfolios/{pid}/research":{"post":{"summary":"Research","operationId":"research_api_v1_portfolios__pid__research_post","parameters":[{"name":"pid","in":"path","required":true,"schema":{"type":"string","title":"Pid"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResearchInput"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"AgentBearer":[]}]}},"/api/v1/portfolios/{pid}/orders":{"post":{"summary":"Order","operationId":"order_api_v1_portfolios__pid__orders_post","parameters":[{"name":"pid","in":"path","required":true,"schema":{"type":"string","title":"Pid"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/OrderInput"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"AgentBearer":[]}]}},"/api/v1/orders/{oid}/cancel":{"post":{"summary":"Cancel Order","operationId":"cancel_order_api_v1_orders__oid__cancel_post","parameters":[{"name":"oid","in":"path","required":true,"schema":{"type":"string","title":"Oid"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"AgentBearer":[]}]}},"/api/v1/instruments":{"get":{"summary":"Instruments","operationId":"instruments_api_v1_instruments_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"AgentBearer":[]}]},"post":{"summary":"Instrument","operationId":"instrument_api_v1_instruments_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/InstrumentInput"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"AgentBearer":[]}]}},"/api/v1/refreshes":{"get":{"summary":"Refreshes","operationId":"refreshes_api_v1_refreshes_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"AgentBearer":[]}]}},"/api/v1/refresh":{"post":{"summary":"Manual Refresh","operationId":"manual_refresh_api_v1_refresh_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"AgentBearer":[]}]}},"/api/cron/refresh":{"get":{"summary":"Scheduled Refresh","operationId":"scheduled_refresh_api_cron_refresh_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/v1/actions":{"get":{"summary":"Actions","operationId":"actions_api_v1_actions_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"AgentBearer":[]}]}},"/api/v1/actions/{aid}/reconcile":{"post":{"summary":"Reconcile","operationId":"reconcile_api_v1_actions__aid__reconcile_post","parameters":[{"name":"aid","in":"path","required":true,"schema":{"type":"string","title":"Aid"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Reconciliation"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"AgentBearer":[]}]}},"/api/v1/discovery":{"get":{"summary":"Discovery","operationId":"discovery_api_v1_discovery_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}}},"components":{"schemas":{"ActionCorrection":{"properties":{"portfolio_id":{"type":"string","title":"Portfolio Id"},"quantity_delta":{"anyOf":[{"type":"number"},{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"}],"title":"Quantity Delta","default":"0"},"native_cash_delta":{"anyOf":[{"type":"number"},{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"}],"title":"Native Cash Delta","default":"0"},"fx":{"anyOf":[{"type":"number","exclusiveMinimum":0.0},{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"}],"title":"Fx"},"fx_date":{"type":"string","title":"Fx Date"}},"additionalProperties":false,"type":"object","required":["portfolio_id","fx","fx_date"],"title":"ActionCorrection"},"Approval":{"properties":{"user_code":{"type":"string","maxLength":16,"minLength":8,"title":"User Code"},"approve":{"type":"boolean","title":"Approve"}},"additionalProperties":false,"type":"object","required":["user_code","approve"],"title":"Approval"},"DiscoveryAsset":{"properties":{"issuer_id":{"type":"string","minLength":1,"title":"Issuer Id"},"commodity":{"type":"string","enum":["gold","copper"],"title":"Commodity"}},"additionalProperties":false,"type":"object","required":["issuer_id","commodity"],"title":"DiscoveryAsset"},"DiscoveryLimits":{"properties":{"protocol_id":{"type":"string","pattern":"^[a-f0-9]{64}$","title":"Protocol Id"},"assets":{"additionalProperties":{"$ref":"#/components/schemas/DiscoveryAsset"},"type":"object","title":"Assets"},"max_issuer_weight":{"anyOf":[{"type":"number","maximum":0.1,"exclusiveMinimum":0.0},{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"}],"title":"Max Issuer Weight","default":"0.10"},"max_invested_weight":{"anyOf":[{"type":"number","maximum":0.8,"exclusiveMinimum":0.0},{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"}],"title":"Max Invested Weight","default":"0.80"},"max_commodity_weight":{"anyOf":[{"type":"number","maximum":0.5,"exclusiveMinimum":0.0},{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"}],"title":"Max Commodity Weight","default":"0.50"},"max_adv_fraction":{"anyOf":[{"type":"number","maximum":0.01,"exclusiveMinimum":0.0},{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"}],"title":"Max Adv Fraction","default":"0.01"},"drawdown_pause":{"anyOf":[{"type":"number","maximum":0.15,"exclusiveMinimum":0.0},{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"}],"title":"Drawdown Pause","default":"0.15"}},"additionalProperties":false,"type":"object","required":["protocol_id"],"title":"DiscoveryLimits"},"Exchange":{"properties":{"grant_type":{"type":"string","title":"Grant Type"},"device_code":{"anyOf":[{"type":"string","maxLength":256},{"type":"null"}],"title":"Device Code"},"refresh_token":{"anyOf":[{"type":"string","maxLength":256},{"type":"null"}],"title":"Refresh Token"}},"additionalProperties":false,"type":"object","required":["grant_type"],"title":"Exchange"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"InstrumentInput":{"properties":{"symbol":{"type":"string","pattern":"^[A-Z0-9.^=\\-]{1,25}$","title":"Symbol"},"name":{"type":"string","title":"Name"},"exchange":{"type":"string","enum":["ASX","TSX","TSXV","NYSE","NASDAQ","AIM"],"title":"Exchange"},"currency":{"type":"string","enum":["USD","AUD","CAD","GBP"],"title":"Currency"},"quote_unit":{"anyOf":[{"type":"string","enum":["GBP","GBp","GBX"]},{"type":"null"}],"title":"Quote Unit"},"asset_type":{"type":"string","enum":["stock","etf"],"title":"Asset Type","default":"stock"},"watched":{"type":"boolean","title":"Watched","default":true}},"additionalProperties":false,"type":"object","required":["symbol","name","exchange","currency"],"title":"InstrumentInput"},"KeyInput":{"properties":{"name":{"type":"string","maxLength":80,"minLength":1,"title":"Name"},"expires_in_days":{"type":"integer","maximum":365.0,"minimum":1.0,"title":"Expires In Days","default":90}},"additionalProperties":false,"type":"object","required":["name"],"title":"KeyInput"},"Login":{"properties":{"password":{"type":"string","maxLength":256,"title":"Password"}},"type":"object","required":["password"],"title":"Login"},"MarketRefreshInput":{"properties":{"symbols":{"items":{"type":"string"},"type":"array","maxItems":8,"minItems":1,"title":"Symbols"},"idempotency_key":{"type":"string","maxLength":128,"minLength":8,"pattern":"^[A-Za-z0-9_.:-]+$","title":"Idempotency Key"}},"additionalProperties":false,"type":"object","required":["symbols","idempotency_key"],"title":"MarketRefreshInput"},"Named":{"properties":{"name":{"type":"string","maxLength":80,"minLength":1,"title":"Name"}},"additionalProperties":false,"type":"object","required":["name"],"title":"Named"},"OrderInput":{"properties":{"symbol":{"type":"string","title":"Symbol"},"side":{"type":"string","enum":["buy","sell"],"title":"Side"},"quantity":{"type":"integer","maximum":100000000.0,"exclusiveMinimum":0.0,"title":"Quantity"},"research_id":{"type":"string","title":"Research Id"},"idempotency_key":{"type":"string","maxLength":150,"minLength":8,"title":"Idempotency Key"}},"additionalProperties":false,"type":"object","required":["symbol","side","quantity","research_id","idempotency_key"],"title":"OrderInput"},"PortfolioInput":{"properties":{"name":{"type":"string","maxLength":100,"minLength":1,"title":"Name"},"currency":{"type":"string","enum":["USD","AUD","CAD","GBP"],"title":"Currency","default":"USD"},"initial_cash":{"anyOf":[{"type":"number","maximum":1000000000.0,"exclusiveMinimum":0.0},{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"}],"title":"Initial Cash","default":100000},"benchmark":{"type":"string","title":"Benchmark","default":"GDX"},"strategy":{"$ref":"#/components/schemas/Rules"}},"additionalProperties":false,"type":"object","required":["name","strategy"],"title":"PortfolioInput"},"Reconciliation":{"properties":{"reason":{"type":"string","minLength":20,"title":"Reason"},"source_url":{"type":"string","pattern":"^https?://","title":"Source Url"},"corrected_value":{"anyOf":[{"type":"number","minimum":0.0},{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"}],"title":"Corrected Value"},"entries":{"items":{"$ref":"#/components/schemas/ActionCorrection"},"type":"array","title":"Entries"}},"additionalProperties":false,"type":"object","required":["reason","source_url","corrected_value","entries"],"title":"Reconciliation"},"ResearchInput":{"properties":{"decision_id":{"anyOf":[{"type":"string","maxLength":150,"minLength":8},{"type":"null"}],"title":"Decision Id"},"discovery":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Discovery"},"decision":{"type":"string","enum":["buy","sell","hold","review"],"title":"Decision"},"symbol":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Symbol"},"thesis":{"type":"string","minLength":10,"title":"Thesis"},"supporting_evidence":{"items":{"type":"string"},"type":"array","minItems":1,"title":"Supporting Evidence"},"contrary_evidence":{"items":{"type":"string"},"type":"array","minItems":1,"title":"Contrary Evidence"},"risks":{"items":{"type":"string"},"type":"array","minItems":1,"title":"Risks"},"exit_conditions":{"items":{"type":"string"},"type":"array","minItems":1,"title":"Exit Conditions"},"proposed_allocation":{"anyOf":[{"type":"number","maximum":1.0,"minimum":0.0},{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"}],"title":"Proposed Allocation"},"sources":{"items":{"additionalProperties":true,"type":"object"},"type":"array","minItems":1,"title":"Sources"},"atlas":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Atlas"},"coverage_gaps":{"items":{"type":"string"},"type":"array","title":"Coverage Gaps","default":[]}},"additionalProperties":false,"type":"object","required":["decision","thesis","supporting_evidence","contrary_evidence","risks","exit_conditions","proposed_allocation","sources"],"title":"ResearchInput"},"Rules":{"properties":{"thesis":{"type":"string","minLength":10,"title":"Thesis"},"cadence":{"type":"string","enum":["daily","weekly"],"title":"Cadence","default":"weekly"},"universe":{"items":{"type":"string","enum":["stock","etf"]},"type":"array","title":"Universe","default":["stock","etf"]},"exchanges":{"items":{"type":"string","enum":["ASX","TSX","TSXV","NYSE","NASDAQ","AIM"]},"type":"array","title":"Exchanges","default":["ASX","TSX","TSXV","NYSE","NASDAQ"]},"max_weight":{"anyOf":[{"type":"number","maximum":1.0,"exclusiveMinimum":0.0},{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"}],"title":"Max Weight","default":"0.20"},"slippage_bps":{"anyOf":[{"type":"number","maximum":1000.0,"minimum":0.0},{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"}],"title":"Slippage Bps","default":25},"commission":{"anyOf":[{"type":"number","minimum":0.0},{"type":"string","pattern":"^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$"}],"title":"Commission","default":0},"discovery":{"anyOf":[{"$ref":"#/components/schemas/DiscoveryLimits"},{"type":"null"}]}},"additionalProperties":false,"type":"object","required":["thesis"],"title":"Rules"},"SettlementInput":{"properties":{"idempotency_key":{"type":"string","maxLength":150,"minLength":8,"pattern":"\\S","title":"Idempotency Key"}},"additionalProperties":false,"type":"object","required":["idempotency_key"],"title":"SettlementInput"},"TradingNoticeInput":{"properties":{"symbol":{"type":"string","pattern":"^[A-Z0-9.^=\\-]{1,25}$","title":"Symbol"},"kind":{"type":"string","enum":["halt","suspension","resumption"],"title":"Kind"},"effective_at":{"type":"string","format":"date-time","title":"Effective At"},"published_at":{"type":"string","format":"date-time","title":"Published At"},"retrieved_at":{"type":"string","format":"date-time","title":"Retrieved At"},"resumes_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Resumes Id"},"idempotency_key":{"type":"string","maxLength":150,"minLength":8,"title":"Idempotency Key"},"source_url":{"type":"string","maxLength":2000,"pattern":"^https://","title":"Source Url"},"source_sha256":{"type":"string","pattern":"^[a-f0-9]{64}$","title":"Source Sha256"},"source_excerpt":{"type":"string","maxLength":4000,"minLength":10,"title":"Source Excerpt"}},"additionalProperties":false,"type":"object","required":["symbol","kind","effective_at","published_at","retrieved_at","idempotency_key","source_url","source_sha256","source_excerpt"],"title":"TradingNoticeInput"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"}},"securitySchemes":{"AgentBearer":{"type":"http","scheme":"bearer"}}},"servers":[{"url":"https://stock-trainer-api.minestarters.com"}]}