syntax = "proto3"; package stock; option go_package = "./proto;stock"; service Stock { rpc Quote(QuoteRequest) returns (QuoteResponse) {} rpc Price(PriceRequest) returns (PriceResponse) {} rpc History(HistoryRequest) returns (HistoryResponse) {} } // Get the last price for a given stock ticker message PriceRequest { // stock symbol e.g AAPL string symbol = 1; } message PriceResponse { // the stock symbol e.g AAPL string symbol = 1; // the last price double price = 2; } // Get the last quote for the stock message QuoteRequest { // the stock symbol e.g AAPL string symbol = 1; } message QuoteResponse { // the stock symbol string symbol = 1; // the asking price double ask_price = 2; // the bidding price double bid_price = 3; // the ask size int32 ask_size = 4; // the bid size int32 bid_size = 5; // the UTC timestamp of the quote string timestamp = 6; } // Get the historic open-close for a given day message HistoryRequest { // the stock symbol e.g AAPL string stock = 1; // date to retrieve as YYYY-MM-DD string date = 2; } message HistoryResponse { // the stock symbol string symbol = 1; // the open price double open = 2; // the close price double close = 3; // the peak price double high = 4; // the low price double low = 5; // the volume int32 volume = 6; // the date string date = 7; }