api

package
v1.0.5 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 17, 2026 License: MIT Imports: 14 Imported by: 0

Documentation

Index

Constants

View Source
const (
	DefaultBaseURL            = "https://piconnect.flattrade.in/PiConnectAPI"
	DefaultLoginURL           = "https://auth.flattrade.in/"
	DefaultSessionURL         = "https://authapi.flattrade.in/trade/apitoken"
	DefaultWebSocketURL       = "wss://piconnect.flattrade.in/PiConnectWSAPI/"
	DefaultScripMasterBaseURL = "https://flattrade.s3.ap-south-1.amazonaws.com/scripmaster"
)
View Source
const (
	EndpointPlaceOrder         = "/PlaceOrder"
	EndpointModifyOrder        = "/ModifyOrder"
	EndpointCancelOrder        = "/CancelOrder"
	EndpointExitSNOOrder       = "/ExitSNOOrder"
	EndpointOrderMargin        = "/GetOrderMargin"
	EndpointBasketMargin       = "/GetBasketMargin"
	EndpointOrderBook          = "/OrderBook"
	EndpointMultiLegOrderBook  = "/MultiLegOrderBook"
	EndpointSingleOrderHistory = "/SingleOrdHist"
	EndpointTradeBook          = "/TradeBook"
	EndpointPositionBook       = "/PositionBook"
	EndpointProductConversion  = "/ProductConversion"
)
View Source
const (
	EndpointPlaceGTTOrder    = "/PlaceGTTOrder"
	EndpointModifyGTTOrder   = "/ModifyGTTOrder"
	EndpointCancelGTTOrder   = "/CancelGTTOrder"
	EndpointPendingGTTOrders = "/GetPendingGTTOrder"
	EndpointEnabledGTTs      = "/GetEnabledGTTs"
	EndpointPlaceOCOOrder    = "/PlaceOCOOrder"
	EndpointModifyOCOOrder   = "/ModifyOCOOrder"
	EndpointCancelOCOOrder   = "/CancelOCOOrder"
)
View Source
const (
	EndpointHoldings = "/Holdings"
	EndpointLimits   = "/Limits"
)
View Source
const (
	EndpointIndexList       = "/GetIndexList"
	EndpointTopListNames    = "/TopListName"
	EndpointTopList         = "/TopList"
	EndpointTimePriceSeries = "/TPSeries"
	EndpointEODChartData    = "/EODChartData"
	EndpointOptionChain     = "/GetOptionChain"
	EndpointOptionGreek     = "/GetOptionGreek"
	EndpointExchangeMessage = "/ExchMsg"
	EndpointBrokerMessage   = "/GetBrokerMsg"
	EndpointSpanCalculator  = "/SpanCalc"
)
View Source
const (
	EndpointSetAlert          = "/SetAlert"
	EndpointCancelAlert       = "/CancelAlert"
	EndpointModifyAlert       = "/ModifyAlert"
	EndpointPendingAlert      = "/GetPendingAlert"
	EndpointEnabledAlertTypes = "/GetEnabledAlertTypes"
)
View Source
const (
	EndpointMaxPayoutAmount = "/GetMaxPayoutAmount"
	EndpointFundsPayout     = "/FundsPayOutReq"
	EndpointPayinReport     = "/GetPayinReport"
	EndpointPayoutReport    = "/GetPayoutReport"
	EndpointCancelPayout    = "/CancelPayout"
)
View Source
const (
	EndpointUserDetails = "/UserDetails"
	EndpointSearchScrip = "/SearchScrip"
	EndpointGetQuotes   = "/GetQuotes"
)
View Source
const (
	ScripMasterNSE       = DefaultScripMasterBaseURL + "/NSE_Equity.csv"
	ScripMasterBSE       = DefaultScripMasterBaseURL + "/BSE_Equity.csv"
	ScripMasterNFOEquity = DefaultScripMasterBaseURL + "/Nfo_Equity_Derivatives.csv"
	ScripMasterNFOIndex  = DefaultScripMasterBaseURL + "/Nfo_Index_Derivatives.csv"
	ScripMasterBFOEquity = DefaultScripMasterBaseURL + "/Bfo_Equity_Derivatives.csv"
	ScripMasterBFOIndex  = DefaultScripMasterBaseURL + "/Bfo_Index_Derivatives.csv"
	ScripMasterCurrency  = DefaultScripMasterBaseURL + "/Currency_Derivatives.csv"
	ScripMasterCommodity = DefaultScripMasterBaseURL + "/Commodity.csv"
)

