---
title: "Removes the user's profile picture"
method: DELETE
path: "/v2/settings/users/{id}/profile-picture"
tags: ["Users Api Service"]
---

# Removes the user's profile picture

`DELETE /v2/settings/users/{id}/profile-picture`

## Request

- Base URL: `https://app.metricool.com/api`
- URL: `https://app.metricool.com/api/v2/settings/users/{id}/profile-picture`
- Auth: none declared

Idempotent: removing a picture from a user who has none succeeds and does nothing, so the immediate-apply UI can double-submit safely. The frontend renders its initials fallback whenever no picture is present — the backend never returns a generated placeholder URL.

## Path parameters

- `id` integer, required

## Response `200`

The updated user, with no profile picture

- JsonOkResponseUser
  - `metadata` object
  - `page` JsonPaging
    - `next` string
  - `data` User
    - `id` integer
    - `userName` string
    - `role` string
    - `enabled` boolean
    - `name` string
    - `lastName` string
    - `mail` string
    - `phone` string
    - `language` string
    - `timezone` string
    - `accountLogo` string
    - `headerLogo` string
    - `profilePicture` string: Public URL of the user's 400x400 profile picture. Absent when they have none, in which case the frontend renders its initials fallback.
    - `btCustomerId` string
    - `stripeCustomerId` string
    - `taxData` TaxData
      - `vatRate` number, double
      - `company` string
      - `country` string
      - `state` string
      - `address` string
      - `vatNumber` string
      - `addOn` string
    - `affiliated` boolean
    - `whiteLabel` boolean
    - `academic` boolean
    - `beta` boolean
    - `sendToAlternativeEmail` boolean
    - `alternativeEmail` string
    - `billEmails` string[]
    - `marketingNotifications` boolean
    - `token` string
    - `created` DateTimeInfo
      - `dateTime` string, required: Local Date-time represented with a certain timezone
      - `timezone` string: Timezone applied to the datetime
    - `deleted` DateTimeInfo
      - `dateTime` string, required: Local Date-time represented with a certain timezone
      - `timezone` string: Timezone applied to the datetime
    - `isDeleted` boolean
    - `locked` boolean
    - `changePasswordRequired` boolean
    - `onboarding` OnboardingData
      - `required` boolean
      - `finished` boolean
      - `buyerPersona` string
      - `size` string
      - `goal` string[]
      - `networks` string[]
      - `phone` string
      - `partnersOnboardings` object[]
    - `activeBrands` integer
    - `registeredFromTkAppCenter` boolean
    - `firstDayOfTheWeek` integer
    - `whiteLabelIntegrator` boolean
    - `requiresEmailAddress` boolean
    - `vendastaSettings` VendastaData
      - `accountId` string
      - `productNavBarDataUrl` string
    - `crispWorkspaceId` string
    - `crispTokenId` string: Opaque token identifying this user to Crisp for chat history preservation across login.
    - `agencyCKId` integer
    - `integratedIn` string
    - `accountManagerMail` string
    - `passwordExpirationDate` DateTimeInfo
      - `dateTime` string, required: Local Date-time represented with a certain timezone
      - `timezone` string: Timezone applied to the datetime
    - `blogId` integer
    - `customBrandMail` string
    - `brandLabel` string
    - `userAgencyData` UserAgencyData
      - `agencyId` integer: Unique identifier of the agency
      - `isOwner` boolean: Indicates if the user is the owner of the agency
      - `teamMemberRoleId` integer: Unique identifier of the team member role assigned to the user
      - `agencyOwnerUserId` integer: Unique identifier of the agency owner user
    - `featureSegmentAssigned` FeatureSegmentAssigned[]
      - `name` string, required: Feature name
      - `segmentAssigned` integer, required: Segment assigned to the user
    - `internalTag` string
    - `newsletters` boolean: True when the user accepts commercial communications. Absent when the flag does not apply to the requesting surface; for an account's own info it is always present, and an account with no stored choice reads as true.

## Other responses

- `400`: The target user is not the caller's own (NotAllowedOperationException, which this resource maps to 400 rather than 403 — same as GET /v2/settings/users/{id})
- `401`: Not authenticated
- `403`: Agency user

---

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