Skip to main content
Entities are the core publishable assets on the platform. An entity can be an app, a service, or a chat extension. Each entity has metadata, versions, publishers, and sharing controls.

Create entity

POST /api/entities
ParameterTypeRequiredDescription
typebodyYesEntity type: app, service, or chat_extension
slugbodyYesUnique identifier (URL-safe)
namebodyYesDisplay name
descriptionbodyNoEntity description
icon_pathbodyNoStorage path for entity icon
icon_hashbodyNoIcon content hash for cache invalidation
Returns the created entity with storage configuration. Authentication: User authentication + entities:publish scope.

Get entity

GET /api/entities/{entityId}
Returns entity details including the active version, all versions, and storage configuration. Authentication: Entity access required (publisher, shared user, or store publication access).

Update entity

PUT /api/entities/{entityId}
ParameterTypeDescription
namebodyUpdated display name
descriptionbodyUpdated description
icon_pathbodyUpdated icon storage path
icon_hashbodyUpdated icon content hash
Authentication: Entity access + publisher role required.

Delete entity

DELETE /api/entities/{entityId}
Deletes the entity and all associated versions, shares, and publications. Version packages are removed from storage. Authentication: Entity access + publisher role required.

Get entity details

GET /api/entities/{entityId}/details
Returns comprehensive entity information including full version history and metadata. Authentication: Entity access required.

Icon upload

POST /api/entities/icon-upload-url
ParameterTypeRequiredDescription
entity_slugbodyYesEntity slug
extbodyYesFile extension: svg or png
Returns a signed upload URL and the storage path to use when creating or updating the entity. Authentication: User authentication + entities:publish scope.

Entity types

TypeDescription
appFull-stack application built with the App Framework
serviceExternal API integration built with the Services Framework
chat_extensionAI chat extension for the Desktop app
All entity types share the same lifecycle: create → push versions → set active → share or publish → deploy (apps only).