Skip to content

REST API

Organization API

REST endpoints for the Organization area of Lessly.

The Organization area publishes 71 REST endpoints. Paths are relative to https://api.lessly.com; see Authentication for the required header.

GET/governance/api/v1/auth/me

Returns the current identity: identity ID, email, and identity type (e.g. "service" for a service token, which has no email)

MCP tool: organization_auth_me

Parameters

No parameters.

Response

FieldTypeAlwaysDescription
emailstring
identityIdstring
displayNamestring
identityTypestring
GET/governance/api/v1/billing/budgets

Reads the active product's billing budget: the spending ceiling, the per-product caps and the current consumption against them.

MCP tool: organization_billing_budgets_get

Parameters

No parameters.

PUT/governance/api/v1/billing/budgets

Sets the spending ceiling of the active product's budget, in integer minor units of the currency the organization's ledger already pinned. Zero means 'spend nothing beyond what is included'.

MCP tool: organization_billing_budgets_set

Parameters

NameInTypeRequiredDescription
ceiling_minorbodyinteger
DELETE/governance/api/v1/billing/budgets/cap

Clears the spending cap of one product in the caller’s organization, leaving only the organization-wide ceiling. The product must belong to the same organization as the active product.

MCP tool: organization_billing_caps_clear

Parameters

NameInTypeRequiredDescription
productIdbodystring
PUT/governance/api/v1/billing/budgets/cap

Sets the spending cap of one product in the caller’s organization, in integer minor units. The product must belong to the same organization as the active product; any other is refused.

MCP tool: organization_billing_caps_set

Parameters

NameInTypeRequiredDescription
productIdbodystring
cap_minorbodyinteger
DELETE/governance/api/v1/connectors/:id

Detaches the current product from a connector

MCP tool: organization_connectors_remove

Parameters

NameInTypeRequiredDescription
idpathstring

Response

FieldTypeAlwaysDescription
successboolean
GET/governance/api/v1/connectors/:id/attachments

Lists the products a connector is attached to (org owner/admin)

MCP tool: organization_connectors_list-attachments

Parameters

NameInTypeRequiredDescription
idpathstring

Response

FieldTypeAlwaysDescription
attachmentsarray
connectorIdstring
POST/governance/api/v1/connectors/:id/attachments

Attaches products to a connector (batch, idempotent; org owner/admin)

MCP tool: organization_connectors_attach

Parameters

NameInTypeRequiredDescription
idpathstring
productIdsbodyarray

Response

FieldTypeAlwaysDescription
attachmentsarray
connectorIdstring
DELETE/governance/api/v1/connectors/:id/attachments/:productId

Detaches one product from a connector (org owner/admin). Last detach → dormant.

MCP tool: organization_connectors_detach

Parameters

NameInTypeRequiredDescription
idpathstring
productIdpathstring

Response

FieldTypeAlwaysDescription
successboolean
DELETE/governance/api/v1/connectors/:id/org

Deletes a connector org-wide: soft-delete, remove all attachments, tear down routing (org owner/admin)

MCP tool: organization_connectors_delete

Parameters

NameInTypeRequiredDescription
idpathstring

Response

FieldTypeAlwaysDescription
successboolean
POST/governance/api/v1/connectors/:id/requests

Requests access to an org connector for a product (any product member)

MCP tool: organization_connectors_request

Parameters

NameInTypeRequiredDescription
productIdquerystring
idpathstring

Response

FieldTypeAlwaysDescription
idstring
statusstring
POST/governance/api/v1/connectors/:id/requests/:requestId/approve

Approves a connector access request, attaching the product (org owner/admin)

MCP tool: organization_connectors_approve-request

Parameters

NameInTypeRequiredDescription
idpathstring
requestIdpathstring

Response

FieldTypeAlwaysDescription
successboolean
POST/governance/api/v1/connectors/:id/requests/:requestId/deny

Denies a connector access request (org owner/admin)

MCP tool: organization_connectors_deny-request

Parameters

NameInTypeRequiredDescription
idpathstring
requestIdpathstring

Response

