---
title: "Upload a startup logo"
method: POST
path: "/api/startups/{slug}/logo"
tags: ["startups"]
---

# Upload a startup logo

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

## Request

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

Owner or operator, same gate as the profile write. The server crops the supplied image to a 256px square WebP (the same pipeline as member photos) and stores the result as the HIGHEST-precedence logo source, above the bespoke seed asset and the favicon fallback. Send either `data_url` or bare `base64`.

## Path parameters

- `slug` string, required

## Request body

- StartupLogoUploadRequest: Send EITHER `data_url` or bare `base64`.
  - `data_url` string: `data:image/png;base64,...`
  - `base64` string: Bare base64 bytes.

## Response `200`

The saved profile plus the stored payload size.

- StartupLogoUploadResponse
  - `ok` boolean, required
  - `base64_len` integer: Size of the stored 256px WebP payload.
  - `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, no image supplied, or bytes that will not decode/crop.
- `401`: No auth.
- `403`: Not the bound owner, not an operator, or a bearer token without signature enforcement.
- `404`: No such startup.
- `413`: Image over the size ceiling.

---

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