---
title: "Update profile"
---

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

Path: Sureshake API › users

`PATCH /v2/users/me`

## Request body

- `name` (`user-update-profile.name`; string, optional)
- `email` (`user-update-profile.email`; string, optional)
  - format `email`
- `slug` (`user-update-profile.slug`; string, optional)
- `avatar` (`user-update-profile.avatar`; string, optional)
- `backgroundImage` (`user-update-profile.backgroundImage`; string, optional)
- `bio` (`user-update-profile.bio`; string, optional)
- `company` (`user-update-profile.company`; string, optional)
- `title` (`user-update-profile.title`; string, optional)
- `location` (`user-update-profile.location`; string, optional)
- `birthdate` (`user-update-profile.birthdate`; string, optional, nullable)
- `website` (`user-update-profile.website`; string, optional)
- `twitter` (`user-update-profile.twitter`; string, optional)
- `linkedin` (`user-update-profile.linkedin`; string, optional)
- `github` (`user-update-profile.github`; string, optional)
- `about` (`user-update-profile.about`; string, optional)
  - maxLength 4000
- `preferences` (`user-update-profile.preferences`; map<unknown>, optional)

## Example request

```json
{
  "name": "string",
  "email": "user@example.com",
  "slug": "string",
  "avatar": "string",
  "backgroundImage": "string",
  "bio": "string",
  "company": "string",
  "title": "string",
  "location": "string",
  "birthdate": "string",
  "website": "string",
  "twitter": "string",
  "linkedin": "string",
  "github": "string",
  "about": "string",
  "preferences": {
    "property1": null,
    "property2": null
  }
}
```

## Code samples

### cURL

```bash
curl --request PATCH \
  --url https://api.sureshake.com/v2/users/me \
  --header 'Content-Type: application/json' \
  --data '
{
  "name": "string",
  "email": "user@example.com",
  "slug": "string",
  "avatar": "string",
  "backgroundImage": "string",
  "bio": "string",
  "company": "string",
  "title": "string",
  "location": "string",
  "birthdate": "string",
  "website": "string",
  "twitter": "string",
  "linkedin": "string",
  "github": "string",
  "about": "string",
  "preferences": {
    "property1": null,
    "property2": null
  }
}
'
```

### TypeScript

```typescript
const url = 'https://api.sureshake.com/v2/users/me';
const options = {
  method: 'PATCH',
  headers: {'Content-Type': 'application/json'},
  body: JSON.stringify({
    name: 'string',
    email: 'user@example.com',
    slug: 'string',
    avatar: 'string',
    backgroundImage: 'string',
    bio: 'string',
    company: 'string',
    title: 'string',
    location: 'string',
    birthdate: 'string',
    website: 'string',
    twitter: 'string',
    linkedin: 'string',
    github: 'string',
    about: 'string',
    preferences: {property1: null, property2: null}
  })
};

fetch(url, options)
  .then(res => res.json())
  .then(json => console.log(json))
  .catch(err => console.error(err));
```

### Python

```python
import requests

url = "https://api.sureshake.com/v2/users/me"

payload = {
    "name": "string",
    "email": "user@example.com",
    "slug": "string",
    "avatar": "string",
    "backgroundImage": "string",
    "bio": "string",
    "company": "string",
    "title": "string",
    "location": "string",
    "birthdate": "string",
    "website": "string",
    "twitter": "string",
    "linkedin": "string",
    "github": "string",
    "about": "string",
    "preferences": {
        "property1": None,
        "property2": None
    }
}
headers = {"Content-Type": "application/json"}

response = requests.patch(url, json=payload, headers=headers)

print(response.text)
```

## Responses

### 200

Default Response

#### Example

```json
{
  "data": {
    "id": "string",
    "email": "user@example.com",
    "name": "string",
    "slug": "string",
    "avatar": "string",
    "avatarUrl": "string",
    "avatarAvailability": {
      "status": "absent"
    },
    "backgroundImage": "string",
    "backgroundUrl": "string",
    "bio": "string",
    "company": "string",
    "title": "string",
    "location": "string",
    "birthdate": "string",
    "website": "string",
    "twitter": "string",
    "linkedin": "string",
    "github": "string",
    "about": "string",
    "preferences": {
      "property1": null,
      "property2": null
    },
    "jobCount": 0,
    "educationCount": 0,
    "skillCount": 0,
    "portfolioCount": 0,
    "connectionCount": 0,
    "privacy": {
      "profile_public": true,
      "show_email": true,
      "show_activity": true,
      "allow_messages": true
    },
    "notifications": {
      "email": true,
      "push": true,
      "achievements": true,
      "weekly": true
    },
    "createdAt": "2019-08-24T14:15:22Z",
    "updatedAt": "2019-08-24T14:15:22Z"
  },
  "meta": {
    "timestamp": "2019-08-24T14:15:22Z"
  }
}
```

