Coder powers secure, scalable development across key industries — automotive, finance, government, and technology — enabling faster builds, tighter compliance, and seamless AI adoption in enterprise-grade cloud environments.
The chat list endpoint accepts a q query parameter for filtering
conversations. All filters use key:value syntax. Bare search terms
are rejected; use title: for title filtering or search: for
full-text search.
Case-insensitive whole-word matching with AND semantics. Quoted
phrases, OR, and - negation follow
websearch_to_tsquery
rules.
Message content matches English word stems (refactor matches
refactoring) and ignores English stopwords. Titles and PR titles
do not stem.
No fuzzy, semantic, or prefix matching.
Whole-number values also match exact PR numbers.
A value with no searchable words (punctuation only) returns an empty
list; an empty value returns HTTP 400.
Results use the standard chat list ordering (pinned first, then most
recently updated) and pagination, without match snippets.
Message content becomes searchable shortly after it is written (background indexing, usually within 10 minutes).
Titles and PR titles are searchable immediately.
Examples
# Title substring (case-insensitive)
?q=title:deploy
# Multi-word title (URL-encode the space or use +)
?q=title:my+project
# Unread conversations
?q=has_unread:true
# Conversations that need you, or that failed
?q=status:requires_action,error
# Conversations with a turn in progress
?q=status:running
# Conversations with open or draft PRs
?q=pr_status:open,draft
# Conversations with no pull request, or an open one
?q=pr_status:none,open
# Filter by diff URL (quote values containing colons)
?q=diff_url:"https://github.com/coder/coder/pull/123"
# Combine filters
?q=title:refactor+has_unread:true+pr_status:merged
# Conversations linked to PR #42
?q=pr:42
# Conversations for a specific repository
?q=repo:coder/coder
# Conversations with a specific PR title
?q=pr_title:"fix auth bug"
# Conversations shared with you, plus your own
?q=source:created_by_me,shared_with_me
# Full-text search across titles, PR titles, and messages
?q=search:"kubernetes restart"
# Combine full-text search with other filters
?q=search:refactor+pr_status:open
Notes
status:waiting is an idle conversation, status:running is a turn in progress, and status:interrupting is a turn being stopped.
status:requires_action means the agent needs you before it can continue, and status:error means the turn failed.
title:, repo:, and pr_title: use ILIKE matching. % and _ act as wildcards.
pr_status:draft means the PR is open and marked as a draft.
pr_status:open means the PR is open and not a draft.
pr_status:none matches conversations with no pull request, including those whose linked PR was cleared.
Conversations without a linked diff status are excluded when pr, repo, pr_title, or any pr_status value other than none is set. The repo: filter also matches chats tracking a branch with no PR.
Unrecognized keys, bare terms, or combining search: with title:, pr_title:, or pr: return HTTP 400 with a validation error.