---
title: "Upload profile picture"
method: POST
path: "/v1/whatsapp/business-profile/photo"
tags: ["WhatsApp"]
---

# Upload profile picture

`POST /v1/whatsapp/business-profile/photo`

Upload a new profile picture for the WhatsApp Business Profile.
Uses Meta's resumable upload API under the hood: creates an upload session,
uploads the image bytes, then updates the business profile with the resulting handle.

Provide the image either as a binary upload (`multipart/form-data` with `file`)
or as a download URL (`application/json` with `url`) — with a URL we fetch the
image server-side and upload the bytes for you. Meta's profile-photo API is
bytes-only, so there is no direct URL passthrough. JPEG/PNG, max 5MB either way.

## Request body

- object
  - `accountId` string, required — WhatsApp social account ID
  - `url` string, uri, required — Publicly reachable https URL of the image (JPEG or PNG, max 5MB, recommended 640x640). Fetched server-side; must resolve directly without redirects.

## Response `200`

Profile picture updated successfully

- object
  - `success` boolean
  - `message` string

## Other responses

- `400` — Invalid file type/URL, file too large, or missing parameters
- `401` — Unauthorized
- `404` — WhatsApp account not found
- `422` — Profile photo is locked for WhatsApp coexistence numbers (manage it in the WhatsApp Business app)

---

[API](https://skmtc.net/zernio/apis/zernio-api.md) · [All operations](https://skmtc.net/zernio/apis/zernio-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/zernio/zernio-api/revisions/e0cd92070858/schema)
