---
title: "Upload an XMTP or Push Protocol attachment"
method: POST
path: "/user/{domain}/attachment"
tags: ["Profile management endpoints"]
---

# Upload an XMTP or Push Protocol attachment

`POST /user/{domain}/attachment`

Upload an XMTP or Push Protocol attachment. Quota enforced per user. Authentication is required using domain owner signature.

## Path parameters

- `domain` string, required

## Headers

- `x-auth-domain` string, required
- `x-auth-expires` string, required
- `x-auth-signature` string, required

## Request body

- SerializedDomainAttachmentPost
  - `attachment` SerializedDomainProfileImageData
    - `base64` string — Base64 encoded string of the image data
    - `type` string — MIME type of the base64 encoded file (image/jpeg or image/png)

## Response `200`

Public URL to access the uploaded attachment

- SerializedAttachmentResponse
  - `url` string — Public URL to access the attachment

## Other responses

- `400` — Invalid attachment
- `404` — Domain not found
- `409` — User quota exceeded

---

[API](https://skmtc.net/unstoppabledomains/apis/profile-api.md) · [All operations](https://skmtc.net/unstoppabledomains/apis/profile-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/unstoppabledomains/profile-api/versions/10f8400cb1c1/schema)
