installStorePackage
const url = 'https://example.com/api/v1/plugin-store/example/install';const options = { method: 'POST', headers: { cookie: 'tilecast_session=<tilecast_session>', 'Content-Type': 'application/json' }, body: '{"repository":"https://example.com"}'};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request POST \ --url https://example.com/api/v1/plugin-store/example/install \ --header 'Content-Type: application/json' \ --cookie tilecast_session=<tilecast_session> \ --data '{ "repository": "https://example.com" }'Requires the Owner or Administrator role with the admin scope. Cookie requests additionally require the X-CSRF-Token header. Installs the store entry. A marketplace entry installs from its listing with an empty body; a custom entry installs when the body names its repository. The package ID must match the resolved manifest. Audited.
Authorizations
Section titled “Authorizations”Parameters
Section titled “ Parameters ”Path Parameters
Section titled “Path Parameters”Store package identifier such as countdown_bar.
Header Parameters
Section titled “Header Parameters”Cookie-backed browser requests only, and only on unsafe methods. Bearer grants never send it.
Request Body
Section titled “Request Body”object
Custom repository URL. Omit for marketplace listings.
Examplegenerated
{ "repository": "https://example.com"}Responses
Section titled “ Responses ”Package installed
object
One installed extension package with its contributions and, for custom packages, the repository binding.
object
The human-readable face of an installed or resolved package manifest.
object
Pinned artifact digest as sha256 colon hex.
One activated contribution: its kind, its package-qualified identity, and its path inside the package.
object
External server behavior module (manifest version 2 only).
object
Package-relative WebAssembly module path.
Bounded capabilities the package requests. Every entry is a request the host reviews before installation; nothing here grants itself.
object
Approved outbound HTTPS origins.
object
Package-owned background jobs the host runs.
object
object
One bounded high-frequency background job, separately reviewed.
object
object
Request plugin-owned key/value storage.
Sandboxed Studio UI entry.
object
Requested Tilecast service grants with registry-resolved display metadata.
object
object
The custom repository binding behind an installed custom package.
object
Last verified artifact digest as sha256 colon hex.
Example
{ "data": { "capabilities": { "services": [ { "category": "read" } ] } }}Dashboard authentication required
Owner or Administrator role required
Repository_not_found or plugin_not_found
Package_mismatch, package_installed, contribution_collision, or source_conflict
Repository_private, no_published_release, manifest_not_found, manifest_invalid, release_tag_unusable, no_published_package, package_unsigned, artifact_invalid, package_incompatible, or namespace_violation
Upstream_unavailable — GitHub, the registry, or Sigstore is unreachable