Printago API
GET /v1/settings/notifications

List notification channels

List the store's notification channels (Discord, Slack, webhook, Pushover, Telegram) and which events each one is subscribed to. Channel credentials such as webhook URLs and tokens are never returned.

Requires: settings.view

Query Parameters

enabled optional
string
Filter on enabled. A bare value is an exact match (enabled=value); use enabled.<operator>=value for the other operators (ne, gt, gte, lt, lte, contains, startsWith, endsWith, in, notIn, isNull; which ones a field accepts depends on its type). See Querying Data.
channel optional
string
Filter on channel. A bare value is an exact match (channel=value); use channel.<operator>=value for the other operators (ne, gt, gte, lt, lte, contains, startsWith, endsWith, in, notIn, isNull; which ones a field accepts depends on its type). See Querying Data.
onJobSucceeded optional
string
Filter on onJobSucceeded. A bare value is an exact match (onJobSucceeded=value); use onJobSucceeded.<operator>=value for the other operators (ne, gt, gte, lt, lte, contains, startsWith, endsWith, in, notIn, isNull; which ones a field accepts depends on its type). See Querying Data.
onJobFailed optional
string
Filter on onJobFailed. A bare value is an exact match (onJobFailed=value); use onJobFailed.<operator>=value for the other operators (ne, gt, gte, lt, lte, contains, startsWith, endsWith, in, notIn, isNull; which ones a field accepts depends on its type). See Querying Data.
onJobStarted optional
string
Filter on onJobStarted. A bare value is an exact match (onJobStarted=value); use onJobStarted.<operator>=value for the other operators (ne, gt, gte, lt, lte, contains, startsWith, endsWith, in, notIn, isNull; which ones a field accepts depends on its type). See Querying Data.
onJobCancelled optional
string
Filter on onJobCancelled. A bare value is an exact match (onJobCancelled=value); use onJobCancelled.<operator>=value for the other operators (ne, gt, gte, lt, lte, contains, startsWith, endsWith, in, notIn, isNull; which ones a field accepts depends on its type). See Querying Data.
onPrinterHmsError optional
string
Filter on onPrinterHmsError. A bare value is an exact match (onPrinterHmsError=value); use onPrinterHmsError.<operator>=value for the other operators (ne, gt, gte, lt, lte, contains, startsWith, endsWith, in, notIn, isNull; which ones a field accepts depends on its type). See Querying Data.
onPrinterHmsWarning optional
string
Filter on onPrinterHmsWarning. A bare value is an exact match (onPrinterHmsWarning=value); use onPrinterHmsWarning.<operator>=value for the other operators (ne, gt, gte, lt, lte, contains, startsWith, endsWith, in, notIn, isNull; which ones a field accepts depends on its type). See Querying Data.
onPrinterOffline optional
string
Filter on onPrinterOffline. A bare value is an exact match (onPrinterOffline=value); use onPrinterOffline.<operator>=value for the other operators (ne, gt, gte, lt, lte, contains, startsWith, endsWith, in, notIn, isNull; which ones a field accepts depends on its type). See Querying Data.
onPrinterOnline optional
string
Filter on onPrinterOnline. A bare value is an exact match (onPrinterOnline=value); use onPrinterOnline.<operator>=value for the other operators (ne, gt, gte, lt, lte, contains, startsWith, endsWith, in, notIn, isNull; which ones a field accepts depends on its type). See Querying Data.
onPrinterContinuousPrintDisabled optional
string
Filter on onPrinterContinuousPrintDisabled. A bare value is an exact match (onPrinterContinuousPrintDisabled=value); use onPrinterContinuousPrintDisabled.<operator>=value for the other operators (ne, gt, gte, lt, lte, contains, startsWith, endsWith, in, notIn, isNull; which ones a field accepts depends on its type). See Querying Data.
onOrderCreatedManual optional
string
Filter on onOrderCreatedManual. A bare value is an exact match (onOrderCreatedManual=value); use onOrderCreatedManual.<operator>=value for the other operators (ne, gt, gte, lt, lte, contains, startsWith, endsWith, in, notIn, isNull; which ones a field accepts depends on its type). See Querying Data.
onOrderCreatedRetail optional
string
Filter on onOrderCreatedRetail. A bare value is an exact match (onOrderCreatedRetail=value); use onOrderCreatedRetail.<operator>=value for the other operators (ne, gt, gte, lt, lte, contains, startsWith, endsWith, in, notIn, isNull; which ones a field accepts depends on its type). See Querying Data.
onOrderCancelled optional
string
Filter on onOrderCancelled. A bare value is an exact match (onOrderCancelled=value); use onOrderCancelled.<operator>=value for the other operators (ne, gt, gte, lt, lte, contains, startsWith, endsWith, in, notIn, isNull; which ones a field accepts depends on its type). See Querying Data.
onOrderClosed optional
string
Filter on onOrderClosed. A bare value is an exact match (onOrderClosed=value); use onOrderClosed.<operator>=value for the other operators (ne, gt, gte, lt, lte, contains, startsWith, endsWith, in, notIn, isNull; which ones a field accepts depends on its type). See Querying Data.
onOrdersAutoPrinted optional
string
Filter on onOrdersAutoPrinted. A bare value is an exact match (onOrdersAutoPrinted=value); use onOrdersAutoPrinted.<operator>=value for the other operators (ne, gt, gte, lt, lte, contains, startsWith, endsWith, in, notIn, isNull; which ones a field accepts depends on its type). See Querying Data.
onMaintenanceModeOn optional
string
Filter on onMaintenanceModeOn. A bare value is an exact match (onMaintenanceModeOn=value); use onMaintenanceModeOn.<operator>=value for the other operators (ne, gt, gte, lt, lte, contains, startsWith, endsWith, in, notIn, isNull; which ones a field accepts depends on its type). See Querying Data.
onMaintenanceModeOff optional
string
Filter on onMaintenanceModeOff. A bare value is an exact match (onMaintenanceModeOff=value); use onMaintenanceModeOff.<operator>=value for the other operators (ne, gt, gte, lt, lte, contains, startsWith, endsWith, in, notIn, isNull; which ones a field accepts depends on its type). See Querying Data.
onMaintenanceDueSoon optional
string
Filter on onMaintenanceDueSoon. A bare value is an exact match (onMaintenanceDueSoon=value); use onMaintenanceDueSoon.<operator>=value for the other operators (ne, gt, gte, lt, lte, contains, startsWith, endsWith, in, notIn, isNull; which ones a field accepts depends on its type). See Querying Data.
onMaintenanceOverdue optional
string
Filter on onMaintenanceOverdue. A bare value is an exact match (onMaintenanceOverdue=value); use onMaintenanceOverdue.<operator>=value for the other operators (ne, gt, gte, lt, lte, contains, startsWith, endsWith, in, notIn, isNull; which ones a field accepts depends on its type). See Querying Data.
onMaterialUsageRecorded optional
string
Filter on onMaterialUsageRecorded. A bare value is an exact match (onMaterialUsageRecorded=value); use onMaterialUsageRecorded.<operator>=value for the other operators (ne, gt, gte, lt, lte, contains, startsWith, endsWith, in, notIn, isNull; which ones a field accepts depends on its type). See Querying Data.
onAiFailureDetected optional
string
Filter on onAiFailureDetected. A bare value is an exact match (onAiFailureDetected=value); use onAiFailureDetected.<operator>=value for the other operators (ne, gt, gte, lt, lte, contains, startsWith, endsWith, in, notIn, isNull; which ones a field accepts depends on its type). See Querying Data.
id optional
string
Filter by record ID. A bare value is an exact match; use id.in=a,b,c for several (up to 100). See Querying Data.
storeId optional
string
Filter by store ID. Results are always limited to the store in the x-printago-storeid header, so this is rarely useful. See Querying Data.
createdAt optional
string
Filter by creation time. Pass an ISO 8601 timestamp with a comparison operator, e.g. createdAt.gte=2025-01-01T00:00:00Z. See Querying Data.
updatedAt optional
string
Filter by last-modified time. Pass an ISO 8601 timestamp with a comparison operator, e.g. updatedAt.gt=2025-01-01T00:00:00Z to fetch what changed since a checkpoint. See Querying Data.
sort optional
string
Comma-separated field:direction pairs, applied in order, e.g. createdAt:desc,name:asc. Direction is asc (the default) or desc. At most 5 clauses; JSON and array fields cannot be sorted on. See Querying Data.
limit optional
number
Maximum number of records to return, 1–1000. Defaults to 1000; larger values are capped at 1000. See Querying Data.
offset optional
number
Number of matching records to skip before returning results. Combine with limit to page through a list, and with meta=true to learn the total. See Querying Data.
fields optional
string
Comma-separated list of fields to return, e.g. id,name,updatedAt. Other fields are left out of each record. At most 50 fields. See Querying Data.
include optional
string
Comma-separated related records to embed in each result, e.g. linkedParts,linkedParts.part. At most 4 includes, each at most 2 levels deep; only the relations this endpoint supports are accepted, anything else is a 400. See Querying Data.
meta optional
boolean
Set to true to wrap the response as { data, meta }, where meta carries total, count, offset, limit, hasMore and executionTime. Without it the response is a bare array. See Querying Data.
hints optional
boolean
Set to true to add a hints array of suggested follow-up API calls to the response (aimed at AI agents). A list response is wrapped as { data, meta, hints }. See Querying Data.

