Regbase API

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:Passed

Use commas to match any listed value:

status:Passed,Introduced

Text containment

Use ~ after the colon for a case-insensitive substring match:

title:~energy

Containment also accepts comma-separated alternatives:

title:~energy,climate

Comparisons and ranges

Use >, >=, <, or <= after the colon:

displayDate:>=2026-01-01

Use .. for an inclusive range:

displayDate:2026-01-01..2026-12-31

Numeric 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:status

Use -no:field to require the field:

-no:status

Negation

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:

  • type
  • title
  • name
  • displayDate
  • jurisdiction
  • localIdentifier
  • localType
  • authority
  • status

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.

On this page