Skip to content

Rename a company

PATCH
/v1/companies/{id}
curl --request PATCH \
--url https://beta-api.plune.ai/v1/companies/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0 \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{ "name": "Acme" }'

An owner or an admin renames it. A member and a reader are told it is not theirs to (403). Answers the company as GET /v1/companies lists it.

id
required
string format: uuid
Media type application/json

The body of POST /v1/companies and of PATCH /v1/companies/{id} alike — a company has a name and nothing else to set.

object
name
required
string
>= 1 characters <= 100 characters
Example
{
"name": "Acme"
}

The company as it is now

Media type application/json

A company the caller is in, with their role in it and two counts — one row of GET /v1/companies.

object
id
required
string format: uuid
name
required
string
<= 100 characters
role
required

What a member of a company may do (ADR 0038). owner and admin manage its people and add them to its projects — only an owner makes, unmakes or removes an owner, and only an owner deletes it; member and reader join its projects themselves. A company role opens no project: joining one gives the project role it maps to — owner and admin → owner, member → member, reader → reader.

string
Allowed values: owner admin member reader
projects
required

Its projects — all of them, joined or not: their names are the company’s.

integer
members
required
integer
>= 1
createdAt
required
string format: date-time
Example
{
"id": "6f1c2b3a-0000-4000-8000-0000000000a5",
"name": "Acme",
"role": "owner",
"projects": 2,
"members": 2,
"createdAt": "2026-09-16T09:12:04.151Z"
}

Invalid body — a name is 1 to 100 characters

Media type application/json
object
error
required
string
Example generated
{
"error": "example"
}

No / invalid token or session

A member or a reader asked

Media type application/json
object
error
required
string
Example
{
"error": "company owner or admin only"
}

No such company among yours

Media type application/json
object
error
required
string
Example generated
{
"error": "example"
}

Rate-limited: either the per-route throttle or a tenant quota. Retry-After carries the seconds until the window rolls over.

Media type application/json
object
error
required
string
Example generated
{
"error": "example"
}
Retry-After
integer

Seconds until the window rolls over