---
title: "Finish a run"
method: POST
path: "/v1/runs/{run}/finish"
---

# Finish a run

`POST /v1/runs/{run}/finish`

## Request

- Base URL: `https://api.proxymail.qa`
- URL: `https://api.proxymail.qa/v1/runs/{run}/finish`
- Auth: HTTP bearer

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.

## Path parameters

- `run` string, uuid, required

## Request body

- object
  - `failed` boolean

## Response `200`

The run

- Run
  - `id` string, uuid
  - `name` string
  - `source` 'ci' | 'agent' | 'api'
  - `status` 'running' | 'passed' | 'failed'
  - `meta` object
  - `started_at` string, date-time
  - `finished_at` string, date-time, nullable
  - `url` string, uri: The run in the app.
  - `project` object
    - `id` string
    - `name` string
  - `events` object[]: What the run saw, oldest first. Not in lists.
    - `at` string, date-time
    - `kind` 'address' | 'email' | 'missing' | 'none' | 'count' | 'checks' | 'note' | 'checkout'
    - `address` string, nullable
    - `failed` boolean
    - `detail` object: 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.

## Other responses

- `404`: An error

---

[API](https://skmtc.dev/proxymail/apis/proxy-mail-qa-api.md) · [All operations](https://skmtc.dev/proxymail/apis/proxy-mail-qa-api/llms.txt) · [OpenAPI document](https://skmtc.dev/proxymail/apis/proxy-mail-qa-api/revisions/8f8a5e84cf5c?raw)
