---
title: "Write a publisher's public profile"
method: PUT
path: "/v1/admin/registry/publishers/{publisher}"
tags: ["Marketplace"]
---

# Write a publisher's public profile

`PUT /v1/admin/registry/publishers/{publisher}`

## Request

- Base URL: `https://brain.inite.ai`
- URL: `https://brain.inite.ai/v1/admin/registry/publishers/{publisher}`
- Auth: HTTP bearer

Full-replace upsert. Writable ONLY by a company that has published at least one VERIFIED pack under the publisher id — the ed25519 signature validated against the hosting instance's trust store is what ties a company to the publisher name (403 otherwise).

Required scope: `registry:publish`.

## Path parameters

- `publisher` string, required

## Request body

- UpsertPublisherProfileRequest
  - `bio` string
  - `contactEmail` string
  - `displayName` string, required
  - `url` string

## Response `200`

The stored profile.

- PublisherProfile
  - `bio` string, required
  - `contactEmail` string, nullable, required
  - `createdAt` string, required
  - `displayName` string, required
  - `publisher` string, required
  - `updatedAt` string, nullable, required
  - `url` string, nullable, required

## Other responses

- `400`: Validation failed.
- `401`: Missing or unknown bearer key.
- `403`: The key lacks the required scope.

---

[API](https://skmtc.dev/inite/apis/inite-brain-platform-api.md) · [All operations](https://skmtc.dev/inite/apis/inite-brain-platform-api/llms.txt) · [OpenAPI document](https://skmtc.dev/inite/apis/inite-brain-platform-api/revisions/c7c3eb5e304b?raw)
