curl -X GET "https://nunu.ai/api/v1/project/your-project-id/test-plans?search=smoke&sort_by=name&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-plans?search=smoke&sort_by=name&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-plans",
headers={"X-Api-Key": os.environ["NUNU_API_TOKEN"]},
params={"search": "smoke", "sort_by": "name", "page": 0, "page_size": 10}
)
data = response.json()
{
"data": [
{
"id": "b3f1a2c4-5d6e-7f8a-9b0c-1d2e3f4a5b6c",
"project_id": "test",
"name": "Smoke Tests",
"test_count": 5,
"created_at": "2026-03-01T10:00:00.000000+00:00",
"created_by": "user@example.com",
"modified_at": "2026-03-15T14:30:00.000000+00:00",
"modified_by": "user@example.com"
},
{
"id": "c4d5e6f7-8a9b-0c1d-2e3f-4a5b6c7d8e9f",
"project_id": "test",
"name": "Smoke Tests - Mobile",
"test_count": 3,
"created_at": "2026-03-05T12:00:00.000000+00:00",
"created_by": "user@example.com",
"modified_at": "2026-03-10T09:15:00.000000+00:00",
"modified_by": "user@example.com"
}
],
"pagination": {
"page": 0,
"page_size": 10,
"total_count": 2,
"total_pages": 1
}
}
Test Plans
List Test Plans
Retrieve a paginated list of test plans for your project.
GET
/
project
/
{projectId}
/
test-plans
curl -X GET "https://nunu.ai/api/v1/project/your-project-id/test-plans?search=smoke&sort_by=name&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-plans?search=smoke&sort_by=name&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-plans",
headers={"X-Api-Key": os.environ["NUNU_API_TOKEN"]},
params={"search": "smoke", "sort_by": "name", "page": 0, "page_size": 10}
)
data = response.json()
{
"data": [
{
"id": "b3f1a2c4-5d6e-7f8a-9b0c-1d2e3f4a5b6c",
"project_id": "test",
"name": "Smoke Tests",
"test_count": 5,
"created_at": "2026-03-01T10:00:00.000000+00:00",
"created_by": "user@example.com",
"modified_at": "2026-03-15T14:30:00.000000+00:00",
"modified_by": "user@example.com"
},
{
"id": "c4d5e6f7-8a9b-0c1d-2e3f-4a5b6c7d8e9f",
"project_id": "test",
"name": "Smoke Tests - Mobile",
"test_count": 3,
"created_at": "2026-03-05T12:00:00.000000+00:00",
"created_by": "user@example.com",
"modified_at": "2026-03-10T09:15:00.000000+00:00",
"modified_by": "user@example.com"
}
],
"pagination": {
"page": 0,
"page_size": 10,
"total_count": 2,
"total_pages": 1
}
}
Permission Required:
project:read-runsQuery Parameters
string
Search by test plan name
string
default:"name"
Field to sort by:
name, test_count, modified_at, or created_atstring
default:"asc"
Sort direction:
asc or descinteger
default:"0"
Page number (0-indexed)
integer
default:"20"
Results per page (1-100)
Response
TestPlanSummary[]
required
Array of test plan summary objects
object
required
TestPlanSummary Object
string
required
Unique identifier for the test plan
string
required
Project the test plan belongs to
string
required
Test plan name
integer
required
Number of tests in the plan
string
ISO 8601 timestamp when the test plan was created
string
Who created the test plan
string
ISO 8601 timestamp when the test plan was last modified
string
Who last modified the test plan
curl -X GET "https://nunu.ai/api/v1/project/your-project-id/test-plans?search=smoke&sort_by=name&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-plans?search=smoke&sort_by=name&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-plans",
headers={"X-Api-Key": os.environ["NUNU_API_TOKEN"]},
params={"search": "smoke", "sort_by": "name", "page": 0, "page_size": 10}
)
data = response.json()
{
"data": [
{
"id": "b3f1a2c4-5d6e-7f8a-9b0c-1d2e3f4a5b6c",
"project_id": "test",
"name": "Smoke Tests",
"test_count": 5,
"created_at": "2026-03-01T10:00:00.000000+00:00",
"created_by": "user@example.com",
"modified_at": "2026-03-15T14:30:00.000000+00:00",
"modified_by": "user@example.com"
},
{
"id": "c4d5e6f7-8a9b-0c1d-2e3f-4a5b6c7d8e9f",
"project_id": "test",
"name": "Smoke Tests - Mobile",
"test_count": 3,
"created_at": "2026-03-05T12:00:00.000000+00:00",
"created_by": "user@example.com",
"modified_at": "2026-03-10T09:15:00.000000+00:00",
"modified_by": "user@example.com"
}
],
"pagination": {
"page": 0,
"page_size": 10,
"total_count": 2,
"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
Search by test plan name
Field to sort by
Available options:
name, test_count, modified_at, created_at Sort direction
Available options:
asc, desc Page number (0-indexed)
Results per page (1-100)
Required range:
1 <= x <= 100