Find rows
Rows matching filters, all or any of them, sorted by up to 3 columns, a page at a time.
Free*
*Free up to 1,000,000 reads a month for the whole account, then $0.50 per 10,000 reads.
An example
Which jobs are due by the end of the month and not picked up yet?
Your agent callsrows_queryFree*
The example business is Halverson Cycle & Repair, a bike shop with a repair workshop in Portland, Oregon. The reply is the one the tool really gives.
{
"table": "Workshop jobs",
"filters": [
{
"column": "Status",
"op": "neq",
"value": "Picked up"
},
{
"column": "Due",
"op": "lte",
"value": "2026-10-31"
}
],
"sort": [
{
"column": "Due",
"direction": "asc"
}
]
}Use it when
Someone asks what is in a table: what is due, what is open, what matches.
What it does
Rows matching filters ([{"column": "Stage", "op": "eq", "value": "New"}]; ops: eq, neq, contains, not_contains, gt, gte, lt, lte for numbers and dates, empty, not_empty, in), all or any of them, sorted by columns, a page at a time.
What comes back
rows: each with its row number and values; total: how many matched; next_offset when there are more. Every reply also carries cost_usd and balance_usd.
Inputs
| Name | Type | What it is |
|---|---|---|
tableRequired | string | The table's name (or its table_id). 1 to 80 characters. |
filters | array of objects | Up to 20 items. |
filters[].columnRequired | string | Up to 60 characters. |
filters[].op | string | One of: eq,neq,contains,not_contains,gt,gte,lt,lte,empty,not_empty,in. |
filters[].value | any | |
match | string | One of: all,any. Default: all. |
sort | array of objects | Up to 3 items. |
sort[].columnRequired | string | |
sort[].direction | string | One of: asc,desc. |
limit | integer | 1 to 500. Default: 100. |
offset | integer | At least 0. Default: 0. |
The call
Over MCP, call rows_query on https://api.conecto.chat/mcp/tables. Over REST:
curl -X POST https://api.conecto.chat/v1/tools/rows_query \
-H "Authorization: Bearer $CONECTO_KEY" \
-H "Content-Type: application/json" \
-d '{"table":"Workshop jobs","filters":[{"column":"Status","op":"neq","value":"Picked up"},{"column":"Due","op":"lte","value":"2026-10-31"}],"sort":[{"column":"Due","direction":"asc"}]}'When it refuses
A refused call costs nothing and says what to do next.
| Code | When | What to do |
|---|---|---|
not_found404 | No table has that name or table_id, or the table has no column of that name. | Call tables_list for the tables and their columns. |
invalid_input400 | A filter's op is unknown, compares with the wrong kind of value, or uses gt, gte, lt or lte on a column that is not a number or a date. | Use the ops this page lists, with values of the column's type. |
More Tables tools
All 12 tools- Create a table
tables_createCreates a table with typed columns: text, numbers with decimals or a currency, checkboxes, dates, choices, emails, links, phone numbers or files.$0.001 a call - List tables
tables_listEvery table with its columns and how many rows it has.Free* - Change columns
tables_change_columnsAdds, renames or removes columns; rows keep their values through a rename.$0.001 a call - Add rows
rows_addAdds up to 500 rows, each checked against its columns; if one is wrong, none is added.$0.001 per row added - Change rows
rows_updateChanges values in up to 500 rows by row number; only the columns given change, and null clears a cell.$0.001 per row changed - Add or update rows by a key
rows_upsertUpdates the rows whose key column matches and adds the rest, so a list from anywhere syncs without reading the table first.$0.001 per row added or updated - Summarize rows
rows_summarizeCounts rows, and sums, averages, minimums and maximums of number columns, overall and per group, in one call.Free* - Delete rows
rows_deleteDeletes rows by their numbers, for good.Free
Give this to your agent.
Set up Conecto from https://conecto.chat/SKILL.md