Update Webhook Endpoint
curl --request PUT \
--url https://api.jogg.ai/v2/endpoint/{endpoint_id} \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"url": "https://your-domain.com/webhook",
"status": "enabled",
"events": [
"generated_avatar_video_success",
"generated_avatar_video_failed",
"generated_photo_avatar_success"
]
}
'import requests
url = "https://api.jogg.ai/v2/endpoint/{endpoint_id}"
payload = {
"url": "https://your-domain.com/webhook",
"status": "enabled",
"events": ["generated_avatar_video_success", "generated_avatar_video_failed", "generated_photo_avatar_success"]
}
headers = {
"x-api-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {'x-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
url: 'https://your-domain.com/webhook',
status: 'enabled',
events: [
'generated_avatar_video_success',
'generated_avatar_video_failed',
'generated_photo_avatar_success'
]
})
};
fetch('https://api.jogg.ai/v2/endpoint/{endpoint_id}', 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.jogg.ai/v2/endpoint/{endpoint_id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'url' => 'https://your-domain.com/webhook',
'status' => 'enabled',
'events' => [
'generated_avatar_video_success',
'generated_avatar_video_failed',
'generated_photo_avatar_success'
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"x-api-key: <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.jogg.ai/v2/endpoint/{endpoint_id}"
payload := strings.NewReader("{\n \"url\": \"https://your-domain.com/webhook\",\n \"status\": \"enabled\",\n \"events\": [\n \"generated_avatar_video_success\",\n \"generated_avatar_video_failed\",\n \"generated_photo_avatar_success\"\n ]\n}")
req, _ := http.NewRequest("PUT", url, payload)
req.Header.Add("x-api-key", "<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.put("https://api.jogg.ai/v2/endpoint/{endpoint_id}")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"url\": \"https://your-domain.com/webhook\",\n \"status\": \"enabled\",\n \"events\": [\n \"generated_avatar_video_success\",\n \"generated_avatar_video_failed\",\n \"generated_photo_avatar_success\"\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.jogg.ai/v2/endpoint/{endpoint_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["x-api-key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"url\": \"https://your-domain.com/webhook\",\n \"status\": \"enabled\",\n \"events\": [\n \"generated_avatar_video_success\",\n \"generated_avatar_video_failed\",\n \"generated_photo_avatar_success\"\n ]\n}"
response = http.request(request)
puts response.read_body{
"code": 0,
"msg": "Success",
"data": {
"endpoint_id": "wh_123456789",
"url": "https://your-domain.com/webhook",
"secret": "whsec_abc123xyz",
"status": "enabled",
"events": [
"generated_avatar_video_success",
"generated_avatar_video_failed"
],
"username": "johndoe",
"created_at": 1732806631
}
}Webhook
Update Webhook Endpoint
Update an existing webhook endpoint configuration including URL, status, and subscribed events.
PUT
/
v2
/
endpoint
/
{endpoint_id}
Update Webhook Endpoint
curl --request PUT \
--url https://api.jogg.ai/v2/endpoint/{endpoint_id} \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"url": "https://your-domain.com/webhook",
"status": "enabled",
"events": [
"generated_avatar_video_success",
"generated_avatar_video_failed",
"generated_photo_avatar_success"
]
}
'import requests
url = "https://api.jogg.ai/v2/endpoint/{endpoint_id}"
payload = {
"url": "https://your-domain.com/webhook",
"status": "enabled",
"events": ["generated_avatar_video_success", "generated_avatar_video_failed", "generated_photo_avatar_success"]
}
headers = {
"x-api-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'PUT',
headers: {'x-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
url: 'https://your-domain.com/webhook',
status: 'enabled',
events: [
'generated_avatar_video_success',
'generated_avatar_video_failed',
'generated_photo_avatar_success'
]
})
};
fetch('https://api.jogg.ai/v2/endpoint/{endpoint_id}', 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.jogg.ai/v2/endpoint/{endpoint_id}",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "PUT",
CURLOPT_POSTFIELDS => json_encode([
'url' => 'https://your-domain.com/webhook',
'status' => 'enabled',
'events' => [
'generated_avatar_video_success',
'generated_avatar_video_failed',
'generated_photo_avatar_success'
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"x-api-key: <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.jogg.ai/v2/endpoint/{endpoint_id}"
payload := strings.NewReader("{\n \"url\": \"https://your-domain.com/webhook\",\n \"status\": \"enabled\",\n \"events\": [\n \"generated_avatar_video_success\",\n \"generated_avatar_video_failed\",\n \"generated_photo_avatar_success\"\n ]\n}")
req, _ := http.NewRequest("PUT", url, payload)
req.Header.Add("x-api-key", "<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.put("https://api.jogg.ai/v2/endpoint/{endpoint_id}")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"url\": \"https://your-domain.com/webhook\",\n \"status\": \"enabled\",\n \"events\": [\n \"generated_avatar_video_success\",\n \"generated_avatar_video_failed\",\n \"generated_photo_avatar_success\"\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.jogg.ai/v2/endpoint/{endpoint_id}")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Put.new(url)
request["x-api-key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"url\": \"https://your-domain.com/webhook\",\n \"status\": \"enabled\",\n \"events\": [\n \"generated_avatar_video_success\",\n \"generated_avatar_video_failed\",\n \"generated_photo_avatar_success\"\n ]\n}"
response = http.request(request)
puts response.read_body{
"code": 0,
"msg": "Success",
"data": {
"endpoint_id": "wh_123456789",
"url": "https://your-domain.com/webhook",
"secret": "whsec_abc123xyz",
"status": "enabled",
"events": [
"generated_avatar_video_success",
"generated_avatar_video_failed"
],
"username": "johndoe",
"created_at": 1732806631
}
}Update an existing webhook endpoint configuration, including URL, status, and subscribed events.
Use Cases
- Modify webhook receiver URL
- Update subscribed event types
- Enable or disable webhook
- Adjust event notification scope
Status Management
Set
status to disabled to temporarily stop receiving events without deleting the endpoint configuration.Important Notes
After updating the webhook endpoint, the new configuration takes effect immediately. Ensure the new URL is ready to receive requests.
Authorizations
API key for authentication. Obtain your key from the JoggAI dashboard.
Path Parameters
Unique webhook endpoint identifier
Example:
"wh_123456"
Body
application/json
Updated webhook endpoint URL
Example:
"https://your-domain.com/webhook"
Webhook status
Available options:
enabled, disabled Example:
"enabled"
Updated list of event types
Example:
[
"generated_avatar_video_success",
"generated_avatar_video_failed",
"generated_photo_avatar_success"
]Response
200 - application/json
Success
Business status code:
- 0 - Success
- 10104 - Record not found
- 10105 - Invalid API key
- 18020 - Insufficient credit
- 18025 - No permission to call APIs
- 40000 - Parameter error
- 50000 - System error
Example:
0
Response message
Example:
"Success"
Show child attributes
Show child attributes
⌘I

