webhook.create
Creates a webhook for receiving task event notifications. Use webhook.publicKey to get the key for verifying signatures. See the Webhooks guide for event types.
curl --request POST \
--url https://api.manus.ai/v2/webhook.create \
--header 'Content-Type: application/json' \
--header 'x-manus-api-key: <x-manus-api-key>' \
--data '
{
"url": "<string>"
}
'import requests
url = "https://api.manus.ai/v2/webhook.create"
payload = { "url": "<string>" }
headers = {
"x-manus-api-key": "<x-manus-api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'x-manus-api-key': '<x-manus-api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({url: '<string>'})
};
fetch('https://api.manus.ai/v2/webhook.create', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.manus.ai/v2/webhook.create",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'url' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"x-manus-api-key: <x-manus-api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.manus.ai/v2/webhook.create"
payload := strings.NewReader("{\n \"url\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-manus-api-key", "<x-manus-api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.manus.ai/v2/webhook.create")
.header("x-manus-api-key", "<x-manus-api-key>")
.header("Content-Type", "application/json")
.body("{\n \"url\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.manus.ai/v2/webhook.create")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-manus-api-key"] = '<x-manus-api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"url\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"ok": true,
"request_id": "<string>",
"webhook": {
"id": "<string>",
"url": "<string>",
"created_at": 123
}
}{
"ok": false,
"request_id": "<string>",
"error": {
"code": "<string>",
"message": "<string>"
}
}Headers
API key for authentication. This endpoint does not support OAuth2 tokens. See Authentication.
Body
The HTTPS endpoint URL that will receive POST webhook notifications. Must be publicly accessible and return a 2xx status code.
Response
Webhook created successfully.
Whether the request was successful.
true
Unique identifier for this API request.
The created webhook object.
Hide child attributes
Hide child attributes
Unique identifier for the webhook.
The endpoint URL receiving webhook POST notifications.
Webhook status. "active" — receiving notifications. "inactive" — paused.
active, inactive Unix timestamp (seconds) when the webhook was created.
Was this page helpful?
curl --request POST \
--url https://api.manus.ai/v2/webhook.create \
--header 'Content-Type: application/json' \
--header 'x-manus-api-key: <x-manus-api-key>' \
--data '
{
"url": "<string>"
}
'import requests
url = "https://api.manus.ai/v2/webhook.create"
payload = { "url": "<string>" }
headers = {
"x-manus-api-key": "<x-manus-api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'x-manus-api-key': '<x-manus-api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({url: '<string>'})
};
fetch('https://api.manus.ai/v2/webhook.create', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.manus.ai/v2/webhook.create",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'url' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"x-manus-api-key: <x-manus-api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.manus.ai/v2/webhook.create"
payload := strings.NewReader("{\n \"url\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-manus-api-key", "<x-manus-api-key>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.manus.ai/v2/webhook.create")
.header("x-manus-api-key", "<x-manus-api-key>")
.header("Content-Type", "application/json")
.body("{\n \"url\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.manus.ai/v2/webhook.create")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-manus-api-key"] = '<x-manus-api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"url\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"ok": true,
"request_id": "<string>",
"webhook": {
"id": "<string>",
"url": "<string>",
"created_at": 123
}
}{
"ok": false,
"request_id": "<string>",
"error": {
"code": "<string>",
"message": "<string>"
}
}