Skip to content

Search

Search Confluence content using CQL (Confluence Query Language).

Quick Start

# Search by text
atlcli wiki search "API documentation"

# Search in space
atlcli wiki search "API" --space TEAM

# Search by label
atlcli wiki search --label api

Use full CQL for advanced queries:

atlcli wiki search --cql "space = TEAM AND label = api AND lastModified > now('-7d')"

Search Filters

By Space

atlcli wiki search "query" --space TEAM
atlcli wiki search "query" --space TEAM,DOCS,API

By Content Type

atlcli wiki search "query" --type page
atlcli wiki search "query" --type blogpost
atlcli wiki search "query" --type attachment

By Label

# Single label
atlcli wiki search --label api

# Multiple labels (AND)
atlcli wiki search --label "api,v2"

By Creator

atlcli wiki search --creator "alice@company.com"
atlcli wiki search --creator currentUser()

By Ancestor

Search within a page tree:

atlcli wiki search "query" --ancestor 12345

By Date

# Modified recently
atlcli wiki search --modified-since "7d"
atlcli wiki search --modified-since "2025-01-01"

# Created recently
atlcli wiki search --created-since "30d"

Search Options

Flag Description
--space Filter by space key(s)
--type Content type: page, blogpost, attachment
--label Filter by label(s)
--title Search in title only
--creator Filter by creator
--ancestor Search under page tree
--modified-since Modified after date/duration
--created-since Created after date/duration
--limit Max results (default: 25)
--start Pagination offset
--format Output: table, json

Output Formats

Table (Default)

atlcli wiki search "API" --space TEAM
ID        TITLE                 SPACE   MODIFIED
12345     API Reference         TEAM    2025-01-14
12346     API Authentication    TEAM    2025-01-13
12347     API Rate Limits       TEAM    2025-01-10

JSON

atlcli wiki search "API" --space TEAM --json
{
  "schemaVersion": "1",
  "results": [
    {
      "id": "12345",
      "title": "API Reference",
      "space": {"key": "TEAM", "name": "Team Docs"},
      "type": "page",
      "url": "https://company.atlassian.net/wiki/spaces/TEAM/pages/12345",
      "excerpt": "...comprehensive <em>API</em> documentation...",
      "lastModified": "2025-01-14T10:00:00Z",
      "creator": {"displayName": "Alice"},
      "labels": ["api", "reference"]
    }
  ],
  "total": 42,
  "limit": 25,
  "start": 0
}

CQL Reference

Common Operators

Operator Example
= space = TEAM
!= space != ARCHIVE
~ title ~ "API*" (contains)
IN space IN (TEAM, DOCS)
NOT IN label NOT IN (draft, deprecated)
AND space = TEAM AND type = page
OR label = api OR label = docs

Date Functions

Function Description
now() Current time
now('-7d') 7 days ago
now('-1M') 1 month ago
startOfDay() Start of today
startOfWeek() Start of current week

Special Values

Value Description
currentUser() Logged-in user
currentSpace() Current space context

Examples

Find Outdated Content

atlcli wiki search --cql "lastModified < now('-90d') AND space = DOCS"

Find My Recent Pages

atlcli wiki search --creator currentUser() --modified-since 7d

Find Pages Without Labels

atlcli wiki search --cql "space = TEAM AND label IS EMPTY"

Find Draft Content

atlcli wiki search --label draft --space TEAM

Full-Text Search in Title

atlcli wiki search --title "installation guide"

Export Search Results

# Get all IDs for scripting
atlcli wiki search --label api --json | jq -r '.results[].id'

# Export to CSV
atlcli wiki search --space TEAM --json | \
  jq -r '.results[] | [.id, .title, .lastModified] | @csv'

Pagination

For large result sets:

# First 25
atlcli wiki search "query" --limit 25 --start 0

# Next 25
atlcli wiki search "query" --limit 25 --start 25

# Get all (iterate)
START=0
while true; do
  RESULT=$(atlcli wiki search "query" --limit 100 --start $START --json)
  COUNT=$(echo $RESULT | jq '.results | length')
  [ "$COUNT" -eq 0 ] && break
  echo $RESULT | jq -r '.results[].title'
  START=$((START + 100))
done