Webhooks/Webhooks
Create webhook
Creates a new webhook with settings provided by the webhook object passed as JSON in the payload. The response is the created webhook object.
To avoid duplicating a webhook, use the idempotencyKey parameter in the request body. Multiple calls to create a webhook with the same idempotencyKey will only create the webhook with the first call and return the existing webhook on subsequent calls. Idempotency keys must be unique, so use a UUID or another random string with enough entropy.
To assign the new webhook to an Actor or task, the request body must contain requestUrl, eventTypes, and condition properties.
- requestUrl is the webhook's target URL, to which data is sent as a POST request with a JSON payload.
- eventTypes is a list of events that will trigger the webhook, e.g. when the Actor run succeeds.
- condition should be an object containing the ID of the Actor or task to which the webhook will be assigned.
- payloadTemplate is a JSON-like string, whose syntax is extended with the use of variables.
- headersTemplate is a JSON-like string, whose syntax is extended with the use of variables. Following values will be re-written to defaults: "host", "Content-Type", "X-Apify-Webhook", "X-Apify-Webhook-Dispatch-Id", "X-Apify-Request-Origin"
- description is an optional string.
- shouldInterpolateStrings is a boolean indicating whether to interpolate variables contained inside strings in the payloadTemplate
"isAdHoc" : false,
"requestUrl" : "https://example.com",
"eventTypes" : [
"ACTOR.RUN.SUCCEEDED",
"ACTOR.RUN.ABORTED"
],
"condition" : {
"actorId": "5sTMwDQywwsLzKRRh",
"actorTaskId" : "W9bs9JE9v7wprjAnJ"
},
"payloadTemplate": "",
"headersTemplate": "",
"description": "my awesome webhook",
"shouldInterpolateStrings": false,
Important: The request must specify the Content-Type: application/json HTTP header.
post/v2/webhooks
Request body
Example request
{
"eventTypes": [
"ACTOR.RUN.SUCCEEDED"
],
"condition": {
"actorId": "hksJZtadYvn4mBuin",
"actorTaskId": "asdLZtadYvn4mBZmm",
"actorRunId": "hgdKZtadYvn4mBpoi"
},
"idempotencyKey": "fdSJmdP3nfs7sfk3y",
"requestUrl": "http://example.com/",
"payloadTemplate": "{\\n \"userId\": {{userId}}...",
"headersTemplate": "{\\n \"Authorization\": \"Bearer ...\"}",
"description": "this is webhook description"
}Response
Example response
{
"data": {
"id": "YiKoxjkaS9gjGTqhF",
"createdAt": "2019-12-12T07:34:14.202Z",
"modifiedAt": "2019-12-13T08:36:13.202Z",
"userId": "wRsJZtadYvn4mBZmm",
"eventTypes": [
"ACTOR.RUN.SUCCEEDED"
],
"condition": {
"actorId": "hksJZtadYvn4mBuin",
"actorTaskId": "asdLZtadYvn4mBZmm",
"actorRunId": "hgdKZtadYvn4mBpoi"
},
"requestUrl": "http://example.com/",
"payloadTemplate": "{\\n \"userId\": {{userId}}...",
"headersTemplate": "{\\n \"Authorization\": \"Bearer ...\"}",
"description": "this is webhook description",
"lastDispatch": {
"finishedAt": "2019-12-13T08:36:13.202Z"
},
"stats": {
"totalDispatches": 1
}
}
}