curl -X GET "https://nunu.ai/api/v1/project/your-project-id/test-plan-executions?status=completed&page=0&page_size=10" \
-H "X-Api-Key: YOUR_API_TOKEN"
const response = await fetch(
"https://nunu.ai/api/v1/project/your-project-id/test-plan-executions?status=completed&page=0&page_size=10",
{
headers: {
"X-Api-Key": process.env.NUNU_API_TOKEN,
},
}
);
const data = await response.json();
import requests
import os
response = requests.get(
"https://nunu.ai/api/v1/project/your-project-id/test-plan-executions",
headers={"X-Api-Key": os.environ["NUNU_API_TOKEN"]},
params={"status": "completed", "page": 0, "page_size": 10}
)
data = response.json()
{
"data": [
{
"id": "e1f2a3b4-5c6d-7e8f-9a0b-1c2d3e4f5a6b",
"test_plan_id": "b3f1a2c4-5d6e-7f8a-9b0c-1d2e3f4a5b6c",
"test_plan_name": "Smoke Tests",
"build_id": "d4e5f6a7-8b9c-0d1e-2f3a-4b5c6d7e8f9a",
"build_name": "v2.1.0-rc1",
"status": "completed",
"started_at": "2026-03-20T08:00:00.000000+00:00",
"started_by": "user@example.com",
"completed_at": "2026-03-20T08:15:30.000000+00:00",
"total_tests": 5,
"test_status": {
"passed": 4,
"failed": 1,
"skipped": 0,
"stopped": 0,
"queued": 0,
"running": 0
},
"duration_ms": 930000
}
],
"pagination": {
"page": 0,
"page_size": 10,
"total_count": 1,
"total_pages": 1
}
}
Test Plans
List Test Plan Executions
Retrieve a paginated list of test plan executions for your project.
GET
/
project
/
{projectId}
/
test-plan-executions
curl -X GET "https://nunu.ai/api/v1/project/your-project-id/test-plan-executions?status=completed&page=0&page_size=10" \
-H "X-Api-Key: YOUR_API_TOKEN"
const response = await fetch(
"https://nunu.ai/api/v1/project/your-project-id/test-plan-executions?status=completed&page=0&page_size=10",
{
headers: {
"X-Api-Key": process.env.NUNU_API_TOKEN,
},
}
);
const data = await response.json();
import requests
import os
response = requests.get(
"https://nunu.ai/api/v1/project/your-project-id/test-plan-executions",
headers={"X-Api-Key": os.environ["NUNU_API_TOKEN"]},
params={"status": "completed", "page": 0, "page_size": 10}
)
data = response.json()
{
"data": [
{
"id": "e1f2a3b4-5c6d-7e8f-9a0b-1c2d3e4f5a6b",
"test_plan_id": "b3f1a2c4-5d6e-7f8a-9b0c-1d2e3f4a5b6c",
"test_plan_name": "Smoke Tests",
"build_id": "d4e5f6a7-8b9c-0d1e-2f3a-4b5c6d7e8f9a",
"build_name": "v2.1.0-rc1",
"status": "completed",
"started_at": "2026-03-20T08:00:00.000000+00:00",
"started_by": "user@example.com",
"completed_at": "2026-03-20T08:15:30.000000+00:00",
"total_tests": 5,
"test_status": {
"passed": 4,
"failed": 1,
"skipped": 0,
"stopped": 0,
"queued": 0,
"running": 0
},
"duration_ms": 930000
}
],
"pagination": {
"page": 0,
"page_size": 10,
"total_count": 1,
"total_pages": 1
}
}
Permission Required:
project:read-runsQuery Parameters
string
Filter by test plan ID
string
Filter by build ID
string
Filter by execution status:
completed, in_progress, or queuedstring
default:"start_time"
Field to sort by:
start_time, test_plan_name, or build_namestring
default:"desc"
Sort direction:
asc or descinteger
default:"0"
Page number (0-indexed)
integer
default:"20"
Results per page (1-100)
Response
TestPlanExecutionSummary[]
required
Array of test plan execution summary objects
object
required
TestPlanExecutionSummary Object
string
required
Execution ID
string
ID of the test plan that was executed
string
Name of the test plan
string
ID of the build used
string
Name of the build used
string
required
Current execution status:
completed, in_progress, or queuedstring
ISO 8601 timestamp when the execution started
string
Who started the execution
string
ISO 8601 timestamp when the execution completed
integer
required
Total number of tests in this execution
object
required
Breakdown of test statuses
number
Total execution duration in milliseconds
curl -X GET "https://nunu.ai/api/v1/project/your-project-id/test-plan-executions?status=completed&page=0&page_size=10" \
-H "X-Api-Key: YOUR_API_TOKEN"
const response = await fetch(
"https://nunu.ai/api/v1/project/your-project-id/test-plan-executions?status=completed&page=0&page_size=10",
{
headers: {
"X-Api-Key": process.env.NUNU_API_TOKEN,
},
}
);
const data = await response.json();
import requests
import os
response = requests.get(
"https://nunu.ai/api/v1/project/your-project-id/test-plan-executions",
headers={"X-Api-Key": os.environ["NUNU_API_TOKEN"]},
params={"status": "completed", "page": 0, "page_size": 10}
)
data = response.json()
{
"data": [
{
"id": "e1f2a3b4-5c6d-7e8f-9a0b-1c2d3e4f5a6b",
"test_plan_id": "b3f1a2c4-5d6e-7f8a-9b0c-1d2e3f4a5b6c",
"test_plan_name": "Smoke Tests",
"build_id": "d4e5f6a7-8b9c-0d1e-2f3a-4b5c6d7e8f9a",
"build_name": "v2.1.0-rc1",
"status": "completed",
"started_at": "2026-03-20T08:00:00.000000+00:00",
"started_by": "user@example.com",
"completed_at": "2026-03-20T08:15:30.000000+00:00",
"total_tests": 5,
"test_status": {
"passed": 4,
"failed": 1,
"skipped": 0,
"stopped": 0,
"queued": 0,
"running": 0
},
"duration_ms": 930000
}
],
"pagination": {
"page": 0,
"page_size": 10,
"total_count": 1,
"total_pages": 1
}
}
Authorizations
API key for authentication
Path Parameters
The project ID. You can copy it from the project settings page or the project URL in the dashboard.
Query Parameters
Filter by test plan ID
Filter by build ID
Filter by execution status
Available options:
completed, in_progress, queued Field to sort by
Available options:
start_time, test_plan_name, build_name Sort direction
Available options:
asc, desc Page number (0-indexed)
Results per page (1-100)
Required range:
1 <= x <= 100