FieldTypeAlwaysDescription
successboolean
GET/governance/api/v1/connectors/available

Lists org connectors not yet attached to a product, with this product's request status

MCP tool: organization_connectors_list-available

Parameters

NameInTypeRequiredDescription
productIdquerystring
GET/governance/api/v1/connectors/clickup/install

Starts the ClickUp OAuth connect flow for a product and returns the install URL

MCP tool: organization_clickup_install

Parameters

No parameters.

Response

FieldTypeAlwaysDescription
urlstring
GET/governance/api/v1/connectors/clickup/installations

Lists the ClickUp installations connected to a product

MCP tool: organization_clickup_list-installations

Parameters

No parameters.

GET/governance/api/v1/connectors/cloudflare/install

Starts the Cloudflare OAuth connect flow for a product and returns the consent URL

MCP tool: organization_cloudflare_install

Parameters

No parameters.

Response

FieldTypeAlwaysDescription
urlstring
GET/governance/api/v1/connectors/gdrive/install

Starts the Google Drive OAuth connect flow for a product and returns the consent URL

MCP tool: organization_gdrive_install

Parameters

No parameters.

Response

FieldTypeAlwaysDescription
urlstring
GET/governance/api/v1/connectors/github/install

Starts the GitHub app installation flow for a product. When the product's organization already has GitHub connections, returns them so one can be reused (attached) instead of dead-ending on GitHub's already-installed settings page. `url` is always returned — connecting an additional, different GitHub org stays possible.

MCP tool: organization_github_install

Parameters

No parameters.

Response

FieldTypeAlwaysDescription
urlstring
statusstring
canAttachboolean
connectorsarray
GET/governance/api/v1/connectors/github/installations

Lists the GitHub app installations connected to a product

MCP tool: organization_github_list-installations

Parameters

No parameters.

GET/governance/api/v1/connectors/googleads/install

Starts the Google Ads OAuth connect flow for an organization and returns the consent URL

MCP tool: organization_googleads_install

Parameters

NameInTypeRequiredDescription
organizationIdquerystring

Response

FieldTypeAlwaysDescription
urlstring
GET/governance/api/v1/connectors/list

Lists active connectors in a product

MCP tool: organization_connectors_list

Parameters

NameInTypeRequiredDescription
productIdquerystring
POST/governance/api/v1/feedback

Submit product feedback — opens a GitHub issue in the Lessly feedback repo. Use when the user wants to report a bug, request a feature, or leave feedback about the platform.

MCP tool: organization_feedback_submit

Parameters

NameInTypeRequiredDescription
titlebodystring
detailsbodystring
pagebodystring

Response

FieldTypeAlwaysDescription
urlstring
numbernumber
supportThreadIdstring
GET/governance/api/v1/organizations

Lists the organizations the current user belongs to (owned or via membership).

MCP tool: organization_list

Parameters

No parameters.

Response

FieldTypeAlwaysDescription
organizationsarray
POST/governance/api/v1/organizations

Creates a new organization owned by the current user and sets it as the active organization for the session.

MCP tool: organization_create

Parameters

NameInTypeRequiredDescription
namebodystring
legalNamebodystring
ownerNamebodystring
countryOfIncorporationbodystring
residencyCountrybodystring
beneficialOwnersbodyarray
ownershipConfirmedbodyboolean

Response

FieldTypeAlwaysDescription
idstring
namestring
GET/governance/api/v1/organizations/:organizationId/connectors

Lists an organization's connectors with their product attachments (org owner/admin)

MCP tool: organization_connectors_list-org

Parameters

NameInTypeRequiredDescription
organizationIdpathstring
GET/governance/api/v1/organizations/:organizationId/connectors/requests

Lists connector access requests for an organization (org owner/admin)

MCP tool: organization_connectors_list-requests

Parameters

NameInTypeRequiredDescription
organizationIdpathstring
statusquerystring
GET/governance/api/v1/organizations/:organizationId/invitations

Lists invitations for an organization

MCP tool: organization_member_list-invitations

Parameters

NameInTypeRequiredDescription
organizationIdpathstring

Response

