Skip to content

Filter Cookbook

Every recipe below is a complete, copy-pasteable filter you can use with the search endpoint. All examples assume you have a Task tag with fields: status (Select: Backlog, Todo, In Progress, In Review, Done), priority (Number), due_date (Date), assignee (Reference), and project (Reference). A Project tag has name (String) and lead (Reference).


Find every thogit that has the “Task” tag attached, regardless of field values.

Filter:

{"has_tag": "Task"}

curl:

Terminal window
curl -X POST https://app.thogits.com/api/thogits/search \
-H "Content-Type: application/json" \
-b cookies.txt -c cookies.txt \
-d '{"filter": {"has_tag": "Task"}}'

The has_tag operator checks for tag presence by name. It does not inspect any field values.


Search thogit names and descriptions for a keyword.

Filter:

{"search": "deploy"}

curl:

Terminal window
curl -X POST https://app.thogits.com/api/thogits/search \
-H "Content-Type: application/json" \
-b cookies.txt -c cookies.txt \
-d '{"filter": {"search": "deploy"}}'

Full-text search matches against the thogit’s name and description fields. It is case-insensitive and matches partial words.


Find tasks where priority is exactly 1.

Filter:

{"Task.priority": 1}

curl:

Terminal window
curl -X POST https://app.thogits.com/api/thogits/search \
-H "Content-Type: application/json" \
-b cookies.txt -c cookies.txt \
-d '{"filter": {"Task.priority": 1}}'

When you provide a bare value (not wrapped in an operator object), it is treated as an equality check. This is shorthand for {"Task.priority": {"eq": 1}}.


Find tasks that are currently in progress.

Filter:

{"Task.status": {"eq": "In Progress"}}

curl:

Terminal window
curl -X POST https://app.thogits.com/api/thogits/search \
-H "Content-Type: application/json" \
-b cookies.txt -c cookies.txt \
-d '{"filter": {"Task.status": {"eq": "In Progress"}}}'

The eq operator on a Select field matches the variant name exactly. You can also use bare string shorthand: {"Task.status": "In Progress"}.


Find tasks due in January 2024.

Filter:

{
"and": [
{"Task.due_date": {"gte": "2024-01-01"}},
{"Task.due_date": {"lt": "2024-02-01"}}
]
}

curl:

Terminal window
curl -X POST https://app.thogits.com/api/thogits/search \
-H "Content-Type: application/json" \
-b cookies.txt -c cookies.txt \
-d '{
"filter": {
"and": [
{"Task.due_date": {"gte": "2024-01-01"}},
{"Task.due_date": {"lt": "2024-02-01"}}
]
}
}'

Use gte (inclusive start) + lt (exclusive end) for clean date ranges with no overlap. Dates use YYYY-MM-DD format.


Find unassigned tasks — where the assignee field is null or not set.

Filter:

{"Task.assignee": {"exists": false}}

curl:

Terminal window
curl -X POST https://app.thogits.com/api/thogits/search \
-H "Content-Type: application/json" \
-b cookies.txt -c cookies.txt \
-d '{"filter": {"Task.assignee": {"exists": false}}}'

{"exists": false} matches thogits where the field has no value. You can also use bare null as shorthand: {"Task.assignee": null}.


Find all tasks that are not done.

Filter:

{"not": {"Task.status": {"eq": "Done"}}}

curl:

Terminal window
curl -X POST https://app.thogits.com/api/thogits/search \
-H "Content-Type: application/json" \
-b cookies.txt -c cookies.txt \
-d '{"filter": {"not": {"Task.status": {"eq": "Done"}}}}'

The not operator inverts any inner filter. It works with any filter type — field comparisons, has_tag, search, or even nested and/or groups.


Find tasks that are at least “In Progress” — meaning In Progress, In Review, or Done.

Filter:

{"Task.status": {"gte": "In Progress"}}

curl:

Terminal window
curl -X POST https://app.thogits.com/api/thogits/search \
-H "Content-Type: application/json" \
-b cookies.txt -c cookies.txt \
-d '{"filter": {"Task.status": {"gte": "In Progress"}}}'

When you use gt, gte, lt, or lte with a string value on a Select field, comparison is by ordinal position in the schema’s variants array. This is useful for workflow progression filters.


Find high-priority active tasks: has the Task tag, priority is 2 or less, and not done.

Filter:

{
"and": [
{"has_tag": "Task"},
{"Task.priority": {"lte": 2}},
{"not": {"Task.status": {"eq": "Done"}}}
]
}

curl:

Terminal window
curl -X POST https://app.thogits.com/api/thogits/search \
-H "Content-Type: application/json" \
-b cookies.txt -c cookies.txt \
-d '{
"filter": {
"and": [
{"has_tag": "Task"},
{"Task.priority": {"lte": 2}},
{"not": {"Task.status": {"eq": "Done"}}}
]
}
}'

The and operator requires all conditions to be true. Use or when any condition matching is sufficient.


Find tasks on projects whose name contains “API”.

Filter:

{"Task.project->Project.name": {"regex": "API"}}

curl:

Terminal window
curl -X POST https://app.thogits.com/api/thogits/search \
-H "Content-Type: application/json" \
-b cookies.txt -c cookies.txt \
-d '{"filter": {"Task.project->Project.name": {"regex": "API"}}}'

The -> operator traverses a Reference field. Task.project is the Reference field on the Task tag, and Project.name is the field to filter on the referenced thogit. See the reference traversal guide for multi-hop examples.


Find tasks with priority 1 or 2.

Filter:

{"Task.priority": {"in": [1, 2]}}

curl:

Terminal window
curl -X POST https://app.thogits.com/api/thogits/search \
-H "Content-Type: application/json" \
-b cookies.txt -c cookies.txt \
-d '{"filter": {"Task.priority": {"in": [1, 2]}}}'

The in operator matches if the field value is any of the provided values. Works with numbers, strings, and Select/MultiSelect variants.


Find thogits whose name starts with “Bug:”.

Filter:

{"name": {"regex": "^Bug:"}}

curl:

Terminal window
curl -X POST https://app.thogits.com/api/thogits/search \
-H "Content-Type: application/json" \
-b cookies.txt -c cookies.txt \
-d '{"filter": {"name": {"regex": "^Bug:"}}}'

The regex operator works on the thogit’s name field directly (not a tag field). It uses ECMAScript regex syntax.


Find thogits mentioning “authentication” that are tagged as Tasks.

Filter:

{
"and": [
{"search": "authentication"},
{"has_tag": "Task"}
]
}

curl:

Terminal window
curl -X POST https://app.thogits.com/api/thogits/search \
-H "Content-Type: application/json" \
-b cookies.txt -c cookies.txt \
-d '{
"filter": {
"and": [
{"search": "authentication"},
{"has_tag": "Task"}
]
}
}'

You can combine search with any other filter using and. This narrows full-text results to a specific tag, status, or any other condition.


OperatorWorks onDescription
eq / bare valueString, Number, Boolean, Date, SelectExact equality
neqString, Number, Boolean, Date, SelectNot equal
gt, gte, lt, lteNumber, Date, String, Select (ordinal)Comparison
regexString, Select, MultiSelectECMAScript regex match
inString, Number, Select, MultiSelectValue is in provided set
existsAny fieldField is non-null (true) or null (false)
has_tagThogitTag is attached
searchThogitFull-text search on name/description
and, or, notFilterLogical combinators