Ventures API
Create ventures, manage members and roles, send invitations and read the activity log.
A venture is a company, studio or team. Every Corpland app that works on shared data (Content, Desk, Revenue) treats a venture as its workspace. All routes take a bearer token, from the ID session or from your app's access token.
Roles
| Role | Can |
|---|---|
owner | Everything, including delete and transfer. Exactly one per venture. |
admin | Edit the venture, invite, change and remove members. Only owners change admins. |
member | Read the venture and its members, and leave. |
Apps may later add namespaced roles such as content:editor, stored on the membership as productRoles.
Ventures
| Method and path | Who | Body or notes |
|---|---|---|
GET /ventures | Signed in | Your ventures, each with myRole and memberCount |
POST /ventures | Signed in | { name, slug?, logo?, website?, country?, description? }. You become the owner. |
GET /ventures/:id | Member | |
PATCH /ventures/:id | Admin | Any of the create fields |
DELETE /ventures/:id | Owner | Soft delete. Members lose access at once. |
POST /ventures/:id/leave | Member | Owners must transfer first |
POST /ventures/:id/transfer | Owner | { userId } of an existing admin. The old owner becomes an admin. |
Members
| Method and path | Who | Body |
|---|---|---|
GET /ventures/:id/members | Member | |
PATCH /ventures/:id/members/:userId | Admin | { role: "admin" | "member" } |
DELETE /ventures/:id/members/:userId | Admin |
A member looks like:
{ "userId": "6aca...", "role": "admin", "roleLabel": "Admin", "productRoles": [], "joinedAt": "2026-10-10T20:11:41.000Z", "name": "Kofi Boateng", "email": "kofi@acme.com", "image": null }Invitations
| Method and path | Who | Notes |
|---|---|---|
GET /ventures/:id/invitations | Admin | Pending invitations |
POST /ventures/:id/invitations | Admin | { email, role }. Emails a link to /invites/<token> on the hosted pages. |
POST /ventures/:id/invitations/:invId/resend | Admin | New link, new expiry |
DELETE /ventures/:id/invitations/:invId | Admin | Cancels it |
GET /invitations | Signed in | Invitations sent to your email |
GET /invitations/:token | Public | Preview: venture, inviter, role, status |
POST /invitations/:token/accept | Signed in | Your email must match the invitation |
POST /invitations/:token/decline | Signed in |
Creating or resending answers { invitation, delivered, acceptUrl }. When delivered is false the email did not go out, and you can hand acceptUrl to the person yourself. Invitations expire after 7 days by default.
Activity
GET /ventures/:id/audit?before=<createdAt>&limit=50 for admins (50 a page by default, 100 at most). Entries carry action, actor, meta and createdAt; the answer's next is the cursor for the following page. Actions include venture.created, venture.updated, member.joined, member.role_changed, member.removed, member.left, ownership.transferred, invitation.created, invitation.resent, invitation.revoked and invitation.declined.