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 with open or draft PRs
?q=pr_status:open,draft
# 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"
# 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
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.
Conversations without a linked diff status are excluded when pr_status, pr, repo, or pr_title 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.