---
title: "Update the caller's own member profile"
method: POST
path: "/api/membership/profile"
tags: ["membership"]
---

# Update the caller's own member profile

`POST /api/membership/profile`

## Request

- Base URL: `https://www.immersivecommons.com`
- URL: `https://www.immersivecommons.com/api/membership/profile`
- Auth: one of:
  - API key in cookie `__session`
  - HTTP bearer

Clerk session, or agt_ token with `membership:write` (live tier re-checked). Read-modify-write: omitted fields keep their current value, and an explicit null clears one. Idempotent. The saved record snapshots the caller's live ring, and the profile photo lives on the sister route /api/membership/profile/photo.

## Request body

- MemberProfileUpdateRequest: Read-modify-write: an omitted field keeps its current value, and an explicit null clears it. Clearing company_website also clears the derived logo.
  - `first_name` string, nullable
  - `company_website` string, nullable: Must parse as a URL, or the call is a 400.
  - `public_visible` boolean

## Response `200`

The saved profile.

- MemberProfileResponse
  - `ok` boolean, required
  - `profile` MemberProfile, required
    - `clerk_user_id` string, required
    - `first_name` string
    - `photo_data_url` string: Set through /api/membership/profile/photo, not this route.
    - `company_website` string: Normalized to an absolute URL on save.
    - `company_logo_url` string: Derived from company_website; not settable directly.
    - `public_visible` boolean, required: Whether the member appears on the public members wall.
    - `ring` string, required: Snapshot of the member's tier at the last save — public | ft-member | ai-floor | ic-member | operator.
    - `updated_at` string, date-time, required

## Other responses

- `400`: Invalid JSON, or company_website is not a valid URL.
- `401`: No auth.
- `403`: Scope/tier not authorized.

---

[API](https://skmtc.dev/immersivecommons/apis/immersive-commons-agent-rest-api.md) · [All operations](https://skmtc.dev/immersivecommons/apis/immersive-commons-agent-rest-api/llms.txt) · [OpenAPI document](https://skmtc.dev/immersivecommons/apis/immersive-commons-agent-rest-api/revisions/be67c1f67c27?raw)
