Documentation
¶
Overview ¶
auth.go
client.go
historical.go
market.go
orders.go
Index ¶
- func GenerateChecksum(appID, appSecret, requestToken string) string
- type AuthResponse
- type BasketMarginRequest
- type BasketOrderMargin
- type Client
- func (c *Client) Authenticate(requestToken string) (string, error)
- func (c *Client) AutoLogin(username, password, totpSecret string) error
- func (c *Client) CancelOrder(orderType, orderID string) error
- func (c *Client) GetBasketMargin(order BasketMarginRequest) (*BasketOrderMargin, error)
- func (c *Client) GetHistoricalData(exchange, token, interval, from, to string, includeOI bool) ([]HistoricalCandle, error)
- func (c *Client) GetHoldings() ([]Holding, error)
- func (c *Client) GetHolidays() (*HolidaysResponse, error)
- func (c *Client) GetIndexList() (*IndexListResponse, error)
- func (c *Client) GetInstrumentList() ([]Instrument, error)
- func (c *Client) GetLimits() (*Limits, error)
- func (c *Client) GetMargin(order MarginRequest) (*OrderMargin, error)
- func (c *Client) GetMarketQuote(token int64, mode string) (*MarketQuote, error)
- func (c *Client) GetMarketQuotes(tokens []int64, mode string) ([]MarketQuote, error)
- func (c *Client) GetOptionChain(token, exchange, count, expiry string) (*OptionChainResponse, error)
- func (c *Client) GetOptionChainSymbol() (*OptionChainSymbolResponse, error)
- func (c *Client) GetOrder(orderID string) (*OrderDetailsResponse, error)
- func (c *Client) GetOrderBook() ([]OrderResponse, error)
- func (c *Client) GetPositions() ([]Position, error)
- func (c *Client) GetRefreshToken() string
- func (c *Client) GetToken() string
- func (c *Client) GetUserDetails() (*User, error)
- func (c *Client) Login()
- func (c *Client) ModifyOrder(orderType, orderID string, order OrderRequest) (*OrderResponse, error)
- func (c *Client) PlaceOrder(orderType string, order OrderRequest) (*OrderResponse, error)
- func (c *Client) SetToken(token string)
- type Config
- type HistoricalCandle
- type HistoricalDataResponse
- type Holding
- type HoldingsResponse
- type HolidaysResponse
- type IndexListResponse
- type Instrument
- type Limits
- type MarginRequest
- type MarginResponse
- type MarketQuote
- type OptionChainResponse
- type OptionChainSymbolResponse
- type OrderDetailsResponse
- type OrderMargin
- type OrderRequest
- type OrderResponse
- type Position
- type PositionsResponse
- type User
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func GenerateChecksum ¶
GenerateChecksum creates a SHA256 hash of "appId:appSecret:request-token".
This is used to securely authenticate API requests.
Parameters:
- appID: The application ID.
- appSecret: The application secret key.
- requestToken: The temporary request token obtained from the login process.
Returns:
- A SHA256 checksum string.
Types ¶
type AuthResponse ¶
type AuthResponse struct { Status string `json:"status"` // API response status (e.g., "success" or "error"). Data struct { Name string `json:"name"` // User's name. Token string `json:"token"` // Authentication token. UserID string `json:"userId"` // Unique identifier for the user. RefreshToken string `json:"refreshToken"` // Token used for refreshing authentication. } `json:"data"` }
AuthResponse represents the structure of the authentication response from the API.
type BasketMarginRequest ¶
type BasketMarginRequest []MarginRequest
BasketMarginRequest represents a collection of margin requests for multiple orders.
type BasketOrderMargin ¶
type BasketOrderMargin struct { Data struct { MarginUsed string `json:"marginUsed"` // Total margin used before placing orders. MarginUsedAfterTrade string `json:"marginUsedAfterTrade"` // Total margin used after trade execution. } `json:"data"` Status string `json:"status"` // API response status (e.g., "success" or "error"). }
BasketOrderMargin represents the API response for multiple order margin requests.
type Client ¶
type Client struct { Config Config // Configuration settings for the API client. HTTPClient *fasthttp.Client // HTTP client for executing requests. }
Client is the main struct for interacting with the Tiqs API.
It contains the configuration settings and an HTTP client for making API requests.
func NewClient ¶
NewClient initializes a new SDK client with the provided application credentials.
Parameters:
- appID: The application ID used for authentication.
- appSecret: The application secret key used for authentication.
Returns:
- A pointer to a newly created Client instance.
func (*Client) Authenticate ¶
Authenticate exchanges the request token for an access token.
This function sends a POST request to authenticate the user and obtain an API token.
Parameters:
- requestToken: The temporary token received after user login.
Returns:
- A string containing the authentication token if successful.
- An error if authentication fails.
func (*Client) AutoLogin ¶
AutoLogin handles the entire authentication flow automatically using credentials.
This function logs in a user programmatically by sending the credentials, performing 2FA verification using TOTP, extracting the request token, and exchanging it for an access token.
Parameters:
- username: The user's registered ID or email.
- password: The user's password.
- totpSecret: The TOTP secret key used to generate 2FA codes.
Returns:
- An error if authentication fails; otherwise, nil.
func (*Client) CancelOrder ¶
CancelOrder cancels an existing order.
It sends a DELETE request to the API endpoint "/order/{orderType}/{orderID}".
Parameters:
- orderType: Type of the order to be canceled (e.g., MARKET, LIMIT).
- orderID: Unique identifier of the order.
Returns:
- An error if the cancellation fails; otherwise, nil.
func (*Client) GetBasketMargin ¶
func (c *Client) GetBasketMargin(order BasketMarginRequest) (*BasketOrderMargin, error)
GetBasketMargin fetches the margin details for multiple orders.
This function sends a POST request to the "/margin/basket" endpoint with a collection of orders to calculate the combined margin requirements.
Parameters:
- order: A BasketMarginRequest struct containing multiple orders.
Returns:
- A pointer to a BasketOrderMargin struct with total margin details if successful.
- An error if the request fails or the response cannot be parsed.
func (*Client) GetHistoricalData ¶
func (c *Client) GetHistoricalData(exchange, token, interval, from, to string, includeOI bool) ([]HistoricalCandle, error)
GetHistoricalData fetches historical OHLCV data for a given instrument.
It sends a GET request to the "/candle/{exchange}/{token}/{interval}?from={from}&to={to}" endpoint to retrieve OHLCV data for the specified time range. If Open Interest (OI) is requested, it is appended as a query parameter.
Parameters:
- exchange: The exchange where the instrument is listed (e.g., NSE, BSE).
- token: The unique identifier of the instrument.
- interval: The timeframe of the candles (e.g., "1m", "5m", "1d").
- from: The start date/time for historical data (ISO 8601 format).
- to: The end date/time for historical data (ISO 8601 format).
- includeOI: Boolean flag to include Open Interest (OI) data if available.
Returns:
- A slice of HistoricalCandle structs containing OHLCV data if successful.
- An error if the request fails or the response cannot be parsed.
func (*Client) GetHoldings ¶
GetHoldings fetches the holdings for the authenticated user.
It sends a GET request to the "/user/holdings" endpoint to retrieve all holdings associated with the user's account.
Returns:
- A slice of Holding structs containing all available holdings if successful.
- An error if the request fails or the response cannot be parsed.
func (*Client) GetHolidays ¶ added in v0.0.6
func (c *Client) GetHolidays() (*HolidaysResponse, error)
GetHolidays fetches the list of market holidays and special trading days.
It sends a GET request to the "/info/holidays" endpoint to retrieve market holiday schedules and special trading days.
Returns:
- A pointer to a HolidaysResponse struct containing holiday details if successful.
- An error if the request fails or the response cannot be parsed.
func (*Client) GetIndexList ¶ added in v0.0.6
func (c *Client) GetIndexList() (*IndexListResponse, error)
GetIndexList fetches the list of available stock market indices.
It sends a GET request to the "/info/index-list" endpoint to retrieve details of available indices, including their names and unique tokens.
Returns:
- A pointer to an IndexListResponse struct containing index details if successful.
- An error if the request fails or the response cannot be parsed.
func (*Client) GetInstrumentList ¶ added in v0.0.8
func (c *Client) GetInstrumentList() ([]Instrument, error)
GetInstrumentList fetches the list of all available instruments.
It sends a GET request to the "/all" endpoint to retrieve a list of all available instruments on the platform.
Returns:
- A slice of Instrument structs containing all available instruments if successful.
- An error if the request fails or the response cannot be parsed.
func (*Client) GetLimits ¶
GetLimits fetches the trading limits and margin details for the authenticated user.
This function sends a GET request to the "/user/limits" endpoint to retrieve available margins, blocked funds, collateral, pending orders, and other financial details.
Returns:
- A pointer to a Limits struct containing the trading limits if successful.
- An error if the request fails or the response cannot be parsed.
func (*Client) GetMargin ¶
func (c *Client) GetMargin(order MarginRequest) (*OrderMargin, error)
GetMargin fetches the margin details for a single order.
It sends a POST request to the "/margin/order" endpoint with the order details to calculate the required margin for the specified transaction.
Parameters:
- order: A MarginRequest struct containing the order details.
Returns:
- A pointer to an OrderMargin struct with margin details if successful.
- An error if the request fails or the response cannot be parsed.
func (*Client) GetMarketQuote ¶
func (c *Client) GetMarketQuote(token int64, mode string) (*MarketQuote, error)
GetMarketQuote fetches market data for a single instrument.
It sends a POST request to the "/info/quote/{mode}" endpoint to retrieve the latest market details for a given token.
Parameters:
- token: The unique identifier of the instrument.
- mode: Market mode (e.g., "full", "ltp", "depth").
Returns:
- A pointer to MarketQuote struct containing market data if successful.
- An error if the request fails or the response cannot be parsed.
func (*Client) GetMarketQuotes ¶
func (c *Client) GetMarketQuotes(tokens []int64, mode string) ([]MarketQuote, error)
GetMarketQuotes fetches market data for multiple instruments.
It sends a POST request to the "/info/quotes/{mode}" endpoint to retrieve market data for a list of tokens.
Parameters:
- tokens: A slice of unique identifiers representing instruments.
- mode: Market mode (e.g., "full", "ltp", "depth").
Returns:
- A slice of MarketQuote structs containing market data if successful.
- An error if the request fails or the response cannot be parsed.
func (*Client) GetOptionChain ¶ added in v0.0.7
func (c *Client) GetOptionChain(token, exchange, count, expiry string) (*OptionChainResponse, error)
GetOptionChain fetches the option chain details for a given symbol.
It sends a POST request to the "/info/option-chain" endpoint to retrieve the option chain details for a specific symbol.
Returns:
- A pointer to an OptionChainResponse struct containing option chain details if successful.
- An error if the request fails or the response cannot be parsed.
func (*Client) GetOptionChainSymbol ¶ added in v0.0.6
func (c *Client) GetOptionChainSymbol() (*OptionChainSymbolResponse, error)
GetOptionChainSymbol fetches the available option chain symbols.
It sends a GET request to the "/info/option-chain-symbols" endpoint to retrieve the available option chain symbols categorized by different asset types.
Returns:
- A pointer to an OptionChainSymbolResponse struct containing option chain symbols if successful.
- An error if the request fails or the response cannot be parsed.
func (*Client) GetOrder ¶
func (c *Client) GetOrder(orderID string) (*OrderDetailsResponse, error)
GetOrder retrieves details of a specific order.
It sends a GET request to the API endpoint "/order/{orderID}".
Parameters:
- orderID: Unique identifier of the order.
Returns:
- A pointer to OrderResponse containing order details if successful.
- An error if the retrieval fails.
func (*Client) GetOrderBook ¶
func (c *Client) GetOrderBook() ([]OrderResponse, error)
GetOrderBook retrieves all orders for the current trading day.
It sends a GET request to the API endpoint "/user/orders" and returns a list of orders.
Returns:
- A slice of OrderResponse structs containing all orders if successful.
- An error if the retrieval fails.
func (*Client) GetPositions ¶
GetPositions fetches the positions for the authenticated user.
It sends a GET request to the "/user/positions" endpoint to retrieve all open and carry-forward positions.
Returns:
- A slice of Position structs containing all active positions if successful.
- An error if the request fails or the response cannot be parsed.
func (*Client) GetRefreshToken ¶ added in v0.0.9
GetRefreshToken gets the refresh token of the user.
This function allows to get the refresh token at runtime which can be used to create new Token.
Returns:
- refreshToken: The refresh token.
func (*Client) GetToken ¶ added in v0.0.9
GetToken retrieves the current authentication token.
This function returns the current API token used for authentication.
Returns:
- The current authentication token.
func (*Client) GetUserDetails ¶
GetUserDetails fetches user profile details from the Tiqs API.
It makes a GET request to the "/user/details" endpoint and returns a User struct containing all user-related information.
Returns:
- A pointer to a User struct with the retrieved details if successful.
- An error if the request fails or the response cannot be parsed.
func (*Client) Login ¶
func (c *Client) Login()
Login prompts the user to log in manually and enter the request token.
This function prints a login URL and asks the user to enter the request token to complete the authentication process.
func (*Client) ModifyOrder ¶
func (c *Client) ModifyOrder(orderType, orderID string, order OrderRequest) (*OrderResponse, error)
ModifyOrder modifies an existing order.
It sends a PATCH request to the API endpoint "/order/{orderType}/{orderID}" with the modified order details.
Parameters:
- orderType: Type of the order being modified (e.g., MARKET, LIMIT).
- orderID: Unique identifier of the order to be modified.
- order: OrderRequest struct containing updated order details.
Returns:
- A pointer to OrderResponse with the updated order details if successful.
- An error if the modification fails.
func (*Client) PlaceOrder ¶
func (c *Client) PlaceOrder(orderType string, order OrderRequest) (*OrderResponse, error)
PlaceOrder places a new order in the market.
It sends a POST request to the API endpoint "/order/{orderType}" with the order details.
Parameters:
- orderType: Type of order (e.g., MARKET, LIMIT).
- order: OrderRequest struct containing the order details.
Returns:
- A pointer to OrderResponse with the order confirmation details if successful.
- An error if the order placement fails.
type Config ¶
type Config struct { AppID string // Application ID for API authentication. AppSecret string // Application secret key for API authentication. Token string // Authentication token for API requests. BaseURL string // Base URL of the Tiqs API. RefreshToken string // Token used to refresh authentication when expired. }
Config holds the SDK configuration settings.
type HistoricalCandle ¶
type HistoricalCandle struct { Time string `json:"time"` // Timestamp of the candle in ISO 8601 format. Open int64 `json:"open"` // Open price of the candle. High int64 `json:"high"` // Highest price during the candle period. Low int64 `json:"low"` // Lowest price during the candle period. Close int64 `json:"close"` // Closing price of the candle. Volume int64 `json:"volume"` // Trading volume during the candle period. OI *int64 `json:"oi,omitempty"` // Open Interest (optional, included if requested). }
HistoricalCandle represents a single OHLCV (Open, High, Low, Close, Volume) data point.
type HistoricalDataResponse ¶
type HistoricalDataResponse struct { Status string `json:"status"` // API response status (e.g., "success" or "error"). Data []HistoricalCandle `json:"data"` // List of historical OHLCV candles. }
HistoricalDataResponse represents the structure of the historical data API response.
type Holding ¶
type Holding struct { AuthorizedQty string `json:"authorizedQty"` // Authorized quantity of the holding. AvgPrice string `json:"avgPrice"` // Average price at which the holding was acquired. BrokerCollateralQty string `json:"brokerCollateralQty"` // Quantity pledged as collateral with the broker. Close float64 `json:"close"` // Closing price of the holding from the previous session. CollateralQty string `json:"collateralQty"` // Total collateral quantity. DepositoryQty string `json:"depositoryQty"` // Quantity held in the depository. EffectiveQty string `json:"effectiveQty"` // Effective quantity available for trading. Exchange string `json:"exchange"` // Exchange where the holding is listed (e.g., NSE, BSE). Haircut string `json:"haircut"` // Haircut percentage applied to the collateral. Ltp float64 `json:"ltp"` // Last traded price of the holding. NonPOAQty string `json:"nonPOAQty"` // Quantity not under Power of Attorney (POA). Pnl string `json:"pnl"` // Profit and Loss (PnL) on the holding. Qty string `json:"qty"` // Total quantity held. SellableQty string `json:"sellableQty"` // Quantity available for selling. Symbol string `json:"symbol"` // Trading symbol of the instrument. T1Qty string `json:"t1Qty"` // T+1 quantity, which is yet to be settled. Token string `json:"token"` // Unique token identifier for the holding. TradingSymbol string `json:"tradingSymbol"` // Full trading symbol of the instrument. UnPledgedQty string `json:"unPledgedQty"` // Quantity that is not pledged as collateral. UsedQty string `json:"usedQty"` // Quantity already used (e.g., for margin or pledging). }
Holding represents a user's stock or asset holding details.
type HoldingsResponse ¶
type HoldingsResponse struct { Data []Holding `json:"data"` // List of user's holdings. Status string `json:"status"` // API response status (e.g., "success" or "error"). }
HoldingsResponse represents the API response containing user holdings.
type HolidaysResponse ¶ added in v0.0.6
type HolidaysResponse struct { Data struct { Holidays map[string]string `json:"holidays"` // A map of holiday dates and their descriptions. SpecialTradingDays map[string][][]interface{} `json:"specialTradingDays"` // A map of special trading days with additional details. } `json:"data"` Status string `json:"status"` // API response status (e.g., "success" or "error"). }
HolidaysResponse represents the API response structure for market holidays.
type IndexListResponse ¶ added in v0.0.6
type IndexListResponse struct { Data []struct { Name string `json:"name"` // Name of the index (e.g., NIFTY 50, SENSEX). Token string `json:"token"` // Unique identifier (token) for the index. } `json:"data"` Status string `json:"status"` // API response status (e.g., "success" or "error"). }
IndexListResponse represents the API response structure for retrieving a list of market indices.
type Instrument ¶ added in v0.0.8
type Instrument struct { ExchSeg string `csv:"ExchSeg,omitempty"` Token int64 `csv:"Token,omitempty"` LotSize int64 `csv:"LotSize,omitempty"` Symbol string `csv:"Symbol,omitempty"` CompanyName string `csv:"CompanyName,omitempty"` Exchange string `csv:"Exchange,omitempty"` Segment string `csv:"Segment,omitempty"` TradingSymbol string `csv:"TradingSymbol,omitempty"` Instrument string `csv:"Instrument,omitempty"` ExpiryDate *string `csv:"ExpiryDate,omitempty"` // Nullable field Isin string `csv:"Isin,omitempty"` TickSize float64 `csv:"TickSize,omitempty"` PricePrecision int `csv:"PricePrecision,omitempty"` Multiplier int `csv:"Multiplier,omitempty"` PriceMultiplier float64 `csv:"PriceMultiplier,omitempty"` OptionType *string `csv:"OptionType,omitempty"` // Nullable field UnderlyingExchange *string `csv:"UnderlyingExchange,omitempty"` UnderlyingToken *string `csv:"UnderlyingToken,omitempty"` StrikePrice int64 `csv:"StrikePrice,omitempty"` ExchExpiryDate int64 `csv:"ExchExpiryDate,omitempty"` UpdateTime int64 `csv:"UpdateTime,omitempty"` MessageFlag int `csv:"MessageFlag,omitempty"` ExchangeSymbol string `csv:"ExchangeSymbol,omitempty"` }
type Limits ¶
type Limits struct { Data []struct { Cash string `json:"cash"` DayCash string `json:"dayCash"` BlockedAmount string `json:"blockedAmount"` UnClearedCash string `json:"unClearedCash"` BrokerCollateralAmount string `json:"brokerCollateralAmount"` LiquidCollateralAmount string `json:"liquidCollateralAmount"` EquityCollateralAmount string `json:"equityCollateralAmount"` PayIn string `json:"payIn"` PayOut string `json:"payOut"` MarginUsed string `json:"marginUsed"` CashNCarryBuyUsed string `json:"cashNCarryBuyUsed"` CashNCarrySellCredits string `json:"cashNCarrySellCredits"` Turnover string `json:"turnover"` PendingOrderValue string `json:"pendingOrderValue"` Span string `json:"span"` Exposure string `json:"exposure"` DeliveryMargin string `json:"deliveryMargin"` MtomCurrentPct string `json:"mtomCurrentPct"` RealisedPnL string `json:"realisedPnL"` UnRealisedMtoM string `json:"unRealisedMtoM"` ProductMargin string `json:"productMargin"` Premium string `json:"premium"` VarELMMargin string `json:"varELMMargin"` GrossExposure string `json:"grossExposure"` GrossExposureDerivate string `json:"grossExposureDerivate"` ScripBasketMargin string `json:"scripBasketMargin"` AdditionalScriptBasketMargin string `json:"additionalScriptBasketMargin"` Brokerage string `json:"brokerage"` Collateral string `json:"collateral"` GrossCollateral string `json:"grossCollateral"` TurnOverLimit string `json:"turnOverLimit"` PendingOrderValueAmount string `json:"pendingOrderValueAmount"` CurrentRealizedPnLei string `json:"currentRealizedPnLei"` CurrentRealizedPnLem string `json:"currentRealizedPnLem"` CurrentRealizedPnLc string `json:"currentRealizedPnLc"` CurrentRealizedPnLdi string `json:"currentRealizedPnLdi"` CurrentRealizedPnLdm string `json:"currentRealizedPnLdm"` CurrentRealizedPnLfi string `json:"currentRealizedPnLfi"` CurrentRealizedPnLfm string `json:"currentRealizedPnLfm"` CurrentRealizedPnLci string `json:"currentRealizedPnLci"` CurrentRealizedPnLcm string `json:"currentRealizedPnLcm"` CurrentUnRealizedPnLei string `json:"currentUnRealizedPnLei"` CurrentUnRealizedPnLem string `json:"currentUnRealizedPnLem"` CurrentUnRealizedPnLc string `json:"currentUnRealizedPnLc"` CurrentUnRealizedPnLdi string `json:"currentUnRealizedPnLdi"` CurrentUnRealizedPnLdm string `json:"currentUnRealizedPnLdm"` CurrentUnRealizedPnLfi string `json:"currentUnRealizedPnLfi"` CurrentUnRealizedPnLfm string `json:"currentUnRealizedPnLfm"` CurrentUnRealizedPnLci string `json:"currentUnRealizedPnLci"` CurrentUnRealizedPnLcm string `json:"currentUnRealizedPnLcm"` SpanDi string `json:"spanDi"` SpanDm string `json:"spanDm"` SpanFi string `json:"spanFi"` SpanFm string `json:"spanFm"` SpanCi string `json:"spanCi"` SpanCm string `json:"spanCm"` ExposureMarginDi string `json:"exposureMarginDi"` ExposureMarginDm string `json:"exposureMarginDm"` ExposureMarginFi string `json:"exposureMarginFi"` ExposureMarginFm string `json:"exposureMarginFm"` ExposureMarginCi string `json:"exposureMarginCi"` ExposureMarginCm string `json:"exposureMarginCm"` PremiumDi string `json:"premiumDi"` PremiumDm string `json:"premiumDm"` PremiumFi string `json:"premiumFi"` PremiumFm string `json:"premiumFm"` PremiumCi string `json:"premiumCi"` PremiumCm string `json:"premiumCm"` VarELMei string `json:"varELMei"` VarELMem string `json:"varELMem"` VarELMc string `json:"varELMc"` CoveredProductMarginEh string `json:"coveredProductMarginEh"` CoveredProductMarginEb string `json:"coveredProductMarginEb"` CoveredProductMarginDh string `json:"coveredProductMarginDh"` CoveredProductMarginDb string `json:"coveredProductMarginDb"` CoveredProductMarginFh string `json:"coveredProductMarginFh"` CoveredProductMarginFb string `json:"coveredProductMarginFb"` CoveredProductMarginCh string `json:"coveredProductMarginCh"` CoveredProductMarginCb string `json:"coveredProductMarginCb"` ScripBasketMarginEi string `json:"scripBasketMarginEi"` ScripBasketMarginEm string `json:"scripBasketMarginEm"` ScripBasketMarginEc string `json:"scripBasketMarginEc"` AdditionalScripBasketMarginDi string `json:"additionalScripBasketMarginDi"` AdditionalScripBasketMarginDm string `json:"additionalScripBasketMarginDm"` AdditionalScripBasketMarginFi string `json:"additionalScripBasketMarginFi"` AdditionalScripBasketMarginFm string `json:"additionalScripBasketMarginFm"` AdditionalScripBasketMarginCi string `json:"additionalScripBasketMarginCi"` AdditionalScripBasketMarginCm string `json:"additionalScripBasketMarginCm"` BrokerageEi string `json:"brokerageEi"` BrokerageEm string `json:"brokerageEm"` BrokerageEc string `json:"brokerageEc"` BrokerageEh string `json:"brokerageEh"` BrokerageEb string `json:"brokerageEb"` BrokerageDi string `json:"brokerageDi"` BrokerageDm string `json:"brokerageDm"` BrokerageDh string `json:"brokerageDh"` BrokerageDb string `json:"brokerageDb"` BrokerageFi string `json:"brokerageFi"` BrokerageFm string `json:"brokerageFm"` BrokerageFh string `json:"brokerageFh"` BrokerageFb string `json:"brokerageFb"` BrokerageCi string `json:"brokerageCi"` BrokerageCm string `json:"brokerageCm"` BrokerageCh string `json:"brokerageCh"` BrokerageCb string `json:"brokerageCb"` PeakMargin string `json:"peakMargin"` RequestTime string `json:"requestTime"` } `json:"data"` Status string `json:"status"` }
Limits represents the trading limits and margin details for a user.
type MarginRequest ¶
type MarginRequest struct { Exchange string `json:"exchange"` // Exchange where the order is placed (e.g., NSE, BSE). Token string `json:"token"` // Unique identifier for the instrument. Quantity string `json:"quantity"` // Order quantity. Product string `json:"product"` // Product type (e.g., MIS, CNC, NRML). Price string `json:"price"` // Order price (applicable for LIMIT orders). TransactionType string `json:"transactionType"` // Order transaction type (BUY/SELL). OrderType string `json:"order"` // Type of order (e.g., MARKET, LIMIT). Symbol string `json:"symbol"` // Trading symbol of the instrument. }
MarginRequest represents the structure for a single order margin request.
type MarginResponse ¶
type MarginResponse struct { Cash string `json:"cash"` // Available cash balance. Charge struct { Brokerage int `json:"brokerage"` // Brokerage fees. SebiCharges float64 `json:"sebiCharges"` // SEBI charges. ExchangeTxnFee float64 `json:"exchangeTxnFee"` // Exchange transaction fees. StampDuty float64 `json:"stampDuty"` // Stamp duty applicable. Ipft float64 `json:"ipft"` // Investor Protection Fund Trust (IPFT) fees. TransactionTax int `json:"transactionTax"` // Transaction tax applied. Gst struct { Cgst int `json:"cgst"` // Central GST amount. Sgst int `json:"sgst"` // State GST amount. Igst float64 `json:"igst"` // Integrated GST amount. Total float64 `json:"total"` // Total GST amount. } `json:"gst"` Total float64 `json:"total"` // Total charge applied. } `json:"charge"` Margin string `json:"margin"` // Required margin for the order. MarginUsed string `json:"marginUsed"` // Margin already used. }
MarginResponse represents the response structure for margin calculations.
type MarketQuote ¶
type MarketQuote struct { Token int64 `json:"token"` // Unique identifier for the instrument. LTP int64 `json:"ltp"` // Last traded price of the instrument. Open int64 `json:"open"` // Opening price of the instrument for the trading session. High int64 `json:"high"` // Highest price of the instrument in the current session. Low int64 `json:"low"` // Lowest price of the instrument in the current session. Close int64 `json:"close"` // Closing price of the instrument from the previous session. Volume int64 `json:"volume"` // Total traded volume of the instrument. TotalBuyQty int64 `json:"totalBuyQty"` // Total quantity of buy orders in the market. TotalSellQty int64 `json:"totalSellQty"` // Total quantity of sell orders in the market. LTT int64 `json:"ltt"` // Last trade time of the instrument (epoch timestamp). Status string `json:"status"` // API response status (e.g., "success" or "error"). }
MarketQuote represents the response structure for market quotes.
type OptionChainResponse ¶ added in v0.0.7
type OptionChainResponse struct { Data []struct { Exchange string `json:"exchange"` Symbol string `json:"symbol"` Token string `json:"token"` OptionType string `json:"optionType"` StrikePrice string `json:"strikePrice"` PricePrecision string `json:"pricePrecision"` TickSize string `json:"tickSize"` LotSize string `json:"lotSize"` } `json:"data"` Status string `json:"status"` }
OptionChainResponse represents the API response structure for fetching option chain details.
type OptionChainSymbolResponse ¶ added in v0.0.6
type OptionChainSymbolResponse struct { Data map[string][]string `json:"data"` // A map containing option chain symbols grouped by category. Status string `json:"status"` // API response status (e.g., "success" or "error"). }
OptionChainSymbolResponse represents the API response structure for retrieving option chain symbols.
type OrderDetailsResponse ¶ added in v0.0.10
type OrderDetailsResponse struct { Data []struct { Status string `json:"status"` Exchange string `json:"exchange"` Symbol string `json:"symbol"` ID string `json:"id"` Price string `json:"price"` Quantity string `json:"quantity"` Product string `json:"product"` OrderStatus string `json:"orderStatus"` ReportType string `json:"reportType"` TransactionType string `json:"transactionType"` Order string `json:"order"` FillShares string `json:"fillShares"` AveragePrice string `json:"averagePrice"` RejectReason string `json:"rejectReason"` ExchangeOrderID string `json:"exchangeOrderID"` CancelQuantity string `json:"cancelQuantity"` Remarks string `json:"remarks"` DisclosedQuantity string `json:"disclosedQuantity"` OrderTriggerPrice string `json:"orderTriggerPrice"` Retention string `json:"retention"` BookProfitPrice string `json:"bookProfitPrice"` BookLossPrice string `json:"bookLossPrice"` TrailingPrice string `json:"trailingPrice"` Amo string `json:"amo"` PricePrecision string `json:"pricePrecision"` TickSize string `json:"tickSize"` LotSize string `json:"lotSize"` Token string `json:"token"` TimeStamp string `json:"timeStamp"` OrderTime string `json:"orderTime"` ExchangeUpdateTime string `json:"exchangeUpdateTime"` RequestTime string `json:"requestTime"` ErrorMessage string `json:"errorMessage"` } `json:"data"` Status string `json:"status"` }
type OrderMargin ¶
type OrderMargin struct { Data MarginResponse `json:"data"` // Margin calculation details. Status string `json:"status"` // API response status (e.g., "success" or "error"). }
OrderMargin represents the API response for a single order margin request.
type OrderRequest ¶
type OrderRequest struct { Exchange string `json:"exchange"` // Exchange where the order is placed (e.g., NSE, BSE). Token string `json:"token"` // Unique identifier for the instrument. Quantity string `json:"quantity"` // Order quantity. DisclosedQty string `json:"disclosedQty,omitempty"` // Disclosed quantity (optional). Product string `json:"product"` // Product type (e.g., MIS, CNC, NRML). Symbol string `json:"symbol"` // Trading symbol of the instrument. TransactionType string `json:"transactionType"` // Order transaction type (BUY/SELL). OrderType string `json:"order"` // Type of order (e.g., MARKET, LIMIT). Price string `json:"price"` // Order price (applicable for LIMIT orders). Validity string `json:"validity"` // Order validity (e.g., DAY, IOC). Tags string `json:"tags,omitempty"` // Custom tags for order tracking (optional). AMO bool `json:"amo,omitempty"` // Indicates if the order is an After Market Order (AMO). TriggerPrice string `json:"triggerPrice,omitempty"` // Trigger price for stop-loss or conditional orders. BookLossPrice string `json:"bookLossPrice,omitempty"` // Book loss price for risk management. }
OrderRequest represents the structure for placing an order.
type OrderResponse ¶
type OrderResponse struct { Status string `json:"status"` // API response status (e.g., "success", "error"). Message string `json:"message,omitempty"` // Message from the API (if any). ErrorCode string `json:"errorCode,omitempty"` // Error code in case of failure. Data struct { OrderNo string `json:"orderNo,omitempty"` // Order number assigned by the exchange. RequestTime string `json:"requestTime,omitempty"` // Timestamp of the order request. } `json:"data,omitempty"` }
OrderResponse represents the API response after placing an order.
type Position ¶
type Position struct { AvgPrice string `json:"avgPrice"` // Average price of the position. BreakEvenPrice string `json:"breakEvenPrice"` // Break-even price of the position. CarryForwarAvgPrice string `json:"carryForwarAvgPrice"` // Carry-forward average price of the position. CarryForwardBuyAmount string `json:"carryForwardBuyAmount"` // Carry-forward buy amount. CarryForwardBuyAvgPrice string `json:"carryForwardBuyAvgPrice"` // Carry-forward buy average price. CarryForwardBuyQty string `json:"carryForwardBuyQty"` // Carry-forward buy quantity. CarryForwardSellAmount string `json:"carryForwardSellAmount"` // Carry-forward sell amount. CarryForwardSellAvgPrice string `json:"carryForwardSellAvgPrice"` // Carry-forward sell average price. CarryForwardSellQty string `json:"carryForwardSellQty"` // Carry-forward sell quantity. DayBuyAmount string `json:"dayBuyAmount"` // Day buy amount. DayBuyAvgPrice string `json:"dayBuyAvgPrice"` // Day buy average price. DayBuyQty string `json:"dayBuyQty"` // Day buy quantity. DaySellAmount string `json:"daySellAmount"` // Day sell amount. DaySellAvgPrice string `json:"daySellAvgPrice"` // Day sell average price. DaySellQty string `json:"daySellQty"` // Day sell quantity. Exchange string `json:"exchange"` // Exchange where the position is held. LotSize string `json:"lotSize"` // Lot size of the position. Ltp string `json:"ltp"` // Last traded price of the position. Multiplier string `json:"multiplier"` // Multiplier of the position. NetBuyQty string `json:"netBuyQty"` // Net buy quantity. NetSellQty string `json:"netSellQty"` // Net sell quantity. NetUploadPrice string `json:"netUploadPrice"` // Net upload price. OpenBuyAmount string `json:"openBuyAmount"` // Open buy amount. OpenBuyAvgPrice string `json:"openBuyAvgPrice"` // Open buy average price. OpenBuyQty string `json:"openBuyQty"` // Open buy quantity. OpenSellAmount string `json:"openSellAmount"` // Open sell amount. OpenSellAvgPrice string `json:"openSellAvgPrice"` // Open sell average price. OpenSellQty string `json:"openSellQty"` // Open sell quantity. Pnl string `json:"pnl"` // Profit and loss of the position. PriceFactor string `json:"priceFactor"` // Price factor of the position. PricePrecision string `json:"pricePrecision"` // Price precision of the position. Product string `json:"product"` // Product type of the position. Qty string `json:"qty"` // Quantity of the position. RealisedPnL string `json:"realisedPnL"` // Realised profit and loss of the position. Symbol string `json:"symbol"` // Trading symbol of the position. TickSize string `json:"tickSize"` // Tick size of the position. Token string `json:"token"` // Token of the position. UnRealisedPnl string `json:"unRealisedPnl"` // Unrealised profit and loss of the position. UnrealisedMarkToMarket string `json:"unrealisedMarkToMarket"` // Unrealised mark-to-market of the position. UploadPrice string `json:"uploadPrice"` // Upload price of the position. }
type PositionsResponse ¶
type PositionsResponse struct { Data []Position `json:"data"` // List of positions held by the user. Status string `json:"status"` // API response status (e.g., "success" or "error"). }
PositionsResponse represents the API response for user positions.
type User ¶
type User struct { Data struct { AccountID string `json:"accountID"` // Unique identifier for the user's account. Address string `json:"address"` // Residential address of the user. BankDetails []struct { Vpa string `json:"vpa"` // Virtual Payment Address (UPI). BankName string `json:"bankName"` // Name of the bank associated with the account. AccountType string `json:"accountType"` // Type of bank account (e.g., Savings, Current). AccountNumber string `json:"accountNumber"` // Account number linked to the user. } `json:"bankDetails"` // List of bank accounts associated with the user. Blocked bool `json:"blocked"` // Indicates if the user's account is blocked. City string `json:"city"` // City of residence. DepositoryIDs struct { String string `json:"String"` // Depository participant ID as a string. Valid bool `json:"Valid"` // Boolean indicating if the depository ID is valid. } `json:"depositoryIDs"` // User's depository information. Email string `json:"email"` // User's registered email address. Exchanges []string `json:"exchanges"` // List of exchanges the user has access to. ID string `json:"id"` // Unique identifier for the user. Image string `json:"image"` // Profile image URL of the user. Name string `json:"name"` // Full name of the user. OrdersTypes []string `json:"ordersTypes"` // Types of orders the user can place. Pan string `json:"pan"` // Permanent Account Number (PAN) of the user. Phone string `json:"phone"` // User's registered phone number. Products []string `json:"products"` // List of financial products the user has access to. State string `json:"state"` // State of residence. TotpEnabled bool `json:"totpEnabled"` // Indicates whether TOTP-based 2FA is enabled. UserType string `json:"userType"` // Type of user (e.g., Retail, Institutional). } `json:"data"` // Data field containing user details. Status string `json:"status"` // Status of the API response (e.g., "success" or "error"). }
User represents the structure of user details received from the Tiqs API.