Variables

This section is empty.

Functions

func GetLoginURL

func GetLoginURL(apiKey string) string

Types

type APIError

type APIError struct {
	Status  string
	Message string
}

func (*APIError) Error

func (e *APIError) Error() string

type AlertRequest

type AlertRequest struct {
	UserID        string `json:"uid,omitempty"`
	AlertID       string `json:"al_id,omitempty"`
	Exchange      string `json:"exch,omitempty"`
	Token         string `json:"token,omitempty"`
	TradingSymbol string `json:"tsym,omitempty"`
	Price         string `json:"prc,omitempty"`
	AlertType     string `json:"al_type,omitempty"`
	Condition     string `json:"condition,omitempty"`
	Remarks       string `json:"remarks,omitempty"`
}

type AlertResponse

type AlertResponse struct {
	AlertID string `json:"al_id,omitempty"`
}

type BasketMarginRequest

type BasketMarginRequest struct {
	UserID    string         `json:"uid,omitempty"`
	AccountID string         `json:"actid,omitempty"`
	Orders    []OrderRequest `json:"basketlists,omitempty"`
}

type CancelOrderRequest

type CancelOrderRequest struct {
	UserID  string `json:"uid,omitempty"`
	OrderNo string `json:"norenordno,omitempty"`
}

type Candle

type Candle struct {
	Time    time.Time `json:"time,omitempty"`
	Open    string    `json:"into,omitempty"`
	High    string    `json:"inth,omitempty"`
	Low     string    `json:"intl,omitempty"`
	Close   string    `json:"intc,omitempty"`
	Volume  string    `json:"intv,omitempty"`
	OpenInt string    `json:"intoi,omitempty"`
	Value   string    `json:"v,omitempty"`
}

func (*Candle) UnmarshalJSON added in v1.0.2

func (c *Candle) UnmarshalJSON(data []byte) error

type Client

type Client struct {
	BaseURL     string
	HTTPClient  *http.Client
	UserID      string
	AccountID   string
	APIKey      string
	APISecret   string
	AccessToken string
}

func NewClient

func NewClient(opts ...Option) *Client

func (*Client) BasketMargin

func (c *Client) BasketMargin(ctx context.Context, req BasketMarginRequest) (map[string]any, error)

func (*Client) BrokerMessage

func (c *Client) BrokerMessage(ctx context.Context) ([]map[string]any, error)

func (*Client) CancelAlert

func (c *Client) CancelAlert(ctx context.Context, req AlertRequest) (*AlertResponse, error)

func (*Client) CancelGTTOrder

func (c *Client) CancelGTTOrder(ctx context.Context, req GTTOrderRequest) (map[string]any, error)

func (*Client) CancelOCOOrder

func (c *Client) CancelOCOOrder(ctx context.Context, req OCOOrderRequest) (map[string]any, error)

func (*Client) CancelOrder

func (c *Client) CancelOrder(ctx context.Context, req CancelOrderRequest) (*OrderResponse, error)

func (*Client) CancelPayout

func (c *Client) CancelPayout(ctx context.Context, req PayoutRequest) (map[string]any, error)

func (*Client) Do

func (c *Client) Do(req *http.Request, out any) error

func (*Client) EODChartData

func (c *Client) EODChartData(ctx context.Context, req EODChartDataRequest) ([]map[string]any, error)

func (*Client) EnabledAlertTypes

func (c *Client) EnabledAlertTypes(ctx context.Context) ([]map[string]any, error)

func (*Client) EnabledGTTs

func (c *Client) EnabledGTTs(ctx context.Context) ([]map[string]any, error)

func (*Client) ExchangeMessage

func (c *Client) ExchangeMessage(ctx context.Context, req ExchangeRequest) ([]map[string]any, error)

func (*Client) ExitSNOOrder

func (c *Client) ExitSNOOrder(ctx context.Context, req CancelOrderRequest) (*OrderResponse, error)

