developers.webhook.secret.rotate
curl --request POST \
--url https://platform.trylath.com/developers/webhook/secret/rotate \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"endpointId": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
'const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({endpointId: '3c90c3cc-0d44-4b50-8888-8dd25736052a'})
};
fetch('https://platform.trylath.com/developers/webhook/secret/rotate', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://platform.trylath.com/developers/webhook/secret/rotate"
payload = { "endpointId": "3c90c3cc-0d44-4b50-8888-8dd25736052a" }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://platform.trylath.com/developers/webhook/secret/rotate"
payload := strings.NewReader("{\n \"endpointId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
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))
}{
"activityId": "<string>",
"result": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"url": "<string>",
"secret": "<string>",
"rotatedAt": "2023-11-07T05:31:56Z"
}
}developers.webhook.secret.rotate
Issues a new signing secret for a webhook endpoint and returns it once, exactly as create does. The old secret stops verifying immediately: signing happens when a delivery is attempted, so everything after this — including retries of earlier failures — carries the new one. Update your receiver promptly; deliveries that fail in the gap retry on the usual backoff and succeed once it is updated. The endpoint keeps its id, its URL, its event filter and everything already queued against it.
POST
/
developers
/
webhook
/
secret
/
rotate
developers.webhook.secret.rotate
curl --request POST \
--url https://platform.trylath.com/developers/webhook/secret/rotate \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"endpointId": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}
'const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({endpointId: '3c90c3cc-0d44-4b50-8888-8dd25736052a'})
};
fetch('https://platform.trylath.com/developers/webhook/secret/rotate', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://platform.trylath.com/developers/webhook/secret/rotate"
payload = { "endpointId": "3c90c3cc-0d44-4b50-8888-8dd25736052a" }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://platform.trylath.com/developers/webhook/secret/rotate"
payload := strings.NewReader("{\n \"endpointId\": \"3c90c3cc-0d44-4b50-8888-8dd25736052a\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
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))
}{
"activityId": "<string>",
"result": {
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"url": "<string>",
"secret": "<string>",
"rotatedAt": "2023-11-07T05:31:56Z"
}
}Authorizations
A Lath API key: lath_live_sk… or lath_test_sk… on a server, lath_live_pk… or lath_test_pk… in a browser.
Headers
Replays the stored response for the same key and input; refuses different input.
Body
application/json
Pattern:
^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$Last modified on September 13, 2026
Was this page helpful?

