Install app
POST/marketplace/installs
Installs a published marketplace app into the current tenant workspace, executing the app's install lifecycle hook and provisioning any required webhooks or data stores. An active installation record is created and webhook delivery begins immediately.
Request
Request body
Content type application/json (required).
| Field | Type | Required | Description |
|---|---|---|---|
app_id | integer | Yes | ID of the published marketplace app to install. |
config | object | No | Key-value configuration required by the app's install manifest. |
Example
{
"app_id": 7,
"config": {
"slack_webhook_url": "https://hooks.slack.com/services/T00/B00/XXXX",
"notify_on_events": [
"deal_won",
"ticket_created",
"invoice_overdue"
]
}
}
Responses
201 App installed and lifecycle hook executed
Content type application/json, object · MarketplaceInstallV1.
| Field | Type | Required | Description |
|---|---|---|---|
id | integer | No | Auto-incremented primary key. |
app_id | integer | No | ID of the installed marketplace app. |
app_name | string | No | Display name of the installed app. |
status | string | No | Current installation lifecycle status. One of: |
installed_at | string (date-time) | No | |
last_webhook_at | string (date-time), nullable | No | Timestamp of the most recent webhook delivery from this app. |
webhook_health | string, nullable | No | Health status of the app's webhook delivery. One of: |
config | object | No | Tenant-supplied configuration for this installation. |
409 App is already installed
422 Validation failed — check app_id or required config fields
Example request
curl -X POST "https://{tenant}.faciotech.net/api/v1/marketplace/installs" \
-H "Accept: application/json" \
-H "Content-Type: application/json" \
-d '{"app_id": 7, "config": {"slack_webhook_url": "https://hooks.slack.com/services/T00/B00/XXXX", "notify_on_events": ["deal_won", "ticket_created", "invoice_overdue"]}}'