FieldTypeAlwaysDescription
invitationsarray
POST/governance/api/v1/organizations/:organizationId/invitations

Invites a user to an organization by email, optionally sharing products

MCP tool: organization_member_invite

Parameters

NameInTypeRequiredDescription
organizationIdpathstring
emailbodystring
rolebodystring
productSharesbodyarray
DELETE/governance/api/v1/organizations/:organizationId/invitations/:invitationId

Revokes a pending organization invitation

MCP tool: organization_member_revoke-invitation

Parameters

NameInTypeRequiredDescription
organizationIdpathstring
invitationIdpathstring
GET/governance/api/v1/organizations/:organizationId/members

Lists the stored members of an organization with their roles and product grants

MCP tool: organization_member_list

Parameters

NameInTypeRequiredDescription
organizationIdpathstring

Response

FieldTypeAlwaysDescription
membersarray
DELETE/governance/api/v1/organizations/:organizationId/members/:userId

Removes a member from an organization

MCP tool: organization_member_remove

Parameters

NameInTypeRequiredDescription
organizationIdpathstring
userIdpathstring
GET/governance/api/v1/organizations/:organizationId/members/:userId/products

Lists the products in an organization a member can access, with role, grant source, and expiry (management view; expired grants are shown with expiresAt).

MCP tool: organization_member_list-product-access

Parameters

NameInTypeRequiredDescription
organizationIdpathstring
userIdpathstring

Response

FieldTypeAlwaysDescription
productsarray
POST/governance/api/v1/organizations/:organizationId/members/:userId/products

Grants an organization member explicit access to a product

MCP tool: organization_member_share-product

Parameters

NameInTypeRequiredDescription
organizationIdpathstring
userIdpathstring
productIdbodystring
rolebodystring
expiresAtbodystring
permissionsbodyobject
roleIdbodystring

Response

FieldTypeAlwaysDescription
rolestring
userIdstring
expiresAtstring
productIdstring
DELETE/governance/api/v1/organizations/:organizationId/members/:userId/products/:productId

Revokes an explicit product share from an organization member

MCP tool: organization_member_unshare-product

Parameters

NameInTypeRequiredDescription
organizationIdpathstring
userIdpathstring
productIdpathstring
PATCH/governance/api/v1/organizations/:organizationId/members/:userId/role

Changes an organization member's role (owner only)

MCP tool: organization_member_set-role

Parameters

NameInTypeRequiredDescription
organizationIdpathstring
userIdpathstring
rolebodystring

Response

FieldTypeAlwaysDescription
rolestring
userIdstring
POST/governance/api/v1/organizations/:organizationId/security/mfa/enable

Turns ON organization-wide multi-factor authentication (2FA) enforcement for an organization. Owner-only: only the owner of the organization may call it. This is deliberately one-way — disabling MFA enforcement is not available over MCP; use the organization security settings in the Product App instead. The policy is strictest-wins across all of a member’s organizations, so enabling it here forces MFA enrollment for every member of this organization at their next sign-in or token refresh.

MCP tool: organization_security_mfa_enable

Parameters

NameInTypeRequiredDescription
organizationIdpathstring

Response

FieldTypeAlwaysDescription
mfaRequiredboolean
trustedDeviceAllowedboolean
GET/governance/api/v1/organizations/:orgId/roles

Lists the reusable custom roles defined in an organization

MCP tool: organization_roles_list

Parameters

NameInTypeRequiredDescription
orgIdpathstring

Response

FieldTypeAlwaysDescription
rolesarray
POST/governance/api/v1/organizations/:orgId/roles

Creates a reusable organization role with allow/deny permission patterns (owner/admin)

MCP tool: organization_roles_create

Parameters

NameInTypeRequiredDescription
orgIdpathstring
namebodystring
allowbodyarray
denybodyarray

Response

FieldTypeAlwaysDescription
idstring
denyarray
namestring
typestring
allowarray
createdAtstring
updatedAtstring
organizationIdstring
DELETE/governance/api/v1/organizations/:orgId/roles/:roleId

Deletes an organization role (owner/admin). Already-materialized product grants are unaffected.

