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 word-prefix matching.
Whole-number values also match PR numbers by prefix: 302 matches PR 30281.
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.