curl --request PUT \
--url https://{host}/v2/workspaces/slug:ai-governance-v2/webhooks/v1/legal/{type} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"content": "<string>"
}
'const options = {
method: 'PUT',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({content: '<string>'})
};
fetch('https://{host}/v2/workspaces/slug:ai-governance-v2/webhooks/v1/legal/{type}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://{host}/v2/workspaces/slug:ai-governance-v2/webhooks/v1/legal/{type}"
payload = { "content": "<string>" }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text){
"type": "<string>",
"orgSlug": "<string>",
"content": "<string>",
"updatedBy": "<string>"
}{
"error": "<string>",
"message": "<string>",
"details": {}
}{
"error": "<string>",
"message": "<string>",
"details": {}
}{
"error": "<string>",
"message": "<string>",
"details": {}
}{
"error": "<string>",
"message": "<string>",
"details": {}
}{
"error": "<string>",
"message": "<string>",
"details": {}
}Upsert legal content for a type
Creates or replaces the legal document for the given type and
the caller’s organization. Content is uploaded as an HTML file
via the workspace’s /files API using the deterministic id
legal-{orgSlug}-{type}.
Requires the announcements:write permission (note: this
endpoint reuses the announcements auth resource - the field is
not specific to legal). Rate-limited to 50 calls per minute.
curl --request PUT \
--url https://{host}/v2/workspaces/slug:ai-governance-v2/webhooks/v1/legal/{type} \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"content": "<string>"
}
'const options = {
method: 'PUT',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({content: '<string>'})
};
fetch('https://{host}/v2/workspaces/slug:ai-governance-v2/webhooks/v1/legal/{type}', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://{host}/v2/workspaces/slug:ai-governance-v2/webhooks/v1/legal/{type}"
payload = { "content": "<string>" }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.put(url, json=payload, headers=headers)
print(response.text){
"type": "<string>",
"orgSlug": "<string>",
"content": "<string>",
"updatedBy": "<string>"
}{
"error": "<string>",
"message": "<string>",
"details": {}
}{
"error": "<string>",
"message": "<string>",
"details": {}
}{
"error": "<string>",
"message": "<string>",
"details": {}
}{
"error": "<string>",
"message": "<string>",
"details": {}
}{
"error": "<string>",
"message": "<string>",
"details": {}
}Authorizations
User-bound credential carrying an identity: either a session JWT
or a user access token (at:*) generated from the user settings UI.
Send as Authorization: Bearer <token>.
Org API keys (iak_*) are not accepted here - they carry
no user identity. Use the x-prismeai-api-key header instead
(see OrgApiKeyAuth).
Path Parameters
Legal document type slug (e.g. cgu, privacy-policy,
secure-chat).
64^[a-z0-9-]+$Body
Raw HTML content of the legal document.
500000Was this page helpful?