Appearance
trader.watchlists
4 methods on trader.watchlists. Each returns the answer's data and throws NoviqaError on a failed answer.
list
GET
/trader/v1/watchlistsWatchlists
The account's saved symbol lists in the order they were made, symbols by name in the trader's order; symbols the group no longer trades are left out. An account with no saved list gets the server's default Market Watch as one unsaved list with id 0 (none when the default is empty): create it with POST on the first change. The same list is on every device of the account.
Parameters
X-HST-Accountstring · headerIntended signed-in login captured by the browser tab before dispatch and retained across retries. A mismatch returns auth.account_changed (409) before mutation or refresh rotation. This never selects or authorizes an account; omission preserves existing API client compatibility.
Returns
Promise<Watchlist[]>The answer's
data.Errors
400
invalid_input: invalid input401
auth.session_expired: session expired, sign in again403
auth.invalid_terminal: this terminal cannot be used here403
auth.otp_enrol_required: your group requires one-time codes: set them up to continue403
auth.password_change_required: you must change your password first409
auth.account_changed: the signed-in account changed; sign in again before continuing500
internal: something went wrongts
import { trader } from "@/lib/noviqa"
const data = await trader.watchlists.list()bash
curl -X GET "$NOVIQA_API_URL/trader/v1/watchlists" \
-H "Authorization: Bearer $NOVIQA_TOKEN"json
{
"success": true,
"code": "ok",
"message": "done",
"data": [
{
"created_at": "2026-09-25T10:15:00Z",
"id": 1,
"name": "Ann Smith",
"symbols": [
"string"
],
"updated_at": "2026-09-25T10:15:00Z"
}
],
"request_id": "5b7f2c1e"
}ts
trader.watchlists.list(options?: RequestOptions): Promise<watchlist.Watchlist[]>create
POST
/trader/v1/watchlistsCreate a watchlist
name is required (trimmed, 1-32 characters); symbols are names the group trades, at most 200, repeats dropped, order kept. At most 20 lists per account. Answers the saved list. An investor (read-only) session is refused with trade.read_only.
Parameters
X-HST-Accountstring · headerIntended signed-in login captured by the browser tab before dispatch and retained across retries. A mismatch returns auth.account_changed (409) before mutation or refresh rotation. This never selects or authorizes an account; omission preserves existing API client compatibility.
Request body
namestringsymbolsstring[]replaces the list's symbols when sent
Returns
Promise<Watchlist>The answer's
data.Errors
400
invalid_input: invalid input401
auth.session_expired: session expired, sign in again403
auth.csrf_invalid: request refused: reload the page and try again403
auth.invalid_terminal: this terminal cannot be used here403
auth.otp_enrol_required: your group requires one-time codes: set them up to continue403
auth.password_change_required: you must change your password first403
trade.read_only: read-only access cannot trade409
auth.account_changed: the signed-in account changed; sign in again before continuing500
internal: something went wrongts
import { trader } from "@/lib/noviqa"
const data = await trader.watchlists.create({
name: "Majors",
symbols: [
"EURUSD",
"GBPUSD",
"USDJPY"
]
})bash
curl -X POST "$NOVIQA_API_URL/trader/v1/watchlists" \
-H "Authorization: Bearer $NOVIQA_TOKEN" \
-H "Content-Type: application/json" \
--data-raw '{
"name": "Majors",
"symbols": [
"EURUSD",
"GBPUSD",
"USDJPY"
]
}'json
{
"success": true,
"code": "ok",
"message": "done",
"data": {
"created_at": "2026-09-25T10:15:00Z",
"id": 1,
"name": "Ann Smith",
"symbols": [
"string"
],
"updated_at": "2026-09-25T10:15:00Z"
},
"request_id": "5b7f2c1e"
}ts
trader.watchlists.create(body: watchlist.Body, options?: RequestOptions): Promise<watchlist.Watchlist>update
PATCH
/trader/v1/watchlists/{id}Change a watchlist
Renames the list and/or replaces its symbols (symbols replaces the whole list; same rules as create). No version. not_found for another account's list. An investor (read-only) session is refused with trade.read_only.
Parameters
X-HST-Accountstring · headerIntended signed-in login captured by the browser tab before dispatch and retained across retries. A mismatch returns auth.account_changed (409) before mutation or refresh rotation. This never selects or authorizes an account; omission preserves existing API client compatibility.
idinteger · pathrequiredNumeric id.
Request body
namestringsymbolsstring[]replaces the list's symbols when sent
Returns
Promise<Watchlist>The answer's
data.Errors
400
invalid_input: invalid input401
auth.session_expired: session expired, sign in again403
auth.csrf_invalid: request refused: reload the page and try again403
auth.invalid_terminal: this terminal cannot be used here403
auth.otp_enrol_required: your group requires one-time codes: set them up to continue403
auth.password_change_required: you must change your password first403
trade.read_only: read-only access cannot trade404
not_found: not found409
auth.account_changed: the signed-in account changed; sign in again before continuing500
internal: something went wrongts
import { trader } from "@/lib/noviqa"
const data = await trader.watchlists.update(1, {
symbols: [
"EURUSD",
"XAUUSD"
]
})bash
curl -X PATCH "$NOVIQA_API_URL/trader/v1/watchlists/1" \
-H "Authorization: Bearer $NOVIQA_TOKEN" \
-H "Content-Type: application/json" \
--data-raw '{
"symbols": [
"EURUSD",
"XAUUSD"
]
}'json
{
"success": true,
"code": "ok",
"message": "done",
"data": {
"created_at": "2026-09-25T10:15:00Z",
"id": 1,
"name": "Ann Smith",
"symbols": [
"string"
],
"updated_at": "2026-09-25T10:15:00Z"
},
"request_id": "5b7f2c1e"
}ts
trader.watchlists.update(id: number, body: watchlist.Body, options?: RequestOptions): Promise<watchlist.Watchlist>delete
DELETE
/trader/v1/watchlists/{id}Delete a watchlist
not_found for another account's list. An investor (read-only) session is refused with trade.read_only.
Parameters
X-HST-Accountstring · headerIntended signed-in login captured by the browser tab before dispatch and retained across retries. A mismatch returns auth.account_changed (409) before mutation or refresh rotation. This never selects or authorizes an account; omission preserves existing API client compatibility.
idinteger · pathrequiredNumeric id.
Returns
Promise<null>The answer's
data.Errors
400
invalid_input: invalid input401
auth.session_expired: session expired, sign in again403
auth.csrf_invalid: request refused: reload the page and try again403
auth.invalid_terminal: this terminal cannot be used here403
auth.otp_enrol_required: your group requires one-time codes: set them up to continue403
auth.password_change_required: you must change your password first403
trade.read_only: read-only access cannot trade404
not_found: not found409
auth.account_changed: the signed-in account changed; sign in again before continuing500
internal: something went wrongts
import { trader } from "@/lib/noviqa"
const data = await trader.watchlists.delete(1)bash
curl -X DELETE "$NOVIQA_API_URL/trader/v1/watchlists/1" \
-H "Authorization: Bearer $NOVIQA_TOKEN"json
{
"success": true,
"code": "ok",
"message": "done",
"data": null,
"request_id": "5b7f2c1e"
}ts
trader.watchlists.delete(id: number, options?: RequestOptions): Promise<null>