Corpland ID

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

RoleCan
ownerEverything, including delete and transfer. Exactly one per venture.
adminEdit the venture, invite, change and remove members. Only owners change admins.
memberRead 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 pathWhoBody or notes
GET /venturesSigned inYour ventures, each with myRole and memberCount
POST /venturesSigned in{ name, slug?, logo?, website?, country?, description? }. You become the owner.
GET /ventures/:idMember
PATCH /ventures/:idAdminAny of the create fields
DELETE /ventures/:idOwnerSoft delete. Members lose access at once.
POST /ventures/:id/leaveMemberOwners must transfer first
POST /ventures/:id/transferOwner{ userId } of an existing admin. The old owner becomes an admin.

Members

Method and pathWhoBody
GET /ventures/:id/membersMember
PATCH /ventures/:id/members/:userIdAdmin{ role: "admin" | "member" }
DELETE /ventures/:id/members/:userIdAdmin

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 pathWhoNotes
GET /ventures/:id/invitationsAdminPending invitations
POST /ventures/:id/invitationsAdmin{ email, role }. Emails a link to /invites/<token> on the hosted pages.
POST /ventures/:id/invitations/:invId/resendAdminNew link, new expiry
DELETE /ventures/:id/invitations/:invIdAdminCancels it
GET /invitationsSigned inInvitations sent to your email
GET /invitations/:tokenPublicPreview: venture, inviter, role, status
POST /invitations/:token/acceptSigned inYour email must match the invitation
POST /invitations/:token/declineSigned 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.

On this page