curl -X GET \
"https://bouncer.nunu.ai/file-storage/my-project/test_case/t1t2t3?include_metadata=true" \
-H "X-Api-Key: YOUR_API_TOKEN"
const projectId = "my-project";
const testCaseId = "t1t2t3";
const response = await fetch(
`https://bouncer.nunu.ai/file-storage/${projectId}/test_case/${testCaseId}?include_metadata=true`,
{
headers: {
"X-Api-Key": process.env.NUNU_API_TOKEN,
},
}
);
const data = await response.json();
import requests
import os
project_id = "my-project"
test_case_id = "t1t2t3"
response = requests.get(
f"https://bouncer.nunu.ai/file-storage/{project_id}/test_case/{test_case_id}",
headers={"X-Api-Key": os.environ["NUNU_API_TOKEN"]},
params={"include_metadata": True},
)
data = response.json()
{
"projectId": "my-project",
"scope": "test_case",
"testCaseId": "t1t2t3",
"count": 1,
"files": [
{
"filename": "expected-flow.md",
"path": "expected-flow.md",
"size": 2048,
"uploaded": "2026-04-12T10:40:00.000Z",
"etag": "2c3d4e5f60718a3b4c5d6e7f80909a1b",
"metadata": {
"description": "Expected user flow for this test",
"summary": "Steps and acceptance criteria",
"keywords": ["flow", "acceptance"]
}
}
]
}
Knowledge
List Test-Case-Scope Knowledge
List the knowledge files attached to a specific test case in the given project.
GET
/
file-storage
/
{projectId}
/
test_case
/
{testCaseId}
curl -X GET \
"https://bouncer.nunu.ai/file-storage/my-project/test_case/t1t2t3?include_metadata=true" \
-H "X-Api-Key: YOUR_API_TOKEN"
const projectId = "my-project";
const testCaseId = "t1t2t3";
const response = await fetch(
`https://bouncer.nunu.ai/file-storage/${projectId}/test_case/${testCaseId}?include_metadata=true`,
{
headers: {
"X-Api-Key": process.env.NUNU_API_TOKEN,
},
}
);
const data = await response.json();
import requests
import os
project_id = "my-project"
test_case_id = "t1t2t3"
response = requests.get(
f"https://bouncer.nunu.ai/file-storage/{project_id}/test_case/{test_case_id}",
headers={"X-Api-Key": os.environ["NUNU_API_TOKEN"]},
params={"include_metadata": True},
)
data = response.json()
{
"projectId": "my-project",
"scope": "test_case",
"testCaseId": "t1t2t3",
"count": 1,
"files": [
{
"filename": "expected-flow.md",
"path": "expected-flow.md",
"size": 2048,
"uploaded": "2026-04-12T10:40:00.000Z",
"etag": "2c3d4e5f60718a3b4c5d6e7f80909a1b",
"metadata": {
"description": "Expected user flow for this test",
"summary": "Steps and acceptance criteria",
"keywords": ["flow", "acceptance"]
}
}
]
}
Permission Required: any API key scoped to the requested project
Knowledge endpoints are served by the bouncer service at
https://bouncer.nunu.ai, not the main nunu.ai/api/v1 host. Use the same
X-Api-Key header for authentication.test_case/{testCaseId}/ for the given
project. These are reference files attached to a specific test case—nunu
delivers them to runs that execute that test.
To get project-, agent-, and test-case-scope files in a single call, use
List Knowledge Files instead.
Path Parameters
string
required
The nunu.ai project ID. Must match the project the API key is scoped to.
string
required
The test case ID whose files you want to list.
Query Parameters
boolean
default:"false"
When
true, attach parsed metadata (description, summary, keywords)
for each file from its .{name}.meta.json sidecar.Response
string
required
Echo of the path parameter.
string
required
Always
"test_case" for this endpoint.string
required
Echo of the path parameter.
integer
required
Number of files returned.
File[]
required
Files in the test case scope. See
List Knowledge Files for
the full file shape.
curl -X GET \
"https://bouncer.nunu.ai/file-storage/my-project/test_case/t1t2t3?include_metadata=true" \
-H "X-Api-Key: YOUR_API_TOKEN"
const projectId = "my-project";
const testCaseId = "t1t2t3";
const response = await fetch(
`https://bouncer.nunu.ai/file-storage/${projectId}/test_case/${testCaseId}?include_metadata=true`,
{
headers: {
"X-Api-Key": process.env.NUNU_API_TOKEN,
},
}
);
const data = await response.json();
import requests
import os
project_id = "my-project"
test_case_id = "t1t2t3"
response = requests.get(
f"https://bouncer.nunu.ai/file-storage/{project_id}/test_case/{test_case_id}",
headers={"X-Api-Key": os.environ["NUNU_API_TOKEN"]},
params={"include_metadata": True},
)
data = response.json()
{
"projectId": "my-project",
"scope": "test_case",
"testCaseId": "t1t2t3",
"count": 1,
"files": [
{
"filename": "expected-flow.md",
"path": "expected-flow.md",
"size": 2048,
"uploaded": "2026-04-12T10:40:00.000Z",
"etag": "2c3d4e5f60718a3b4c5d6e7f80909a1b",
"metadata": {
"description": "Expected user flow for this test",
"summary": "Steps and acceptance criteria",
"keywords": ["flow", "acceptance"]
}
}
]
}
Authorizations
API key for authentication
Path Parameters
The nunu.ai project ID. Must match the project the API key is scoped to.
The test case ID whose files you want to list.
Query Parameters
When true, attach parsed metadata (description, summary, keywords) for each file from its .{name}.meta.json sidecar.