> ## Documentation Index
> Fetch the complete documentation index at: https://docs.bouncy.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# List Links

> Retrieve a paginated list of your short links with optional filtering

## Request

### Headers

### Query Parameters

<ParamField query="page" type="integer" default="1">
  Page number for pagination

  **Example:** `1`
</ParamField>

<ParamField query="limit" type="integer" default="50">
  Number of links per page (max: 100)

  **Example:** `25`
</ParamField>

<ParamField query="search" type="string">
  Search across slugs, titles, and destination URLs

  **Example:** `summer`
</ParamField>

<ParamField query="tag" type="string">
  Filter by tag name

  **Example:** `marketing`
</ParamField>

<ParamField query="domain" type="string">
  Filter by domain

  **Example:** `bouncy.ai`
</ParamField>

<ParamField query="groupId" type="string">
  Filter by group ID

  **Example:** `grp_abc123`
</ParamField>

## Response

<ResponseField name="data" type="array">
  Array of link objects
</ResponseField>

<ResponseField name="pagination" type="object">
  Pagination metadata

  <Expandable title="properties">
    <ResponseField name="page" type="integer">
      Current page number
    </ResponseField>

    <ResponseField name="limit" type="integer">
      Links per page
    </ResponseField>

    <ResponseField name="totalCount" type="integer">
      Total number of matching links
    </ResponseField>

    <ResponseField name="totalPages" type="integer">
      Total number of pages
    </ResponseField>

    <ResponseField name="hasMore" type="boolean">
      Whether more pages exist
    </ResponseField>
  </Expandable>
</ResponseField>

<RequestExample>
  ```bash cURL theme={null}
  curl "https://api.bouncy.ai/v1/links?page=1&limit=25" \
    -H "Authorization: Bearer bcy_live_pk_YOUR_API_KEY"
  ```

  ```javascript JavaScript theme={null}
  const response = await fetch(
    'https://api.bouncy.ai/v1/links?page=1&limit=25',
    {
      headers: {
        'Authorization': 'Bearer bcy_live_pk_YOUR_API_KEY'
      }
    }
  );

  const { data: links, pagination } = await response.json();
  console.log(`Page ${pagination.page} of ${pagination.totalPages} (${pagination.totalCount} total)`);
  ```

  ```python Python theme={null}
  import requests

  response = requests.get(
      'https://api.bouncy.ai/v1/links',
      headers={'Authorization': 'Bearer bcy_live_pk_YOUR_API_KEY'},
      params={
          'page': 1,
          'limit': 25
      }
  )

  data = response.json()
  print(f"Page {data['pagination']['page']} of {data['pagination']['totalPages']}")
  ```
</RequestExample>

<ResponseExample>
  ```json 200 Success theme={null}
  {
    "data": [
      {
        "id": "summer-sale",
        "url": "https://bouncy.ai/summer-sale",
        "slug": "summer-sale",
        "domain": "bouncy.ai",
        "destination": "https://example.com/summer-sale",
        "title": "Summer Sale 2026",
        "description": "50% off everything",
        "tags": ["marketing", "sale"],
        "groupId": null,
        "isActive": true,
        "linkType": null,
        "createdAt": "2026-02-01T12:00:00Z",
        "updatedAt": "2026-02-05T10:30:00Z"
      },
      {
        "id": "promo",
        "url": "https://bouncy.ai/promo",
        "slug": "promo",
        "domain": "bouncy.ai",
        "destination": "https://example.com/promo",
        "title": "Special Promotion",
        "description": null,
        "tags": ["marketing"],
        "groupId": null,
        "isActive": true,
        "linkType": null,
        "createdAt": "2026-01-28T15:20:00Z",
        "updatedAt": "2026-02-03T09:15:00Z"
      }
    ],
    "pagination": {
      "page": 1,
      "limit": 25,
      "totalCount": 245,
      "totalPages": 10,
      "hasMore": true
    }
  }
  ```
</ResponseExample>
