---
title: "List links you own"
method: GET
path: "/v1/links"
tags: ["Links"]
---

# List links you own

`GET /v1/links`

## Request

- Base URL: `https://xn--s7y.xn--3ds443g`
- URL: `https://xn--s7y.xn--3ds443g/v1/links`
- Auth: one of:
  - HTTP bearer
  - API key in cookie `duan_session`

Returns short links owned by the authenticated account. Anonymous → **401**. Requires `links:read` on an API key, or a session cookie. An OAuth access token is not accepted on this route (401, not anonymous).

## Query parameters

- `cursor` string
- `limit` integer

## Headers

- `X-Request-Id` string

## Response `200`

Owner link page

- LinkListResponse
  - `items` LinkStatusResponse[], required
    - union: Active links include destination. Other states omit it.
      - LinkStatusActive
        - `id` string, required
        - `state` 'active', required
        - `created_at` string, date-time, required
        - `status_url` string, uri, required
        - `short_url` string, uri, required
        - `short_url_ascii` string, uri, required
        - `destination` string, uri, required: Absolute http or https URL for create, batch, and PATCH destinations. Scheme is lowercase http:// or https:// with no surrounding whitespace.
        - `request_id` string, required: Same value as the X-Request-Id response header: the inbound X-Request-Id if it matches [A-Za-z0-9._-]{1,128}, otherwise a fresh server-generated id.
      - LinkStatusNonActive
        - `id` string, required
        - `state` 'quarantined' | 'disabled' | 'blocked' | 'expired', required
        - `created_at` string, date-time, required
        - `status_url` string, uri, required
        - `expired_at` string, date-time
        - `type` string, uri
        - `title` string
        - `code` string
        - `request_id` string, required: Same value as the X-Request-Id response header: the inbound X-Request-Id if it matches [A-Za-z0-9._-]{1,128}, otherwise a fresh server-generated id.
  - `next_cursor` string, nullable
  - `request_id` string, required: Same value as the X-Request-Id response header: the inbound X-Request-Id if it matches [A-Za-z0-9._-]{1,128}, otherwise a fresh server-generated id.

## Other responses

- `401`: AUTH_REQUIRED
- `403`: INSUFFICIENT_SCOPE

---

[API](https://skmtc.dev/xn--s7y/apis/agent-api.md) · [All operations](https://skmtc.dev/xn--s7y/apis/agent-api/llms.txt) · [OpenAPI document](https://skmtc.dev/xn--s7y/apis/agent-api/revisions/d902f68518e9?raw)
