GitHub-flavoured Filter Strings
Write GFFS queries for search, list, and change endpoints.
A GitHub-flavoured Filter String (GFFS) combines text and field qualifiers in one readable string.
type:legislation jurisdiction:US.CA status:Passed "clean energy"Separate terms with spaces. Field qualifiers and excluded text are required constraints. Positive free text guides relevance ranking, so a result may be a semantic match without containing every search term.
Exact values
Use field:value for an exact match:
status:PassedUse commas to match any listed value:
status:Passed,IntroducedText containment
Use ~ after the colon for a case-insensitive substring match:
title:~energyContainment also accepts comma-separated alternatives:
title:~energy,climateComparisons and ranges
Use >, >=, <, or <= after the colon:
displayDate:>=2026-01-01Use .. for an inclusive range:
displayDate:2026-01-01..2026-12-31Numeric values are compared as numbers. Other values are compared as strings, so use a consistent sortable format such as ISO 8601 for dates.
Missing values
Use no:field to match entities where a field is missing:
no:statusUse -no:field to require the field:
-no:statusNegation
Put - before a term to exclude it:
-status:Repealed
-"fossil fuel"Negated ranges are not supported.
Quoting
Wrap values or phrases that contain spaces in single or double quotes:
authority:"California Legislature"
"clean energy"Escape a matching quote or backslash with \:
title:"A \"quoted\" title"Endpoint rules
The search endpoint accepts qualifiers and free text in q.
The list and changes endpoints accept only qualifiers in filter. They reject
free text.
The public v1 API accepts these top-level qualifier fields:
typetitlenamedisplayDatejurisdictionlocalIdentifierlocalTypeauthoritystatus
Nested field paths are not supported. Neither are parentheses or custom Boolean operators.
When sending GFFS in a URL, URL-encode the complete parameter value. Most HTTP
clients do this when you use a query-parameter API or curl --data-urlencode.