Projects API
Create, read, update, and delete projects.
Projects are the top-level container for a single application or service.
List projects
GET
/api/projectsBearer TokenQuery:
| Parameter | Type | Description |
|---|---|---|
page | number | 1-indexed page (default: 1) |
pageSize | number | page size (default: 20, max: 100) |
Response: 200 OK (PagedResult<ProjectDto>)
Get project
GET
/api/projects/{id}Bearer TokenCreate project
POST
/api/projectsBearer TokenBody:
{
"name": "Customer Portal",
"slug": "customer-portal",
"description": "Automated verification for the portal",
"runtimeSurface": "web"
}
Use "runtimeSurface": "api" for API projects, or "runtimeSurface": "mobile" with platform for Appium-backed app projects.
Update project
PUT
/api/projects/{id}Bearer TokenDelete project
DELETE
/api/projects/{id}Bearer TokenRuntime settings
GET
/api/projects/{projectId}/runtime-settingsBearer TokenReturns the project's runtime surface and mobile defaults.
PUT
/api/projects/{projectId}/runtime-settingsBearer TokenUse this endpoint to switch a project between web, mobile, and API execution.
For API projects:
{
"runtimeSurface": "api",
"mobileRuntime": null
}
API projects use the selected environment baseUrl as the API base URL.
{
"runtimeSurface": "mobile",
"mobileRuntime": {
"appiumServerUrl": "https://appium.example.com",
"platform": "android",
"deviceName": "Pixel 8",
"automationName": "UiAutomator2",
"androidAppPackage": "com.example.app",
"androidAppActivity": ".MainActivity"
}
}
For iOS apps, use platform: "ios" and iosBundleId instead of Android package/activity fields.
Test mobile connection
POST
/api/projects/{projectId}/runtime-settings/test-mobile-connectionBearer TokenBody:
{
"appiumServerUrl": "https://appium.example.com"
}
Response: 200 OK
{
"ok": true,
"message": "Connected to Appium 2.0.0.",
"version": "2.0.0"
}