Skip to content

Syntax Overview

FlyQL queries consist of one or more conditions connected by boolean operators (and, or, not). Each condition is either a comparison or a truthy check.

status=200 and active and not archived
  • status=200status field equals 200
  • activeactive field has a truthy value
  • not archivedarchived field is falsy (null, empty, zero, or false)
service!=api or user="john doe"
message~"error.*" and not debug
(a=1 or b=2) and not (c=3 and d=4)
status in [200, 201] and method not in ['DELETE', 'PUT']
message has 'error' and tags not has 'debug'
  • Standalone keys — A key without an operator is treated as a truthy check
  • Comparisons — A key with an operator must have a corresponding value
  • Whitespace — Spaces around operators are allowed: status=200 and status = 200 are equivalent
  • Operator precedenceand binds tighter than or: a=1 or b=2 and c=3 is parsed as a=1 or (b=2 and c=3)
  • Parentheses — Use ( and ) to override precedence and group conditions explicitly