- `data` (`user-update-profile.response.200.data`; object, required)
  - `id` (`user-update-profile.response.200.data.id`; string, required)
  - `email` (`user-update-profile.response.200.data.email`; string, required, nullable)
    - format `email`
  - `name` (`user-update-profile.response.200.data.name`; string, required, nullable)
  - `slug` (`user-update-profile.response.200.data.slug`; string, required, nullable)
  - `avatar` (`user-update-profile.response.200.data.avatar`; string, required, nullable)
  - `avatarAvailability` (`user-update-profile.response.200.data.avatarAvailability`; any of, required)
    - any of:
      - `object`
        - `status` (`user-update-profile.response.200.data.avatarAvailability.1.status`; string, required)
          - one of `"absent"`
      - `object`
        - `status` (`user-update-profile.response.200.data.avatarAvailability.2.status`; string, required)
          - one of `"available"`
        - `url` (`user-update-profile.response.200.data.avatarAvailability.2.url`; string, required)
          - format `uri`
      - `object`
        - `status` (`user-update-profile.response.200.data.avatarAvailability.3.status`; string, required)
          - one of `"unavailable"`
        - `reason` (`user-update-profile.response.200.data.avatarAvailability.3.reason`; string, required)
          - one of `"signing_dependency_unavailable"`
  - `bio` (`user-update-profile.response.200.data.bio`; string, required, nullable)
  - `company` (`user-update-profile.response.200.data.company`; string, required, nullable)
  - `title` (`user-update-profile.response.200.data.title`; string, required, nullable)
  - `location` (`user-update-profile.response.200.data.location`; string, required, nullable)
  - `website` (`user-update-profile.response.200.data.website`; string, required, nullable)
  - `createdAt` (`user-update-profile.response.200.data.createdAt`; string, required)
    - format `date-time`
  - `updatedAt` (`user-update-profile.response.200.data.updatedAt`; string, required)
    - format `date-time`
  - `avatarUrl` (`user-update-profile.response.200.data.avatarUrl`; string, optional, nullable)
  - `backgroundImage` (`user-update-profile.response.200.data.backgroundImage`; string, optional, nullable)
  - `backgroundUrl` (`user-update-profile.response.200.data.backgroundUrl`; string, optional, nullable)
  - `birthdate` (`user-update-profile.response.200.data.birthdate`; string, optional, nullable)
  - `twitter` (`user-update-profile.response.200.data.twitter`; string, optional, nullable)
  - `linkedin` (`user-update-profile.response.200.data.linkedin`; string, optional, nullable)
  - `github` (`user-update-profile.response.200.data.github`; string, optional, nullable)
  - `about` (`user-update-profile.response.200.data.about`; string, optional, nullable)
  - `preferences` (`user-update-profile.response.200.data.preferences`; map<unknown>, optional)
  - `jobCount` (`user-update-profile.response.200.data.jobCount`; integer, optional)
    - min 0
  - `educationCount` (`user-update-profile.response.200.data.educationCount`; integer, optional)
    - min 0
  - `skillCount` (`user-update-profile.response.200.data.skillCount`; integer, optional)
    - min 0
  - `portfolioCount` (`user-update-profile.response.200.data.portfolioCount`; integer, optional)
    - min 0
  - `connectionCount` (`user-update-profile.response.200.data.connectionCount`; integer, optional)
    - min 0
  - `privacy` (`user-update-profile.response.200.data.privacy`; object, optional)
    - `profile_public` (`user-update-profile.response.200.data.privacy.profile_public`; boolean, optional)
    - `show_email` (`user-update-profile.response.200.data.privacy.show_email`; boolean, optional)
    - `show_activity` (`user-update-profile.response.200.data.privacy.show_activity`; boolean, optional)
    - `allow_messages` (`user-update-profile.response.200.data.privacy.allow_messages`; boolean, optional)
  - `notifications` (`user-update-profile.response.200.data.notifications`; object, optional)
    - `email` (`user-update-profile.response.200.data.notifications.email`; boolean, optional)
    - `push` (`user-update-profile.response.200.data.notifications.push`; boolean, optional)
    - `achievements` (`user-update-profile.response.200.data.notifications.achievements`; boolean, optional)
    - `weekly` (`user-update-profile.response.200.data.notifications.weekly`; boolean, optional)
- `meta` (`user-update-profile.response.200.meta`; object, optional)
  - `timestamp` (`user-update-profile.response.200.meta.timestamp`; string, required)
    - format `date-time`

### 400

Default Response

#### Example

```json
{
  "error": {
    "code": "string",
    "message": "string",
    "details": null,
    "traceId": "string"
  }
}
```

- `error` (`user-update-profile.response.400.error`; object, required)
  - `code` (`user-update-profile.response.400.error.code`; string, required) — Machine-readable error code (e.g., NOT_FOUND)
  - `message` (`user-update-profile.response.400.error.message`; string, required) — Human-readable error message
  - `details` (`user-update-profile.response.400.error.details`; unknown, optional) — Optional structured error details
  - `traceId` (`user-update-profile.response.400.error.traceId`; string, optional) — Unique ID for log correlation

