Skip to main content
GET
List every test run this workspace has recorded, …

Authorizations

apiKey
string
query
required

Path Parameters

projectId
string<uuid>
required

GET /v2/api/projects/:projectId/workspaces/:workspaceId/test-runs Parameter

Pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$
workspaceId
string<uuid>
required

GET /v2/api/projects/:projectId/workspaces/:workspaceId/test-runs Parameter

Pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$

Query Parameters

apiKey
string

Upsolve API key, generated under Account → Developer settings in the Upsolve Hub. Keys are user-scoped: pass organizationId alongside the key to select which org to act on.

Minimum string length: 1
Example:

"up_embed_************"

organizationId
string<uuid>

Your Upsolve organization's UUID — the org that owns the API key and project. This is NOT a project organization: do not pass a value registered via /projects/register-organization, and do not pass an externalId (only projectOrganizationId accepts those). Omit it when using an org-bound API key — the org is read from the key and any value sent here is ignored. Required only for user-scoped API keys (created under Account → Developer settings) and for the Supabase JWT path, where the org is ambiguous and membership is verified against it.

Pattern: ^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})$
Example:

"123e4567-e89b-12d3-a456-426614174000"

limit
integer
default:20

How many runs to return, newest first.

Required range: 1 <= x <= 100
offset
integer
default:0

GET /v2/api/projects/:projectId/workspaces/:workspaceId/test-runs Parameter

Required range: 0 <= x <= 9007199254740991
filters
string

JSON-encoded AG-Grid filter model. Supported ids: created_at (date), pass_rate (number, 0-100), trigger (manual|publish), status (running|completed|stopped|broke). Example: {"pass_rate":{"filterType":"number","type":"lessThan","filter":80}}

Maximum string length: 4096
since_iso
string<date-time>

Only runs started at or after this ISO timestamp. The time-range selector's window; omit for all time.

Pattern: ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$

Response

GET /v2/api/projects/:projectId/workspaces/:workspaceId/test-runs Positive response

status
string
required
Allowed value: "success"
data
object
required