> ## 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.

# Update Website

> Update an existing bio link page

<Warning>
  **Complex Customization Available**

  Website updates support many advanced parameters for design and customization that aren't fully documented here.

  **Need help?** Create or modify a website using the [Bouncy.ai dashboard](https://bouncy.ai/dashboard), then contact [support](https://help.bouncy.ai) - we'll export the exact API calls for you to duplicate it programmatically.
</Warning>

## Request

### Headers

<ParamField header="Content-Type" type="string" required>
  Must be `application/json`
</ParamField>

### Path Parameters

<ParamField path="websiteId" type="string" required>
  The website ID

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

### Body

<ParamField body="title" type="string">
  Updated page title

  **Example:** `John Doe - Updated`
</ParamField>

<ParamField body="description" type="string">
  Updated description

  **Example:** `Content Creator & Entrepreneur`
</ParamField>

<ParamField body="template" type="string">
  Change template

  **Options:** `bounce`, `simple`, `deeplink`, `spotlight`, `personal`
</ParamField>

<ParamField body="theme" type="object">
  Updated theme configuration
</ParamField>

<ParamField body="links" type="array">
  Updated array of links (replaces existing links)
</ParamField>

<ParamField body="profileImage" type="string">
  Updated profile image URL
</ParamField>

<ParamField body="socialLinks" type="object">
  Updated social media links
</ParamField>

<Note>
  You cannot update the `slug` after creation. Create a new website if you need a different slug.
</Note>

## Response

<ResponseField name="id" type="string">
  Website ID
</ResponseField>

<ResponseField name="message" type="string">
  Success message
</ResponseField>

<ResponseField name="updatedFields" type="array">
  List of fields that were updated
</ResponseField>

<RequestExample>
  ```bash cURL theme={null}
  curl -X PUT https://api.bouncy.ai/v1/websites/web_abc123xyz \
    -H "Authorization: Bearer bcy_live_pk_YOUR_API_KEY" \
    -H "Content-Type: application/json" \
    -d '{
      "title": "John Doe - Updated",
      "description": "Content Creator & Entrepreneur",
      "links": [
        {
          "title": "My Portfolio",
          "url": "https://johndoe.com/portfolio",
          "icon": "briefcase"
        },
        {
          "title": "Book a Call",
          "url": "https://cal.com/johndoe",
          "icon": "calendar"
        }
      ]
    }'
  ```

  ```javascript JavaScript theme={null}
  const response = await fetch(
    'https://api.bouncy.ai/v1/websites/web_abc123xyz',
    {
      method: 'PUT',
      headers: {
        'Authorization': 'Bearer bcy_live_pk_YOUR_API_KEY',
        'Content-Type': 'application/json'
      },
      body: JSON.stringify({
        title: 'John Doe - Updated',
        description: 'Content Creator & Entrepreneur',
        links: [
          { title: 'My Portfolio', url: 'https://johndoe.com/portfolio', icon: 'briefcase' },
          { title: 'Book a Call', url: 'https://cal.com/johndoe', icon: 'calendar' }
        ]
      })
    }
  );

  const result = await response.json();
  console.log(result.message);
  ```

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

  response = requests.put(
      'https://api.bouncy.ai/v1/websites/web_abc123xyz',
      headers={
          'Authorization': 'Bearer bcy_live_pk_YOUR_API_KEY',
          'Content-Type': 'application/json'
      },
      json={
          'title': 'John Doe - Updated',
          'description': 'Content Creator & Entrepreneur',
          'links': [
              {'title': 'My Portfolio', 'url': 'https://johndoe.com/portfolio', 'icon': 'briefcase'},
              {'title': 'Book a Call', 'url': 'https://cal.com/johndoe', 'icon': 'calendar'}
          ]
      }
  )

  result = response.json()
  print(result['message'])
  ```
</RequestExample>

<ResponseExample>
  ```json 200 Success theme={null}
  {
    "id": "web_abc123xyz",
    "message": "Website updated successfully",
    "updatedFields": ["title", "description", "links"]
  }
  ```

  ```json 404 Not Found theme={null}
  {
    "error": {
      "code": "website_not_found",
      "message": "Website not found"
    }
  }
  ```
</ResponseExample>
