The nunu.ai Public API allows you to programmatically interact with your projects, manage test runs, and upload builds. Use it to integrate nunu.ai into your CI/CD pipelines, build custom tooling, or automate your testing workflows.Documentation Index
Fetch the complete documentation index at: https://api-docs.nunu.ai/llms.txt
Use this file to discover all available pages before exploring further.
Base URL
All API requests should be made to:Available Endpoints
Runs
Start tests, monitor progress, retrieve results, and access bug reports
Builds
Upload and manage builds in nunu.ai’s cloud storage
Artifacts
List and download recordings, logs, and deliverables produced by a run
Knowledge
Read knowledge files attached to your project, agents, and test cases
Runs Endpoints
| Endpoint | Method | Description |
|---|---|---|
/runs | GET | List runs with filtering and pagination |
/runs | POST | Start a test or test plan |
/runs/{runId} | GET | Get detailed run information with artifacts |
/runs/{runId}/bugs | GET | List bugs found in a run |
/runs/stop | POST | Stop one or more running tests |
Builds Endpoints
| Endpoint | Method | Description |
|---|---|---|
/builds/upload | POST | Initiate a build upload |
/builds/upload/parts | GET | Get presigned URLs for multipart upload |
/builds/upload/complete | POST | Complete an upload |
/builds/upload | DELETE | Cancel an in-progress upload |
Artifacts Endpoints
Served by the bouncer service athttps://bouncer.nunu.ai (not nunu.ai/api/v1). Authenticated with the same X-Api-Key header.
| Endpoint | Method | Description |
|---|---|---|
/runs/{runId}/artifacts | GET | List all artifacts produced by a run |
/runs/{runId}/artifacts/{filename} | GET | Download a single artifact file |
Knowledge Endpoints
Served by the bouncer service athttps://bouncer.nunu.ai (not nunu.ai/api/v1). Authenticated with the same X-Api-Key header.
| Endpoint | Method | Description |
|---|---|---|
/file-storage/{projectId} | GET | List project files, optionally combined with agent/test-case scopes |
/file-storage/{projectId}/project | GET | List project-scope knowledge files |
/file-storage/{projectId}/agent/{agentId} | GET | List agent-scope knowledge files |
/file-storage/{projectId}/test_case/{testCaseId} | GET | List test-case-scope knowledge files |
Authentication
All API requests require authentication via an API key. Include your API key in theX-Api-Key header:
Learn more about authentication
API key management, permissions, and security best practices
Permissions
API keys are scoped to specific permissions. Use only the permissions you need:| Permission | Description | Required For |
|---|---|---|
project:read-runs | Read run data, artifacts, and bugs | Listing runs, getting run details |
project:operate-runs | Start and stop test runs | Starting tests, stopping runs |
project:manage-build-storage | Upload and manage builds | All build upload operations |
Response Format
All responses are returned as JSON. Successful responses typically include:HTTP Status Codes
| Code | Description |
|---|---|
200 | Success |
201 | Created (for POST requests that create resources) |
207 | Multi-Status (partial success for batch operations) |
400 | Bad Request - Invalid parameters |
401 | Unauthorized - Missing or invalid API key |
403 | Forbidden - API key lacks required permission |
404 | Not Found - Resource doesn’t exist |
402 | Payment Required - Quota exceeded |
413 | Payload Too Large - File exceeds limits |
500 | Internal Server Error |
Rate Limits
The API uses rate limiting to ensure fair usage. If you exceed the rate limit, you’ll receive a429 Too Many Requests response. Implement exponential backoff when retrying requests.
SDKs and Tools
While you can use the API directly, we recommend using our official tools for common use cases:CLI Tool
Upload builds from any environment
GitHub Action
Integrate with GitHub Actions