The TimeTonic API allows retrieving rows from a table by filtering them directly within the request. To do this, you use the getTableValues function with the filterRowIds parameter (also called filtered rows).
Go to the API documentation page here.
You must have an API key (Sesskey) and the numeric identifiers of the columns (field_id), which can be retrieved via getTableValues. The user associated with the key must have access to the targeted table.
Method 1: reuse an already filtered view
The simplest way is to point to an existing TimeTonic view whose filters are already configured. In filterRowIds, pass the view's ID as the value of applyViewFilters:
{ "applyViewFilters": 12345 }- When I open a record in TimeTonic, the URL contains the view ID
Method 2: define your own filter (filterGroup)
If you do not want to depend on a view, pass an object filterGroup in applyViewFilters.
A filterGroup contains an operator (and or or) and a list of filters. Each filter targets a column (field_id) with a predicate and a value (operand).
Example: retrieve rows where the column 1735324 (date type) is after May 1, 2020.
{
"applyViewFilters": {
"filterGroup": {
"operator": "and",
"filters": [
{
"id": "tmpId",
"field_id": "1735324",
"filter_type": "date",
"json": { "predicate": "after", "operand": "2020-05-01" }
}
]
}
}
}The tags
filterGroup, filters, and json are mandatory. The key id is an arbitrary and unique filter identifier: for a temporary filter, use the value tmpId. The filter_type corresponds to the type of the targeted column (see the reference table below).rowInfosLength: 0. Check the tag names and column identifiers before concluding that the table contains no data.Method 3: combine AND and OR (nested groups)
A filter can itself be a filterGroup: give it filter_type: "filterGroup" and its own operator. This way you get combinations of AND and OR conditions at multiple levels.
Example: retrieve rows where (column 5555 equals 3654) AND (column 12345 equals 789 OR 543) AND (column 3214 is on or after a date).
{
"applyViewFilters": {
"filterGroup": {
"operator": "and",
"filters": [
{
"id": "tmpId",
"field_id": 5555,
"filter_type": "int",
"json": { "predicate": "equals", "operand": 3654 }
},
{
"filter_type": "filterGroup",
"operator": "or",
"filters": [
{ "id": "tmpId", "field_id": 12345, "json": { "predicate": "is", "operand": "789" } },
{ "id": "tmpId", "field_id": 12345, "json": { "predicate": "is", "operand": "543" } }
]
},
{
"id": "tmpId",
"field_id": 3214,
"filter_type": "date",
"json": { "predicate": "on or after", "operand": "2026-01-01" }
}
]
}
}
}The root group applies the and operator to its three elements. The second element is itself a group with the or operator: its two conditions are alternatives. This nesting can be repeated to build more refined logic.
Reference: operators and predicates
An operator connects the filters of a group. A predicate defines the condition applied to a column according to its type.
| Operator | Effect |
|---|---|
| and | All conditions in the group must be true (AND). |
| or | At least one condition in the group must be true (OR). |
Column type and filter_type
The filter_type to specify depends on the targeted TimeTonic column type:
| TimeTonic column | filter_type |
|---|---|
| Checkbox | boolean |
| Integer number | int |
| Decimal number | float |
| URL | text |
| External form | text |
| Short text | text |
| Medium text | text |
| Long text | text |
| text | |
| Attachments | files |
| Date | date or datetime |
| Comments | comments |
| Link to another table | link |
| Column of a linked table | link |
| Selection (list from another table) | enum |
| Conditional selection (list from another table) | enum |
| Conditional text (list from another table) | text |
| Color selection | text |
| Text color | text |
| Mask | text |
| Formula | text |
| Automatic number | int |
| Last modification | datetime |
| Phone number | text |
| Automatic document | text |
| Encrypted column | text |
| Book members | text |
Main predicates by family
The applicable predicate depends on the column’s filter_type. The main families are:
| Family | Predicates |
|---|---|
|
Generic text, enum, link, files, comments, boolean |
is, is not, is empty, is not empty, contains, does not contain |
|
Numeric int, float |
equals, not equals, less than, greater than, less or equal than, greater or equal than, min, max, top, bottom |
|
Date and datetime date, datetime |
on, not on, before, after, before today, after today, on or before, on or before today, on or after, on or after today, in quarter, in month, in this week, current month, current year, not current month, not current year, in the last 5 min, in the last 15 min, in the last hour |
|
Link link |
is any of, is not any of, is me, is book code |
offset (page number) and maxRows (number of rows per page). The parameter format: rows returns values by row rather than by column.Learn more
Get values from a table
Retrieve columns and rows from a table with getTableValues.
Learn more
Example of creation, update, and search
Ready-to-use Postman collection for getTableValues and createOrUpdateTableRow.
Learn more
API overview
API key, access, and basic principles of the TimeTonic API.