> Discover all available Postdom documentation from the machine-readable index: https://postdom.com/llms.txt

Configured tool · read-only

# `get_performance`

Read normalized measurements for one post or one connected account.

read-only · non-destructive · closed-world

Human and agent roles

## Configured boundary

### Configured workspace

Provide exactly one scope identifier. Preserve every number, every absent field, and the reason each absent field has no value.

This reference describes the hosted server at https://api.postdom.com/mcp, which runs current source, with a workspace-scoped key created under Connected apps → For developers. The published `@postdom/mcp@0.4.0` package has 14 of these tools: it lacks list_posts, create_slideshow, account_music and the media array.

Callable schema

## Input fields

Field names match the configured tool schema. Runtime-only constraints are labeled separately from schema validation.

| Field | Type | Contract |
| --- | --- | --- |
| post_id Optional | string | Exclusive with account_id Reads stored destination snapshots for one post. |
| account_id Optional | string | Exclusive with post_id Reads snapshots for one connected account. |
| window Optional | 7d \| 30d | Defaults to 7d Applies only to account reads. It does not change post-scoped reads. |
| limit Optional | integer | 1 to 50 · defaults to 10 Caps how many of the most recent snapshots the answer carries. |

**For AI agents:** Send only fields exposed by the current tool schema.

**Known failure:** Do not invent platform settings, account IDs, media fields, or setup steps.

Synthetic values

## Example call

Identifiers and values are examples. They do not represent a connected workspace or accepted media source.

_EXAMPLE CALL · CONFIGURED TOOL SCHEMA_

```
get_performance({
  post_id: "post_example_08"
})
```

Configured behavior

## Read modes

The tool selects one of two read paths from the supplied identifier. The response envelope changes with that scope.

 POST

### One post

Returns stored destination snapshots for post_id, most recent first. The window input does not change this read.

 ACCOUNT

### One account

Returns snapshots for account_id within the supplied 7d or 30d window, most recent first.

Observed API record

## Return shape

Returns a post-scoped or account-scoped envelope containing normalized performance rows and a summary. The rows are the most recent ones, and a metric with no value is absent from its row and named under availability with the reason it has none.

**`post_id` (string)** — Present on post-scoped reads.

**`account_id · window` (string)** — Present on account-scoped reads.

**`window_limit_days` (number)** — How far back this workspace's plan reaches, whatever window was requested.

**`performance` (array)** — Normalized rows, each tied to one destination publish, most recent first.

**`performance[].publish_id` (string)** — Destination publish that produced the snapshot.

**`performance[].platform · captured_at · source` (metadata)** — Destination, observation time, and webhook or poll source.

**`performance[].views · likes · comments · shares` (number)** — Required normalized engagement counters. Numeric zero remains zero.

**`performance[].saves` (number | absent)** — Normalized saves when evidence exists. Numeric zero remains zero; with no value the key is absent from the row.

**`performance[].watch_time_s · avg_watch_pct · completion_pct · follower_delta` (number | absent)** — Normalized watch and audience fields. Numeric zero remains zero; with no value the key is absent from the row.

**`performance[].change_since_last` (object | optional)** — Per-field numeric changes when a previous snapshot exists.

**`performance[].availability` (object)** — One entry per absent metric, each carrying that metric's state and the reason it has no value. A metric with a value is not listed here.

**`truncated · snapshots_total · snapshots_returned` (flag · numbers | optional)** — Present only when the window held more snapshots than limit returned. Absent means the rows are the whole window.

**`week_over_week` (object | null)** — Account reads include the latest two completed account-local weeks, per-metric aggregates and deltas, availability, and observed-publish counts for both populations.

**`eligibility` (object)** — Post reads can return ineligible with publish_failed.

**`summary` (string)** — Human-readable summary of returned evidence.

Stop conditions

## Agent handoff

`both IDs · neither ID`

### Correct the call

Provide exactly one of post_id or account_id.

`eligible`

### Preserve evidence

Return each value with the observation time on its own row, and keep every absent metric's reason with it.

`truncated`

### Say the answer is partial

Report snapshots_returned of snapshots_total, or raise limit and read again. Never present these rows as the whole window.

`ineligible · publish_failed`

### Stop measurement

Return the eligibility reason instead of inventing a snapshot.

`absent metric`

### Keep it distinct

An absent key is not a zero. Read its reason from availability, and do not promise a reason for every state.

 VERIFIED · 26 AUGUST 2026  **Configured MCP schema · Runtime response model**

Examples are synthetic. Human workspace-key creation and revocation remain in Postdom under Connected apps → For developers.
