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.
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
Variant 1NotificationSetting[]
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
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"
}
]