MCP tool: organization_roles_delete

Parameters

NameInTypeRequiredDescription
orgIdpathstring
roleIdpathstring
GET/governance/api/v1/organizations/:orgId/roles/:roleId

Gets a single organization role by id

MCP tool: organization_roles_get

Parameters

NameInTypeRequiredDescription
orgIdpathstring
roleIdpathstring

Response

FieldTypeAlwaysDescription
idstring
denyarray
namestring
typestring
allowarray
createdAtstring
updatedAtstring
organizationIdstring
PATCH/governance/api/v1/organizations/:orgId/roles/:roleId

Updates an organization role's name or allow/deny patterns (owner/admin)

MCP tool: organization_roles_update

Parameters

NameInTypeRequiredDescription
orgIdpathstring
roleIdpathstring
namebodystring
allowbodyarray
denybodyarray

Response

FieldTypeAlwaysDescription
idstring
denyarray
namestring
typestring
allowarray
createdAtstring
updatedAtstring
organizationIdstring
POST/governance/api/v1/organizations/invitations/accept

Accepts an organization invitation using the invitation token

MCP tool: organization_member_accept-invite

Parameters

NameInTypeRequiredDescription
tokenbodystring

Response

FieldTypeAlwaysDescription
namestring
rolestring
productsarray
organizationIdstring
GET/governance/api/v1/organizations/permission-catalog

Lists the full permission catalog (key, display_name, group, level, scope) derived from @McpTool handlers. Only scope="product" entries are grantable in role/point-rights pickers; scope="user" entries are informational.

MCP tool: organization_permission_catalog

Parameters

No parameters.

Response

FieldTypeAlwaysDescription
catalogarray
POST/governance/api/v1/organizations/select

Sets the active organization for the current session and returns the resolved active product. Session state: the switch also rewrites the session product selection — the current product survives only when it belongs to the new organization, otherwise the caller's first product in that organization is selected, or the selection is cleared when there is none.

MCP tool: organization_select

Parameters

NameInTypeRequiredDescription
organizationIdbodystring

Response

FieldTypeAlwaysDescription
organizationobject
activeProductIdstring
GET/governance/api/v1/products

Lists all products the current user has access to

MCP tool: organization_product_list

Parameters

NameInTypeRequiredDescription
organizationIdquerystring

Response

FieldTypeAlwaysDescription
productsarray
POST/governance/api/v1/products

Creates a new product with the given name

MCP tool: organization_product_create

Parameters

NameInTypeRequiredDescription
namebodystring
organizationIdbodystring
regionbodystring

Response

FieldTypeAlwaysDescription
idstring
namestring
rolestring
slugstring
demoAtstring
statusstring
logoUrlstring
blockedAtstring
createdAtstring
archivedAtstring
descriptionstring
organizationIdstring
PATCH/governance/api/v1/products/:productId

Updates an existing product's name and/or description

MCP tool: organization_product_update

Parameters

NameInTypeRequiredDescription
productIdpathstring
namebodystring
descriptionbodystring

Response

FieldTypeAlwaysDescription
idstring
namestring
rolestring
slugstring
demoAtstring
statusstring
logoUrlstring
blockedAtstring
createdAtstring
archivedAtstring
descriptionstring
organizationIdstring
GET/governance/api/v1/products/:productId/access

Lists who can work in a product: the explicit grants and their roles, the organization owners and admins who inherit full access (read-only here), the organization members holding no access yet, and the organization's named roles a grant can be handed at. `canManage` states whether the caller may change any of it.

MCP tool: organization_product_list-access

Parameters

NameInTypeRequiredDescription
productIdpathstring

Response

FieldTypeAlwaysDescription
membersarray
orgRolesarray
canManageboolean
inheritedarray
candidatesarray
DELETE/governance/api/v1/products/:productId/access/:userId

Revokes a product grant from an organization member. Access inherited from an organization role is lifted in the organization, and the product owner is removed by transferring ownership.

MCP tool: organization_product_revoke-access

Parameters