func (*Client) FundsPayout

func (c *Client) FundsPayout(ctx context.Context, req PayoutRequest) (map[string]any, error)

func (*Client) GenerateSession

func (c *Client) GenerateSession(ctx context.Context, req SessionRequest) (*SessionResponse, error)

func (*Client) GetLoginURL

func (c *Client) GetLoginURL() string

func (*Client) GetQuotes

func (c *Client) GetQuotes(ctx context.Context, req QuoteRequest) (*Quote, error)

func (*Client) Holdings

func (c *Client) Holdings(ctx context.Context) ([]Holding, error)

func (*Client) IndexList

func (c *Client) IndexList(ctx context.Context, req ExchangeRequest) ([]map[string]any, error)

func (*Client) Limits

func (c *Client) Limits(ctx context.Context) (*Limits, error)

func (*Client) MaxPayoutAmount

func (c *Client) MaxPayoutAmount(ctx context.Context) (map[string]any, error)

func (*Client) ModifyAlert

func (c *Client) ModifyAlert(ctx context.Context, req AlertRequest) (*AlertResponse, error)

func (*Client) ModifyGTTOrder

func (c *Client) ModifyGTTOrder(ctx context.Context, req GTTOrderRequest) (map[string]any, error)

func (*Client) ModifyOCOOrder

func (c *Client) ModifyOCOOrder(ctx context.Context, req OCOOrderRequest) (map[string]any, error)

func (*Client) ModifyOrder

func (c *Client) ModifyOrder(ctx context.Context, req ModifyOrderRequest) (*OrderResponse, error)

func (*Client) MultiLegOrderBook

func (c *Client) MultiLegOrderBook(ctx context.Context) ([]OrderBookEntry, error)

func (*Client) NewRequest

func (c *Client) NewRequest(ctx context.Context, method, path string, payload any) (*http.Request, error)

func (*Client) OptionChain

func (c *Client) OptionChain(ctx context.Context, req OptionChainRequest) ([]map[string]any, error)

func (*Client) OptionGreek

func (c *Client) OptionGreek(ctx context.Context, req OptionGreekRequest) (map[string]any, error)

func (*Client) OrderBook

func (c *Client) OrderBook(ctx context.Context) ([]OrderBookEntry, error)

func (*Client) OrderMargin

func (c *Client) OrderMargin(ctx context.Context, req OrderMarginRequest) (map[string]any, error)

func (*Client) PayinReport

func (c *Client) PayinReport(ctx context.Context) ([]map[string]any, error)

func (*Client) PayoutReport

func (c *Client) PayoutReport(ctx context.Context) ([]map[string]any, error)

func (*Client) PendingAlerts

func (c *Client) PendingAlerts(ctx context.Context) ([]map[string]any, error)

func (*Client) PendingGTTOrders

func (c *Client) PendingGTTOrders(ctx context.Context) ([]map[string]any, error)

func (*Client) PlaceGTTOrder

func (c *Client) PlaceGTTOrder(ctx context.Context, req GTTOrderRequest) (map[string]any, error)

func (*Client) PlaceOCOOrder

func (c *Client) PlaceOCOOrder(ctx context.Context, req OCOOrderRequest) (map[string]any, error)

func (*Client) PlaceOrder

func (c *Client) PlaceOrder(ctx context.Context, req OrderRequest) (*OrderResponse, error)

func (*Client) PositionBook

func (c *Client) PositionBook(ctx context.Context) ([]PositionBookEntry, error)

func (*Client) ProductConversion

func (c *Client) ProductConversion(ctx context.Context, req ProductConversionRequest) (*OrderResponse, error)

func (*Client) SearchScrip

func (c *Client) SearchScrip(ctx context.Context, req SearchScripRequest) ([]map[string]any, error)

func (*Client) SetAccessToken

func (c *Client) SetAccessToken(token string)

func (*Client) SetAlert

func (c *Client) SetAlert(ctx context.Context, req AlertRequest) (*AlertResponse, error)

func (*Client) SetProxy added in v1.0.5

func (c *Client) SetProxy(proxyURL string) error

func (*Client) SingleOrderHistory

func (c *Client) SingleOrderHistory(ctx context.Context, req SingleOrderHistoryRequest) ([]OrderBookEntry, error)

