---
title: "Get reputation"
method: GET
path: "/v1/reputation"
tags: ["Reputation"]
---

# Get reputation

`GET /v1/reputation`

## Request

- Base URL: `https://api.mails.ai`
- URL: `https://api.mails.ai/v1/reputation`
- Auth: HTTP bearer

**Requires scope:** `read`. Workspace-wide reputation when called without `agent_id`, or per-agent stats when an agent id/name is supplied.

## Query parameters

- `agent_id` string

## Response `200`

Workspace aggregate or per-agent reputation.

- union
  - ReputationWorkspace
    - `workspace_id` string, required: Your workspace id (`wsk_…`).
    - `reputation` number, required: Aggregate reputation 0–1.
    - `agents_count` integer, required: How many of your agents have a score; `reputation` is their plain average, or 0.85 when none has one. Active agents are scored every hour, and an agent no longer scored (archived, or paused by hand) keeps its last score.
    - `last_computed_at` string, nullable: When the newest of those scores was computed; active agents' scores are recomputed every hour. Null when no agent has a score yet.
  - ReputationAgent
    - `agent_id` string, required: The agent's id (`agt_…`), also when the request named it by name.
    - `reputation` number, required: The agent's sending reputation, 0 to 1, recomputed every hour from its last 30 days of live mail: 0.85, minus twice its bounce rate and five times its complaint rate, plus 0.3 times its reply rate (counted up to 0.5). 0.85 for an agent not yet scored.
    - `send_count_30d` integer: Live messages the agent sent or scheduled in the 30 days up to its last scoring, whatever became of them; test sends are left out. 0 before its first scoring.
    - `bounce_count_30d` integer: How many of those messages bounced (status `bounced`). A soft bounce, which marks a message `delayed`, is not counted.
    - `complaint_count_30d` integer: How many of those messages a recipient reported as spam (status `complained`).
    - `reply_count_30d` integer: Live replies to the agent's mail (`reply.received` events) in the same 30 days; test replies are left out.

## Other responses

- `401`: Missing or invalid API key.
- `403`: The API key lacks the required scope (`insufficient_scope`), or the token belongs to an app connected by sign-in and this operation is closed to connected apps (`connected_app_not_allowed`).
- `404`: Resource not found in this workspace, or the agent a send names is archived (`agent_archived`).
- `409`: Conflict — duplicate resource, an in-progress idempotent request, a draft or scheduled message that started sending while it was being changed, or a thread deleted for good while one of its messages is being sent (`duplicate_resource`); or an agent name more than one agent has (`agent_name_conflict`: use the agent's id); or a status change on an archived agent, since archiving cannot be undone (`agent_archived`).
- `500`: Internal server error.

---

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