---
title: "get_link_summary"
method: GET
path: "/v1/reports/summary"
---

# get_link_summary

`GET /v1/reports/summary`

## Request

- Base URL: `https://app.agentlinkops.com`
- URL: `https://app.agentlinkops.com/v1/reports/summary`
- Auth: one of:
  - HTTP bearer
  - HTTP bearer

Optional projectId and days (1-90, default 30) query parameters. Returns per-website and total link counts by status, last checked, and links found and lost in the period; found and lost are null without events:read.

## Query parameters

- `projectId` string: project ID from create/list.
- `days` integer: days; see schema.

## Headers

- `X-Workspace-ID` string

## Response `200`

Optional projectId and days (1-90, default 30) query parameters. Returns per-website and total link counts by status, last checked, and links found and lost in the period; found and lost are null without events:read.

- object
  - `schema_version` 1, required
  - `workspace_id` string, required: Workspace that owns this record.
  - `project_id` string, nullable, required: Project that owns this record.
  - `as_of` string, required
  - `period` object, required
    - `days` integer, required
    - `from` string, required
    - `to` string, required
  - `totals` object, required
    - `links` integer, required
    - `live` integer, required
    - `missing` integer, required
    - `couldnt_check` integer, required
    - `paused` integer, required
    - `not_checked_yet` integer, required
    - `last_checked_at` string, nullable, required: Oldest recorded latest attempt among active watches in the selected scope; null when none has an attempt. Never-checked and paused watches do not contribute. This includes inconclusive attempts and does not establish presence.
    - `latest_check_at` string, nullable: Newest recorded attempt among active watches in the selected scope; null when none has an attempt. Never-checked and paused watches do not contribute. This includes inconclusive attempts and does not establish presence.
    - `found` integer, nullable, required
    - `back` integer, nullable
    - `lost` integer, nullable, required
    - `went_missing` integer, nullable: Count of retained events classified as missing in the selected UTC period, separate from placement-lost events. Null without events:read; read changes_complete for retention and scan limits.
  - `websites` object[], required
    - `project_id` string, required: Project that owns this record.
    - `domain` string, nullable, required
    - `name` string, nullable, required
    - `links` integer, required
    - `live` integer, required
    - `missing` integer, required
    - `couldnt_check` integer, required
    - `paused` integer, required
    - `not_checked_yet` integer, required
    - `last_checked_at` string, nullable, required: Oldest recorded latest attempt among active watches in the selected scope; null when none has an attempt. Never-checked and paused watches do not contribute. This includes inconclusive attempts and does not establish presence.
    - `latest_check_at` string, nullable: Newest recorded attempt among active watches in the selected scope; null when none has an attempt. Never-checked and paused watches do not contribute. This includes inconclusive attempts and does not establish presence.
    - `found` integer, nullable, required
    - `back` integer, nullable
    - `lost` integer, nullable, required
    - `went_missing` integer, nullable: Count of retained events classified as missing in the selected UTC period, separate from placement-lost events. Null without events:read; read changes_complete for retention and scan limits.
  - `websites_truncated` boolean, required
  - `daily` object[], nullable, required
    - `day` string, required
    - `found` integer, required
    - `back` integer
    - `lost` integer, required
    - `went_missing` integer: Count of retained events classified as missing on this UTC day, separate from placement-lost events. This field applies when the daily array exists; read changes_complete for retention and scan limits.
  - `changes_complete` boolean, nullable, required
  - `statuses` string[], required

## Other responses

- `429`: Request-rate or usage refusal. Inspect error.code and recovery details before retrying.
- `default`: Error envelope. Non-configuration 5xx messages are masked and details omitted; allowlisted configuration errors retain static operator recovery.

---

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