Research Call¶
The Research Call module provides users with expert stock recommendations and insights generated by a research or advisory team. These calls help users make informed investment or trading decisions based on professional analysis.
Type | API Endpoint | Description |
---|---|---|
POST | /research/get/admin/researchcall |
Retrieves a list of all admin-level research calls. |
POST | /research/create/researchcall |
Creates a new research call (e.g., Buy/Sell recommendation). |
GET | /research/modifiedcallnotification |
Fetches notifications for modified research calls. |
POST | /research/preview/researchcall |
Previews a research call before creation or publication. |
POST | /research/delete/researchcall |
Deletes an existing research call. |
POST | /research/getResearchCall |
Retrieves available research calls for end users. |
Research Admin¶
Get All Research Calls¶
Fetches a list of research calls created by admin users, filtered by date and status. This API is typically used by administrative or back-office systems to monitor, audit, or manage research call recommendations.
Request Structure
Input parameters
Field | Type | Description |
---|---|---|
fromDate | string | The start datetime of the research call query range (YYYY-MM-DD HH:mm). |
toDate | string | The end datetime of the research call query range (YYYY-MM-DD HH:mm). |
status | string | Filter research calls by status (e.g., Active, Closed, All). |
Response Structure
{
"status": "Ok",
"message": "Success",
"result": [
{
"Equity": {
"Intraday": [
{
"researchCallId": 2,
"legsCount": null,
"createdOn": "2025-04-26T16:04:08.353+00:00",
"expiryDate": "2025-04-26T00:00:00.000+00:00",
"speclizationTag": "",
"status": "open",
"description": "Buy TCS-EQ @ 3448.00 with a target of 3448.00 Stop Loss 3448.00",
"shortDesc": "Buy TCS-EQ @ 3448.00 with a target of 3448.00 Stop Loss 3448.00",
"remarks": null,
"publish": null,
"validity": null,
"scripdetails": [
{
"scripId": 3,
"orderType": "Regular",
"priceUpperBound": "8.22",
"priceLowerBound": "8.22",
"triggerPrice": null,
"targetUpperBound": "8.22",
"targetLowerBound": "8.22",
"stopLossUpperBound": "8.22",
"stopLossLowerBound": "8.22",
"disClosedQty": null,
"expiry": "",
"tradingSymbol": "IDEA-BE",
"validityDays": null,
"mktProtection": null,
"ret": null,
"product": "MIS",
"lotSize": "1",
"weekTag": null,
"priceType": "SL",
"formattedInsName": "IDEA-BE",
"token": "14370",
"transType": "buy",
"sortOrder": null,
"qty": "1",
"trailingStopLoss": null,
"exchange": "NSE"
}
]
}
],
"Delivery": [
{
"researchCallId": 4,
"legsCount": null,
"createdOn": "2025-05-01T07:31:25.959+00:00",
"expiryDate": "2025-05-01T00:00:00.000+00:00",
"speclizationTag": "",
"status": "open",
"description": "Buy INFY-EQ @ 1600 with a target of 1400 Stop Loss 1500",
"shortDesc": "Buy INFY-EQ @ 1600 with a target of 1400 Stop Loss 1500",
"remarks": null,
"publish": null,
"validity": null,
"scripdetails": [
{
"scripId": 5,
"orderType": "Regular",
"priceUpperBound": "8.22",
"priceLowerBound": "8.22",
"triggerPrice": null,
"targetUpperBound": "8.22",
"targetLowerBound": "8.22",
"stopLossUpperBound": "8.22",
"stopLossLowerBound": "8.22",
"disClosedQty": null,
"expiry": "",
"tradingSymbol": "IDEA-BE",
"validityDays": null,
"mktProtection": null,
"ret": null,
"product": "MIS",
"lotSize": "1",
"weekTag": null,
"priceType": "SL",
"formattedInsName": "IDEA-BE",
"token": "14370",
"transType": "buy",
"sortOrder": null,
"qty": "1",
"trailingStopLoss": null,
"exchange": "NSE"
}
]
}
]
}
}
]
}
Parameters
Field | Type | Description |
---|---|---|
status | string | API response status (e.g., "Ok") |
message | string | Human-readable message (e.g., "Success") |
result | array | Contains categorized research calls |
researchCallId | number | Unique identifier of the research call |
legsCount | number|null | Number of legs (for multi-leg strategies), null if not used |
createdOn | datetime | Timestamp of call creation (ISO format) |
expiryDate | datetime | Call's expiry date |
status | string | Status of the research call (e.g., "open") |
speclizationTag | string | Sector/theme tag |
description | string | Full detailed description |
shortDesc | string | Short summary (for notification/preview) |
remarks | string|null | Additional internal comments or metadata |
publish | string|null | Indicates if the call is published ("y", "n", or null) |
validity | string|null | Validity duration, if applicable |
scripdetails | array | List of securities involved in the call |
scripId | number | Unique scrip identifier |
orderType | string | Order type (Regular, etc.) |
priceUpperBound | string | Upper entry price bound |
priceLowerBound | string | Lower entry price bound |
triggerPrice | string|null | Trigger price for stop-limit orders |
targetUpperBound | string | Upper target price |
targetLowerBound | string | Lower target price |
stopLossUpperBound | string | Upper stop-loss price |
stopLossLowerBound | string | Lower stop-loss price |
disClosedQty | string|null | Disclosed quantity for the order |
expiry | string | Expiry (blank for equities, used in F\&O) |
tradingSymbol | string | Exchange symbol (e.g., "IDEA-BE", "INFY-EQ") |
validityDays | number|null | Days until order expiry (if applicable) |
mktProtection | string|null | Market protection price band |
ret | string|null | Return type for special strategies |
product | string | Product type (e.g., MIS, NRML) |
lotSize | string | Lot size for the scrip |
weekTag | string|null | Weekly tag, if any (e.g., "W1") |
priceType | string | Price type (e.g., SL, LMT, etc.) |
formattedInsName | string | Friendly display name for the scrip |
token | string | Internal instrument token used for order placement |
transType | string | Transaction type (buy / sell) |
sortOrder | number|null | Display order in UI |
qty | string | Quantity to buy/sell |
trailingStopLoss | number|null | Trailing stop loss if enabled |
exchange | string | Exchange code (NSE, BSE, etc.) |
Create Research Call¶
Used to create a new research call (Buy/Sell recommendation) by analysts or admin users. These calls are typically published to clients or users for informational or trading purposes.
Request Structure
{
"scripCount": "",
"basketName": "Research Call",
"userId": [
"test101"
],
"channels": [
"Push Notification"
],
"expiryDate": "2025-04-16",
"title": "",
"category": "Equity",
"subCategory": "Intraday",
"shortDescription": "Buy IDEA-BE @ 8.22 with a target of 8.22 Stop Loss 8.22",
"longDescription": "Buy IDEA-BE @ 8.22 with a target of 8.22 Stop Loss 8.22",
"createdBy": "",
"source": "",
"tags": "",
"sendpushNotification": 1,
"pushNotificationTitle": "rmoney",
"publish": "y",
"scrips": [
{
"remarks": "",
"exchange": "NSE",
"token": "14370",
"tags": "",
"qty": "1",
"priceUpperBound": "8.22",
"priceLowerBound": "8.22",
"targetUpperBound": "8.22",
"targetLowerBound": "8.22",
"stoplossUpperBound": "8.22",
"stoplossLowerBound": "8.22",
"triggerPrice": "0",
"product": "MIS",
"tradingSymbol": "IDEA-BE",
"transType": "buy",
"priceType": "SL",
"orderType": "Regular",
"retention": "DAY",
"status": "open",
"researchCallId": 0,
"expiryDate": "",
"validity": "",
"formattedInsName": "IDEA-BE",
"lotSize": "1"
}
]
}
Input parameters
Field | Type | Description |
---|---|---|
remarks | string | Analyst or system remarks. |
exchange | string | Exchange name. Example: NSE, BSE. |
token | string | Internal scrip token ID. |
tags | string | Optional tags. |
qty | string | Quantity to be bought/sold. |
priceUpperBound | string | Maximum buy/sell price. |
priceLowerBound | string | Minimum buy/sell price. |
targetUpperBound | string | Upper target range for the call. |
targetLowerBound | string | Lower target range for the call. |
stoplossUpperBound | string | Upper stop loss limit. |
stoplossLowerBound | string | Lower stop loss limit. |
triggerPrice | string | Trigger price for SL/SL-M orders. |
product | string | Product type. Example: MIS, CNC, etc. |
tradingSymbol | string | Trading symbol as used on the exchange. |
transType | string | buy or sell. |
priceType | string | LMT, MKT, SL, SL-M, etc. |
orderType | string | Order type. Usually Regular. |
retention | string | Order validity. Example: DAY, IOC. |
status | string | Call status, e.g., open, closed. |
researchCallId | number | Set to 0 for new calls; used for updates. |
expiryDate | string | Expiry for F\&O scrips if applicable. |
validity | string | Validity period for the order. |
formattedInsName | string | Display name of the instrument. |
lotSize | string | Lot size of the instrument (usually 1 for equities). |
Response Structure
Parameters
Field | Type | Description |
---|---|---|
status | string | Indicates the status of the request. "Ok" signifies a successful API processing. |
message | string | A human-readable message confirming the action was successful. |
result | array[string] | An array of result messages. Here, it simply contains "Success" to confirm the operation (e.g., research call creation or update) was executed correctly. |
Modify Research Call¶
The Modify Research Call API is used to update an existing research recommendation (buy/sell call) sent to users. It enables editing key details such as price range, targets, stop-loss, descriptions, and distribution parameters.
Request Structure
{
"shortDescription": "buy NIFTY1 @ 265.29-0 with a target of 265.29-0 in days. Stop Loss 265.29-0",
"status": "close",
"researchcallId": 3,
"scrips": [
{
"remarks": "",
"exchange": "NSE",
"token": "537708",
"tags": "",
"qty": "1",
"priceUpperBound": 0,
"priceLowerBound": "265.29",
"targetUpperBound": 0,
"targetLowerBound": "265.29",
"stoplossUpperBound": 0,
"stoplossLowerBound": "265.29",
"triggerPrice": "265.29",
"product": "MIS",
"tradingSymbol": "NIFTY1",
"transType": "buy",
"priceType": "SL",
"orderType": "Regular",
"retention": "DAY",
"status": "close",
"researchCallId": 0,
"expiryDate": "",
"validity": ""
}
]
}
Input Parameter
Field | Type | Description |
---|---|---|
shortDescription | string | Summary of the trade idea shown to users. Ex: "Buy NIFTY1 @ 265.29-0..." |
status | string | Status of the research call (e.g., open, close, executed). |
researchcallId | integer | ID of the research call to be modified. Required. |
scrips | array | List of updated script (instrument) details included in this call. |
remarks | string | Analyst notes or extra info (optional). |
exchange | string | Exchange where the instrument is listed. (e.g., NSE, BSE, NFO) |
token | string | Unique instrument token ID. |
tags | string | Optional metadata tags. |
qty | string | Quantity to trade. |
priceUpperBound | number | Highest acceptable entry price (set to 0 if not used). |
priceLowerBound | string | Lowest acceptable entry price. |
targetUpperBound | number | Upper range of target price (set to 0 if not used). |
targetLowerBound | string | Lower range of target price. |
stoplossUpperBound | number | Upper range for stop loss (set to 0 if not used). |
stoplossLowerBound | string | Lower stop loss price. |
triggerPrice | string | Trigger price for SL or conditional order. |
product | string | Product type (MIS, CNC, etc.). |
tradingSymbol | string | Symbol name of the instrument (e.g., NIFTY1). |
transType | string | Type of transaction: buy or sell. |
priceType | string | Price order type: SL, Limit, Market. |
orderType | string | Order mode: Regular, BO, CO, etc. |
retention | string | Order validity (usually DAY). |
status | string | Status of this specific scrip in the call (open, close). |
researchCallId | integer | Always keep 0 inside scrips when modifying the call via top-level ID. |
expiryDate | string | Optional. Derivative expiry date if applicable. |
validity | string | Optional. Duration for which order is valid. |
Response Structure
parameters
Field | Type | Description |
---|---|---|
status | string | Indicates the status of the request. "Ok" signifies a successful API processing. |
message | string | A human-readable message confirming the action was successful. |
result | array[string] | An array of result messages. Here, it simply contains "Success" to confirm the operation (e.g., research call creation or update) was executed correctly. |
Preview Research Call¶
This API is used to simulate or preview a research call before actually creating or executing it. It helps validate data like price bands, instruments, and overall structure without sending live notifications or placing any orders.
Request Structure
{
"scripCount": "",
"basketName": "Research Call",
"userId": [
"test101"
],
"channels": [
"Push Notification"
],
"expiryDate": "2025-04-16",
"title": "",
"category": "Equity",
"subCategory": "Intraday",
"shortDescription": "Buy IDEA-BE @ 8.22 with a target of 8.22 Stop Loss 8.22",
"longDescription": "Buy IDEA-BE @ 8.22 with a target of 8.22 Stop Loss 8.22",
"createdBy": "",
"source": "",
"tags": "",
"sendpushNotification": 1,
"pushNotificationTitle": "Test",
"publish": "y",
"scrips": [
{
"remarks": "",
"exchange": "NSE",
"token": "14370",
"tags": "",
"qty": "1",
"priceUpperBound": "8.22",
"priceLowerBound": "8.22",
"targetUpperBound": "8.22",
"targetLowerBound": "8.22",
"stoplossUpperBound": "8.22",
"stoplossLowerBound": "8.22",
"triggerPrice": "0",
"product": "MIS",
"tradingSymbol": "IDEA-BE",
"transType": "buy",
"priceType": "SL",
"orderType": "Regular",
"retention": "DAY",
"status": "open",
"researchCallId": 0,
"expiryDate": "",
"validity": "",
"formattedInsName": "IDEA-BE",
"lotSize": "1"
}
]
}
Input parameters
Field | Type | Description |
---|---|---|
scripCount | string | (Optional) Number of instruments/scrips in the research call. |
basketName | string | Name of the research basket (e.g., "Research Call"). |
userId | array | List of user IDs to whom the call is applicable. |
channels | array | Notification channels like Push Notification, Email, etc. |
expiryDate | string | Date until the call is valid (format: YYYY-MM-DD). |
title | string | (Optional) Title of the research call (e.g., “Nifty Buy Call”). |
category | string | Market segment, e.g., Equity, Commodity, etc. |
subCategory | string | Type of strategy: Intraday, BTST, Positional, etc. |
shortDescription | string | Brief summary shown to users (e.g., Buy call with price and SL). |
longDescription | string | Detailed reasoning behind the trade or call. |
createdBy | string | (Optional) Creator's ID or analyst's name. |
source | string | (Optional) Source of the recommendation (e.g., Technical Analysis). |
tags | string | (Optional) Tags for filtering or categorization. |
sendpushNotification | integer | 1 to enable push notification simulation/preview; 0 to disable. |
pushNotificationTitle | string | Title of the push notification to be sent (e.g., “rmoney”). |
publish | string | "y" to simulate publishing the call; "n" to simulate draft/preview only. |
scrips | array | List of scrip details associated with this call (see below). |
remarks | string | (Optional) Additional notes or internal remarks. |
exchange | string | Exchange code (NSE, BSE, NFO, etc.). |
token | string | Instrument token ID (unique identifier). |
tags | string | (Optional) Tags for the instrument. |
qty | string | Quantity to buy/sell. |
priceUpperBound | string | Maximum buy/sell price allowed. |
priceLowerBound | string | Minimum buy/sell price allowed. |
targetUpperBound | string | Upper target level. |
targetLowerBound | string | Lower target level. |
stoplossUpperBound | string | Upper stop-loss price. |
stoplossLowerBound | string | Lower stop-loss price. |
triggerPrice | string | Price to trigger stop-loss or limit order. |
product | string | Product type: MIS (Intraday), CNC, NRML, etc. |
tradingSymbol | string | Tradable symbol on the exchange (e.g., IDEA-BE). |
transType | string | Trade direction: buy or sell. |
priceType | string | Order pricing type: SL, Limit, Market, etc. |
orderType | string | Regular, BO, or CO (type of order structure). |
retention | string | Order validity: DAY, IOC, etc. |
status | string | open or close (current status of this scrip in the research call). |
researchCallId | integer | Usually 0 for new calls. Populated for modify/delete scenarios. |
expiryDate | string | (Optional) Expiry date for derivatives/futures. |
validity | string | (Optional) How long the scrip is valid in the basket. |
formattedInsName | string | Readable display name of the instrument. |
lotSize | string | Lot size applicable for this instrument. |
Response Structure
{
"status": "Ok",
"message": "Success",
"result": [
{
"deviceCount": 0,
"shortDescription": [
"Buy IDEA-BE @ 8.22 with a target of 8.22 Stop Loss 8.22"
]
}
]
}
Parameters
Field | Type | Description |
---|---|---|
status | string | Status of the API call (Ok indicates success). |
message | string | Response message (Success confirms no error). |
result | array | List containing details of the previewed research call(s). |
deviceCount | integer | Number of user devices (e.g., mobiles) registered for push notifications. |
shortDescription | array[string] | Summary of the research call(s) previewed. |
Delete Research Call¶
This API is used to permanently delete an existing research call from the system. It is typically used by admins or authorized users when a research recommendation is no longer valid or was created in error.
Request Structure
Input parameters
Field | Type | Description |
---|---|---|
researchcallId | string | Unique identifier of the research call you want to delete. |
Response Structure
Parameters
Field | Type | Description |
---|---|---|
status | string | API call status. "Ok" indicates that the deletion request was processed successfully. |
message | string | A general message confirming the outcome of the operation, e.g., "Success". |
result | array | Usually returns an array of results. In this case, it's empty, which simply means the delete action was successful but there is no additional information to return. |
Research User¶
Fetch Research Call¶
This API is used to retrieve research call data based on a given date range and optional status filter. It helps users or admins fetch research calls that were created or published within a specific time window.
Response Structure
{
"status": "Ok",
"message": "Success",
"result": [
{
"Equity": {
"Intraday": [
{
"basketId": 6,
"createdOn": "2025-06-11 11:09:26.805000",
"expiryDate": "2025-06-11T00:00:00.000+00:00",
"status": "open",
"speclizationTag": "",
"description": "Buy TCS-EQ @ 3462.90 with a target of 3462.90 Stop Loss 3462.90",
"shortDesc": "Buy TCS-EQ @ 3462.90 with a target of 3462.90 Stop Loss 3462.90",
"sortOrder": 0,
"scripdetails": [
{
"scripId": 26,
"orderType": "Regular",
"priceUpperBound": "3462.90",
"priceLowerBound": "3462.90",
"triggerPrice": null,
"targetUpperBound": "3462.90",
"targetLowerBound": "3462.90",
"stopLossUpperBound": "3462.90",
"stopLossLowerBound": "3462.90",
"disClosedQty": null,
"expiry": "",
"tradingSymbol": "TCS-EQ",
"validityDays": null,
"mktProtection": null,
"ret": null,
"product": "NRML",
"lotSize": "1",
"weekTag": null,
"priceType": "SL",
"formattedInsName": "TCS-EQ",
"token": "11536",
"transType": "buy",
"qty": "1",
"trailingStopLoss": null,
"exchange": "NSE",
"sortOrder": null
}
]
}
],
"Delivery": [
{
"basketId": 4,
"createdOn": "2025-05-01 13:01:25.959000",
"expiryDate": "2025-05-01T00:00:00.000+00:00",
"status": "open",
"speclizationTag": "",
"description": "Buy INFY-EQ @ 1600 with a target of 1400 Stop Loss 1500",
"shortDesc": "Buy INFY-EQ @ 1600 with a target of 1400 Stop Loss 1500",
"sortOrder": 0,
"scripdetails": [
{
"scripId": 23,
"orderType": "Regular",
"priceUpperBound": "1600",
"priceLowerBound": "1600",
"triggerPrice": null,
"targetUpperBound": "1400",
"targetLowerBound": "1400",
"stopLossUpperBound": "1500",
"stopLossLowerBound": "1500",
"disClosedQty": null,
"expiry": "",
"tradingSymbol": "INFY-EQ",
"validityDays": null,
"mktProtection": null,
"ret": null,
"product": "NRML",
"lotSize": "1",
"weekTag": null,
"priceType": "SL",
"formattedInsName": "INFY-EQ",
"token": "1594",
"transType": "buy",
"qty": "1",
"trailingStopLoss": null,
"exchange": "NSE",
"sortOrder": null
}
]
}
]
}
}
]
}
Parameters
Field | Type | Description |
---|---|---|
status | string | Response status, e.g., "Ok" |
message | string | Status message, e.g., "Success" |
result | array | List of categorized research calls |
basketId | number | Unique ID for the research call basket |
createdOn | datetime | Timestamp of research call creation |
expiryDate | datetime | Date when the research call expires |
status | string | "open" or "close" — current status of the research call |
description | string | Full detailed description of the recommendation |
shortDesc | string | Short summary of the call (used in preview/push notifications) |
sortOrder | number | Optional UI sorting order |
speclizationTag | string | Sector or thematic tag |
scripdetails | array | List of scrips involved in the call |
scripId | number | Unique identifier for the scrip |
tradingSymbol | string | Exchange trading symbol (e.g., TCS-EQ, INFY-EQ) |
exchange | string | Exchange where it's listed (e.g., NSE) |
transType | string | Transaction type (buy or sell) |
qty | string | Quantity suggested in the call |
product | string | Product type (e.g., NRML, MIS) |
orderType | string | Order type (Regular) |
priceType | string | Price type (e.g., SL for stop loss) |
priceLowerBound | string | Entry price (lower bound) |
priceUpperBound | string | Entry price (upper bound) |
targetLowerBound | string | Target price (lower bound) |
targetUpperBound | string | Target price (upper bound) |
stopLossLowerBound | string | Stop loss price (lower bound) |
stopLossUpperBound | string | Stop loss price (upper bound) |
triggerPrice | string|null | Trigger price if any (used for SL-M type orders) |
lotSize | string | Lot size for the scrip |
formattedInsName | string | Readable name for the scrip |
token | string | Internal token identifier for the instrument |
expiry | string | Expiry date for F\&O instruments |
validityDays | number|null | Number of days the order is valid |
ret | string|null | Return type for order |
mktProtection | string|null | Market protection value |
weekTag | string|null | Tag for weekly expiry, if applicable |
sortOrder | number|null | Custom sorting order |
trailingStopLoss | number|null | Trailing stop loss if defined |