Skip to content

A company: its projects, its people, its invitations

GET
/v1/companies/{id}
curl --request GET \
--url https://beta-api.plune.ai/v1/companies/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0 \
--header 'Authorization: Bearer <token>'

Every project of the company by name, with the caller’s own standing in each (joined, and the role when joined) — nothing else about a project they are not in; every member with their company role; and, for its owners and admins, the invitations nobody has signed in on yet. A company you are not in, and one in the bin, answer the 404 an id nobody has gets.

id
required
string format: uuid

The company

Media type application/json

The company page. invitations is its owners’ and admins’ business — empty for a member and a reader.

object
id
required
string format: uuid
name
required
string
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
createdAt
required
string format: date-time
projects
required
Array<object>

A project of the company as any member sees it: its name, and the caller’s own standing in it — role only when joined. Nothing else about a project the caller is not in.

object
id
required
string
name
required
string
joined
required
boolean
role

What a member may do (B8-team). owner runs the project — members, roles, its name; member does everything else; reader is refused every write at the boundary, before a handler runs.

string
Allowed values: owner member reader
members
required
Array<object>
object
userId
required
string
email
required
string format: email
name

The display name (T3) — absent until the person has given one.

string
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
invitedBy

Who brought them in (a userId) — absent for the person who made the company.

string
createdAt
required
string format: date-time
invitations
required
Array<object>

An address asked into the company that has not signed in since. projectId is present when it was asked into a company project through POST /v1/members: the sign-in makes it a member of the company AND of that project.

object
id
required
string format: uuid
email
required
string format: email
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
projectId
string
createdAt
required
string format: date-time
Example
{
"id": "6f1c2b3a-0000-4000-8000-0000000000a5",
"name": "Acme",
"role": "owner",
"createdAt": "2026-09-16T09:12:04.151Z",
"projects": [
{
"id": "9c4e7d10-0000-4000-8000-0000000000a4",
"name": "Mobile app",
"joined": true,
"role": "owner"
},
{
"id": "9c4e7d10-0000-4000-8000-0000000000a5",
"name": "Payments",
"joined": false
}
],
"members": [
{
"userId": "u-shop",
"email": "[email protected]",
"name": "Olena Kovalenko",
"role": "owner",
"createdAt": "2026-09-16T09:12:04.151Z"
},
{
"userId": "6f1c2b3a-0000-4000-8000-0000000000a2",
"email": "[email protected]",
"role": "admin",
"invitedBy": "u-shop",
"createdAt": "2026-09-16T09:12:04.151Z"
}
],
"invitations": [
{
"id": "6f1c2b3a-0000-4000-8000-0000000000a6",
"email": "[email protected]",
"role": "member",
"createdAt": "2026-09-16T09:12:04.151Z"
}
]
}

No / invalid token or session

No such company among yours

Media type application/json
object
error
required
string
Example
{
"error": "company '6f1c2b3a-0000-4000-8000-0000000000a5' not found"
}