RunRowsBody
Body for Run Rows. Choose rows in exactly one way: - `row_ids` — an explicit list. - `first_10: true` — a shortcut. - `filters` / `status_filters` / `created_at` — every row matching them, selected on the server (the same shapes List Rows takes). Use this to run a subset, e.g. rows whose cell on an action failed, without listing their ids first. None, or more than one, returns 400.
Properties
row_idsarray ofRow UUIDs to queue through the action chain. Get these from Add Rows (`row_ids` response field) or List Rows. Rows on the sheet not included here are not re-run. Mutually exclusive with `first_10` and the filters.
first_10booleanShortcut for "run the first 10 rows on the sheet": the 10 newest, i.e. the top of the table and page 1 of List Rows. Useful for experimentation and sampling on existing sheets. Mutually exclusive with `row_ids`. Pass `true` to enable; omit or pass `false` to use `row_ids` instead.
filtersarray ofValue filters on sheet input columns. Each entry has `variable` (an `{{input.<column>}}` reference), `operator` (one of `is equal to`, `not equal to`, `is empty`, `not empty`, `contains`, `does not contain`, `contains any of`, `not contains any of`, `greater than`, `less than`), and `values` (array of strings — single value for most operators; multiple for `contains any of` / `not contains any of`; empty for `is empty` / `not empty`).
variablestringrequiredPublic reference token for the input column to filter on. Must match `{{input.<column>}}`.
operatorstringrequiredComparison operator. See the description above for the full list.
valuesarray ofValues to compare against. Single-value operators take one item; `contains any of` / `not contains any of` take one or more; `is empty` / `not empty` ignore values.
status_filtersarray ofPer-action cell-status filters. Each entry specifies an `action_instance_id` and exactly one of `is` (status matches one of) or `is_not` (status matches none of). Status values use the public vocabulary (`queued | running | complete | failed | error | out_of_credits | condition_not_met`).
action_instance_idstringrequiredAction instance ID (public form) whose per-row cell status to filter on.
isarray ofMatch rows whose cell on this action is in one of these statuses.
is_notarray ofMatch rows whose cell on this action is NOT in any of these statuses.
created_atobjectFilter rows by creation timestamp. `operator` is one of `equals to`, `greater than`, `greater than or equals to`, `less than`, `less than or equals to`, `is between`. `values` is `[ISO timestamp]` for single-value operators or `[start, end]` for `is between`.
operatorstringrequiredvaluesarray ofrequiredrow_rangeobjectRun rows `start` to `end` (1-indexed, inclusive) in List Rows order, newest first — row 1 is the top of the table. At most 10,000 rows per call. An `end` past the last row runs up to the last row; a `start` past it returns 400. Mutually exclusive with `row_ids` and `first_10`; with the filters, counts within the filtered rows.
startintegerrequiredmin 1First row to run (1-indexed).
endintegerrequiredmin 1Last row to run (inclusive).
Example
{
"row_ids": [
"a1b2c3d4-e5f6-7890-abcd-ef1234567001",
"a1b2c3d4-e5f6-7890-abcd-ef1234567002",
"a1b2c3d4-e5f6-7890-abcd-ef1234567003"
],
"first_10": false,
"filters": [
{
"variable": "{{input.email}}",
"operator": "contains",
"values": [
".com"
]
}
],
"status_filters": [
{
"action_instance_id": "enrich_company_linkedin_profile_1",
"is": [
"complete"
],
"is_not": [
"failed",
"error"
]
}
],
"created_at": {
"operator": "greater than",
"values": [
"2026-05-07T22:14:00Z"
]
},
"row_range": {
"start": 11,
"end": 50
}
}