Skip to main content

list_features

List the project's features. generated is the normal ready state; inspect specStale before relying on a saved test. Individual dispatch also checks for linked test files and refuses an active generation.

Request​

GET /api/v1/ops/projects/{project}/features[?status=]
ParameterInTypeRequiredDescription
projectpathstringyesThe project's public id.
statusquerystringnoOnly features with this lifecycle status (e.g. generated).
curl -H "Authorization: Bearer $TESTVIBE_API_KEY" \
"$TESTVIBE_SERVER/api/v1/ops/projects/$PROJECT/features?status=generated"

Response​

[
{
"id": 12,
"name": "Login Functionality",
"kind": "feature",
"status": "generated",
"updatedUtc": "2026-06-10T14:32:07Z"
},
{
"id": 15,
"name": "Checkout",
"kind": "feature",
"status": "draft",
"updatedUtc": "2026-06-10T15:01:44Z"
}
]

See Features & the lifecycle for the status values.

Errors​

HTTPWhen
404 not_foundNo such project in this workspace.

Group filtering and paged REST results​

The CLI testvibe features list --group Authentication and MCP list_features({group: "Authentication"}) filter the ordinary array using the group catalog. Both can combine group with status; an unknown group name is an error.

REST switches to a different response shape when any of generatedOnly, search, group, offset, limit, includeSuggestions, or version_tag is supplied:

{ "items": [], "total": 0, "complete": true, "groups": [], "versionTags": [] }

Paged requests default to limit=200 (maximum 2,000). group accepts an internal id, public group id, name, or ungrouped. search filters names; generatedOnly=true selects runnable entries; includeSuggestions=true includes suggestions. The legacy status filter applies to the array form, not this paged branch. Use total / complete to detect a partial result.

Array rows also include group/version metadata, specStale, and creation, editing, and generation attribution fields. Fields without recorded attribution can be null.