Response Schema

NotificationSetting[] | SearchResponse
channelrequired
"discord" | "webhook" | "slack" | "pushover" | "telegram" | "pubsub"
discordwebhookslackpushovertelegrampubsub
createdAtrequired
string
format: date-time
enabledrequired
boolean
idrequired
string
pattern: ^[a-z0-9]{24}$
onAiFailureDetectedrequired
boolean
onJobCancelledrequired
boolean
onJobFailedrequired
boolean
onJobStartedrequired
boolean
onJobSucceededrequired
boolean
onMaintenanceDueSoonrequired
boolean
onMaintenanceModeOffrequired
boolean
onMaintenanceModeOnrequired
boolean
onMaintenanceOverduerequired
boolean
onMaterialUsageRecordedrequired
boolean
onOrderCancelledrequired
boolean
onOrderClosedrequired
boolean
onOrderCreatedManualrequired
boolean
onOrderCreatedRetailrequired
boolean
onOrdersAutoPrintedrequired
boolean
onPrinterContinuousPrintDisabledrequired
boolean
onPrinterHmsErrorrequired
boolean
onPrinterHmsWarningrequired
boolean
onPrinterOfflinerequired
boolean
onPrinterOnlinerequired
boolean
storeIdrequired
string
pattern: ^[a-z0-9]{24}$
updatedAtrequired
string
format: date-time
Variant 2SearchResponseStandardized search response with data, metadata, and query information
datarequired
Record<string, any>[]
Array of matching entities
metarequired
object
Pagination and result metadata
countrequired
number
Number of records returned in this response
executionTimerequired
number
Query execution time in milliseconds
hasMorerequired
boolean
Whether there are more records available
limitrequired
number
Maximum number of records requested
offsetrequired
number
Number of records skipped
totalrequired
number
Total number of matching records (before pagination)

Example Response

200 OK — application/json
[
  {
    "enabled": true,
    "channel": "discord",
    "onJobSucceeded": true,
    "onJobFailed": true,
    "onJobStarted": true,
    "onJobCancelled": true,
    "onPrinterHmsError": true,
    "onPrinterHmsWarning": true,
    "onPrinterOffline": true,
    "onPrinterOnline": true,
    "onPrinterContinuousPrintDisabled": true,
    "onOrderCreatedManual": true,
    "onOrderCreatedRetail": true,
    "onOrderCancelled": true,
    "onOrderClosed": true,
    "onOrdersAutoPrinted": true,
    "onMaintenanceModeOn": true,
    "onMaintenanceModeOff": true,
    "onMaintenanceDueSoon": true,
    "onMaintenanceOverdue": true,
    "onMaterialUsageRecorded": true,
    "onAiFailureDetected": true,
    "id": "string",
    "storeId": "string",
    "createdAt": "2025-01-15T12:00:00.000Z",
    "updatedAt": "2025-01-15T12:00:00.000Z"
  }
]