Appearance
staff.market
7 methods on staff.market. Each returns the answer's data and throws NoviqaError on a failed answer.
dayStats
GET
/admin/v1/market/day-statsTrading day statistics (raw)
Each asked symbol's latest trading day (server clock) at raw prices: open, high, low and close of the chart price, bid/ask/last highs and lows, the previous close and the change in percent. Prices are 0 until seen that day. Sorted by symbol name; symbols without statistics are left out.
Parameters
idsstring · querySymbol ids separated by commas, e.g.
1,2,3 (at most 1000). Absent: every active symbol within that bound.Returns
Promise<DayStats[]>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 first500
internal: something went wrongts
import { staff } from "@/lib/noviqa"
const data = await staff.market.dayStats({
ids: "string"
})bash
curl -X GET "$NOVIQA_API_URL/admin/v1/market/day-stats?ids=string" \
-H "Authorization: Bearer $NOVIQA_TOKEN"json
{
"success": true,
"code": "ok",
"message": "done",
"data": [
{
"ask_high": "1.08452",
"ask_low": "1.08452",
"bid_high": "1.08452",
"bid_low": "1.08452",
"change_pct": "1.08452",
"close": "1.08452",
"day": "string",
"digits": 5,
"high": "1.08452",
"last_high": "1.08452",
"last_low": "1.08452",
"low": "1.08452"
}
],
"request_id": "5b7f2c1e"
}ts
staff.market.dayStats(query?: { ids? }, options?: RequestOptions): Promise<market.DayStats[]>history
GET
/admin/v1/market/historyChart bars (group-resolved prices)
The newest count_back bars of a symbol that start before to, oldest first, at group-resolved prices by default; raw=true requires prices.raw, built from one-minute bars of the symbol's chart price (price_side). Day, week and month bars start at server midnight (server_offset_sec); weeks start on Sunday, months on the 1st. no_data is true when nothing exists before the requested end. Page back by sending the t of the oldest bar as the next to.
Parameters
symbolstring · queryrequiredSymbol name, e.g. EURUSD. Unknown: not_found.
timeframestring · queryBar length, default H1.
M1 M5 M15 M30 H1 H4 D1 W1 MNtointeger · queryEnd, unix seconds (bars start before it). Default: now.
count_backinteger · queryBars, default 500.
Returns
Promise<History>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 first404
not_found: not found500
internal: something went wrongts
import { staff } from "@/lib/noviqa"
const data = await staff.market.history({
symbol: "string",
timeframe: "M1",
to: 1,
count_back: 1
})bash
curl -X GET "$NOVIQA_API_URL/admin/v1/market/history?symbol=string&timeframe=M1&to=1&count_back=1" \
-H "Authorization: Bearer $NOVIQA_TOKEN"json
{
"success": true,
"code": "ok",
"message": "done",
"data": {
"bars": [
{
"c": "1.08452",
"h": "1.08452",
"l": "1.08452",
"n": 1,
"o": "1.08452",
"t": 1
}
],
"digits": 5,
"no_data": true,
"price_side": "string",
"server_offset_sec": 1,
"symbol": "EURUSD",
"timeframe": "string"
},
"request_id": "5b7f2c1e"
}ts
staff.market.history(query: { symbol, timeframe?, to?, count_back? }, options?: RequestOptions): Promise<market.History>inUse
GET
/admin/v1/market/in-useSymbols in use
Names of the symbols with open positions or active pending orders on accounts in the caller's group scope. A Market Watch may not hide these symbols.
Returns
Promise<docSymbolsInUse>The answer's
data.Errors
401
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 first500
internal: something went wrongts
import { staff } from "@/lib/noviqa"
const data = await staff.market.inUse()bash
curl -X GET "$NOVIQA_API_URL/admin/v1/market/in-use" \
-H "Authorization: Bearer $NOVIQA_TOKEN"json
{
"success": true,
"code": "ok",
"message": "done",
"data": {
"symbols": [
"string"
]
},
"request_id": "5b7f2c1e"
}ts
staff.market.inUse(options?: RequestOptions): Promise<http.docSymbolsInUse>markups
GET
/admin/v1/market/markupsOwn group's spread markups
The spread markup, in points, the caller's own group adds to each active symbol: the prices the staff member sees unless they read raw prices. Symbols without a markup are left out (they are shown at the raw price). Sorted by symbol id. Needs no right.
Returns
Promise<Markup[]>The answer's
data.Errors
401
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 first500
internal: something went wrongts
import { staff } from "@/lib/noviqa"
const data = await staff.market.markups()bash
curl -X GET "$NOVIQA_API_URL/admin/v1/market/markups" \
-H "Authorization: Bearer $NOVIQA_TOKEN"json
{
"success": true,
"code": "ok",
"message": "done",
"data": [
{
"ask_pts": 1,
"bid_pts": 1,
"digits": 5,
"symbol_id": 1
}
],
"request_id": "5b7f2c1e"
}ts
staff.market.markups(options?: RequestOptions): Promise<market.Markup[]>quotes
GET
/admin/v1/market/quotesLatest group-resolved prices
Authenticated staff see their own group prices and symbol visibility. raw=true requires prices.raw and returns raw feed prices.
Parameters
idsstring · querySymbol ids separated by commas, e.g.
1,2,3 (at most 1000). Absent: every active symbol within that bound.rawboolean · queryRaw feed mode; requires prices.raw.
Returns
Promise<Quote[]>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 first500
internal: something went wrongts
import { staff } from "@/lib/noviqa"
const data = await staff.market.quotes({
ids: "string",
raw: true
})bash
curl -X GET "$NOVIQA_API_URL/admin/v1/market/quotes?ids=string&raw=true" \
-H "Authorization: Bearer $NOVIQA_TOKEN"json
{
"success": true,
"code": "ok",
"message": "done",
"data": [
{
"ask": "1.08460",
"bid": "1.08452",
"digits": 5,
"last": "1.08452",
"symbol": "EURUSD",
"symbol_id": 1,
"time": "2026-09-25T10:15:00Z"
}
],
"request_id": "5b7f2c1e"
}ts
staff.market.quotes(query?: { ids?, raw? }, options?: RequestOptions): Promise<market.Quote[]>symbols
GET
/admin/v1/market/symbolsStaff market symbol catalogue
Symbols visible to the signed-in staff member's own group by default; raw=true requires prices.raw and returns active base specifications matching the raw quote stream. No configuration capability is implied.
Parameters
rawboolean · queryRaw feed catalogue; requires prices.raw. Absent or false keeps own-group visibility and specifications.
Returns
Promise<Symbol[]>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 first500
internal: something went wrongts
import { staff } from "@/lib/noviqa"
const data = await staff.market.symbols({
raw: true
})bash
curl -X GET "$NOVIQA_API_URL/admin/v1/market/symbols?raw=true" \
-H "Authorization: Bearer $NOVIQA_TOKEN"json
{
"success": true,
"code": "ok",
"message": "done",
"data": [
{
"allowed_expirations": [
"string"
],
"allowed_fill_policies": [
"string"
],
"allowed_order_types": [
"string"
],
"background_color": "string",
"base_currency": "string",
"base_currency_digits": 1,
"basis_symbol": "string",
"book_depth": 1,
"calc_type": "forex",
"category": "string",
"cfi_code": "string",
"chart_price": "bid"
}
],
"request_id": "5b7f2c1e"
}ts
staff.market.symbols(query?: { raw? }, options?: RequestOptions): Promise<market.Symbol[]>ticks
GET
/admin/v1/market/ticksStored prices (raw)
The newest limit stored prices of a symbol in [from, to), oldest first, at group-resolved prices by default; raw=true requires prices.raw, including (by default) the ones the price filters refused (rejected true). At most 7 days at once; from must be before to. Default range: the last hour up to now.
Parameters
symbolstring · queryrequiredSymbol name, e.g. EURUSD. Unknown: not_found.
typestring · queryWhich prices, default all.
all accepted rejectedfrominteger · queryStart, unix seconds (inclusive). Default: to minus one hour.
tointeger · queryEnd, unix seconds (exclusive). Default: now.
limitinteger · queryPrices, default 1000.
Returns
Promise<Ticks>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 first404
not_found: not found500
internal: something went wrongts
import { staff } from "@/lib/noviqa"
const data = await staff.market.ticks({
symbol: "string",
type: "all",
from: 1,
to: 1
})bash
curl -X GET "$NOVIQA_API_URL/admin/v1/market/ticks?symbol=string&type=all&from=1&to=1" \
-H "Authorization: Bearer $NOVIQA_TOKEN"json
{
"success": true,
"code": "ok",
"message": "done",
"data": {
"digits": 5,
"symbol": "EURUSD",
"ticks": [
{
"ask": "1.08460",
"bid": "1.08452",
"last": "1.08452",
"rejected": true,
"t": 1
}
]
},
"request_id": "5b7f2c1e"
}ts
staff.market.ticks(query: { symbol, type?, from?, to?, limit? }, options?: RequestOptions): Promise<market.Ticks>