Appearance
staff.news
4 methods on staff.news. Each returns the answer's data and throws NoviqaError on a failed answer.
list
GET
/admin/v1/newsList news
One page of news, newest first (by publish time), staff items and datafeed items alike, always in full (mode full). category filters to one exact category, symbol to items that name it (empty = all). from and to narrow published_at (from inclusive, to exclusive; either may be left out). page is 1-based; limit defaults to 50, values outside 1-200 fall back to 50.
More details
Rights: the staff member needs every one of: news.
Parameters
categorystring · querysymbolstring · queryfromstring · querypublished_at, inclusive
tostring · querypublished_at, exclusive
pageinteger · querylimitinteger · queryReturns
Promise<Page>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 first403
forbidden: you do not have access to this action500
internal: something went wrongts
import { staff } from "@/lib/noviqa"
const data = await staff.news.list({
category: "string",
symbol: "string",
from: "2026-09-25T10:15:00Z"
})bash
curl -X GET "$NOVIQA_API_URL/admin/v1/news?category=string&symbol=string&from=2026-09-25T10%3A15%3A00Z" \
-H "Authorization: Bearer $NOVIQA_TOKEN"json
{
"success": true,
"code": "ok",
"message": "done",
"data": {
"items": [
{
"body": "string",
"category": "string",
"datafeed_id": 1,
"external_id": "string",
"id": 1,
"published_at": "2026-09-25T10:15:00Z",
"source": "string",
"subject": "string",
"symbols": [
"string"
]
}
],
"mode": "off",
"page": 1,
"total": 1
},
"request_id": "5b7f2c1e"
}ts
staff.news.list(query?: { category?, symbol?, from?, to?, page?, limit? }, options?: RequestOptions): Promise<news.Page>create
POST
/admin/v1/newsPublish a news item
Stores a staff news item and sends it at once as a news socket message: whole to staff with the news right, to trader sockets as their group's news mode allows (headlines: without the body; off: nothing). subject is required (1-256 characters, one line), category up to 64 characters, body plain text up to 64 KiB, symbols up to 32 entries of 1-32 characters each (left out or empty = about no particular symbol). source is set to the publisher's name, published_at to now. Writes a journal line. Not idempotent.
More details
Rights: the staff member needs every one of: news.
Request body
bodystringplain text, up to 64 KiB
categorystringfree text, up to 64 characters; lists can filter on it
subjectstringrequired, up to 256 characters on one line
symbolsstring[]up to 32 symbols the item is about; empty = every symbol
Returns
Promise<News>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
forbidden: you do not have access to this action500
internal: something went wrongts
import { staff } from "@/lib/noviqa"
const data = await staff.news.create({
body: "Markets close at 18:00 server time.",
category: "Market",
subject: "Early close on 24 December",
symbols: [
"EURUSD",
"GBPUSD"
]
})bash
curl -X POST "$NOVIQA_API_URL/admin/v1/news" \
-H "Authorization: Bearer $NOVIQA_TOKEN" \
-H "Content-Type: application/json" \
--data-raw '{
"body": "Markets close at 18:00 server time.",
"category": "Market",
"subject": "Early close on 24 December",
"symbols": [
"EURUSD",
"GBPUSD"
]
}'json
{
"success": true,
"code": "ok",
"message": "done",
"data": {
"body": "string",
"category": "string",
"datafeed_id": 1,
"external_id": "string",
"id": 1,
"published_at": "2026-09-25T10:15:00Z",
"source": "string",
"subject": "string",
"symbols": [
"string"
]
},
"request_id": "5b7f2c1e"
}ts
staff.news.create(body: http.docNewsItem, options?: RequestOptions): Promise<models.News>retrieve
GET
/admin/v1/news/{id}Read a news item
One item in full.
More details
Rights: the staff member needs every one of: news.
Parameters
idinteger · pathrequiredNumeric id.
Returns
Promise<News>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 first403
forbidden: you do not have access to this action404
not_found: not found500
internal: something went wrongts
import { staff } from "@/lib/noviqa"
const data = await staff.news.retrieve(1)bash
curl -X GET "$NOVIQA_API_URL/admin/v1/news/1" \
-H "Authorization: Bearer $NOVIQA_TOKEN"json
{
"success": true,
"code": "ok",
"message": "done",
"data": {
"body": "string",
"category": "string",
"datafeed_id": 1,
"external_id": "string",
"id": 1,
"published_at": "2026-09-25T10:15:00Z",
"source": "string",
"subject": "string",
"symbols": [
"string"
]
},
"request_id": "5b7f2c1e"
}ts
staff.news.retrieve(id: number, options?: RequestOptions): Promise<models.News>delete
DELETE
/admin/v1/news/{id}Delete a news item
Removes the item (staff or datafeed) for everyone. Terminals that already received it are not told. Writes a journal line.
More details
Rights: the staff member needs every one of: news.
Parameters
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
forbidden: you do not have access to this action404
not_found: not found500
internal: something went wrongts
import { staff } from "@/lib/noviqa"
const data = await staff.news.delete(1)bash
curl -X DELETE "$NOVIQA_API_URL/admin/v1/news/1" \
-H "Authorization: Bearer $NOVIQA_TOKEN"json
{
"success": true,
"code": "ok",
"message": "done",
"data": null,
"request_id": "5b7f2c1e"
}ts
staff.news.delete(id: number, options?: RequestOptions): Promise<null>