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

# Update Personal Page

> Update the authenticated user's personal fundraising page within a CrowdChange campaign, including title, story, goal, and cover image.

## Path parameters

<ParamField path="id" type="integer" required>
  Campaign ID.
</ParamField>

<ParamField path="pageId" type="integer" required>
  Personal Page ID.
</ParamField>

## Body

<ParamField body="token" type="string" required>
  User's access token.
</ParamField>

<ParamField body="name" type="string">
  Personal Page's name
</ParamField>

<ParamField body="amount_goal" type="number">
  Personal Page's goal amount
</ParamField>

<ParamField body="description" type="string">
  Personal Page's description
</ParamField>

<ParamField body="image" type="string">
  Personal page's image ID
</ParamField>

## Response

Returns the updated object with the following fields.

<ResponseField name="id" type="integer">
  Personal page ID.
</ResponseField>

<ResponseField name="name" type="string">
  Personal page name.
</ResponseField>

<ResponseField name="description" type="string">
  Personal page description
</ResponseField>

<ResponseField name="image" type="string">
  Personal page image ID
</ResponseField>

<ResponseField name="amount_goal" type="number">
  Goal amount.
</ResponseField>

<ResponseField name="amount_raised" type="number">
  Amount raised by the personal page.
</ResponseField>

<ResponseField name="amount_raised_formatted" type="string">
  Formatted amount raised by the personal page, includes currency symbol.
</ResponseField>

<ResponseField name="url" type="string">
  Full URL to personal page.
</ResponseField>

<ResponseField name="language" type="string">
  Personal page language. Allowed values: `en`, `fr`
</ResponseField>

<ResponseField name="is_default_image" type="boolean">
  True if the image is default.
</ResponseField>

<ResponseField name="is_default_description" type="boolean">
  True if the description is default.
</ResponseField>

<ResponseField name="team" type="object">
  Team name that personal page belongs to (if assigned to a team).

  <Expandable title="properties">
    <ResponseField name="id" type="integer">
      Team ID.
    </ResponseField>

    <ResponseField name="name" type="string">
      Team name.
    </ResponseField>

    <ResponseField name="amount_goal" type="number">
      Team's goal amount.
    </ResponseField>

    <ResponseField name="amount_raised" type="number">
      Total amount raised by the team.
    </ResponseField>

    <ResponseField name="amount_raised_formatted" type="string">
      Formatted amount raised by the team, includes currency symbol.
    </ResponseField>

    <ResponseField name="url" type="string">
      Full URL to team's page.
    </ResponseField>

    <ResponseField name="language" type="string">
      Team language. Allowed values: `en`, `fr`
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="fundraiser" type="object">
  Campaign that personal page belongs to.

  <Expandable title="properties">
    <ResponseField name="id" type="integer">
      Campaign ID.
    </ResponseField>

    <ResponseField name="name" type="string">
      Campaign name.
    </ResponseField>

    <ResponseField name="amount_goal" type="number">
      Campaign's goal amount.
    </ResponseField>

    <ResponseField name="amount_raised" type="number">
      Total amount raised by the campaign.
    </ResponseField>

    <ResponseField name="amount_raised_formatted" type="string">
      Formatted amount raised by the campaign, includes currency symbol.
    </ResponseField>

    <ResponseField name="url" type="string">
      URL to campaign's page.
    </ResponseField>

    <ResponseField name="language" type="string">
      Campaign language. Allowed values: `en`, `fr`
    </ResponseField>

    <ResponseField name="organization" type="object">
      <Expandable title="properties">
        <ResponseField name="id" type="integer">
          Campaign organization's ID
        </ResponseField>

        <ResponseField name="name" type="string">
          Campaign organization's name
        </ResponseField>

        <ResponseField name="custom_id" type="string">
          Campaign organization's Custom ID
        </ResponseField>
      </Expandable>
    </ResponseField>
  </Expandable>
</ResponseField>

<ResponseField name="user" type="object">
  <Expandable title="properties">
    <ResponseField name="name" type="string">
      Personal page owner's name
    </ResponseField>

    <ResponseField name="first_name" type="string">
      Personal page owner's first name
    </ResponseField>

    <ResponseField name="last_name" type="string">
      Personal page owner's last name
    </ResponseField>

    <ResponseField name="title" type="string">
      Personal page owner's title
    </ResponseField>
  </Expandable>
</ResponseField>

**Other responses**

| Status | Description |
| ------ | ----------- |
| `400`  | Bad Request |
| `403`  | Forbidden   |

<ResponseExample>
  ```json theme={null}
  {
    "id": 1,
    "name": "John Snow",
    "description": "Personal page description",
    "image": "1eaf5ab2-5d55-11ee-82ef-001c42584fa2",
    "amount_goal": 1000,
    "amount_raised": 550,
    "amount_raised_formatted": "$550",
    "url": "https://demo.crowdchange.dev/2/page/1",
    "language": "en",
    "is_default_image": false,
    "is_default_description": false,
    "team": {
      "id": 1,
      "name": "Gala Night",
      "amount_goal": 10000,
      "amount_raised": 8000,
      "amount_raised_formatted": "$8,000",
      "url": "https://demo.crowdchange.dev/1/team/2",
      "language": "en"
    },
    "fundraiser": {
      "id": 1,
      "name": "Gala Night",
      "amount_goal": 10000,
      "amount_raised": 8000,
      "amount_raised_formatted": "$8,000",
      "url": "https://demo.crowdchange.dev/1",
      "language": "en",
      "organization": {
        "id": 1,
        "name": "Crowdchange",
        "custom_id": "CrowdchangeID"
      }
    },
    "user": {
      "name": "John Snow",
      "first_name": "John",
      "last_name": "Snow",
      "title": "Mr."
    }
  }
  ```
</ResponseExample>
