---
title: "Finish a run | Proxy Mail QA"
description: "Developer docs for Proxy Mail QA: the MCP server for coding agents, the REST API for test suites, and the Chrome extension."
url: https://proxymail.qa/docs/reference/operations/finishrun
---

# Finish a run

POST

/v1/runs/{run}/finish

```js
const url = 'https://api.proxymail.qa/v1/runs/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/finish';
const options = {
  method: 'POST',
  headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
  body: '{"failed":false}'
};

try {
  const response = await fetch(url, options);
  const data = await response.json();
  console.log(data);
} catch (error) {
  console.error(error);
}
```

```sh
curl --request POST \
  --url https://api.proxymail.qa/v1/runs/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/finish \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '{ "failed": false }'
```

Passed, unless an email was missing, one came when none should have, an email check failed, a note or a test failed it, or `failed: true` says your tests failed. Finishing a finished run changes nothing.

## Authorizations

- **[apiKey](https://proxymail.qa/docs/reference.html#apikey)**

## Parameters

### Path Parameters

**run**

required

string format: uuid

## Request Body

Media typeapplication/json

### object

**failed**

boolean

## Responses

### 200

The run

Media typeapplication/json

### object

**id**

string format: uuid

**name**

string

**source**

string

Allowed values: ci agent api

**status**

string

Allowed values: running passed failed

**meta**

### object

**started\_at**

string format: date-time

**finished\_at**

string | null format: date-time

**url**

The run in the app.

string format: uri

**project**

### object

**id**

string

**name**

string

**events**

What the run saw, oldest first. Not in lists.

Array<object>

### object

**at**

string format: date-time

**kind**

string

Allowed values: address email missing none count checks note checkout

**address**

string | null

**failed**

boolean

**detail**

Email: type, subtype, service, received\_at, after\_seconds, and code or link and goes\_to ({ site, path }). missing: what was waited for and hint. none: arrived, since, until. count: count. checks: passed, failed, warnings and notes. note: text.

### object

#### Example 

```json
{
  "source": "ci",
  "status": "running",
  "events": [
    {
      "kind": "address"
    }
  ]
}
```

### 404

An error

Media typeapplication/json

### object

**error**

string

**message**

string

#### Example generated

```json
{
  "error": "example",
  "message": "example"
}
```

[Previous Add a test result to a run](https://proxymail.qa/docs/reference/operations/addtestresult.html) [Next Unusual email addresses](https://proxymail.qa/docs/unusual-addresses.html)
