---
title: "Delete a link"
method: DELETE
path: "/api/links/{id}"
tags: ["Links"]
---

# Delete a link

`DELETE /api/links/{id}`

## Request

- Base URL: `https://www.flyn.to`
- URL: `https://www.flyn.to/api/links/{id}`
- Auth: HTTP bearer

Permanently deletes the link and its click history. Sends a link.delete webhook, carrying the link as it was, to the calling user's webhooks.

**Auth:** API key (`Bearer flyn_sk_live_...`), an MCP OAuth access token (`Bearer flyn_mcp_at_...`), or the signed-in dashboard session cookie when neither is sent.

**Plan:** every plan. **Team roles:** viewer gets 403; a member may delete only links they created; owner and admin may delete any.

**Rate limit:** 60 requests per 60 s per client IP, fixed window, in memory per server instance, checked before authentication.

## Response `200`

Deleted.

- LinkDeleted
  - `deleted` true, required
  - `id` string, uuid, required

## Other responses

- `401`: No valid API key and no dashboard session. Messages: "Invalid or revoked API key", "API key has expired", "Unauthorized. Sign in to the dashboard, or pass a Bearer API key in the Authorization header.", or "Unauthorized" when the session lookup itself fails. An MCP OAuth token lands here too.
- `403`: Viewer role, a member deleting another member's link, or a suspended account.
- `404`: Not found in the workspace.
- `429`: More than 60 requests in the window. Counted per client IP. Retry-After gives the seconds until the window resets.
- `500`: Database error.

---

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