---
title: "Get an inbox placement run"
method: GET
path: "/inbox-placement/runs/{id}"
tags: ["Inbox Placement"]
---

# Get an inbox placement run

`GET /inbox-placement/runs/{id}`

## Request

- Base URL: `https://api.emailchaser.com/r`
- URL: `https://api.emailchaser.com/r/inbox-placement/runs/{id}`
- Auth: HTTP bearer

Returns one run with its complete report: the headline split, the per-provider and per-sending-mailbox breakdowns, and the content spam rules the copy triggered. "Promotions" rolls up every Gmail category tab. "Missing" means the probe was never found in any folder, which usually indicates a silent block, and is reported apart from spam because it is a worse problem with a different fix.

## Path parameters

- `id` integer, required

## Response `200`

The run and its report

- ModelsInboxPlacementRunDetailResponse
  - `completedAt` string
  - `createdAt` string
  - `error` string
  - `failed` integer
  - `id` integer
  - `inbox` integer
  - `inboxRate` integer: InboxRate is the whole-percentage share of SCORED probes that reached the primary inbox. -1 when nothing has been scored.
  - `messagesExpected` integer
  - `messagesSent` integer
  - `missing` integer: Missing counts probes never found in any folder, which usually means a silent block. Reported apart from spam because it is a worse problem with a different fix.
  - `promotions` integer: Promotions counts every Gmail category tab: promotions, social and updates. Delivered, but filtered away from the reader.
  - `providerBreakdown` ModelsInboxPlacementProviderResponse[]
    - `inbox` integer
    - `inboxRate` integer
    - `label` string
    - `missing` integer
    - `promotions` integer
    - `provider` string
    - `seeds` integer
    - `spam` integer
  - `seedsTargeted` integer
  - `senderBreakdown` ModelsInboxPlacementSenderResponse[]
    - `failed` integer
    - `inbox` integer
    - `inboxRate` integer
    - `missing` integer
    - `promotions` integer
    - `senderAddress` string
    - `senderEmailId` integer
    - `sent` integer
    - `spam` integer
  - `sendersTargeted` integer
  - `spam` integer
  - `spamScore` integer: SpamScore is the content spam score in tenths of a point, so 47 is 4.7. -1 when not scored.
  - `spamScoreRules` ModelsInboxPlacementSpamRuleResponse[]
    - `advice` string
    - `description` string
    - `name` string
    - `points` integer: Points is the rule's cost in tenths of a point, so 15 is 1.5 points.
  - `startedAt` string
  - `status` string: Status is pending, sending, collecting, completed, failed or cancelled. Counters are only final once status is completed.
  - `testId` integer
  - `trigger` string: Trigger is manual or scheduled.

## Other responses

- `401`: Unauthorized - invalid or missing API key
- `403`: The workspace does not hold the Inbox Placement add-on (code inbox_placement_required)
- `404`: No such run in this workspace
- `500`: Failed to load the run

---

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