---
title: "Per-contact Unseen Counts"
method: GET
path: "/me/contacts/unseen-counts"
tags: ["fulfillments"]
---

# Per-contact Unseen Counts

`GET /me/contacts/unseen-counts`

## Request

- Base URL: `https://api.instruxi.dev/api/v1/enforcer`
- URL: `https://api.instruxi.dev/api/v1/enforcer/me/contacts/unseen-counts`
- Auth: API key in header `Authorization`

Per-counterparty unacked sent + received tallies over live fulfillments (contact-dot source). Pass the SAME created_after the bell summary + drill-down list use (e.g. the 48h window) or contacts show ghost dots for ancient unseen rows the user can't see anywhere. Omit for lifetime counts.

## Query parameters

- `created_after` string
- `direction` string
- `self_payments` 'include' | 'exclude' | 'only'

## Response `200`

OK

- InternalDeliveryHttpHandlerContactUnseenCountsResponse
  - `data` InternalDeliveryHttpHandlerContactUnseenCountsData
    - `counts` EnforcerV3InternalDomainFulfillmentContactUnseenCount[]
      - `contact_user_id` string
      - `received_unseen` integer
      - `sent_unseen` integer
  - `success` boolean

## Other responses

- `400`: Bad Request
- `401`: Unauthorized

---

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