func (*Client) SpanCalculator

func (c *Client) SpanCalculator(ctx context.Context, req SpanCalculatorRequest) (map[string]any, error)

func (*Client) TimePriceSeries

func (c *Client) TimePriceSeries(ctx context.Context, req TimePriceSeriesRequest) ([]Candle, error)

func (*Client) TopList

func (c *Client) TopList(ctx context.Context, req TopListRequest) ([]map[string]any, error)

func (*Client) TopListNames

func (c *Client) TopListNames(ctx context.Context, req ExchangeRequest) ([]map[string]any, error)

func (*Client) TradeBook

func (c *Client) TradeBook(ctx context.Context) ([]TradeBookEntry, error)

func (*Client) UserDetails

func (c *Client) UserDetails(ctx context.Context) (*UserDetails, error)

type EODChartDataRequest

type EODChartDataRequest struct {
	UserID   string `json:"uid,omitempty"`
	Exchange string `json:"exch,omitempty"`
	Token    string `json:"token,omitempty"`
	Start    string `json:"st,omitempty"`
	End      string `json:"et,omitempty"`
}

type Error

type Error struct {
	StatusCode int
	Body       string
}

func (*Error) Error

func (e *Error) Error() string

type ExchangeRequest

type ExchangeRequest struct {
	UserID   string `json:"uid,omitempty"`
	Exchange string `json:"exch,omitempty"`
}

type GTTOrderRequest

type GTTOrderRequest struct {
	UserID          string `json:"uid,omitempty"`
	AccountID       string `json:"actid,omitempty"`
	AlertID         string `json:"al_id,omitempty"`
	Exchange        string `json:"exch,omitempty"`
	Token           string `json:"token,omitempty"`
	TradingSymbol   string `json:"tsym,omitempty"`
	Quantity        string `json:"qty,omitempty"`
	Price           string `json:"prc,omitempty"`
	TriggerPrice    string `json:"trgprc,omitempty"`
	Product         string `json:"prd,omitempty"`
	TransactionType string `json:"trantype,omitempty"`
	PriceType       string `json:"prctyp,omitempty"`
	Retention       string `json:"ret,omitempty"`
	Remarks         string `json:"remarks,omitempty"`
}

type Holding

type Holding struct {
	Exchange      string `json:"exch,omitempty"`
	Token         string `json:"token,omitempty"`
	TradingSymbol string `json:"tsym,omitempty"`
	Quantity      string `json:"holdqty,omitempty"`
	Product       string `json:"prd,omitempty"`
}

type Limits

type Limits struct {
	Cash          string `json:"cash,omitempty"`
	Payin         string `json:"payin,omitempty"`
	Payout        string `json:"payout,omitempty"`
	UnclearedCash string `json:"unclearedcash,omitempty"`
	MarginUsed    string `json:"marginused,omitempty"`
}

type LoginURLRequest

type LoginURLRequest struct {
	APIKey string
}

type ModifyOrderRequest

type ModifyOrderRequest struct {
	UserID        string `json:"uid,omitempty"`
	AccountID     string `json:"actid,omitempty"`
	OrderNo       string `json:"norenordno,omitempty"`
	Exchange      string `json:"exch,omitempty"`
	TradingSymbol string `json:"tsym,omitempty"`
	Quantity      string `json:"qty,omitempty"`
	Price         string `json:"prc,omitempty"`
	TriggerPrice  string `json:"trgprc,omitempty"`
	PriceType     string `json:"prctyp,omitempty"`
	Retention     string `json:"ret,omitempty"`
}

type OCOOrderRequest

type OCOOrderRequest struct {
	UserID          string `json:"uid,omitempty"`
	AccountID       string `json:"actid,omitempty"`
	AlertID         string `json:"al_id,omitempty"`
	Exchange        string `json:"exch,omitempty"`
	Token           string `json:"token,omitempty"`
	TradingSymbol   string `json:"tsym,omitempty"`
	Quantity        string `json:"qty,omitempty"`
	Price           string `json:"prc,omitempty"`
	TriggerPrice    string `json:"trgprc,omitempty"`
	BookLossPrice   string `json:"blprc,omitempty"`
	BookProfitPrice string `json:"bpprc,omitempty"`
	Product         string `json:"prd,omitempty"`
	TransactionType string `json:"trantype,omitempty"`
	PriceType       string `json:"prctyp,omitempty"`
	Retention       string `json:"ret,omitempty"`
	Remarks         string `json:"remarks,omitempty"`
}

