OpenAPI Specification
openapi: 3.0.0
info:
description: Testim.io Public API for branches and tests
version: 1.0.0
title: Testim.io Public Branches Executions API
contact:
email: support@testim.io
servers:
- url: https://api.testim.io
- url: https://api.eu.testim.io
security:
- apiKeyAuth: []
tags:
- name: Executions
description: Get execution results
paths:
/runs/executions:
get:
summary: Get executions results
description: Get the list of executions remote runs.
tags:
- Executions
parameters:
- in: query
name: page
required: false
description: the page number
schema:
default: 0
example: 0
type: number
- in: query
name: pageSize
required: false
description: total rows to get on each page.
schema:
default: 200
example: 300
type: number
- in: query
name: fromDate
required: false
description: filter data from this given date (ISO 8601 format)
schema:
default: start of today
example: 05-01-2020, 2020-05-01 or 2020-05-01T00:00:00
format: YYYY-MM-DD, MM-DD-YYYY, YYYY-MM-DDTHH:MM:SSZ
type: string
- in: query
name: toDate
required: false
description: filter date to this date (ISO 8601 format)
schema:
default: end of today
example: 05-01-2020, 2020-05-01 or 2020-05-01T10:00:00
format: YYYY-MM-DD, MM-DD-YYYY, YYYY-MM-DDTHH:MM:SSZ
type: string
- in: query
name: status
required: false
description: execution status to filter by.
schema:
example: passed
type: string
- in: query
name: browser
required: false
description: browser name to filter by.
schema:
example: chrome
type: string
- in: query
name: name
description: execution name to filter by.
schema:
type: string
- in: query
name: resultLabel
description: resultLabel or multi resultLabels to filter by.
schema:
type: array
items:
type: string
- in: query
name: branch
description: branch name or multi branch names to filter by.
schema:
example:
- master
type: array
items:
type: string
- in: query
name: strictNameSearch
description: Search execution with strict name match
required: false
schema:
type: boolean
default: false
responses:
'200':
description: Executions runs result
content:
application/json:
schema:
type: object
properties:
totalRecords:
type: number
description: total rows
example: 300
page:
type: number
description: current page index
example: 0
pageSize:
type: number
description: max items on each page
example: 200
executions:
type: array
items:
type: object
properties:
execution:
type: string
description: The name of the execution
example: remote-run
executionId:
type: string
description: The id of the execution
example: OSApM0g8f3FRQnvN
executionResult:
type: string
description: Wether the execution passed or failed
example: Failed
duration:
type: number
description: The amount of time (MS) the execution took
totalTests:
type: number
description: The amount of tests executed
example: 1
failedCount:
type: number
description: The amount of failed tests
example: 1
concurrency:
type: number
description: The amount of tests executed in parallel
example: 1
branch:
type: string
description: The branch of the tests executed
example: master
browser:
type: array
description: The name of the browser the tests were executed in
items:
type: string
example: chrome
startTime:
type: string
description: the state time of the execution
example: 2022-05-10 02:39:54.483000+00:00
turboMode:
type: boolean
description: Wether the execution used Testim's Turbo Mode or not
example: false
success:
type: boolean
description: indication of the execution result
example: false
resultLabels:
type: array
description: hold the result labels as array of string for the execution if exists
items:
type: string
example: scheduler-run
link:
type: string
description: A link to the execution result in Testim editor
metaData:
$ref: '#/components/schemas/metaData'
'400':
$ref: '#/components/responses/InvalidOrMissingProperty'
'401':
$ref: '#/components/responses/InvalidApiKey'
'403':
$ref: '#/components/responses/ApiKeyInsufficientPermissions'
'404':
$ref: '#/components/responses/ExecutionDoesNotExist'
'429':
$ref: '#/components/responses/TooManyRequests'
/runs/executions/{executionId}:
get:
summary: Get execution results
description: Get the result of an execution, together with its failing tests, with a list of the failed steps of the test
tags:
- Executions
parameters:
- in: path
name: executionId
required: true
description: The ID of the execution to get details
schema:
example: EXECUTION_ID
type: string
responses:
'200':
description: Execution result
content:
application/json:
schema:
type: object
properties:
executionId:
type: string
description: The execution ID
startTime:
type: string
description: Execution start time in ISO 8601 format
example: 2022-05-10 02:39:54.483000+00:00
source:
type: string
description: The method which of execution initiation
enum:
- cli
- scheduler
- editor
- remote-run
- local
branch:
type: string
description: The branch of the tests executed
example: master
execution:
type: string
description: The name of the execution
example: remote-run
concurrency:
type: number
description: The amount of tests executed in parallel
example: 1
executionResult:
type: string
description: Wether the execution passed or failed
example: Failed
browser:
type: string
description: The name of the browser the tests were executed in
example: chrome
failedCount:
type: number
description: The amount of failed tests
example: 1
totalTests:
type: number
description: The amount of tests executed
example: 1
link:
type: string
description: A link to the execution result in Testim editor
turboMode:
type: boolean
description: Wether the execution used Testim's Turbo Mode or not
duration:
type: number
description: The amount of time (MS) the execution took
failedTests:
type: array
description: A list of the failed tests
items:
type: object
properties:
testId:
type: string
description: The test ID
testName:
type: string
description: The name of the failed test
errorMessage:
type: string
description: The error message with test failure reason
executionResult:
type: string
description: Wether the execution passed or failed
link:
type: string
description: A link to the test result in Testim editor
failedSteps:
type: array
description: A list of the failed steps in the test
items:
type: object
properties:
reason:
type: string
description: The reason the step failed
name:
type: string
description: The name of the failing step
failureType:
type: string
description: The type of failure the test was tagged with
enum:
- Bug in app
- Environment Issue
- Invalid test data
- Test design
- New UI change
- Other
failureDescription:
type: string
description: User supplied description for the particular failure
linkToFailureIssue:
type: string
description: User supplied url to the an issue tracker ticket for the particular issue
example: http://demo.jira.com/issue/234234
baseUrl:
type: string
description: The base URL used
example: https://api.testim.io
startTime:
type: string
description: Test execution start time in ISO 8601 format
example: 2022-05-10 02:39:54.483000+00:00
duration:
type: string
description: Time from startTime to the end of the test (in milliseconds)
$ref: '#/components/schemas/metaData'
'400':
$ref: '#/components/responses/InvalidOrMissingProperty'
'401':
$ref: '#/components/responses/InvalidApiKey'
'403':
$ref: '#/components/responses/ApiKeyInsufficientPermissions'
'404':
$ref: '#/components/responses/ExecutionDoesNotExist'
'429':
$ref: '#/components/responses/TooManyRequests'
/v2/runs/executions/{executionId}:
get:
summary: Get execution results
description: Get all test results in the given execution
tags:
- Executions
parameters:
- in: path
name: executionId
required: true
description: The ID of the execution to get details
schema:
example: EXECUTION_ID
type: string
- in: query
name: page
description: the page number
schema:
default: 0
example: 0
type: number
- in: query
name: pageSize
description: limit return test
schema:
default: 200
example: 200
type: number
responses:
'200':
description: Execution result
content:
application/json:
schema:
type: object
properties:
id:
type: string
description: The execution ID
startTime:
type: string
description: Execution start time in ISO 8601 format
example: 2022-05-10 02:39:54.483000+00:00
source:
type: string
description: The method which of execution initiation
enum:
- cli
- scheduler
- editor
- remote-run
- local
branch:
type: string
description: The branch of the tests executed
example: master
execution:
type: string
description: The name of the execution
example: remote-run
concurrency:
type: number
description: The amount of tests executed in parallel
example: 1
executionResult:
type: string
description: Whether the execution passed or failed
example: Failed
browser:
type: string
description: The name of the browser the tests were executed in
example: chrome
failedCount:
type: number
description: The amount of failed tests
example: 1
passedCount:
type: number
description: The amount of passed tests
example: 1
abortedCount:
type: number
description: The amount of aborted tests
example: 1
timedOutTests:
type: number
description: The amount of timed out tests
example: 1
totalTests:
type: number
description: The amount of tests executed
example: 1
link:
type: string
description: A link to the execution result in Testim's editor
turboMode:
type: boolean
description: Whether the execution used Testim's Turbo Mode or not
duration:
type: number
description: The amount of time (MS) the execution took
tests:
type: array
description: A list of the all included tests
items:
type: object
properties:
id:
type: string
description: The test ID
testName:
type: string
description: The name of the test
errorMessage:
type: string
description: The error message with test failure reason
executionStatus:
type: string
description: test status
link:
type: string
description: A link to the test result in Testim editor
failureType:
type: string
description: The type of failure the test was tagged with
enum:
- Bug in app
- Environment Issue
- Invalid test data
- Test design
- New UI change
- Other
failureDescription:
type: string
description: User supplied description for the particular failure
linkToFailureIssue:
type: string
description: User supplied url to the an issue tracker ticket for the particular issue
example: http://demo.jira.com/issue/234234
baseUrl:
type: string
description: The base URL used
example: https://api.testim.io
startTime:
type: string
description: Test execution start time in ISO 8601 format
example: 2022-05-10 02:39:54.483000+00:00
duration:
type: string
description: Time from startTime to the end of the test (in milliseconds)
failedSteps:
type: array
description: A list of the failed steps in the test
items:
type: object
properties:
reason:
type: string
description: The reason the step failed
name:
type: string
description: The name of the failing step
metaData:
$ref: '#/components/schemas/metaData'
'400':
$ref: '#/components/responses/InvalidOrMissingProperty'
'401':
$ref: '#/components/responses/InvalidApiKey'
'403':
$ref: '#/components/responses/ApiKeyInsufficientPermissions'
'404':
$ref: '#/components/responses/ExecutionDoesNotExist'
'429':
$ref: '#/components/responses/TooManyRequests'
/runs/tests/{testResultId}:
get:
summary: Get test result
description: Get the result of a test, together with all its steps. <br> To see run parameters, specify "runParams=true". <br> To see steps results, specify "stepsResults=true". <br> <br> *Only remote runs are supported
tags:
- Executions
parameters:
- in: path
name: testResultId
required: true
description: The ID of the result to get details
schema:
example: RESULT_ID
type: string
- in: query
name: runParams
description: Retrieve the test's run parameters
schema:
example: false
type: boolean
- in: query
name: stepsResults
description: Retrieve the test's steps results
schema:
example: false
type: boolean
responses:
'200':
description: Test result
content:
application/json:
schema:
type: object
properties:
testResult:
type: object
properties:
testId:
type: string
description: The test ID
testName:
type: string
description: The name of the test
link:
type: string
description: Link to open test in Testim editor
branch:
type: string
description: The name of the branch to execute tests from
baseURL:
type: string
configuration:
type: string
description: The test configuration name
executionDate:
type: string
example: '2022-12-31'
executionTime:
type: string
example: '10:59:59'
turboMode:
type: boolean
testResult:
type: string
description: Could be 'Passed' or 'Failed'
example: Passed
errorMessage:
type: string
description: Test result failure message
runParams:
type: object
duration:
type: number
description: In seconds
testStatus:
type: string
description: e.g Draft, Evaluating, Active, Quarantine
browser:
type: string
example: chrome
owner:
type: string
example: rosie@testim.io
description: The owner user email
stepsResults:
type: array
items:
type: object
properties:
name:
type: string
type:
type: string
treatAsWarning:
type: boolean
description:
type: string
sharedStep:
type: boolean
duration:
type: string
description: In seconds
status:
type: string
description: Could be 'Passed' or 'Failed'
example: Passed
errorMessage:
type: string
tabURL:
type: string
screenshot:
type: string
screenshots:
type: object
properties:
baseline:
type: string
result:
type: string
highlightedBaseline:
type: string
highlightedResult:
type: string
accessibleUntil:
type: integer
example: 1693808555043
path:
type: array
items:
type: string
failureType:
type: string
description: The type of failure the test was tagged with
enum:
- Bug in app
- Environment Issue
- Invalid test data
- Test design
- New UI change
- Other
failureDescription:
type: string
description: The type of failure the test was tagged with
linkToFailureIssue:
type: string
description: User supplied url to the an issue tracker ticket for the particular issue
example: http://demo.jira.com/issue/234234
startTime:
type: string
description: Test execution start time in ISO 8601 format
example: 2022-05-10 02:39:54.483000+00:00
metaData:
$ref: '#/components/schemas/metaData'
'400':
$ref: '#/components/responses/InvalidOrMissingProperty'
'401':
$ref: '#/components/responses/InvalidApiKey'
'403':
$ref: '#/components/responses/ApiKeyInsufficientPermissions'
'404':
$ref: '#/components/responses/TestResultDoesNotExist'
'429':
$ref: '#/components/responses/TooManyRequests'
components:
responses:
TooManyRequests:
description: Project or API key rate limiting has been reached
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
InvalidApiKey:
description: 'Issue authenticating request: missing or invalid API Key'
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
TestResultDoesNotExist:
description: Specified test result ID does not exist
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
InvalidOrMissingProperty:
description: A required property is either missing or it's value is invalid
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
ApiKeyInsufficientPermissions:
description: API key does not have suffiecient permission to make the request
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
ExecutionDoesNotExist:
description: Specified execution ID does not exist
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
schemas:
requestId:
type: string
example: RQ-HykKrXuMxrp47BRbdWWO-41ed477e-4052-4904-ab98-034f6285e60e
metaData:
type: object
properties:
requestId:
$ref: '#/components/schemas/requestId'
required:
- requestId
Error:
type: object
properties:
requestId:
$ref: '#/components/schemas/requestId'
error:
type: object
properties:
message:
type: string
status:
type: number
example: 400
required:
- status
- message
required:
- string
- error
securitySchemes:
apiKeyAuth:
type: http
scheme: bearer
bearerFormat: PAK-[RANDOM_KEY]