Skip to content

staff.news ​

4 methods on staff.news. Each returns the answer's data and throws NoviqaError on a failed answer.

list ​

GET/admin/v1/news

List 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 · query
symbolstring · query
fromstring · query
published_at, inclusive
tostring · query
published_at, exclusive
pageinteger · query
limitinteger · query
Returns
Promise<Page>
The answer's data.
Errors
400invalid_input: invalid input
401auth.session_expired: session expired, sign in again
403auth.invalid_terminal: this terminal cannot be used here
403auth.otp_enrol_required: your group requires one-time codes: set them up to continue
403auth.password_change_required: you must change your password first
403forbidden: you do not have access to this action
500internal: something went wrong
ts
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/news

Publish 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
bodystring
plain text, up to 64 KiB
categorystring
free text, up to 64 characters; lists can filter on it
subjectstring
required, 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
400invalid_input: invalid input
401auth.session_expired: session expired, sign in again
403auth.csrf_invalid: request refused: reload the page and try again
403auth.invalid_terminal: this terminal cannot be used here
403auth.otp_enrol_required: your group requires one-time codes: set them up to continue
403auth.password_change_required: you must change your password first
403forbidden: you do not have access to this action
500internal: something went wrong
ts
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 · pathrequired
Numeric id.
Returns
Promise<News>
The answer's data.
Errors
400invalid_input: invalid input
401auth.session_expired: session expired, sign in again
403auth.invalid_terminal: this terminal cannot be used here
403auth.otp_enrol_required: your group requires one-time codes: set them up to continue
403auth.password_change_required: you must change your password first
403forbidden: you do not have access to this action
404not_found: not found
500internal: something went wrong
ts
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 · pathrequired
Numeric id.
Returns
Promise<null>
The answer's data.
Errors
400invalid_input: invalid input
401auth.session_expired: session expired, sign in again
403auth.csrf_invalid: request refused: reload the page and try again
403auth.invalid_terminal: this terminal cannot be used here
403auth.otp_enrol_required: your group requires one-time codes: set them up to continue
403auth.password_change_required: you must change your password first
403forbidden: you do not have access to this action
404not_found: not found
500internal: something went wrong
ts
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>