---
title: "Workspace"
description: "The workspace's name and image (writes need `branding:write`), who is calling (`GET /whoami`, any credential), and the activity log (`GET /activity`, `activity:read`: no key preset includes it)."
url: https://www.unitpost.com/docs/api/workspace
section: API reference
updated: 2026-10-13
---
# Workspace

## Workspace

> The workspace's name and image (writes need `branding:write`), who is calling (`GET /whoami`, any credential), and the activity log (`GET /activity`, `activity:read`: no key preset includes it).

Full schemas: [OpenAPI 3.1](https://www.unitpost.com/api/v1/openapi.json). HTML reference: https://www.unitpost.com/docs/platform/workspace.

## Operations

### `GET /api/v1/whoami`

Who am I

The calling credential: its workspace, the API key (name, prefix, scope preset) or the OAuth sign-in (the app and the member it acts for), the `capabilities` it may use after every clamp, and the workspace's rate limit. Call it first to plan within what the credential may do instead of learning by `403`. Never returns the secret. Requires no capability: any valid credential may call it.

Reference: https://www.unitpost.com/docs/platform/get-whoami ([Markdown](https://www.unitpost.com/docs/platform/get-whoami.md))

### `GET /api/v1/activity`

List activity

The workspace activity log, newest first and cursor-paginated: what changed, when, and who changed it (`actor.name`: a teammate, System, Ask Unit) and, for a change made over the API, MCP or Ask Unit, how (`actor.via`, with the API key). The rows the dashboard's Activity page and each record's timeline show. Narrow with `subject` (and `subject_id`), `contact_id`, `campaign_id`, `q` (the record's name or the actor) and `channel=email`. Needs `activity:read`, which no key preset includes: the log names your teammates. Requires the `activity:read` capability.

Reference: https://www.unitpost.com/docs/platform/get-activity ([Markdown](https://www.unitpost.com/docs/platform/get-activity.md))

### `PATCH /api/v1/workspace`

Rename the workspace

Change the workspace's name. Deleting the workspace stays in the dashboard. Requires the `branding:write` capability.

Reference: https://www.unitpost.com/docs/platform/patch-workspace ([Markdown](https://www.unitpost.com/docs/platform/patch-workspace.md))

### `PUT /api/v1/workspace/image`

Set the workspace image

Replace the workspace image (its avatar in the dashboard, and the email logo when there's no brand logo), from a public https `url` or base64 `data` (PNG, JPEG, GIF or WebP, up to 5 MB and 16,384 px a side). Requires the `branding:write` capability.

Reference: https://www.unitpost.com/docs/platform/put-workspace-image ([Markdown](https://www.unitpost.com/docs/platform/put-workspace-image.md))

### `DELETE /api/v1/workspace/image`

Remove the workspace image

Clear the workspace image. Requires the `branding:write` capability.

Reference: https://www.unitpost.com/docs/platform/delete-workspace-image ([Markdown](https://www.unitpost.com/docs/platform/delete-workspace-image.md))

## Related

- [Segments](https://www.unitpost.com/docs/api/segments): Named groups of contacts used to target campaigns. Segments decide who a campaign goes to; topics (below) decide what recipients can opt out of.
- [Topics](https://www.unitpost.com/docs/api/topics): Subscription categories (e.g. Promotions) recipients can opt out of without leaving your list, independent of segment membership. Scope a campaign to a topic and opted-out contacts are skipped automatically.
- [Campaigns](https://www.unitpost.com/docs/api/campaigns): One-to-many sends to a segment or an inline recipient list. Draft, validate, schedule, send, pause, resume, and cancel — with a pre-send report that catches problems before anything goes out.
