WebPixie

Filtering

Filter WebPixie GraphQL list queries with WQL, WebPixie's compact, SQL-like query syntax.

Most list queries (e.g. findSite, findUptimeLink, findIncident) accept an optional query argument — a string written in WQL (WebPixie Query Language), a compact, SQL-like syntax used to filter results.

Discovering Filterable Fields

Not every field can be used in a query string. The description of each list query's query argument names the fields it supports, written exactly as you use them in a filter (for example isFavorite). The same fields work in sort. Read them with an introspection query:

query {
  __type(name: "Query") {
    fields {
      name
      args {
        name
        description
      }
    }
  }
}

In the result, look at the query argument of the list query you are calling (for example findSite or findUptimeLink).

Basic Structure

field operator value
query {
  findSite(query: "domain = \"acme.io\"") {
    items {
      domain
    }
  }
}

Combining Conditions

Combine conditions with AND / OR, and use parentheses to group them:

status = ACTIVE AND checkInterval > 60
(status = ACTIVE OR status = PASSIVE) AND isFavorite = TRUE

Conditions are evaluated left-to-right. Use parentheses whenever you mix AND and OR in the same query so the conditions group the way you expect.

Operators

OperatorDescriptionExample
=Equal tostatus = ACTIVE
!=Not equal tostatus != ACTIVE
>Greater thancheckInterval > 60
>=Greater than or equal tocheckInterval >= 60
<Less thancheckInterval < 300
<=Less than or equal tocheckInterval <= 300
BETWEENInclusive range (numbers and dates only)checkInterval BETWEEN (60, 300)
INValue is one of a liststatus IN (ACTIVE, PASSIVE)
NOT INValue is not any of a liststatus NOT IN (PASSIVE)
~Contains (case-insensitive)domain ~ "acme"
!~Does not containdomain !~ "test"
IS / IS NOTNull / empty / boolean checks — see belowtags IS NOT NULL

Special Values

Use IS / IS NOT with NULL, EMPTY, TRUE, and FALSE:

tags IS NULL
tags IS NOT NULL
name IS EMPTY
isFavorite IS TRUE

isFavorite = TRUE works the same as isFavorite IS TRUE.

These keywords are case-sensitive and must be uppercase (IS NULL, not IS null). A lowercase form is treated as a literal text value instead of matching null or empty fields.

Lists

For IN / NOT IN, separate values with commas inside parentheses, without quotes — even for text values:

status IN (ACTIVE, PASSIVE)

Text Values

Quote a text value if it contains spaces or special characters; unquoted text is also accepted when it doesn't. Quoted values cannot contain a literal " character.

domain = acme.io
name = "Acme Inc"

Dates and IDs

Quote dates and IDs. Dates use ISO 8601:

createTime >= "2026-01-01T00:00:00Z"
id = "550e8400-e29b-41d4-a716-446655440000"

List Fields

Some fields hold several values, such as tags, features, and locations. A condition on them matches a record when any of its values matches:

tags = prod
tags IN (prod, staging)
features = MONITOR_SSL

!= and NOT IN match records that have none of the given values, including records with no values at all. To find records with no tags, use tags IS NULL; use tags IS NOT NULL for records that have at least one.

On this page