Filter Syntax
Filters are used in hypertab_query_rows, hypertab_update_rows, hypertab_delete_rows, and hypertab_count_rows. The format is { column: { operator: value } }.
Operators
| Operator | Description | Example |
|---|---|---|
eq | Equals (exact match) | { "status": { "eq": "active" } } |
neq | Not equals | { "status": { "neq": "deleted" } } |
gt | Greater than | { "size": { "gt": 100 } } |
gte | Greater than or equal | { "size": { "gte": 100 } } |
lt | Less than | { "size": { "lt": 50 } } |
lte | Less than or equal | { "size": { "lte": 50 } } |
contains | String contains (case-insensitive) | { "name": { "contains": "corp" } } |
starts_with | String starts with | { "email": { "starts_with": "john" } } |
in | Value is one of the given array values | { "status": { "in": ["active", "pending"] } } |
between | Value is between two numbers (inclusive) | { "size": { "between": [100, 500] } } |
is_null | Value is null / missing | { "email": { "is_null": true } } |
is_not_null | Value exists and is not null | { "email": { "is_not_null": true } } |
Combining Filters
Multiple column filters in the same where object are AND-combined automatically. A row must match ALL conditions.
Multiple filters (AND)
{
"where": {
"status": { "eq": "active" },
"size": { "gte": 100 },
"industry": { "in": ["SaaS", "Fintech"] },
"email": { "is_not_null": true }
}
}i
OR Logic
Currently, top-level filters are always AND-combined. For OR logic, use the
in operator for same-column alternatives (e.g. { "status": { "in": ["active", "pending"] } }).Type-Specific Usage
Text / Email / URL / Phone
Use eq, neq, contains, starts_with, is_null.
{ "email": { "contains": "@acme.com" } }Number / Currency
Use eq, gt, gte, lt, lte, between.
{ "revenue": { "between": [100000, 500000] } }Select / Multi-select
Use eq, neq, in, contains (for multi-select to match any tag).
{ "tags": { "contains": "enterprise" } }Boolean
Use eq with true or false.
{ "is_verified": { "eq": true } }Datetime
Use gt, lt, between with ISO 8601 strings.
{ "_ht_created_at": { "gt": "2026-01-01T00:00:00Z" } }Sorting
Sort by one or more columns. Each column can be "asc" or "desc". Default sort is _ht_created_at DESC.
Sort by multiple columns
{
"order_by": {
"score": "desc",
"name": "asc"
}
}Pagination
Use limit and offset for pagination. The response includes total and has_more to help navigate.
Paginated query
{
"tool": "hypertab_query_rows",
"arguments": {
"table": "leads",
"where": { "status": { "eq": "active" } },
"order_by": { "score": "desc" },
"limit": 25,
"offset": 50
}
}*
Via the REST API, pass
limit=0 to return all matching rows without pagination. This is not available through MCP tools (capped at 100).