List Blueprint Runs
/v1/blueprint-runsReturns blueprint analyzer runs for the authenticated workspace, newest first. A blueprint run records an autonomous web-navigation session that builds a connector blueprint toward a stated goal. Read only, cursor paginated. ## Filtering & sorting Filter via `POST /v1/records/query` (root `blueprint_runs`) or the `filters` model; operators are gated by each field's data type. See [Filtering & sorting](../filtering-and-sorting). **Filterable fields** | Field | Type | Allowed operators | |---|---|---| | `blueprint_run_id` | text | `contains` `eq` `neq` `starts_with` `ends_with` `is_null` `is_not_null` | | `completed_at` | date | `eq` `lt` `gt` `is_null` `is_not_null` | | `composite_steps_list` | text | `contains` `eq` `neq` `starts_with` `ends_with` `is_null` `is_not_null` | | `created_at` | date | `eq` `lt` `gt` `is_null` `is_not_null` | | `deleted_at` | date | `eq` `lt` `gt` `is_null` `is_not_null` | | `error_message` | text | `contains` `eq` `neq` `starts_with` `ends_with` `is_null` `is_not_null` | | `error_type` | text | `contains` `eq` `neq` `starts_with` `ends_with` `is_null` `is_not_null` | | `failed_at_step` | number | `eq` `neq` `gt` `gte` `lt` `lte` `is_null` `is_not_null` | | `firebase_uid` | text | `contains` `eq` `neq` `starts_with` `ends_with` `is_null` `is_not_null` | | `goal` | text | `contains` `eq` `neq` `starts_with` `ends_with` `is_null` `is_not_null` | | `pk` | number | `eq` `neq` `gt` `gte` `lt` `lte` `is_null` `is_not_null` | | `status` | enum | `eq` `neq` `in` `is_null` `is_not_null` | | `step_count` | number | `eq` `neq` `gt` `gte` `lt` `lte` `is_null` `is_not_null` | | `target_url` | text | `contains` `eq` `neq` `starts_with` `ends_with` `is_null` `is_not_null` | | `updated_at` | date | `eq` `lt` `gt` `is_null` `is_not_null` | **Sortable fields:** `blueprint_run_id`, `completed_at`, `composite_steps_list`, `created_at`, `deleted_at`, `error_message`, `error_type`, `failed_at_step`, `firebase_uid`, `goal`, `pk`, `status`, `step_count`, `target_url`, `updated_at` (via `orderBy` / `sort`, `asc`|`desc`).
Requires a bearer token: Authorization: Bearer <token>.
Query parameters
| Name | Type | Required | Description |
|---|---|---|---|
| cursor | string | No | Opaque pagination cursor returned in links.next of a previous page. Omit to fetch the first page.e.g. eyJwayI6OTAxfQ |
| limit | integer | No | Maximum number of runs to return per page.e.g. 25 |
Request
curl -X GET https://api.wellapp.ai/v1/blueprint-runs \
-H "Authorization: Bearer $WELL_API_TOKEN"Responses
200 — A page of blueprint runs.
{
"data": [
{
"type": "blueprint_run",
"id": "0e1f2a3b-4c5d-4e6f-8a9b-0c1d2e3f4a5b",
"attributes": {
"goal": "Build a Mercury statement export blueprint for Foldspace AI",
"status": "completed",
"step_count": 11,
"failed_at_step": null,
"error_type": null,
"error_message": null,
"error_context": null,
"result_blueprint": {
"version": 1,
"steps": 11
},
"firebase_uid": "remy-okafor-uid",
"completed_at": "2026-06-07T13:40:18.000Z",
"created_at": "2026-06-07T13:32:02.000Z",
"updated_at": "2026-06-07T13:40:18.000Z"
},
"relationships": {
"steps": {
"data": [
{
"type": "blueprint_step",
"id": "00000000-0000-4000-8000-000000000001"
}
]
}
}
}
],
"meta": {
"total": 1,
"count": 1
},
"links": {
"next": null
}
}400 — Invalid pagination parameters.
{
"code": "BAD_REQUEST",
"status": 400,
"title": "Bad Request",
"message": "See title.",
"meta": {
"trace_id": "a1b2c3",
"log_id": "a1b2c3"
}
}401 — Missing or invalid bearer token.
{
"code": "UNAUTHORIZED",
"status": 401,
"title": "Unauthorized",
"message": "See title.",
"meta": {
"trace_id": "a1b2c3",
"log_id": "a1b2c3"
}
}Filtering & sorting on related objects
This resource's related objects (the ones you can include) and how to filter or sort on each:
| Relationship | Cardinality | Filter on a field | Sort by a field |
|---|---|---|---|
workspace | to-one (workspace) | { "workspace": { "name": { "_eq": … } } } | "field": "workspace.name" ✅ |
steps | to-many (blueprint_step) | { "steps": { "_some": { "field_name": { "_eq": … } } } } | aggregate proxy only ⚠️ |
Replace field_name with any field of the related object. See its object-reference page for the full field list.
Filter by a to-one relation (and sort by it):
{
"root": "blueprint_runs",
"whereClause": { "workspace": { "name": { "_ilike": "%acme%" } } },
"orderBy": { "field": "workspace.name", "direction": "asc" }
}Filter by a to-many relation (quantified — bare nesting is invalid):
{
"root": "blueprint_runs",
"whereClause": { "steps": { "_some": { "field_name": { "_gt": 0 } } } }
}