`POST /api/marketplace/installs/{id}/update` — update an existing install to the latest version. Returns the updated install row.
const url = 'https://example.com/api/marketplace/installs/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/update';const options = { method: 'POST', headers: {'Content-Type': 'application/json'}, body: '{"resource_mappings":{"mappings":[{"requirement_kind":"example","resource_id":"2489E9AD-2EE2-8E00-8EC9-32D5F69181C0"}]}}'};
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/marketplace/installs/2489E9AD-2EE2-8E00-8EC9-32D5F69181C0/update \ --header 'Content-Type: application/json' \ --data '{ "resource_mappings": { "mappings": [ { "requirement_kind": "example", "resource_id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0" } ] } }'Parameters
Section titled “Parameters”Path Parameters
Section titled “Path Parameters”Request Bodyrequired
Section titled “Request Bodyrequired”object
Examplegenerated
{ "resource_mappings": { "mappings": [ { "requirement_kind": "example", "resource_id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0" } ] }}Responses
Section titled “Responses”A marketplace item installed into a workspace. Tracks the installed version, the local resources created (app, scripts, workflows), and the manifest hash for drift detection.
object
#1060 — when armed, the auto-update tick pulls newer non-withdrawn versions through the SAME service path the Update button uses, so it can skip none of that path’s signature / review-gate / licence checks.
Last tick attempt for this install (success or failure), so “never checked” and “checked and found nothing” stay distinguishable.
Why the last auto-update attempt failed; None after a success. Without this
a blocked review gate or a lapsed licence would leave the install silently
pinned to an old version while the toggle still reads “on”.
Issue #351 — whether a newer NON-withdrawn version than the installed one
exists (the “update available” signal), and that latest version string.
Populated only by list_installs_by_workspace via correlated subqueries;
absent in other projections that select INSTALL_COLUMNS, where
#[sqlx(default)] supplies false / None.
Examplegenerated
{ "auto_update": true, "auto_update_checked_at": "2026-04-15T12:00:00Z", "auto_update_last_error": "example", "id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "install_manifest_sha256": "example", "installed_app_id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "installed_at": "2026-04-15T12:00:00Z", "installed_by": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "installed_node_type_ids": [ "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0" ], "installed_script_ids": [ "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0" ], "installed_workflow_ids": [ "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0" ], "item_id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "latest_version": "example", "resource_mappings": "example", "update_available": true, "updated_at": "2026-04-15T12:00:00Z", "version_id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0", "workspace_id": "2489E9AD-2EE2-8E00-8EC9-32D5F69181C0"}