NameInTypeRequiredDescription
productIdpathstring
userIdpathstring
PUT/governance/api/v1/products/:productId/access/:userId

Grants an organization member access to a product, or changes the role they already hold, at a standard role (admin, member, viewer) or one of the organization's named roles. The target must already be an active member of the product's organization; owner is transfer-only, and access inherited from an organization role is changed in the organization.

MCP tool: organization_product_set-access

Parameters

NameInTypeRequiredDescription
productIdpathstring
userIdpathstring
rolebodystring
roleIdbodystring

Response

FieldTypeAlwaysDescription
rolestring
userIdstring
productIdstring
GET/governance/api/v1/products/:productId/domains

Lists the custom domains configured in a product

MCP tool: organization_domains_list

Parameters

NameInTypeRequiredDescription
productIdpathstring

Response

FieldTypeAlwaysDescription
domainsarray
POST/governance/api/v1/products/:productId/domains

Adds a custom domain to a product. The domain always starts in external (self-managed DNS) mode; when the product has an active Cloudflare connector that can write DNS, the response carries a managedDns hint naming the connector and the tool that switches the domain to managed mode.

MCP tool: organization_domains_add

Parameters

NameInTypeRequiredDescription
productIdpathstring
domainbodystring

Response

FieldTypeAlwaysDescription
idstring
modestring
domainstring
createdAtstring
createdBystring
productIdstring
managedDnsobject
providerConnectorIdstring
DELETE/governance/api/v1/products/:productId/domains/:domainId

Removes a custom domain from a product

MCP tool: organization_domains_remove

Parameters

NameInTypeRequiredDescription
productIdpathstring
domainIdpathstring
GET/governance/api/v1/products/:productId/domains/:domainId

Gets a single custom domain in a product by id

MCP tool: organization_domains_get

Parameters

NameInTypeRequiredDescription
productIdpathstring
domainIdpathstring

Response

FieldTypeAlwaysDescription
idstring
modestring
domainstring
createdAtstring
createdBystring
productIdstring
providerConnectorIdstring
GET/governance/api/v1/products/:productId/domains/:domainId/bindings

Lists the extension bindings attached to a domain in a product

MCP tool: organization_bindings_list

Parameters

NameInTypeRequiredDescription
productIdpathstring
domainIdpathstring
PUT/governance/api/v1/products/:productId/domains/:domainId/mode

Switches a custom domain between external (self-managed DNS) and managed mode. Managed mode requires providerConnectorId — the id of an active Cloudflare connector attached to the product — and hands the domain's records to the platform reconciler.

MCP tool: organization_domains_set-mode

Parameters

NameInTypeRequiredDescription
productIdpathstring
domainIdpathstring
modebodystring
providerConnectorIdbodystring

Response

FieldTypeAlwaysDescription
idstring
modestring
domainstring
createdAtstring
createdBystring
productIdstring
providerConnectorIdstring
GET/governance/api/v1/products/:productId/extensions

Lists extensions available to the current product

MCP tool: organization_extensions_list-installed

Parameters

NameInTypeRequiredDescription
productIdpathstring

Response

FieldTypeAlwaysDescription
extensionsarray
GET/governance/api/v1/products/:productId/members

Lists all active members of a product with their roles

MCP tool: organization_product_list-members

Parameters

NameInTypeRequiredDescription
productIdpathstring

Response

FieldTypeAlwaysDescription
membersarray
PUT/governance/api/v1/products/:productId/members/:memberId/role

Assigns a role to a member of a product

MCP tool: organization_members_assign-role

Parameters

NameInTypeRequiredDescription
productIdpathstring
memberIdpathstring
roleIdbodystring

Response

FieldTypeAlwaysDescription
idstring
rolestring
roleIdstring
statusstring
userIdstring
agentIdstring
joinedAtstring
expiresAtstring
invitedAtstring
invitedBystring
productIdstring
grantSourcestring
permissionsobject
GET/governance/api/v1/products/:productId/public-keys

Lists a product's public keys. Never returns key material.

MCP tool: organization_public-keys_list

Parameters

NameInTypeRequiredDescription
productIdpathstring

Response

