---
title: "Upload profile picture"
method: POST
path: "/profiles/{profileId}/picture"
tags: ["profiles"]
---

# Upload profile picture

`POST /profiles/{profileId}/picture`

## Request

- Base URL: `https://api.usecrouton.com`
- URL: `https://api.usecrouton.com/profiles/{profileId}/picture`
- Auth: one of:
  - HTTP bearer
  - API key in header `X-Api-Key`
- TypeScript: <https://skmtc.dev/usecrouton/apis/crouton-api/docs/profiles/:profileId/picture/post.ts> (a function with typed inputs; its response is checked against the schema)

Uploads a profile picture as `multipart/form-data` with a single `file` field (webp, jpeg, png, or gif; max ~12 MiB). Soft client limit is 8 MiB. The API key must be associated with a user who is editing their own profile, or a team administrator editing any profile in the organization.

## Request body `multipart/form-data`

- object
  - `file` union, required
    - string
    - string
    - string
    - string

## Response `200`

The updated profile.

## Other responses

- `400`: 400
- `401`: Missing, invalid, revoked, or expired API key.
- `403`: API key lacks the required resource or access level.
- `404`: Profile not found
- `422`: 422

## Changes

- **2026-10-28** `809cbf38e25a`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/usecrouton/apis/crouton-api/changes/profiles/:profileId/picture/post.md)

---

[API](https://skmtc.dev/usecrouton/apis/crouton-api.md) - [All operations](https://skmtc.dev/usecrouton/apis/crouton-api/llms.txt) - [OpenAPI document](https://skmtc.dev/usecrouton/apis/crouton-api/revisions/809cbf38e25a?raw)
