Add a Webhook
You can set some of the fields available in the webhook object, below we only list the properties in the example and the possible required fields.
spaces/:space_id/webhook_endpoints/
Path Parameters
-
:space_id
numberNumeric id of a space
Request Body Properties
-
webhook_endpoint
The Webhook ObjectWebhook object
-
activated
booleanActivate or deactivate the current webhook.
-
description
stringA brief description of this webhook
-
endpoint
required stringWebhook endpoint
-
name
required stringName of this webhook
-
secret
stringWebhook secret
-
space_id
numberNumeric id of a space
-
actions
required enum[]Webhook triggers, at least one of the options listed below.
Triggers Description story.published triggered when a story is published story.unpublished triggered, when a story is unpublished story.deleted triggered, when a story is deleted story.moved triggered when a story is moved from a folder or to a folder datasource.entries_updated triggered when a new datasource entry is saved or added. asset.created triggered when an asset is uploaded asset.replaced triggered when an asset is replaced asset.deleted triggered when an asset is deleted asset.restored triggered when an asset is restored user.added triggered when a new user is added to the space user.removed triggered when a user is removed from the space user.roles_updated triggered when a user role is updated stage.changed triggered when the workflow stage of a story changes. pipeline.deployed triggered when a pipeline stage is deployed release.merged triggered when a release is merged into the currently released content
-
Request
curl "https://mapi.storyblok.com/v1/spaces/656/webhook_endpoints/" \
-X POST \
-H "Content-Type: application/json" \
-H "Authorization: YOUR_OAUTH_TOKEN" \
-d "{\"webhook_endpoint\": {\"name\": \"Rebuild Website\",\"endpoint\": \"https://apiendpoint.com\",\"secret\": \"\",\"actions\": [\"story.published\"],\"activated\": true}}"
Request
// Using the Universal JavaScript Client:
// https://github.com/storyblok/storyblok-js-client
Storyblok.post('/spaces/656/webhook_endpoints/', {
"webhook_endpoint": {
"name": "Rebuild Website",
"endpoint": "https://apiendpoint.com",
"secret": "",
"actions": [
"story.published"
],
"activated": true
}
})
.then(response => {
console.log(response)
}).catch(error => {
console.log(error)
})
Request
$client = new \Storyblok\Client('YOUR_STORYBLOK_SPACE_ACCESS_TOKEN');
$payload = [
"webhook_endpoint" => [
"name" => "Rebuild Website",
"endpoint" => "https => //apiendpoint.com",
"secret" => "",
"actions" => [
"story.published"
],
"activated" => true
]
];
$client->post('/spaces/656/webhook_endpoints/', $payload)->getBody();
Request
require 'storyblok'
client = Storyblok::Client.new(oauth_token: 'YOUR_OAUTH_TOKEN')
payload = {
"webhook_endpoint" => {
"name" => "Rebuild Website",
"endpoint" => "https => //apiendpoint.com",
"secret" => "",
"actions" => [
"story.published"
],
"activated" => true
}
}
client.post('/spaces/656/webhook_endpoints/', payload)
Request
HttpResponse<String> response = Unirest.post("https://mapi.storyblok.com/v1/spaces/656/webhook_endpoints/")
.header("Content-Type", "application/json")
.header("Authorization", "YOUR_OAUTH_TOKEN")
.body("{\"webhook_endpoint\": {\"name\": \"Rebuild Website\",\"endpoint\": \"https://apiendpoint.com\",\"secret\": \"\",\"actions\": [\"story.published\"],\"activated\": true}}")
.asString();
Request
var client = new RestClient("https://mapi.storyblok.com/v1/spaces/656/webhook_endpoints/");
var request = new RestRequest(Method.POST);
request.AddHeader("Content-Type", "application/json");
request.AddHeader("Authorization", "YOUR_OAUTH_TOKEN");
request.AddParameter("application/json", "{\"webhook_endpoint\": {\"name\": \"Rebuild Website\",\"endpoint\": \"https://apiendpoint.com\",\"secret\": \"\",\"actions\": [\"story.published\"],\"activated\": true}}", ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
Request
import Foundation
let headers = [
"Content-Type": "application/json",
"Authorization": "YOUR_OAUTH_TOKEN"
]
let postData = NSData(data: "{\"webhook_endpoint\": {\"name\": \"Rebuild Website\",\"endpoint\": \"https://apiendpoint.com\",\"secret\": \"\",\"actions\": [\"story.published\"],\"activated\": true}}".data(using: String.Encoding.utf8)!)
let request = NSMutableURLRequest(url: NSURL(string: "https://mapi.storyblok.com/v1/spaces/656/webhook_endpoints/")! as URL, cachePolicy: .useProtocolCachePolicy, timeoutInterval: 10.0)
request.method = "POST"
request.allHTTPHeaderFields = headers
request.httpBody = postData as Data
let session = URLSession.shared
let dataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) -> Void in
if (error != nil) {
print(error)
} else {
let httpResponse = response as? HTTPURLResponse
print(httpResponse)
}
})
dataTask.resume()
Request
import requests
url = "https://mapi.storyblok.com/v1/spaces/656/webhook_endpoints/"
querystring = {}
payload = "{\"webhook_endpoint\": {\"name\": \"Rebuild Website\",\"endpoint\": \"https://apiendpoint.com\",\"secret\": \"\",\"actions\": [\"story.published\"],\"activated\": true}}"
headers = {
'Content-Type': "application/json",
'Authorization': "YOUR_OAUTH_TOKEN"
}
response = requests.request("POST", url, data=payload, headers=headers, params=querystring)
print(response.text)