---
title: "Write a startup's public page"
method: POST
path: "/api/startups/{slug}/profile"
tags: ["startups"]
---

# Write a startup's public page

`POST /api/startups/{slug}/profile`

## Request

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

Owner or operator, same two-layer gate as the read. Content auto-publishes with no per-post review, which is why the AGENT path additionally requires a SIGNATURE-ENFORCED token: a leaked bearer alone must be useless against a startup's public page. The Clerk session path is not subject to that (the human is the identity). Text fields are plain text defanged server-side; the repo ships no HTML sanitizer and this route accepts no HTML.

## Path parameters

- `slug` string, required

## Request body

- StartupProfileUpdateRequest: Read-modify-write of the writable fields. STRUCTURED PLAIN TEXT only — there is no HTML sanitizer in the repo and no field accepts HTML.
  - `name` string
  - `tagline` string
  - `description` string
  - `website` string: Validated as a URL.

## Response `200`

The saved profile.

- StartupProfileResponse
  - `ok` boolean, required
  - `profile` StartupProfileRecord, required: The full owner/operator view of a startup profile, including founder identity and every news item.
    - `slug` string
    - `name` string
    - `tagline` string
    - `description` string
    - `website` string
    - `logo_data_url` string: The uploaded logo. Highest-precedence logo source.
    - `news` object[]: Newest first, capped at 8.
    - `updated_at` string, date-time
  - `via` 'clerk' | 'agent'

## Other responses

- `400`: Missing slug, invalid JSON, or a field that fails validation.
- `401`: No auth.
- `403`: Not the bound owner, not an operator, or a bearer token without signature enforcement.
- `404`: No such startup.

---

[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)
