Webhooks
Webhooks are a way for Qlik Cloud to provide other applications with real-time information.
Endpoints
Skip to sectionGET | /v1/webhooks |
POST | /v1/webhooks |
GET | /v1/webhooks/{id} |
PATCH | /v1/webhooks/{id} |
PUT | /v1/webhooks/{id} |
DELETE | /v1/webhooks/{id} |
GET | /v1/webhooks/{id}/deliveries |
GET | /v1/webhooks/{id}/deliveries/{deliveryId} |
POST | /v1/webhooks/{id}/deliveries/{deliveryId}/actions/resend |
GET | /v1/webhooks/event-types |
Retrieves all webhooks entries for a tenant
Facts GET /v1/webhooks
Rate limit required | Tier 1 (1000 requests per minute) |
Query Parameters GET /v1/webhooks
createdByUserId string | Filter resources by user that created it |
enabled boolean | Filter resources by enabled true/false |
eventType string | Filter resources by event-type |
level string | Filter resources by level that user has access to (either user or level) |
limit default=20, minimum=1, maximum=100 number | Maximum number of webhooks to retrieve |
name string | Filter resources by name (wildcard and case insensitive) |
next string | Cursor to the next page |
ownerId string | Filter resources by user that owns it, only applicable for user level webhooks |
prev string | Cursor to previous next page |
sort default='-createdAt' string | Field to sort by, prefix with -/+ to indicate order Enum: name +name -name url +url -url createdAt +createdAt -createdAt updatedAt +updatedAt -updatedAt |
updatedByUserId string | Filter resources by user that last updated the webhook |
url string | Filter resources by url (wildcard and case insensitive) |
Responses GET /v1/webhooks
200 application/json | OK Response |
400 application/json | Bad Request |
401 application/json | Unauthorized |
403 application/json | Forbidden |
500 application/json | Internal Server Error |
503 application/json | Service Unavailable |
GET/v1/webhooks
curl "https://your-tenant.us.qlikcloud.com/api/v1/webhooks" \
-H "Authorization: Bearer <API-key>"
Response GET /v1/webhooks
{
"data": [
{
"id": "string",
"url": "string",
"name": "string",
"level": "tenant",
"filter": "id eq \"id123\" or spaceId eq \"spaceId123\" or spaceId eq \"spaceId456\" or topLevelResourceId eq \"id789\"",
"secret": "string",
"enabled": true,
"headers": {
"headerName": "headerValue"
},
"ownerId": "string",
"createdAt": "2023-11-29T00:09:33.396Z",
"updatedAt": "2023-11-29T00:09:33.396Z",
"eventTypes": [],
"description": "string",
"disabledReason": "string",
"createdByUserId": "string",
"updatedByUserId": "string",
"disabledReasonCode": "string",
"origin": "api"
}
],
"links": {
"next": {
"href": "string"
},
"prev": {
"href": "string"
},
"self": {
"href": "string"
}
}
}
Creates a new webhook
Facts POST /v1/webhooks
Rate limit required | Tier 2 (100 requests per minute) |
Request Body POST /v1/webhooks
application/json | No description |
Responses POST /v1/webhooks
201 application/json | OK Response |
400 application/json | Bad Request |
401 application/json | Unauthorized |
403 application/json | Forbidden |
500 application/json | Internal Server Error |
503 application/json | Service Unavailable |
POST/v1/webhooks
curl "https://your-tenant.us.qlikcloud.com/api/v1/webhooks" \
-X POST \
-H "Authorization: Bearer <API-key>" \
-H "Content-type: application/json" \
-d '{"id":"string","url":"string","name":"string","level":"tenant","filter":"id eq \"id123\" or spaceId eq \"spaceId123\" or spaceId eq \"spaceId456\" or topLevelResourceId eq \"id789\"","secret":"string","enabled":true,"headers":{"headerName":"headerValue"},"ownerId":"string","createdAt":"2023-11-29T00:09:33.396Z","updatedAt":"2023-11-29T00:09:33.396Z","eventTypes":[],"description":"string","disabledReason":"string","createdByUserId":"string","updatedByUserId":"string","disabledReasonCode":"string","origin":"api"}'
Request POST /v1/webhooks
{
"id": "string",
"url": "string",
"name": "string",
"level": "tenant",
"filter": "id eq \"id123\" or spaceId eq \"spaceId123\" or spaceId eq \"spaceId456\" or topLevelResourceId eq \"id789\"",
"secret": "string",
"enabled": true,
"headers": {
"headerName": "headerValue"
},
"ownerId": "string",
"createdAt": "2023-11-29T00:09:33.396Z",
"updatedAt": "2023-11-29T00:09:33.396Z",
"eventTypes": [],
"description": "string",
"disabledReason": "string",
"createdByUserId": "string",
"updatedByUserId": "string",
"disabledReasonCode": "string",
"origin": "api"
}
Response POST /v1/webhooks
{
"undefined": {
"id": "string",
"url": "string",
"name": "string",
"level": "tenant",
"filter": "id eq \"id123\" or spaceId eq \"spaceId123\" or spaceId eq \"spaceId456\" or topLevelResourceId eq \"id789\"",
"secret": "string",
"enabled": true,
"headers": {
"headerName": "headerValue"
},
"ownerId": "string",
"createdAt": "2023-11-29T00:09:33.396Z",
"updatedAt": "2023-11-29T00:09:33.396Z",
"eventTypes": [],
"description": "string",
"disabledReason": "string",
"createdByUserId": "string",
"updatedByUserId": "string",
"disabledReasonCode": "string",
"origin": "api"
}
}
Returns details for a specific webhook
Facts GET /v1/webhooks/{id}
Rate limit required | Tier 1 (1000 requests per minute) |
Path Parameters GET /v1/webhooks/{id}
id required string | The webhook's unique identifier. |
Responses GET /v1/webhooks/{id}
200 application/json | OK Response |
400 application/json | Bad Request |
401 application/json | Unauthorized |
403 application/json | Forbidden |
404 application/json | Not found |
500 application/json | Internal Server Error |
503 application/json | Service Unavailable |
GET/v1/webhooks/{id}
curl "https://your-tenant.us.qlikcloud.com/api/v1/webhooks/{id}" \
-H "Authorization: Bearer <API-key>"
Response GET /v1/webhooks/{id}
{
"undefined": {
"id": "string",
"url": "string",
"name": "string",
"level": "tenant",
"filter": "id eq \"id123\" or spaceId eq \"spaceId123\" or spaceId eq \"spaceId456\" or topLevelResourceId eq \"id789\"",
"secret": "string",
"enabled": true,
"headers": {
"headerName": "headerValue"
},
"ownerId": "string",
"createdAt": "2023-11-29T00:09:33.396Z",
"updatedAt": "2023-11-29T00:09:33.396Z",
"eventTypes": [],
"description": "string",
"disabledReason": "string",
"createdByUserId": "string",
"updatedByUserId": "string",
"disabledReasonCode": "string",
"origin": "api"
}
}
Patches a webhook
Facts PATCH /v1/webhooks/{id}
Rate limit required | Tier 2 (100 requests per minute) |
Path Parameters PATCH /v1/webhooks/{id}
id required string | The webhook's unique identifier. |
Request Body PATCH /v1/webhooks/{id}
application/json | No description |
Responses PATCH /v1/webhooks/{id}
204 object | No Content response. |
400 application/json | Bad Request |
401 application/json | Unauthorized |
403 application/json | Forbidden |
404 application/json | Not found |
500 application/json | Internal Server Error |
503 application/json | Service Unavailable |
PATCH/v1/webhooks/{id}
curl "https://your-tenant.us.qlikcloud.com/api/v1/webhooks/{id}" \
-X PATCH \
-H "Authorization: Bearer <API-key>" \
-H "Content-type: application/json" \
-d '{"op":"add","path":"/description"}'
Request PATCH /v1/webhooks/{id}
{
"op": "add",
"path": "/description"
}
Updates a webhook
Facts PUT /v1/webhooks/{id}
Rate limit required | Tier 2 (100 requests per minute) |
Path Parameters PUT /v1/webhooks/{id}
id required string | The webhook's unique identifier. |
Request Body PUT /v1/webhooks/{id}
application/json | No description |
Responses PUT /v1/webhooks/{id}
200 application/json | OK Response |
400 application/json | Bad Request |
401 application/json | Unauthorized |
403 application/json | Forbidden |
404 application/json | Not found |
500 application/json | Internal Server Error |
503 application/json | Service Unavailable |
PUT/v1/webhooks/{id}
curl "https://your-tenant.us.qlikcloud.com/api/v1/webhooks/{id}" \
-X PUT \
-H "Authorization: Bearer <API-key>" \
-H "Content-type: application/json" \
-d '{"id":"string","url":"string","name":"string","level":"tenant","filter":"id eq \"id123\" or spaceId eq \"spaceId123\" or spaceId eq \"spaceId456\" or topLevelResourceId eq \"id789\"","secret":"string","enabled":true,"headers":{"headerName":"headerValue"},"ownerId":"string","createdAt":"2023-11-29T00:09:33.396Z","updatedAt":"2023-11-29T00:09:33.396Z","eventTypes":[],"description":"string","disabledReason":"string","createdByUserId":"string","updatedByUserId":"string","disabledReasonCode":"string"}'
Request PUT /v1/webhooks/{id}
{
"id": "string",
"url": "string",
"name": "string",
"level": "tenant",
"filter": "id eq \"id123\" or spaceId eq \"spaceId123\" or spaceId eq \"spaceId456\" or topLevelResourceId eq \"id789\"",
"secret": "string",
"enabled": true,
"headers": {
"headerName": "headerValue"
},
"ownerId": "string",
"createdAt": "2023-11-29T00:09:33.396Z",
"updatedAt": "2023-11-29T00:09:33.396Z",
"eventTypes": [],
"description": "string",
"disabledReason": "string",
"createdByUserId": "string",
"updatedByUserId": "string",
"disabledReasonCode": "string"
}
Response PUT /v1/webhooks/{id}
{
"undefined": {
"id": "string",
"url": "string",
"name": "string",
"level": "tenant",
"filter": "id eq \"id123\" or spaceId eq \"spaceId123\" or spaceId eq \"spaceId456\" or topLevelResourceId eq \"id789\"",
"secret": "string",
"enabled": true,
"headers": {
"headerName": "headerValue"
},
"ownerId": "string",
"createdAt": "2023-11-29T00:09:33.396Z",
"updatedAt": "2023-11-29T00:09:33.396Z",
"eventTypes": [],
"description": "string",
"disabledReason": "string",
"createdByUserId": "string",
"updatedByUserId": "string",
"disabledReasonCode": "string",
"origin": "api"
}
}
Deletes a specific webhook
Facts DELETE /v1/webhooks/{id}
Rate limit required | Tier 2 (100 requests per minute) |
Path Parameters DELETE /v1/webhooks/{id}
id required string | The webhook's unique identifier. |
Responses DELETE /v1/webhooks/{id}
204 object | No Content response. |
400 application/json | Bad Request |
401 application/json | Unauthorized |
403 application/json | Forbidden |
404 application/json | Not found |
500 application/json | Internal Server Error |
503 application/json | Service Unavailable |
DELETE/v1/webhooks/{id}
curl "https://your-tenant.us.qlikcloud.com/api/v1/webhooks/{id}" \
-X DELETE \
-H "Authorization: Bearer <API-key>"
Returns deliveries for a specific webhook
Facts GET /v1/webhooks/{id}/deliveries
Rate limit required | Tier 1 (1000 requests per minute) |
Path Parameters GET /v1/webhooks/{id}/deliveries
id required string | The webhook's unique identifier. |
Query Parameters GET /v1/webhooks/{id}/deliveries
eventType string | Filter resources by event-type |
limit default=20, minimum=1, maximum=100 number | Maximum number of deliveries to retrieve |
next string | Cursor to the next page |
prev string | Cursor to previous next page |
sort default='-triggeredAt' string | Field to sort by, prefix with -/+ to indicate order Enum: status +status -status triggeredAt +triggeredAt -triggeredAt |
status string | Filter resources by status (success or fail) Enum: success fail |
Responses GET /v1/webhooks/{id}/deliveries
200 application/json | OK Response |
400 application/json | Bad Request |
401 application/json | Unauthorized |
403 application/json | Forbidden |
404 application/json | Not found |
500 application/json | Internal Server Error |
503 application/json | Service Unavailable |
GET/v1/webhooks/{id}/deliveries
curl "https://your-tenant.us.qlikcloud.com/api/v1/webhooks/{id}/deliveries" \
-H "Authorization: Bearer <API-key>"
Response GET /v1/webhooks/{id}/deliveries
{
"data": [
{
"id": "string",
"status": "success",
"request": {
"url": "string",
"body": {},
"headers": {
"headerName": "headerValue"
}
},
"response": {
"body": "string",
"headers": {
"headerName": "headerValue"
},
"statusCode": 0
},
"eventType": "string",
"webhookId": "string",
"triggeredAt": "2023-11-29T00:09:33.397Z",
"statusMessage": "string"
}
],
"links": {
"next": {
"href": "string"
},
"prev": {
"href": "string"
},
"self": {
"href": "string"
}
}
}
Returns details for a specific delivery
Facts GET /v1/webhooks/{id}/deliveries/{deliveryId}
Rate limit required | Tier 1 (1000 requests per minute) |
Path Parameters GET /v1/webhooks/{id}/deliveries/{deliveryId}
deliveryId required string | The delivery's unique identifier. |
id required string | The webhook's unique identifier. |
Responses GET /v1/webhooks/{id}/deliveries/{deliveryId}
200 application/json | OK Response |
400 application/json | Bad Request |
401 application/json | Unauthorized |
403 application/json | Forbidden |
404 application/json | Not found |
500 application/json | Internal Server Error |
503 application/json | Service Unavailable |
GET/v1/webhooks/{id}/deliveries/{deliveryId}
curl "https://your-tenant.us.qlikcloud.com/api/v1/webhooks/{id}/deliveries/{deliveryId}" \
-H "Authorization: Bearer <API-key>"
Response GET /v1/webhooks/{id}/deliveries/{deliveryId}
{
"id": "string",
"status": "success",
"request": {
"url": "string",
"body": {},
"headers": {
"headerName": "headerValue"
}
},
"response": {
"body": "string",
"headers": {
"headerName": "headerValue"
},
"statusCode": 0
},
"eventType": "string",
"webhookId": "string",
"triggeredAt": "2023-11-29T00:09:33.397Z",
"statusMessage": "string"
}
Resend the delivery with the same payload
Facts POST /v1/webhooks/{id}/deliveries/{deliveryId}/actions/resend
Rate limit required | Tier 2 (100 requests per minute) |
Path Parameters POST /v1/webhooks/{id}/deliveries/{deliveryId}/actions/resend
deliveryId required string | The delivery's unique identifier. |
id required string | The webhook's unique identifier. |
Responses POST /v1/webhooks/{id}/deliveries/{deliveryId}/actions/resend
201 application/json | OK Response |
401 application/json | Unauthorized |
404 application/json | Not found |
500 application/json | Internal Server Error |
503 application/json | Service Unavailable |
POST/v1/webhooks/{id}/deliveries/{deliveryId}/actions/resend
curl "https://your-tenant.us.qlikcloud.com/api/v1/webhooks/{id}/deliveries/{deliveryId}/actions/resend" \
-X POST \
-H "Authorization: Bearer <API-key>"
Response POST /v1/webhooks/{id}/deliveries/{deliveryId}/actions/resend
{
"id": "string",
"status": "success",
"request": {
"url": "string",
"body": {},
"headers": {
"headerName": "headerValue"
}
},
"response": {
"body": "string",
"headers": {
"headerName": "headerValue"
},
"statusCode": 0
},
"eventType": "string",
"webhookId": "string",
"triggeredAt": "2023-11-29T00:09:33.397Z",
"statusMessage": "string"
}
List of event-types that are possible to subscribe to.
Facts GET /v1/webhooks/event-types
Rate limit required | Tier 1 (1000 requests per minute) |
Responses GET /v1/webhooks/event-types
200 application/json | OK Response |
401 application/json | Unauthorized |
500 application/json | Internal Server Error |
503 application/json | Service Unavailable |
GET/v1/webhooks/event-types
curl "https://your-tenant.us.qlikcloud.com/api/v1/webhooks/event-types" \
-H "Authorization: Bearer <API-key>"
Response GET /v1/webhooks/event-types
{
"data": [
{
"name": "string",
"title": "string",
"levels": [],
"description": "string"
}
]
}
BadRequest
Bad Request
Forbidden
Forbidden
InternalServerError
Internal Server Error
NotFound
Not found
Delivery
objectProperties
id required string | The delivery's unique identifier |
status required string | The status of delivery Enum: success fail |
request | |
response | |
eventType required string | The name of the triggering event-type |
webhookId required string | The unique webhook identifier that the delivery is for |
triggeredAt required string<date-time> | The UTC timestamp when the delivery was triggered |
statusMessage string | The status message of the delivery |
DeliveryList
objectProperties
data | No description |
links | No description |
Error
objectProperties
code required string | The unique code for the error |
title required string | A summary of what went wrong |
detail string | May be used to provide additional details |
ErrorResponse
objectProperties
errors | No description |
traceId string | A way to trace the source of the error. |
EventType
objectProperties
name string | Name of the event type |
title string | Title of the event type |
levels Array<string> | Specifies which levels that are supported for this event type |
description string | Description of the event type |
EventTypes
objectProperties
data | No description |
Link
Properties
href required string | URL to a resource request |
WebhookBase
objectProperties
id string | The webhook's unique identifier |
url required string | Target URL for webhook HTTPS requests |
name required string | The name for the webhook |
level default='tenant' string | Defines at what level the webhook should operate: for all resources belonging to a tenant or restricted to only those accessible by the webhook-creator. Enum: tenant user |
filter string | Filter that should match for a webhook to be triggered. Supported common attribute names are 'id', 'spaceId' and 'topLevelResourceId', beside the common attributes the "com.qlik.v1.app.reload.finished" event also supports "data.status" that could be either "ok" or "error" but can't be used together with other event types. Supported attribute operators are 'eq' and 'ne'. Supported logical operators are 'and' and 'or'. Note that attribute values must be valid JSON strings, hence they're enclosed with double quotes For more detailed information regarding the SCIM filter syntax (RFC7644) used please follow the link to external documentation. |
secret string | String used as secret for calculating HMAC hash sent as header |
enabled default=false boolean | Whether the webhook is active and sending requests |
headers object | Additional headers in the post request |
ownerId string | The id of the user that owns the webhook, only applicable for user level webhooks |
createdAt string<date-time> | The UTC timestamp when the webhook was created |
updatedAt string<date-time> | The UTC timestamp when the webhook was last updated |
eventTypes Array<string> | Types of events for which the webhook should trigger. |
description string | The reason for creating the webhook |
disabledReason string | The reason for the webhook to be disabled |
createdByUserId string | The id of the user that created the webhook |
updatedByUserId string | The id of the user that last updated the webhook |
disabledReasonCode string | The unique code for the reason |
WebhookList
objectProperties
data | No description |
links | No description |
WebhookPatch
objectA JSON Patch document as defined in https://datatracker.ietf.org/doc/html/rfc6902
Properties
op required string | The operation to be performed Enum: add remove replace |
path required string | The path for the given resource field to patch Enum: /name /description /url /eventTypes /headers /enabled /secret |
value | The value to be used for this operation. |
WebhookPost
Properties
id string | The webhook's unique identifier |
url required string | Target URL for webhook HTTPS requests |
name required string | The name for the webhook |
level default='tenant' string | Defines at what level the webhook should operate: for all resources belonging to a tenant or restricted to only those accessible by the webhook-creator. Enum: tenant user |
filter string | Filter that should match for a webhook to be triggered. Supported common attribute names are 'id', 'spaceId' and 'topLevelResourceId', beside the common attributes the "com.qlik.v1.app.reload.finished" event also supports "data.status" that could be either "ok" or "error" but can't be used together with other event types. Supported attribute operators are 'eq' and 'ne'. Supported logical operators are 'and' and 'or'. Note that attribute values must be valid JSON strings, hence they're enclosed with double quotes For more detailed information regarding the SCIM filter syntax (RFC7644) used please follow the link to external documentation. |
secret string | String used as secret for calculating HMAC hash sent as header |
enabled default=false boolean | Whether the webhook is active and sending requests |
headers object | Additional headers in the post request |
ownerId string | The id of the user that owns the webhook, only applicable for user level webhooks |
createdAt string<date-time> | The UTC timestamp when the webhook was created |
updatedAt string<date-time> | The UTC timestamp when the webhook was last updated |
eventTypes Array<string> | Types of events for which the webhook should trigger. |
description string | The reason for creating the webhook |
disabledReason string | The reason for the webhook to be disabled |
createdByUserId string | The id of the user that created the webhook |
updatedByUserId string | The id of the user that last updated the webhook |
disabledReasonCode string | The unique code for the reason |
origin default='api' string | Indicates from where the webhook was created and its purpose Enum: api automations management-console |
WebhookResponse
Properties
id string | The webhook's unique identifier |
url required string | Target URL for webhook HTTPS requests |
name required string | The name for the webhook |
level default='tenant' string | Defines at what level the webhook should operate: for all resources belonging to a tenant or restricted to only those accessible by the webhook-creator. Enum: tenant user |
filter string | Filter that should match for a webhook to be triggered. Supported common attribute names are 'id', 'spaceId' and 'topLevelResourceId', beside the common attributes the "com.qlik.v1.app.reload.finished" event also supports "data.status" that could be either "ok" or "error" but can't be used together with other event types. Supported attribute operators are 'eq' and 'ne'. Supported logical operators are 'and' and 'or'. Note that attribute values must be valid JSON strings, hence they're enclosed with double quotes For more detailed information regarding the SCIM filter syntax (RFC7644) used please follow the link to external documentation. |
secret string | String used as secret for calculating HMAC hash sent as header |
enabled default=false boolean | Whether the webhook is active and sending requests |
headers object | Additional headers in the post request |
ownerId string | The id of the user that owns the webhook, only applicable for user level webhooks |
createdAt string<date-time> | The UTC timestamp when the webhook was created |
updatedAt string<date-time> | The UTC timestamp when the webhook was last updated |
eventTypes Array<string> | Types of events for which the webhook should trigger. |
description string | The reason for creating the webhook |
disabledReason string | The reason for the webhook to be disabled |
createdByUserId string | The id of the user that created the webhook |
updatedByUserId string | The id of the user that last updated the webhook |
disabledReasonCode string | The unique code for the reason |
origin default='api' string | Indicates from where the webhook was created and its purpose Enum: api automations management-console |