JQL reference
The Veqsio query language: fields, operators, values, functions, dates, history searches, ordering, LIMIT and many worked examples.
The shape of a query
JQL (Jira Query Language) is compatible with Jira’s. A query is one or more clauses joined by AND / OR (group with parentheses, negate with NOT), optionally followed by ORDER BY:
field operator value [AND|OR field operator value …] [ORDER BY field [ASC|DESC] [, field …]] [LIMIT n]
Values that contain spaces go in quotes: status = "In Progress". Field names and keywords are case-insensitive. Results only ever include projects you may browse.
Fields
| Field | Matches |
|---|---|
project | project key or name |
key, issuekey, id | issue key (DEMO-12) or numeric id |
summary, description | text (use ~) |
text | full-text search across the text fields |
status, resolution, priority, issuetype | by name |
assignee, reporter | a user; use currentUser() for yourself |
labels, component, fixVersion | multi-value fields |
sprint | sprint id or name (sprint = "Sprint 3") |
parent | the parent issue (epic or parent of a sub-task) |
milestone | project milestone name |
flagged | impediment flag (flagged = true) |
level | issue security level |
created, updated, resolved, dueDate | dates |
The autocomplete shows exactly which operators each field accepts on your instance.
Operators
| Operator | Meaning |
|---|---|
= != | equals / not equals |
> >= < <= | comparison (numbers, dates, keys) |
IN NOT IN | one of a list: status IN (Open, "In Progress") |
~ !~ | contains / does not contain text |
IS EMPTY IS NOT EMPTY (IS NULL works too) | field has no value / has a value |
WAS WAS IN WAS NOT IN CHANGED | history searches on fields that keep a history (below) |
Dates
Write an absolute date ("2026-11-01") or a relative one: a number and a unit, signed, with m minutes, h hours, d days, w weeks, M months, y years. Examples: created >= -7d (last week), duedate < 0d (overdue), updated < -2w (untouched for two weeks). Date functions: now(), startOfDay(), endOfDay(), startOfWeek(), endOfWeek(), startOfMonth(), endOfMonth().
Functions
| Function | Meaning |
|---|---|
currentUser() | you |
membersOf("group") | everyone in the group: assignee IN membersOf("devs") |
openSprints(), closedSprints() | active/future sprints, completed sprints |
linkedIssues("ABC-1") | issues linked to ABC-1 in any direction |
linkedIssues("ABC-1", "blocks") | by link type name or its wording (blocks, is blocked by, relates to) |
blockedBy("ABC-1") | issues that block ABC-1 |
blocking("ABC-1") | issues ABC-1 blocks |
subtasksOf("ABC-1") | the children of ABC-1 |
issuesWithoutParent() | issues with no parent |
The relation functions are used with key (or id): key IN blockedBy("ABC-1"). Date functions and currentUser() need no argument.
Searching history
Fields that keep a history — among them assignee, status and issuetype; the autocomplete shows which — remember their past values. status WAS "In Progress" finds issues that were ever in progress; assignee WAS currentUser() finds issues once yours; status CHANGED finds issues whose status changed.
Ordering and limiting
ORDER BY created DESC, priority ASC sorts by several fields. LIMIT n (1 to 1000) caps the whole result and goes last: project = DEMO ORDER BY created DESC LIMIT 25. LIMIT applies to the issue list and the REST search; board filters, dashboards gadgets, views, SLA goals and automation ignore it.
Examples
# my open work, most urgent first
assignee = currentUser() AND resolution IS EMPTY ORDER BY priority DESC
# bugs created this week
issuetype = Bug AND created >= startOfWeek()
# overdue and not done
duedate < startOfDay() AND resolution IS EMPTY
# stories in the active sprint that are blocked
sprint IN openSprints() AND key IN blockedBy("DEMO-12")
# epics' children that have no epic yet
project = DEMO AND key IN issuesWithoutParent() AND issuetype != Epic
# anything mentioning "invoice" in text, not yet resolved
text ~ "invoice" AND resolution IS EMPTY
# reached the Beta milestone?
milestone = "Beta" AND flagged = true
Not available
Aggregate functions (sums of estimate or worklog), linkedToAny, a timeInStatus field and natural-language-to-JQL are not implemented. Sorting by milestone is not supported.