In this page

Overview

This page lists sample CQL queries for common use cases around content ownership. They're completely standard CQL queries, so you can use them as-is, adapt them to your own needs, or freely combine them with any other CQL field or function for more complex searches.

Query samples

Public fields

The following fields are meant for everyday, end-user searches.

Any owner

A content's any owner is the combined list of its direct owners and inherited owners. Owners can be inherited from multiple ancestor pages.

Existence

Contents that have any owner:

arch.anyOwner.count > 0

Contents that have no owner:

type in (page,blogpost) and not arch.anyOwner.count > 0

(The otherwise useless clause on the "type" field is needed only because a negative expression cannot be the first clause in CQL.)

Value

Contents owned by a specific user:

arch.anyOwner = "123abcde95673300697be2ba"

(The alphanumeric string is the user's Atlassian account ID. How to figure out?)

Contents owned by specific users:

arch.anyOwner in ("123abcde95673300697be2ba", "456fabcd1238456789abcdef")

(The alphanumeric string is the user's Atlassian account ID. How to figure out?)

Contents owned by me:

arch.anyOwner = currentUser()
When

Contents whose owners were set before a specific date:

arch.anyOwner.setOn < "2026-08-01"

Contents whose owners were set in a specific period:

arch.anyOwner.setOn > "2026-01-15" and arch.anyOwner.setOn < "2026-08-01"

Contents whose owners were set this week:

arch.anyOwner.setOn > startOfWeek()
Direct owner

A content's direct owner is an owner explicitly set on that specific content, as opposed to inherited from an ancestor.

Existence

Contents that have a direct owner:

arch.directOwner.count > 0

Contents that have no direct owner:

type in (page,blogpost) and not arch.directOwner.count > 0

(The otherwise useless clause on the "type" field is needed only because a negative expression cannot be the first clause in CQL.)

Value

Contents owned by a specific user, directly:

arch.directOwner = "123abcde95673300697be2ba"

(The alphanumeric string is the user's Atlassian account ID. How to figure out?)

Contents owned by specific users, directly:

arch.directOwner in ("123abcde95673300697be2ba", "456fabcd1238456789abcdef")

(The alphanumeric string is the user's Atlassian account ID. How to figure out?)

Contents owned by me, directly:

arch.directOwner = currentUser()
When

Contents with direct owners set before a specific date:

arch.directOwner.setOn < "2026-08-01"

Contents with direct owners set in a specific period:

arch.directOwner.setOn > "2026-01-15" and arch.directOwner.setOn < "2026-08-01"

Contents with direct owners set this week:

arch.directOwner.setOn > startOfWeek()
Inherited owner

A content's inherited owner is an owner inherited from a tree owner set on one of its ancestors.

Existence

Contents that have an inherited owner:

arch.inheritedOwner.count > 0

Contents that have no inherited owner:

type in (page,blogpost) and not arch.inheritedOwner.count > 0

(The otherwise useless clause on the "type" field is needed only because a negative expression cannot be the first clause in CQL.)

Value

Contents owned by a specific user, through inheritance:

arch.inheritedOwner = "123abcde95673300697be2ba"

(The alphanumeric string is the user's Atlassian account ID. How to figure out?)

Contents owned by specific users, through inheritance:

arch.inheritedOwner in ("123abcde95673300697be2ba", "456fabcd1238456789abcdef")

(The alphanumeric string is the user's Atlassian account ID. How to figure out?)

Contents owned by me, through inheritance:

arch.inheritedOwner = currentUser()
When

Contents owned through inheritance, set before a specific date:

arch.inheritedOwner.setOn < "2026-08-01"

Contents owned through inheritance, set in a specific period:

arch.inheritedOwner.setOn > "2026-01-15" and arch.inheritedOwner.setOn < "2026-08-01"

Contents owned through inheritance, set this week:

arch.inheritedOwner.setOn > startOfWeek()

Internal fields

The following fields are primarily used internally by the app and are less useful for end-user searches.

Owner

A content's owner is an owner set directly on that content, but not inherited by its descendants.

Existence

Contents that have an owner:

arch.owner.count > 0

Contents that have no owner:

type in (page,blogpost) and not arch.owner.count > 0

(The otherwise useless clause on the "type" field is needed only because a negative expression cannot be the first clause in CQL.)

Value

Contents owned by a specific user:

arch.owner = "123abcde95673300697be2ba"

(The alphanumeric string is the user's Atlassian account ID. How to figure out?)

Contents owned by specific users:

arch.owner in ("123abcde95673300697be2ba", "456fabcd1238456789abcdef")

(The alphanumeric string is the user's Atlassian account ID. How to figure out?)

Contents owned by me:

arch.owner = currentUser()
Who

Contents with an owner set by a specific user:

arch.owner.setBy = "123abcde95673300697be2ba"

(The alphanumeric string is the user's Atlassian account ID. How to figure out?)

Contents with an owner set by specific users:

arch.owner.setBy in ("123abcde95673300697be2ba", "456fabcd1238456789abcdef")

(The alphanumeric string is the user's Atlassian account ID. How to figure out?)

Contents with an owner set by me:

arch.owner.setBy = currentUser()
When

Contents with an owner set before a specific date:

arch.owner.setOn < "2026-08-01"

Contents with an owner set in a specific period:

arch.owner.setOn > "2026-01-15" and arch.owner.setOn < "2026-08-01"

Contents with an owner set this week:

arch.owner.setOn > startOfWeek()
Tree owner

A content's tree owner is an owner set directly on that content that is also inherited by all of its descendants.

Existence

Roots of content trees with a tree owner:

arch.treeOwner.count > 0

Contents with no tree owner:

type in (page,blogpost) and not arch.treeOwner.count > 0

(The otherwise useless clause on the "type" field is needed only because a negative expression cannot be the first clause in CQL.)

Value

Roots of content trees owned by a specific user:

arch.treeOwner = "123abcde95673300697be2ba"

(The alphanumeric string is the user's Atlassian account ID. How to figure out?)

Roots of content trees owned by specific users:

arch.treeOwner in ("123abcde95673300697be2ba", "456fabcd1238456789abcdef")

(The alphanumeric string is the user's Atlassian account ID. How to figure out?)

Roots of content trees owned by me:

arch.treeOwner = currentUser()
Who

Roots of content trees with a tree owner set by a specific user:

arch.treeOwner.setBy = "123abcde95673300697be2ba"

(The alphanumeric string is the user's Atlassian account ID. How to figure out?)

Roots of content trees with a tree owner set by specific users:

arch.treeOwner.setBy in ("123abcde95673300697be2ba", "456fabcd1238456789abcdef")

(The alphanumeric string is the user's Atlassian account ID. How to figure out?)

Roots of content trees with a tree owner set by me:

arch.treeOwner.setBy = currentUser()
When

Roots of content trees with a tree owner set before a specific date:

arch.treeOwner.setOn < "2026-08-01"

Roots of content trees with a tree owner set in a specific period:

arch.treeOwner.setOn > "2026-01-15" and arch.treeOwner.setOn < "2026-08-01"

Roots of content trees with a tree owner set this week:

arch.treeOwner.setOn > startOfWeek()

Questions?

Ask us any time.