---
title: "A Smart Link was put out of use."
method: POST
path: "link.archived"
tags: ["link.* events"]
---

# A Smart Link was put out of use.

`POST link.archived` (webhook)

### When this fires

A creator archived the link on the dashboard, over the REST API (`DELETE`) or via the `archive_link` MCP tool. Archiving is the only removal a link has: its row, the members it brought and the money they paid all stay, so the funnel keeps adding up. From this moment its address lands on the portal home without counting, and a visit still waiting in a browser is attributed to it when that visitor signs in. Archiving a link already archived fires nothing.

### Related events

- `link.created`: the link was authored.
- `link.updated`: the link's fields changed.

## Headers

- `SB-Signature` string, required
- `SB-Event-Id` string, required
- `SB-Event-Name` string, required
- `Content-Type` string, required
- `User-Agent` string, required

## Payload

- object: The envelope every event is delivered in.
  - `id` string, required: A ULID unique to the event, prefixed `evt_`. Every retry carries the same id, so it is the key to deduplicate on.
  - `type` 'link.archived', required: The event name, always `link.archived` here.
  - `created_at` string, date-time, required: When the event was emitted, server time, ISO 8601.
  - `api_version` string, required: The contract version of the payload shape, `2026-05-01` today. A breaking change to a shape ships under a new version.
  - `project_id` string, uuid, nullable, required: The project the event belongs to; null for team-scoped and billing events.
  - `data` object, required: The event-specific payload. Keys that do not apply to a given emission are omitted rather than sent as null, so check for presence.
    - `link` object, required: The link's final snapshot; the same shape as on `link.created`.
      - `id` string, uuid, required: The link's UUID.
      - `name` string, required: Creator-facing label.
      - `slug` string, required: The address segment the link answered at.
      - `code` string, required: The stable code, still attributing a visit that was waiting when the link was archived.
      - `destination` 'portal' | 'plan' | 'bot', required: Where the link sent people.
      - `plan_id` string, uuid, nullable, required: The plan a `plan` destination opened on; `null` for the other destinations.
      - `url` string, required: The web address, which now lands on the portal home without counting.
      - `expires_at` string, date-time, nullable, required: When the link would have stopped on its own, or `null`.
      - `archived_at` string, date-time, required: When it was put out of use. Set on this event.
      - `clicks_total` integer, required: The lifetime figure the link keeps.

## Acknowledgement `2XX`

Your endpoint acknowledged the delivery. Any 2xx status within 30 seconds marks it delivered; the response body is ignored.

## Other responses

- `default`: Any other status, a connection failure, or no answer within 30 seconds counts as a failed attempt. The delivery is retried 8 times, after 10 seconds, 30 seconds, 2 minutes, 10 minutes, 1 hour, 6 hours, 1 day, 3 days; the last failure dead-letters it, and it can be retried from the dashboard or `POST /v1/webhook-deliveries/{delivery}/retry`. After 20 consecutive failures the endpoint is paused until it is resumed.

---

[API](https://skmtc.dev/memberpass/apis/subscriby-rest-api.md) · [All operations](https://skmtc.dev/memberpass/apis/subscriby-rest-api/llms.txt) · [OpenAPI document](https://skmtc.dev/memberpass/apis/subscriby-rest-api/revisions/59c4df91d764?raw)
