openapi: 3.0.3 info: title: Testmo REST Automation Runs Projects API description: 'The Testmo REST API provides read access to the major entities of a Testmo unified test management instance - projects, manual test runs and their results, automation runs, automation sources, exploratory sessions, and milestones - so teams can build custom analytics, reporting, and integrations. A beta test case management surface (cases, folders, attachments) adds create/update/delete operations. The API is per-instance: the base URL is https://{instance}.testmo.net/api/v1, where {instance} is your own Testmo subdomain. All requests authenticate with a personal API token generated from your Testmo profile page, passed as `Authorization: Bearer `. List endpoints support common pagination (page, per_page), sorting (sort, order), and filtering parameters. NOTE: This document is modeled from Testmo''s public documentation and blog posts (docs.testmo.com and testmo.com/blog). Endpoint paths, authentication, and pagination are grounded in those sources; request and response schemas are illustrative and should be verified against the live docs and your instance. Endpoints under the /projects/{project_id}/cases and /folders paths are in beta and may change.' version: '1.0' contact: name: Testmo url: https://www.testmo.com servers: - url: https://{instance}.testmo.net/api/v1 description: Per-instance Testmo API base. Replace {instance} with your Testmo subdomain. variables: instance: default: your-name description: Your Testmo instance subdomain (e.g. your-name in your-name.testmo.net). security: - bearerAuth: [] tags: - name: Projects description: Top-level projects that contain runs, sessions, milestones, and cases. paths: /projects: get: operationId: listProjects tags: - Projects summary: List projects description: Lists all projects visible to the authenticated user. parameters: - $ref: '#/components/parameters/Page' - $ref: '#/components/parameters/PerPage' responses: '200': description: A paginated list of projects. content: application/json: schema: $ref: '#/components/schemas/ProjectList' '401': $ref: '#/components/responses/Unauthorized' /projects/{project_id}: parameters: - $ref: '#/components/parameters/ProjectId' get: operationId: getProject tags: - Projects summary: Get a project description: Retrieves a single project by its ID. responses: '200': description: The requested project. content: application/json: schema: $ref: '#/components/schemas/Project' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' components: parameters: Page: name: page in: query required: false description: The page of results to retrieve. schema: type: integer default: 1 ProjectId: name: project_id in: path required: true description: The ID of the project. schema: type: integer PerPage: name: per_page in: query required: false description: The number of entries per page. schema: type: integer default: 100 responses: Unauthorized: description: Missing or invalid API token. content: application/json: schema: $ref: '#/components/schemas/Error' NotFound: description: The requested resource was not found. content: application/json: schema: $ref: '#/components/schemas/Error' schemas: ProjectList: type: object properties: result: type: array items: $ref: '#/components/schemas/Project' pagination: $ref: '#/components/schemas/Pagination' Pagination: type: object properties: page: type: integer per_page: type: integer prev_page: type: integer nullable: true next_page: type: integer nullable: true last_page: type: integer Project: type: object properties: id: type: integer name: type: string is_completed: type: boolean Error: type: object properties: error: type: object properties: code: type: string message: type: string securitySchemes: bearerAuth: type: http scheme: bearer description: 'Personal API token generated from your Testmo profile page, passed as `Authorization: Bearer `.'