Webhooks

Webhooks are used to notify external systems of changes within Struct PIM through a web request

Get a webhook

get

#Available from v.3.11.0

Authorizations
AuthorizationstringRequired
Path parameters
uidstring · uuidRequired

Uid of webhook

Responses
200

OK

application/json
get
/v1/webhooks/{uid}
GET /v1/webhooks/{uid} HTTP/1.1
Host: 
Authorization: YOUR_API_KEY
Accept: */*
200

OK

{
  "Uid": "708de479-ad79-4668-af49-cf2bee48ae3e",
  "Title": "Website integration",
  "Url": "https://someeventhub.com/triggerme",
  "Active": true,
  "EnabledEvents": [
    "variants:created",
    "variants:updated",
    "variants:deleted"
  ],
  "AdvancedSettings": {
    "variants:updated": {
      "ConditionalTriggering": true,
      "TriggerOnProductIdUpdates": false,
      "TriggerOnVariantGroupIdUpdates": false,
      "TriggerOnSortOrderUpdates": false,
      "TriggerOnVariantGroupSortOrderUpdates": false,
      "TriggerOnArchivingUpdates": false,
      "TriggerOnAttributeUpdates": {},
      "AttributesToTriggerOn": null,
      "DataModelType": {},
      "EventSettingsType": "VariantsUpdatedEventArgsAdvancedSettings"
    }
  },
  "RequestHeaders": []
}

Delete a webhook

delete
Authorizations
AuthorizationstringRequired
Path parameters
uidstring · uuidRequired

Uid of webhook to delete

Responses
200

OK

No content

delete
/v1/webhooks/{uid}
DELETE /v1/webhooks/{uid} HTTP/1.1
Host: 
Authorization: YOUR_API_KEY
Accept: */*
200

OK

No content

Get all configured webhooks

get
Authorizations
AuthorizationstringRequired
Responses
200

OK

application/json
get
/v1/webhooks
GET /v1/webhooks HTTP/1.1
Host: 
Authorization: YOUR_API_KEY
Accept: */*
200

OK

[
  {
    "Uid": "1c2d98d6-ffb5-48ba-a590-11c3a41b60b6",
    "Title": "Website integration",
    "Url": "https://someeventhub.com/triggerme",
    "Active": true,
    "EnabledEvents": [
      "variants:created",
      "variants:updated",
      "variants:deleted"
    ],
    "AdvancedSettings": {
      "variants:updated": {
        "ConditionalTriggering": true,
        "TriggerOnProductIdUpdates": false,
        "TriggerOnVariantGroupIdUpdates": false,
        "TriggerOnSortOrderUpdates": false,
        "TriggerOnVariantGroupSortOrderUpdates": false,
        "TriggerOnArchivingUpdates": false,
        "TriggerOnAttributeUpdates": {},
        "AttributesToTriggerOn": null,
        "DataModelType": {},
        "EventSettingsType": "VariantsUpdatedEventArgsAdvancedSettings"
      }
    },
    "RequestHeaders": []
  },
  {
    "Uid": "afd3dae3-5381-446a-a5e1-db8ac7186262",
    "Title": "Website integration",
    "Url": "https://integrations.com/productupdate",
    "Active": true,
    "EnabledEvents": [
      "products:created",
      "products:updated"
    ],
    "AdvancedSettings": null,
    "RequestHeaders": []
  }
]

Create a new webhook

post
Authorizations
AuthorizationstringRequired
Body

Model representing a webhook

Uidstring · uuidOptional

Unique id of webhook

Titlestring | nullableOptional

Title of webhook

Urlstring | nullableOptional

Url for the webhook to request when triggered

ActivebooleanOptional

Activate / deactivate webhook

EnabledEventsstring[] | nullableOptional

Events this webhook shall act on

Responses
200

OK

No content

post
/v1/webhooks
POST /v1/webhooks HTTP/1.1
Host: 
Authorization: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 628

{
  "Uid": "a6eb804c-27c8-4459-b0e7-e29aecee7188",
  "Title": "Website integration",
  "Url": "https://someeventhub.com/triggerme",
  "Active": true,
  "EnabledEvents": [
    "variants:created",
    "variants:updated",
    "variants:deleted"
  ],
  "AdvancedSettings": {
    "variants:updated": {
      "ConditionalTriggering": true,
      "TriggerOnProductIdUpdates": false,
      "TriggerOnVariantGroupIdUpdates": false,
      "TriggerOnSortOrderUpdates": false,
      "TriggerOnVariantGroupSortOrderUpdates": false,
      "TriggerOnArchivingUpdates": false,
      "TriggerOnAttributeUpdates": {},
      "AttributesToTriggerOn": null,
      "DataModelType": {},
      "EventSettingsType": "VariantsUpdatedEventArgsAdvancedSettings"
    }
  },
  "RequestHeaders": []
}
200

OK

No content

Update a webhook

put
Authorizations
AuthorizationstringRequired
Body

Model representing a webhook

Uidstring · uuidOptional

Unique id of webhook

Titlestring | nullableOptional

Title of webhook

Urlstring | nullableOptional

Url for the webhook to request when triggered

ActivebooleanOptional

Activate / deactivate webhook

EnabledEventsstring[] | nullableOptional

Events this webhook shall act on

Responses
200

OK

No content

put
/v1/webhooks
PUT /v1/webhooks HTTP/1.1
Host: 
Authorization: YOUR_API_KEY
Content-Type: application/json
Accept: */*
Content-Length: 628

