Properties
| Name | Type | Description |
|---|---|---|
| id | string | |
| stepId | string | |
| testRunId | string | |
| type | string | |
| status | string | * `error` - Error * `passed` - Passed * `failed` - Failed * `running` - Running * `auto_retrying` - Auto Retrying * `stopped` - Stopped * `queued` - Queued * `paused` - Paused * `skipped` - Skipped * |
| error | stringnull | |
| errorCode | stringnull | |
| warning | boolean | |
| forceFailed | boolean | |
| ignoredFailed | boolean | |
| executed | booleannull | |
| elementExists | booleannull | |
| timeout | booleannull | |
| executionUrl | stringnull | |
| started | stringnull | |
| ended | stringnull | |
| duration | stringnull | |
| runTimeout | numbernull | |
| sleep | numbernull | |
| screenshotUrl | string | |
| coveringElementScreenshot | string | |
| assertionExpectedValue | stringnull | |
| assertionCurrentValue | stringnull | |
| assertionType | string | |
| assertionProperty | string | |
| assertionAttributeName | string | |
| tabNo | integer | |
| computedValue | stringnull | |
| computedUrl | stringnull | |
| computedUsername | stringnull | |
| computedPassword | stringnull | |
| computedFrameLocation | stringnull | |
| computedAssertionExpectedValue | stringnull | |
| computedSelector | stringnull | |
| selector | stringnull | |
| interactionPositionX | numbernull | |
| interactionPositionY | numbernull | |
| scrollX | numbernull | |
| scrollY | numbernull | |
| windowInnerWidth | numbernull | |
| windowInnerHeight | numbernull | |
| waitingConditions | array | |
| visualRegressionRefScreenshotSourceId | stringnull | |
| visualRegressionCompareResult | object |
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://artifacts.apis.io/bugbug-io/json-schema/bugbug-io-v2-step-run-detail-schema.json",
"title": "V2StepRunDetail",
"x-generated": "2026-11-03",
"x-method": "derived",
"x-generator": "derive-json-schema.py",
"x-source": "openapi/bugbug-io-openapi.json#/components/schemas/V2StepRunDetail",
"type": "object",
"properties": {
"id": {
"type": "string",
"format": "uuid",
"readOnly": true
},
"stepId": {
"type": "string",
"format": "uuid",
"readOnly": true
},
"testRunId": {
"type": "string",
"format": "uuid",
"readOnly": true
},
"type": {
"type": "string",
"readOnly": true
},
"status": {
"enum": [
"error",
"passed",
"failed",
"running",
"auto_retrying",
"stopped",
"queued",
"paused",
"skipped",
"recording",
"initialized"
],
"type": "string",
"description": "* `error` - Error\n* `passed` - Passed\n* `failed` - Failed\n* `running` - Running\n* `auto_retrying` - Auto Retrying\n* `stopped` - Stopped\n* `queued` - Queued\n* `paused` - Paused\n* `skipped` - Skipped\n* `recording` - Recording\n* `initialized` - Initialized",
"x-spec-enum-id": "d6540c730bc09488"
},
"error": {
"type": [
"string",
"null"
]
},
"errorCode": {
"type": [
"string",
"null"
],
"maxLength": 100
},
"warning": {
"type": "boolean"
},
"forceFailed": {
"type": "boolean"
},
"ignoredFailed": {
"type": "boolean"
},
"executed": {
"type": [
"boolean",
"null"
]
},
"elementExists": {
"type": [
"boolean",
"null"
]
},
"timeout": {
"type": [
"boolean",
"null"
]
},
"executionUrl": {
"type": [
"string",
"null"
],
"title": "Step execution URL"
},
"started": {
"type": [
"string",
"null"
],
"format": "date-time"
},
"ended": {
"type": [
"string",
"null"
],
"format": "date-time"
},
"duration": {
"type": [
"string",
"null"
]
},
"runTimeout": {
"type": [
"number",
"null"
],
"format": "double"
},
"sleep": {
"type": [
"number",
"null"
],
"format": "double"
},
"screenshotUrl": {
"type": "string",
"readOnly": true
},
"coveringElementScreenshot": {
"type": "string",
"readOnly": true
},
"assertionExpectedValue": {
"type": [
"string",
"null"
]
},
"assertionCurrentValue": {
"type": [
"string",
"null"
]
},
"assertionType": {
"type": "string",
"readOnly": true
},
"assertionProperty": {
"type": "string",
"readOnly": true
},
"assertionAttributeName": {
"type": "string",
"readOnly": true
},
"tabNo": {
"type": "integer",
"readOnly": true
},
"computedValue": {
"type": [
"string",
"null"
]
},
"computedUrl": {
"type": [
"string",
"null"
]
},
"computedUsername": {
"type": [
"string",
"null"
]
},
"computedPassword": {
"type": [
"string",
"null"
]
},
"computedFrameLocation": {
"type": [
"string",
"null"
]
},
"computedAssertionExpectedValue": {
"type": [
"string",
"null"
]
},
"computedSelector": {
"type": [
"string",
"null"
]
},
"selector": {
"type": [
"string",
"null"
]
},
"interactionPositionX": {
"type": [
"number",
"null"
],
"format": "double"
},
"interactionPositionY": {
"type": [
"number",
"null"
],
"format": "double"
},
"scrollX": {
"type": [
"number",
"null"
],
"format": "double"
},
"scrollY": {
"type": [
"number",
"null"
],
"format": "double"
},
"windowInnerWidth": {
"type": [
"number",
"null"
],
"format": "double"
},
"windowInnerHeight": {
"type": [
"number",
"null"
],
"format": "double"
},
"waitingConditions": {
"type": "array",
"items": {
"$ref": "#/$defs/V2WaitingConditionRun"
},
"readOnly": true
},
"visualRegressionRefScreenshotSourceId": {
"type": [
"string",
"null"
],
"format": "uuid",
"readOnly": true
},
"visualRegressionCompareResult": {
"allOf": [
{
"$ref": "#/$defs/V2VisualRegressionCompareResult"
}
],
"readOnly": true
}
},
"required": [
"assertionAttributeName",
"assertionProperty",
"assertionType",
"coveringElementScreenshot",
"id",
"screenshotUrl",
"stepId",
"tabNo",
"testRunId",
"type",
"visualRegressionCompareResult",
"visualRegressionRefScreenshotSourceId",
"waitingConditions"
],
"$defs": {
"V2VisualRegressionCompareResult": {
"type": "object",
"properties": {
"refScreenshotUrl": {
"type": [
"string",
"null"
],
"readOnly": true
},
"observedScreenshotUrl": {
"type": [
"string",
"null"
],
"readOnly": true
},
"diffScreenshotUrl": {
"type": [
"string",
"null"
],
"readOnly": true
},
"maxDiff": {
"type": "number",
"format": "double",
"description": "Maximum allowed difference used for comparison"
},
"observedDiff": {
"type": [
"number",
"null"
],
"format": "double",
"readOnly": true
},
"executionTime": {
"type": [
"number",
"null"
],
"format": "double"
},
"browserName": {
"type": [
"string",
"null"
],
"maxLength": 64
},
"osName": {
"type": [
"string",
"null"
],
"maxLength": 64
},
"screenSizeType": {
"enum": [
"desktop",
"mobile",
"custom",
"",
null
],
"type": [
"string",
"null"
],
"description": "* `desktop` - Desktop\n* `mobile` - Mobile\n* `custom` - Custom",
"x-spec-enum-id": "c0cdf94a62475084"
},
"runMode": {
"enum": [
"server",
"local",
"recording",
"",
null
],
"type": [
"string",
"null"
],
"description": "* `server` - cloud\n* `local` - local\n* `recording` - recording",
"x-spec-enum-id": "396ab9b642f5073e"
},
"profileName": {
"type": "string",
"readOnly": true
}
},
"required": [
"diffScreenshotUrl",
"maxDiff",
"observedDiff",
"observedScreenshotUrl",
"profileName",
"refScreenshotUrl"
]
},
"V2WaitingConditionRun": {
"type": "object",
"properties": {
"type": {
"enum": [
"documentComplete",
"elementIsVisible",
"elementIsNotCovered",
"elementIsNotAnimating",
"elementIsNotDisabled",
"elementHasFocus",
"networkIdle",
"pageNavigationAfterExecution",
"elementHasAttribute"
],
"type": "string",
"description": "* `documentComplete` - documentComplete\n* `elementIsVisible` - elementIsVisible\n* `elementIsNotCovered` - elementIsNotCovered\n* `elementIsNotAnimating` - elementIsNotAnimating\n* `elementIsNotDisabled` - elementIsNotDisabled\n* `elementHasFocus` - elementHasFocus\n* `networkIdle` - networkIdle\n* `pageNavigationAfterExecution` - pageNavigationAfterExecution\n* `elementHasAttribute` - elementHasAttribute",
"x-spec-enum-id": "8bf476331e5e9e41",
"readOnly": true
},
"isSuccess": {
"type": "boolean"
},
"isSoftSuccess": {
"type": "boolean"
},
"isIgnored": {
"type": "boolean"
},
"expected": {
"type": [
"string",
"null"
]
},
"current": {
"type": [
"string",
"null"
]
}
},
"required": [
"isSuccess",
"type"
]
}
}
}
Work with this as data
Every JSON Schema here is available over the APIs.io API and to AI agents over MCP.
MCP server
One button, every client — Claude, Cursor, VS Code and the rest.
https://apis.io/mcp
Tools for schemas
4 MCP tools reach this
find_json_schemasBrowse and filter every JSON Schema in the catalog.apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.resolveTurn a domain, URL or GitHub org into the provider it belongs to.find_cohortsEvery scored population of providers in the catalog.
Call it yourself
curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/bugbug-io-v2-step-run-detail"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"
Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.
Get an API key
Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.
A second provider on the same verified email joins the account you already have.