Testerarmy Projects API
The Projects API from Testerarmy — 13 operation(s) for projects.
The Projects API from Testerarmy — 13 operation(s) for projects.
openapi: 3.0.0
info:
title: TestArmy Groups Projects API
version: 1.0.0
description: AI-powered browser automation API for QA testing. Automate web testing workflows using natural language prompts.
servers:
- url: https://tester.army/api
description: Production API server
tags:
- name: Projects
paths:
/v1/projects:
get:
summary: List projects
description: List projects available to the authenticated API key's team.
tags:
- Projects
security:
- bearerAuth: []
responses:
'200':
description: List of projects
content:
application/json:
schema:
type: object
properties:
projects:
type: array
items:
type: object
properties:
id:
type: string
format: uuid
shortId:
type: string
name:
type: string
url:
type: string
nullable: true
format: uri
projectType:
type: string
enum:
- web
- mobile
environments:
type: array
items:
type: object
properties:
id:
type: string
format: uuid
name:
type: string
slug:
type: string
kind:
type: string
enum:
- production
- pr_preview
- static
url:
type: string
nullable: true
required:
- id
- name
- slug
- kind
- url
required:
- id
- shortId
- name
- url
- projectType
required:
- projects
'400':
description: Bad Request - Invalid input parameters
content:
application/json:
schema:
type: object
properties:
error:
type: string
description: Error code or type
message:
type: string
description: Human-readable error message
required:
- error
- message
'401':
description: Unauthorized - Invalid or missing API key
content:
application/json:
schema:
type: object
properties:
error:
type: string
description: Error code or type
message:
type: string
description: Human-readable error message
required:
- error
- message
'429':
description: Too Many Requests - Usage limit exceeded
content:
application/json:
schema:
type: object
properties:
error:
type: string
description: Error code or type
message:
type: string
description: Human-readable error message
required:
- error
- message
'500':
description: Internal Server Error
content:
application/json:
schema:
type: object
properties:
error:
type: string
description: Error code or type
message:
type: string
description: Human-readable error message
required:
- error
- message
'504':
description: Gateway Timeout - Test execution exceeded time limit
content:
application/json:
schema:
type: object
properties:
error:
type: string
description: Error code or type
message:
type: string
description: Human-readable error message
required:
- error
- message
post:
summary: Create a project
description: Create a project for the authenticated API key's team.
tags:
- Projects
security:
- bearerAuth: []
requestBody:
content:
application/json:
schema:
type: object
properties:
name:
type: string
minLength: 1
maxLength: 255
url:
type: string
minLength: 1
maxLength: 500
projectType:
type: string
enum:
- web
- mobile
description:
type: string
nullable: true
maxLength: 2000
required:
- name
- url
responses:
'201':
description: Project created
content:
application/json:
schema:
type: object
properties:
project:
$ref: '#/components/schemas/ProjectDetail'
required:
- project
'400':
description: Bad Request - Invalid input parameters
content:
application/json:
schema:
type: object
properties:
error:
type: string
description: Error code or type
message:
type: string
description: Human-readable error message
required:
- error
- message
'401':
description: Unauthorized - Invalid or missing API key
content:
application/json:
schema:
type: object
properties:
error:
type: string
description: Error code or type
message:
type: string
description: Human-readable error message
required:
- error
- message
'403':
description: Project limit exceeded for the current plan
content:
application/json:
schema:
type: object
properties:
error:
type: string
description: Error code or type
message:
type: string
description: Human-readable error message
currentCount:
type: integer
minimum: 0
limit:
type: integer
minimum: 0
required:
- error
- message
- currentCount
- limit
'429':
description: Too Many Requests - Usage limit exceeded
content:
application/json:
schema:
type: object
properties:
error:
type: string
description: Error code or type
message:
type: string
description: Human-readable error message
required:
- error
- message
'500':
description: Internal Server Error
content:
application/json:
schema:
type: object
properties:
error:
type: string
description: Error code or type
message:
type: string
description: Human-readable error message
required:
- error
- message
'504':
description: Gateway Timeout - Test execution exceeded time limit
content:
application/json:
schema:
type: object
properties:
error:
type: string
description: Error code or type
message:
type: string
description: Human-readable error message
required:
- error
- message
/v1/projects/{projectId}:
get:
summary: Get a project
description: Get a single project by ID or shortId.
tags:
- Projects
security:
- bearerAuth: []
parameters:
- schema:
type: string
description: Project ID or shortId
required: true
description: Project ID or shortId
name: projectId
in: path
responses:
'200':
description: Project details
content:
application/json:
schema:
$ref: '#/components/schemas/ProjectDetail'
'400':
description: Bad Request - Invalid input parameters
content:
application/json:
schema:
type: object
properties:
error:
type: string
description: Error code or type
message:
type: string
description: Human-readable error message
required:
- error
- message
'401':
description: Unauthorized - Invalid or missing API key
content:
application/json:
schema:
type: object
properties:
error:
type: string
description: Error code or type
message:
type: string
description: Human-readable error message
required:
- error
- message
'404':
description: Not Found - Resource does not exist or is not accessible
content:
application/json:
schema:
type: object
properties:
error:
type: string
description: Error code or type
message:
type: string
description: Human-readable error message
required:
- error
- message
'429':
description: Too Many Requests - Usage limit exceeded
content:
application/json:
schema:
type: object
properties:
error:
type: string
description: Error code or type
message:
type: string
description: Human-readable error message
required:
- error
- message
'500':
description: Internal Server Error
content:
application/json:
schema:
type: object
properties:
error:
type: string
description: Error code or type
message:
type: string
description: Human-readable error message
required:
- error
- message
'504':
description: Gateway Timeout - Test execution exceeded time limit
content:
application/json:
schema:
type: object
properties:
error:
type: string
description: Error code or type
message:
type: string
description: Human-readable error message
required:
- error
- message
patch:
summary: Update a project
description: Update project name, URL, or description.
tags:
- Projects
security:
- bearerAuth: []
parameters:
- schema:
type: string
description: Project ID
required: true
description: Project ID
name: projectId
in: path
requestBody:
content:
application/json:
schema:
type: object
properties:
name:
type: string
minLength: 1
maxLength: 255
url:
type: string
minLength: 1
maxLength: 500
description:
type: string
nullable: true
maxLength: 2000
responses:
'200':
description: Project updated
content:
application/json:
schema:
type: object
properties:
project:
$ref: '#/components/schemas/ProjectDetail'
required:
- project
'400':
description: Bad Request - Invalid input parameters
content:
application/json:
schema:
type: object
properties:
error:
type: string
description: Error code or type
message:
type: string
description: Human-readable error message
required:
- error
- message
'401':
description: Unauthorized - Invalid or missing API key
content:
application/json:
schema:
type: object
properties:
error:
type: string
description: Error code or type
message:
type: string
description: Human-readable error message
required:
- error
- message
'429':
description: Too Many Requests - Usage limit exceeded
content:
application/json:
schema:
type: object
properties:
error:
type: string
description: Error code or type
message:
type: string
description: Human-readable error message
required:
- error
- message
'500':
description: Internal Server Error
content:
application/json:
schema:
type: object
properties:
error:
type: string
description: Error code or type
message:
type: string
description: Human-readable error message
required:
- error
- message
'504':
description: Gateway Timeout - Test execution exceeded time limit
content:
application/json:
schema:
type: object
properties:
error:
type: string
description: Error code or type
message:
type: string
description: Human-readable error message
required:
- error
- message
delete:
summary: Delete a project
description: Delete a project. Cascades to groups, tests, runs, and associated artifacts.
tags:
- Projects
security:
- bearerAuth: []
parameters:
- schema:
type: string
description: Project ID
required: true
description: Project ID
name: projectId
in: path
responses:
'200':
description: Project deleted
content:
application/json:
schema:
type: object
properties:
deleted:
type: boolean
enum:
- true
id:
type: string
format: uuid
required:
- deleted
- id
'400':
description: Bad Request - Invalid input parameters
content:
application/json:
schema:
type: object
properties:
error:
type: string
description: Error code or type
message:
type: string
description: Human-readable error message
required:
- error
- message
'401':
description: Unauthorized - Invalid or missing API key
content:
application/json:
schema:
type: object
properties:
error:
type: string
description: Error code or type
message:
type: string
description: Human-readable error message
required:
- error
- message
'429':
description: Too Many Requests - Usage limit exceeded
content:
application/json:
schema:
type: object
properties:
error:
type: string
description: Error code or type
message:
type: string
description: Human-readable error message
required:
- error
- message
'500':
description: Internal Server Error
content:
application/json:
schema:
type: object
properties:
error:
type: string
description: Error code or type
message:
type: string
description: Human-readable error message
required:
- error
- message
'504':
description: Gateway Timeout - Test execution exceeded time limit
content:
application/json:
schema:
type: object
properties:
error:
type: string
description: Error code or type
message:
type: string
description: Human-readable error message
required:
- error
- message
/v1/projects/{projectId}/pull-request-runs:
post:
summary: Trigger a dynamic pull request run
description: Trigger the dynamic PR agent from CI using PR metadata. Callers do not send changed files; TesterArmy enriches with changed files and GitHub reporting only when the project has a supported GitHub connection.
tags:
- Projects
security:
- bearerAuth: []
parameters:
- schema:
type: string
description: Project ID or shortId
required: true
description: Project ID or shortId
name: projectId
in: path
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/DynamicPrRunRequest'
responses:
'202':
description: Dynamic PR run queued successfully
content:
application/json:
schema:
type: object
properties:
status:
type: string
enum:
- queued
runId:
type: string
format: uuid
projectId:
type: string
format: uuid
platform:
type: string
enum:
- web
- ios
- android
metadata:
type: object
properties:
github:
type: object
properties:
configured:
type: boolean
checkRunCreated:
type: boolean
commentTargetResolved:
type: boolean
status:
type: string
enum:
- not_configured
- check_create_failed
- pr_not_found
required:
- configured
- checkRunCreated
- commentTargetResolved
mobile:
type: object
properties:
source:
type: string
buildId:
type: string
required:
- source
required:
- status
- runId
- projectId
- platform
'400':
description: Bad Request - Invalid input parameters
content:
application/json:
schema:
type: object
properties:
error:
type: string
description: Error code or type
message:
type: string
description: Human-readable error message
required:
- error
- message
'401':
description: Unauthorized - Invalid or missing API key
content:
application/json:
schema:
type: object
properties:
error:
type: string
description: Error code or type
message:
type: string
description: Human-readable error message
required:
- error
- message
'404':
description: Project not found
content:
application/json:
schema:
type: object
properties:
error:
type: string
description: Error code or type
message:
type: string
description: Human-readable error message
required:
- error
- message
'413':
description: Request body too large
content:
application/json:
schema:
type: object
properties:
error:
type: string
description: Error code or type
message:
type: string
description: Human-readable error message
required:
- error
- message
'429':
description: Too Many Requests - Usage limit exceeded
content:
application/json:
schema:
type: object
properties:
error:
type: string
description: Error code or type
message:
type: string
description: Human-readable error message
required:
- error
- message
'500':
description: Internal Server Error
content:
application/json:
schema:
type: object
properties:
error:
type: string
description: Error code or type
message:
type: string
description: Human-readable error message
required:
- error
- message
'504':
description: Gateway Timeout - Test execution exceeded time limit
content:
application/json:
schema:
type: object
properties:
error:
type: string
description: Error code or type
message:
type: string
description: Human-readable error message
required:
- error
- message
/v1/projects/{projectId}/environments:
get:
summary: List project environments
description: List all run environments for a project, including built-in Production and PR Preview plus static environments.
tags:
- Projects
security:
- bearerAuth: []
parameters:
- schema:
type: string
description: Project ID or shortId
required: true
description: Project ID or shortId
name: projectId
in: path
responses:
'200':
description: List of project environments
content:
application/json:
schema:
type: object
properties:
environments:
type: array
items:
$ref: '#/components/schemas/ProjectEnvironment'
required:
- environments
'400':
description: Bad Request - Invalid input parameters
content:
application/json:
schema:
type: object
properties:
error:
type: string
description: Error code or type
message:
type: string
description: Human-readable error message
required:
- error
- message
'401':
description: Unauthorized - Invalid or missing API key
content:
application/json:
schema:
type: object
properties:
error:
type: string
description: Error code or type
message:
type: string
description: Human-readable error message
required:
- error
- message
'404':
description: Project not found
content:
application/json:
schema:
type: object
properties:
error:
type: string
description: Error code or type
message:
type: string
description: Human-readable error message
required:
- error
- message
'429':
description: Too Many Requests - Usage limit exceeded
content:
application/json:
schema:
type: object
properties:
error:
type: string
description: Error code or type
message:
type: string
description: Human-readable error message
required:
- error
- message
'500':
description: Internal Server Error
content:
application/json:
schema:
type: object
properties:
error:
type: string
description: Error code or type
message:
type: string
description: Human-readable error message
required:
- error
- message
'504':
description: Gateway Timeout - Test execution exceeded time limit
content:
application/json:
schema:
type: object
properties:
error:
type: string
description: Error code or type
message:
type: string
description: Human-readable error message
required:
- error
- message
post:
summary: Create a project environment
description: Create a static project environment with a stable HTTPS URL. Built-in Production and PR Preview environments are managed by TesterArmy.
tags:
- Projects
security:
- bearerAuth: []
parameters:
- schema:
type: string
description: Project ID or shortId
required: true
description: Project ID or shortId
name: projectId
in: path
requestBody:
content:
application/json:
schema:
type: object
properties:
name:
type: string
minLength: 1
maxLength: 100
url:
type: string
minLength: 1
maxLength: 500
required:
- name
- url
additionalProperties: false
responses:
'201':
description: Project environment created
content:
application/json:
schema:
type: object
properties:
environment:
$ref: '#/components/schemas/ProjectEnvironment'
required:
- environment
'400':
description: Bad Request - Invalid input parameters
content:
application/json:
schema:
type: object
properties:
error:
type: string
description: Error code or type
message:
type: string
# --- truncated at 32 KB (97 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/testerarmy/refs/heads/main/openapi/testerarmy-projects-api-openapi.yml