type Option

type Option func(*Client)

func WithAPIKey

func WithAPIKey(apiKey string) Option

func WithAPIKeys

func WithAPIKeys(apiKey, apiSecret string) Option

func WithAPISecret

func WithAPISecret(apiSecret string) Option

func WithBaseURL

func WithBaseURL(baseURL string) Option

func WithCredentials

func WithCredentials(userID, accountID, accessToken string) Option

func WithHTTPClient

func WithHTTPClient(httpClient *http.Client) Option

type OptionChainRequest

type OptionChainRequest struct {
	UserID        string `json:"uid,omitempty"`
	Exchange      string `json:"exch,omitempty"`
	TradingSymbol string `json:"tsym,omitempty"`
	StrikePrice   string `json:"strprc,omitempty"`
	Count         string `json:"cnt,omitempty"`
}

type OptionGreekRequest

type OptionGreekRequest struct {
	UserID        string `json:"uid,omitempty"`
	Exchange      string `json:"exch,omitempty"`
	TradingSymbol string `json:"tsym,omitempty"`
	Price         string `json:"prc,omitempty"`
}

type Order

type Order struct {
	Exchange        string `json:"exch,omitempty"`
	Token           string `json:"token,omitempty"`
	TradingSymbol   string `json:"tsym,omitempty"`
	Quantity        string `json:"qty,omitempty"`
	Price           string `json:"prc,omitempty"`
	Product         string `json:"prd,omitempty"`
	TransactionType string `json:"trantype,omitempty"`
	PriceType       string `json:"prctyp,omitempty"`
	Retention       string `json:"ret,omitempty"`
}

type OrderBookEntry

type OrderBookEntry struct {
	Order
	OrderNo      string `json:"norenordno,omitempty"`
	Status       string `json:"status,omitempty"`
	RejectReason string `json:"rejreason,omitempty"`
	AveragePrice string `json:"avgprc,omitempty"`
	FilledShares string `json:"fillshares,omitempty"`
	OrderTime    string `json:"norentm,omitempty"`
}

type OrderMarginRequest

type OrderMarginRequest struct {
	UserID          string `json:"uid,omitempty"`
	AccountID       string `json:"actid,omitempty"`
	Exchange        string `json:"exch,omitempty"`
	Token           string `json:"token,omitempty"`
	TradingSymbol   string `json:"tsym,omitempty"`
	Quantity        string `json:"qty,omitempty"`
	Price           string `json:"prc,omitempty"`
	Product         string `json:"prd,omitempty"`
	TransactionType string `json:"trantype,omitempty"`
	PriceType       string `json:"prctyp,omitempty"`
}

type OrderRequest

type OrderRequest struct {
	UserID          string `json:"uid,omitempty"`
	AccountID       string `json:"actid,omitempty"`
	Exchange        string `json:"exch,omitempty"`
	Token           string `json:"token,omitempty"`
	TradingSymbol   string `json:"tsym,omitempty"`
	Quantity        string `json:"qty,omitempty"`
	DisclosedQty    string `json:"dscqty,omitempty"`
	Price           string `json:"prc,omitempty"`
	TriggerPrice    string `json:"trgprc,omitempty"`
	Product         string `json:"prd,omitempty"`
	TransactionType string `json:"trantype,omitempty"`
	PriceType       string `json:"prctyp,omitempty"`
	Retention       string `json:"ret,omitempty"`
	Remarks         string `json:"remarks,omitempty"`
}

type OrderResponse

type OrderResponse struct {
	OrderNo string `json:"norenordno,omitempty"`
}

type PayoutRequest

type PayoutRequest struct {
	UserID    string `json:"uid,omitempty"`
	Amount    string `json:"amt,omitempty"`
	Remarks   string `json:"remarks,omitempty"`
	RequestID string `json:"req_id,omitempty"`
}

type PositionBookEntry

