> ## Documentation Index
> Fetch the complete documentation index at: https://docs.mobileboost.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Webhooks

> Receive test results via HTTP webhooks after every test suite run

MobileBoost sends a POST request with test results to your webhook endpoint every time a test suite completes. This lets you integrate results into your own systems: dashboards, alerting, ticketing, or custom reporting.

## Setup

<Steps>
  <Step title="Prepare your endpoint">
    Set up an HTTP endpoint that accepts POST requests with a JSON body. This can be any server, serverless function, or third-party service that accepts incoming webhooks.
  </Step>

  <Step title="Configure the webhook URL">
    Go to **Account > Settings** in <a href="https://app.mobileboost.io/gpt-driver/settings" target="_blank">QA Studio</a> and find the **Webhook URL to be called after test suite run** field. Enter your endpoint URL.
  </Step>

  <Step title="Add authorization (optional)">
    If your endpoint requires authentication, enter the value in the **Webhook authorization header** field. MobileBoost includes this value in the `Authorization` header of every request.
  </Step>
</Steps>

## Payload

After each test suite run, MobileBoost sends a POST request to your configured URL with a JSON payload containing the full results.

### Fields

| Field              | Type    | Description                                    |
| ------------------ | ------- | ---------------------------------------------- |
| `totalTests`       | integer | Total number of tests in the suite             |
| `succeededTests`   | array   | List of tests that passed                      |
| `failedTests`      | array   | List of tests that failed                      |
| `blockedTests`     | array   | List of tests that were blocked from executing |
| `appInfo`          | string  | Application name                               |
| `appVersionCode`   | string  | Application version code                       |
| `appVersionName`   | string  | Application version name                       |
| `platform`         | string  | Target platform (`android` or `ios`)           |
| `bundle`           | string  | Application bundle identifier                  |
| `uploadId`         | string  | ID of the uploaded build                       |
| `trigger`          | string  | How the run was triggered (e.g., `API`)        |
| `metaData`         | object  | Custom metadata attached to the execution      |
| `testSuiteId`      | string  | Unique identifier for the test suite run       |
| `startTimeInEpoch` | integer | Suite start time as Unix timestamp             |

### Test result fields

Each test in `succeededTests`, `failedTests`, and `blockedTests` contains:

| Field               | Type    | Description                                      |
| ------------------- | ------- | ------------------------------------------------ |
| `id`                | string  | Test ID                                          |
| `title`             | string  | Test name                                        |
| `status`            | string  | Result status (`succeeded`, `failed`, `blocked`) |
| `statusMessage`     | string  | Detail message, especially for failures          |
| `recording`         | string  | URL to the video recording of the test run       |
| `platform`          | string  | Platform the test ran on                         |
| `device`            | string  | Device model                                     |
| `os`                | string  | OS version                                       |
| `orientation`       | string  | Screen orientation                               |
| `locale`            | string  | Device locale                                    |
| `tags`              | array   | Tags assigned to the test                        |
| `startTimeInEpoch`  | integer | Test start time as Unix timestamp                |
| `finishTimeInEpoch` | integer | Test finish time as Unix timestamp               |

### Example payload

```json theme={null}
{
  "totalTests": 1,
  "succeededTests": [],
  "failedTests": [
    {
      "id": "teXiuNg4TLL9ioHIct5H",
      "startTimeInEpoch": 1696263692,
      "finishTimeInEpoch": 1696263713,
      "title": "3sec failing",
      "status": "failed",
      "statusMessage": "error detected: The installation of the app has failed, preventing the execution of the test steps.",
      "recording": "https://app.mobileboost.io/recording/jhn7urWc/runs/teXK9ioHIct5H",
      "platform": "android",
      "device": "pixel7",
      "orientation": "portrait",
      "os": "13.0",
      "coordinates": {},
      "locale": "fr_FR",
      "tags": ["test tag"]
    }
  ],
  "blockedTests": [],
  "appInfo": "Test App",
  "startTimeInEpoch": 1696263663,
  "appVersionCode": "1123",
  "appVersionName": "2.4.9",
  "platform": "android",
  "bundle": "com.test.app",
  "uploadId": "JbUOAOHLx99O2MYJc0LC",
  "trigger": "API",
  "metaData": {},
  "testSuiteId": "99a7a26d1c914f77916f35ca76291d82"
}
```