{
  "Uid": "4881363b-9793-45a1-a652-560a4b3699af",
  "Title": "Website integration",
  "Url": "https://someeventhub.com/triggerme",
  "Active": true,
  "EnabledEvents": [
    "variants:created",
    "variants:updated",
    "variants:deleted"
  ],
  "AdvancedSettings": {
    "variants:updated": {
      "ConditionalTriggering": true,
      "TriggerOnProductIdUpdates": false,
      "TriggerOnVariantGroupIdUpdates": false,
      "TriggerOnSortOrderUpdates": false,
      "TriggerOnVariantGroupSortOrderUpdates": false,
      "TriggerOnArchivingUpdates": false,
      "TriggerOnAttributeUpdates": {},
      "AttributesToTriggerOn": null,
      "DataModelType": {},
      "EventSettingsType": "VariantsUpdatedEventArgsAdvancedSettings"
    }
  },
  "RequestHeaders": []
}
200

OK

No content

Get requests made from a webhook. Note that webhook requests are only stored for 14 days

get
Authorizations
AuthorizationstringRequired
Path parameters
webhookUidstring · uuidRequired

Uid of webhook

Query parameters
sincestring · date-timeOptional

return webhook requests newer than this timestamp

onlyFailedbooleanOptional

Only return failed webhook requests

pageinteger · int32Optional

Page to get (1 is first page)

Responses
200

OK

application/json
get
/v1/webhooks/{webhookUid}/requests
GET /v1/webhooks/{webhookUid}/requests HTTP/1.1
Host: 
Authorization: YOUR_API_KEY
Accept: */*
200

OK

{
  "WebhookRequests": [
    {
      "Uid": "715782e7-e7a6-4b81-859b-ba796959e702",
      "WebhookUid": "578f4c10-0994-4c59-8bc1-39d0305ad94f",
      "WebhookUrl": "https://structintegration.com/pimevent",
      "EventKey": "products:updated",
      "EventTimestamp": "2025-11-03T22:40:49.1774518+01:00",
      "RequestTimestamp": "2025-11-03T22:40:49.1874662+01:00",
      "RequestHeaders": {
        "X-Event-Key": "products:updated",
        "X-User": "[email protected]",
        "X-Hook-UID": "578f4c10-0994-4c59-8bc1-39d0305ad94f",
        "X-Request-UID": "715782e7-e7a6-4b81-859b-ba796959e702"
      },
      "RequestBody": "{\"ProductIds\":[2385147],\"TransactionUid\":\"40239249-8feb-4e22-b854-fd693ce1d8a7\"}",
      "ElapsedMilliseconds": 57,
      "ResponseCode": 200,
      "ResponseHeaders": {
        "Pragma": "no-cache",
        "Cache-Control": "no-cache",
        "Date": "Fri, 03 Feb 2023 13:07:40 GMT"
      },
      "ParentWebhookRequestUid": "9dda0fc0-9b2f-4d2c-b106-4d98302d8231",
      "IsRetry": false
    }
  ],
  "Page": 1,
  "TotalHits": 1
}

Get a specific request made from a webhook. Note that webhook requests are only stored for 14 days

get
Authorizations
AuthorizationstringRequired
Path parameters
webhookUidstring · uuidRequired

Uid of webhook

requestUidstring · uuidRequired

Uid of webhook request

Responses
200

OK

application/json
get
/v1/webhooks/{webhookUid}/requests/{requestUid}
GET /v1/webhooks/{webhookUid}/requests/{requestUid} HTTP/1.1
Host: 
Authorization: YOUR_API_KEY
Accept: */*
200

OK

{
  "Uid": "715782e7-e7a6-4b81-859b-ba796959e702",
  "WebhookUid": "578f4c10-0994-4c59-8bc1-39d0305ad94f",
  "WebhookUrl": "https://structintegration.com/pimevent",
  "EventKey": "products:updated",
  "EventTimestamp": "2025-11-03T22:40:49.1780709+01:00",
  "RequestTimestamp": "2025-11-03T22:40:49.1880722+01:00",
  "RequestHeaders": {
    "X-Event-Key": "products:updated",
    "X-User": "[email protected]",
    "X-Hook-UID": "578f4c10-0994-4c59-8bc1-39d0305ad94f",
    "X-Request-UID": "715782e7-e7a6-4b81-859b-ba796959e702"
  },
  "RequestBody": "{\"ProductIds\":[2385147],\"TransactionUid\":\"40239249-8feb-4e22-b854-fd693ce1d8a7\"}",
  "ElapsedMilliseconds": 57,
  "ResponseCode": 200,
  "ResponseHeaders": {
    "Pragma": "no-cache",
    "Cache-Control": "no-cache",
    "Date": "Fri, 03 Feb 2023 13:07:40 GMT"
  },
  "ParentWebhookRequestUid": "4860f963-f500-4216-95e3-94fb01ee40b9",
  "IsRetry": false
}

Last updated