FieldTypeAlwaysDescription
keysarray
POST/governance/api/v1/products/:productId/public-keys

Creates a public key for a product. The plaintext key is returned only in this response and cannot be retrieved again.

MCP tool: organization_public-keys_create

Parameters

NameInTypeRequiredDescription
productIdpathstring
namebodystring
scopebodystring

Response

FieldTypeAlwaysDescription
idstring
keystring
namestring
scopestring
importedboolean
createdAtstring
createdBystring
keyPrefixstring
revokedAtstring
POST/governance/api/v1/products/:productId/public-keys/:id/revoke

Revokes a public key. Idempotent; revocation is permanent.

MCP tool: organization_public-keys_revoke

Parameters

NameInTypeRequiredDescription
productIdpathstring
idpathstring

Response

FieldTypeAlwaysDescription
idstring
namestring
scopestring
importedboolean
createdAtstring
createdBystring
keyPrefixstring
revokedAtstring
PUT/governance/api/v1/products/:productId/public-keys/:id/scope

Replaces the scope of an active public key.

MCP tool: organization_public-keys_update-scope

Parameters

NameInTypeRequiredDescription
productIdpathstring
idpathstring
scopebodystring

Response

FieldTypeAlwaysDescription
idstring
namestring
scopestring
importedboolean
createdAtstring
createdBystring
keyPrefixstring
revokedAtstring
GET/governance/api/v1/products/:productId/public-routes

Lists the public routes declared by the product's toolkits, with each route's access mode and public URL.

MCP tool: organization_public-routes_list

Parameters

NameInTypeRequiredDescription
productIdpathstring

Response

FieldTypeAlwaysDescription
routesarray
GET/governance/api/v1/products/:productId/roles

Lists the roles assignable to a product member (system templates + product custom roles)

MCP tool: organization_product_list-roles

Parameters

NameInTypeRequiredDescription
productIdpathstring

Response

FieldTypeAlwaysDescription
rolesarray
POST/governance/api/v1/products/select

Sets the active product for the current session and reconciles the active organization to that product's organization. Session state: the selection persists for the whole MCP session and every product-scoped tool call resolves against it until changed. Without an explicit selection the session resolves an active product implicitly, so results can belong to a product other than the intended one.

MCP tool: organization_product_select

Parameters

NameInTypeRequiredDescription
productIdbodystring

Response

FieldTypeAlwaysDescription
idstring
namestring
slugstring
GET/governance/api/v1/support/threads

List the caller's own support threads, most recently updated first. Use when the user asks about their support requests or tickets.

MCP tool: organization_support_threads_list

Parameters

No parameters.

Response

FieldTypeAlwaysDescription
threadsarray
POST/governance/api/v1/support/threads

Open a support thread on the caller's behalf — the body becomes the first message. Use when the user wants to contact Lessly support.

MCP tool: organization_support_thread_create

Parameters

NameInTypeRequiredDescription
titlebodystring
bodybodystring

Response

FieldTypeAlwaysDescription
idstring
titlestring
statusstring
categorystring
messagesarray
createdAtstring
lastMessageAtstring
lastMessagePreviewstring
GET/governance/api/v1/support/threads/:id

Read one of the caller's own support threads with its full conversation. A thread that belongs to somebody else is reported as not found.

MCP tool: organization_support_thread_get

Parameters

NameInTypeRequiredDescription
idpathstring

Response

FieldTypeAlwaysDescription
idstring
titlestring
statusstring
categorystring
messagesarray
createdAtstring
lastMessageAtstring
lastMessagePreviewstring
POST/governance/api/v1/support/threads/:id/messages

Reply in one of the caller's own support threads. A thread that belongs to somebody else is reported as not found.

MCP tool: organization_support_thread_reply

Parameters

NameInTypeRequiredDescription
idpathstring
bodybodystring

Response

FieldTypeAlwaysDescription
idstring
titlestring
statusstring
categorystring
messagesarray
createdAtstring
lastMessageAtstring
lastMessagePreviewstring
Was this page helpful?
Esc

Start typing to search the docs.

navigateselect