type PositionBookEntry struct {
	Exchange      string `json:"exch,omitempty"`
	Token         string `json:"token,omitempty"`
	TradingSymbol string `json:"tsym,omitempty"`
	Product       string `json:"prd,omitempty"`
	NetQuantity   string `json:"netqty,omitempty"`
	BuyQuantity   string `json:"daybuyqty,omitempty"`
	SellQuantity  string `json:"daysellqty,omitempty"`
	NetAverage    string `json:"netavgprc,omitempty"`
}

type ProductConversionRequest

type ProductConversionRequest struct {
	UserID          string `json:"uid,omitempty"`
	AccountID       string `json:"actid,omitempty"`
	Exchange        string `json:"exch,omitempty"`
	TradingSymbol   string `json:"tsym,omitempty"`
	Quantity        string `json:"qty,omitempty"`
	Product         string `json:"prd,omitempty"`
	PreviousProduct string `json:"prevprd,omitempty"`
	TransactionType string `json:"trantype,omitempty"`
	PositionType    string `json:"postype,omitempty"`
}

type Quote

type Quote struct {
	Exchange      string `json:"exch,omitempty"`
	Token         string `json:"token,omitempty"`
	TradingSymbol string `json:"tsym,omitempty"`
	LastPrice     string `json:"lp,omitempty"`
	Open          string `json:"o,omitempty"`
	High          string `json:"h,omitempty"`
	Low           string `json:"l,omitempty"`
	Close         string `json:"c,omitempty"`
}

type QuoteRequest

type QuoteRequest struct {
	UserID   string `json:"uid,omitempty"`
	Exchange string `json:"exch,omitempty"`
	Token    string `json:"token,omitempty"`
}

type SearchScripRequest

type SearchScripRequest struct {
	UserID     string `json:"uid,omitempty"`
	Exchange   string `json:"exch,omitempty"`
	SearchText string `json:"stext,omitempty"`
}

type SessionRequest

type SessionRequest struct {
	RequestCode string `json:"request_code"`
	APIKey      string `json:"api_key,omitempty"`
	APISecret   string `json:"api_secret,omitempty"`
}

type SessionResponse

type SessionResponse struct {
	UserID      string `json:"uid,omitempty"`
	AccountID   string `json:"actid,omitempty"`
	AccessToken string `json:"token,omitempty"`
	Status      string `json:"stat,omitempty"`
	Message     string `json:"emsg,omitempty"`
}

type SingleOrderHistoryRequest

type SingleOrderHistoryRequest struct {
	UserID  string `json:"uid,omitempty"`
	OrderNo string `json:"norenordno,omitempty"`
}

type SpanCalculatorRequest

type SpanCalculatorRequest struct {
	UserID string         `json:"uid,omitempty"`
	Items  map[string]any `json:"items,omitempty"`
}

type TimePriceSeriesRequest

type TimePriceSeriesRequest struct {
	UserID    string `json:"uid,omitempty"`
	Exchange  string `json:"exch,omitempty"`
	Token     string `json:"token,omitempty"`
	StartTime string `json:"st,omitempty"`
	EndTime   string `json:"et,omitempty"`
	Interval  string `json:"intrv,omitempty"`
}

type TopListRequest

type TopListRequest struct {
	UserID   string `json:"uid,omitempty"`
	Exchange string `json:"exch,omitempty"`
	ListName string `json:"idxname,omitempty"`
}

type TradeBookEntry

type TradeBookEntry struct {
	OrderNo         string `json:"norenordno,omitempty"`
	Exchange        string `json:"exch,omitempty"`
	Token           string `json:"token,omitempty"`
	TradingSymbol   string `json:"tsym,omitempty"`
	Quantity        string `json:"qty,omitempty"`
	Price           string `json:"prc,omitempty"`
	Product         string `json:"prd,omitempty"`
	TransactionType string `json:"trantype,omitempty"`
	TradeNo         string `json:"flid,omitempty"`
	TradeTime       string `json:"fltm,omitempty"`
}

type UserDetails

type UserDetails struct {
	UserID    string `json:"uid,omitempty"`
	AccountID string `json:"actid,omitempty"`
	Name      string `json:"uname,omitempty"`
	Email     string `json:"email,omitempty"`
	Mobile    string `json:"m_num,omitempty"`
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL