openapi: 3.0.4 info: title: Testiny Automation Projects API description: The Testiny API is the documented public REST API behind the Testiny test management platform. It exposes the same resources you work with in the Testiny app - projects, test cases (and test case folders and queries), test plans, test runs, and automated test runs and results - over a consistent REST pattern. Every entity supports single-item CRUD (GET/PUT/DELETE on /{entity}/{id}, POST to create), search via POST /{entity}/find, bulk create/update/delete via /{entity}/bulk, soft-delete/undelete, and relationship management via POST /{entity}/mapping/bulk/{otherEntities}. Test results are recorded by mapping test cases to a test run (a result status per case, with optional per-step results and attachments). All requests authenticate with an X-Api-Key header. This is a curated subset of the full schema published at https://app.testiny.io/api/v1/swagger.json (OpenAPI 3.0.4, 124 paths); consult the live schema for the complete surface. Endpoint paths and the security scheme here are grounded in that live schema; request/response bodies are modeled and simplified. version: 1.38.0 contact: name: Testiny url: https://www.testiny.io license: name: Proprietary url: https://www.testiny.io/terms/ servers: - url: https://app.testiny.io/api/v1 description: Testiny API endpoint security: - ApiKeyAuth: [] tags: - name: Projects description: Top-level containers for test cases, plans, and runs. paths: /project: get: operationId: listProjects tags: - Projects summary: List projects description: Lists the projects in your organization. responses: '200': description: A list of projects. content: application/json: schema: $ref: '#/components/schemas/EntityList' '401': $ref: '#/components/responses/Unauthorized' /project/find: post: operationId: findProjects tags: - Projects summary: Find projects description: Search for projects using DataReadParams filters, ordering, and paging. requestBody: required: true content: application/json: schema: $ref: '#/components/schemas/DataReadParams' responses: '200': description: Matching projects. content: application/json: schema: $ref: '#/components/schemas/EntityList' '401': $ref: '#/components/responses/Unauthorized' /project/{id}: get: operationId: getProject tags: - Projects summary: Get a project parameters: - $ref: '#/components/parameters/Id' responses: '200': description: The requested project. content: application/json: schema: $ref: '#/components/schemas/Entity' '401': $ref: '#/components/responses/Unauthorized' '404': $ref: '#/components/responses/NotFound' /permission/me/projects: get: operationId: listMyProjects tags: - Projects summary: List projects I can access description: Returns the projects the current API key has permission to access. responses: '200': description: Accessible projects. content: application/json: schema: $ref: '#/components/schemas/EntityList' '401': $ref: '#/components/responses/Unauthorized' components: schemas: DataReadParams: type: object description: Query parameters for find endpoints - filtering, ordering, paging, and nested mappings. Computed columns are prefixed with $. additionalProperties: true properties: filter: type: object additionalProperties: true idsOnly: type: boolean offset: type: integer limit: type: integer order: type: array items: type: string Entity: type: object description: A generic Testiny entity envelope. Concrete fields vary by entity type. additionalProperties: true properties: id: type: integer project_id: type: integer Error: type: object properties: error: type: object properties: code: type: string message: type: string EntityList: type: object properties: meta: type: object additionalProperties: true data: type: array items: $ref: '#/components/schemas/Entity' responses: Unauthorized: description: Missing or invalid X-Api-Key. content: application/json: schema: $ref: '#/components/schemas/Error' NotFound: description: The requested resource was not found. content: application/json: schema: $ref: '#/components/schemas/Error' parameters: Id: name: id in: path required: true description: The numeric ID of the entity. schema: type: integer securitySchemes: ApiKeyAuth: type: apiKey in: header name: X-Api-Key description: API key created in Testiny (Account settings / organization) with fine-grained permissions. Passed as the X-Api-Key request header. Treat the API key like a password.