### 401

Default Response

#### Example

```json
{
  "error": {
    "code": "string",
    "message": "string",
    "details": null,
    "traceId": "string"
  }
}
```

- `error` (`user-update-profile.response.401.error`; object, required)
  - `code` (`user-update-profile.response.401.error.code`; string, required) — Machine-readable error code (e.g., NOT_FOUND)
  - `message` (`user-update-profile.response.401.error.message`; string, required) — Human-readable error message
  - `details` (`user-update-profile.response.401.error.details`; unknown, optional) — Optional structured error details
  - `traceId` (`user-update-profile.response.401.error.traceId`; string, optional) — Unique ID for log correlation

### 403

Default Response

#### Example

```json
{
  "error": {
    "code": "string",
    "message": "string",
    "details": null,
    "traceId": "string"
  }
}
```

- `error` (`user-update-profile.response.403.error`; object, required)
  - `code` (`user-update-profile.response.403.error.code`; string, required) — Machine-readable error code (e.g., NOT_FOUND)
  - `message` (`user-update-profile.response.403.error.message`; string, required) — Human-readable error message
  - `details` (`user-update-profile.response.403.error.details`; unknown, optional) — Optional structured error details
  - `traceId` (`user-update-profile.response.403.error.traceId`; string, optional) — Unique ID for log correlation

### 404

Default Response

#### Example

```json
{
  "error": {
    "code": "string",
    "message": "string",
    "details": null,
    "traceId": "string"
  }
}
```

- `error` (`user-update-profile.response.404.error`; object, required)
  - `code` (`user-update-profile.response.404.error.code`; string, required) — Machine-readable error code (e.g., NOT_FOUND)
  - `message` (`user-update-profile.response.404.error.message`; string, required) — Human-readable error message
  - `details` (`user-update-profile.response.404.error.details`; unknown, optional) — Optional structured error details
  - `traceId` (`user-update-profile.response.404.error.traceId`; string, optional) — Unique ID for log correlation

### 409

Default Response

#### Example

```json
{
  "error": {
    "code": "string",
    "message": "string",
    "details": null,
    "traceId": "string"
  }
}
```

- `error` (`user-update-profile.response.409.error`; object, required)
  - `code` (`user-update-profile.response.409.error.code`; string, required) — Machine-readable error code (e.g., NOT_FOUND)
  - `message` (`user-update-profile.response.409.error.message`; string, required) — Human-readable error message
  - `details` (`user-update-profile.response.409.error.details`; unknown, optional) — Optional structured error details
  - `traceId` (`user-update-profile.response.409.error.traceId`; string, optional) — Unique ID for log correlation

### 422

Default Response

#### Example

```json
{
  "error": {
    "code": "string",
    "message": "string",
    "details": null,
    "traceId": "string"
  }
}
```

- `error` (`user-update-profile.response.422.error`; object, required)
  - `code` (`user-update-profile.response.422.error.code`; string, required) — Machine-readable error code (e.g., NOT_FOUND)
  - `message` (`user-update-profile.response.422.error.message`; string, required) — Human-readable error message
  - `details` (`user-update-profile.response.422.error.details`; unknown, optional) — Optional structured error details
  - `traceId` (`user-update-profile.response.422.error.traceId`; string, optional) — Unique ID for log correlation

### 500

Default Response

#### Example

```json
{
  "error": {
    "code": "string",
    "message": "string",
    "details": null,
    "traceId": "string"
  }
}
```

- `error` (`user-update-profile.response.500.error`; object, required)
  - `code` (`user-update-profile.response.500.error.code`; string, required) — Machine-readable error code (e.g., NOT_FOUND)
  - `message` (`user-update-profile.response.500.error.message`; string, required) — Human-readable error message
  - `details` (`user-update-profile.response.500.error.details`; unknown, optional) — Optional structured error details
  - `traceId` (`user-update-profile.response.500.error.traceId`; string, optional) — Unique ID for log correlation

### 503

Default Response

#### Example

```json
{
  "error": {
    "code": "string",
    "message": "string",
    "details": null,
    "traceId": "string"
  }
}
```

- `error` (`user-update-profile.response.503.error`; object, required)
  - `code` (`user-update-profile.response.503.error.code`; string, required) — Machine-readable error code (e.g., NOT_FOUND)
  - `message` (`user-update-profile.response.503.error.message`; string, required) — Human-readable error message
  - `details` (`user-update-profile.response.503.error.details`; unknown, optional) — Optional structured error details
  - `traceId` (`user-update-profile.response.503.error.traceId`; string, optional) — Unique ID for log correlation


Source: https://docs.sureshake.com/reference/user-update-profile/index.md
