---
title: "List a hosted installation's runs"
method: GET
path: "/v1/extension-installations/{id}/runs"
tags: ["Extension installations"]
---

# List a hosted installation's runs

`GET /v1/extension-installations/{id}/runs`

## Request

- Base URL: `https://api.samva.dev`
- URL: `https://api.samva.dev/v1/extension-installations/{id}/runs`
- Auth: API key in header `x-api-key`

Returns the hosted installation's retained handler runs, newest first: outcome, duration, and error. The host keeps the last 100 runs, so the list is bounded and has no cursor. Read a run's logged lines with `GET /v1/extension-installations/{id}/runs/{runId}`.

## Path parameters

- `id` string, required

## Response `200`

ExtensionRunList

- ExtensionRunList
  - `items` ExtensionRunSummary[], required
    - `id` string, required
    - `eventId` string, required
    - `eventType` 'mailbox.message.received' | 'mailbox.message.sent' | 'mailbox.action.pending_approval' | 'mailbox.action.resolved' | 'mailbox.message.quarantined' | 'mailbox.message.released' | 'mailbox.message.discarded', required
    - `attempt` integer, required
    - `startedAt` string, required
    - `durationMs` integer, required
    - `outcome` 'succeeded' | 'failed' | 'timed_out' | 'budget_exhausted' | 'revoked', required
    - `error` string, nullable, required

## Other responses

- `401`: UnauthorizedError
- `403`: ForbiddenError
- `404`: ResourceNotFoundError
- `422`: ValidationError
- `500`: InternalError
- `504`: GatewayTimeoutError

---

[API](https://skmtc.dev/samva/apis/samva-api.md) · [All operations](https://skmtc.dev/samva/apis/samva-api/llms.txt) · [OpenAPI document](https://skmtc.dev/samva/apis/samva-api/revisions/a99408542cc3?raw)
