Plan or revoke a contact permission profile grant in a chat scope
curl --request POST \
--url http://localhost:3000/api/v1/permissions/deny \
--header 'Content-Type: application/json' \
--data '
{
"profile": "<string>",
"apply": true,
"chat": "<string>",
"chatTag": "<string>",
"force": true,
"to": "<string>"
}
'import requests
url = "http://localhost:3000/api/v1/permissions/deny"
payload = {
"profile": "<string>",
"apply": True,
"chat": "<string>",
"chatTag": "<string>",
"force": True,
"to": "<string>"
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
profile: '<string>',
apply: true,
chat: '<string>',
chatTag: '<string>',
force: true,
to: '<string>'
})
};
fetch('http://localhost:3000/api/v1/permissions/deny', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_PORT => "3000",
CURLOPT_URL => "http://localhost:3000/api/v1/permissions/deny",
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([
'profile' => '<string>',
'apply' => true,
'chat' => '<string>',
'chatTag' => '<string>',
'force' => true,
'to' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json"
],
]);
$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 := "http://localhost:3000/api/v1/permissions/deny"
payload := strings.NewReader("{\n \"profile\": \"<string>\",\n \"apply\": true,\n \"chat\": \"<string>\",\n \"chatTag\": \"<string>\",\n \"force\": true,\n \"to\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
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("http://localhost:3000/api/v1/permissions/deny")
.header("Content-Type", "application/json")
.body("{\n \"profile\": \"<string>\",\n \"apply\": true,\n \"chat\": \"<string>\",\n \"chatTag\": \"<string>\",\n \"force\": true,\n \"to\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("http://localhost:3000/api/v1/permissions/deny")
http = Net::HTTP.new(url.host, url.port)
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"profile\": \"<string>\",\n \"apply\": true,\n \"chat\": \"<string>\",\n \"chatTag\": \"<string>\",\n \"force\": true,\n \"to\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"capabilities": [
{
"objectId": "<string>",
"objectType": "<string>",
"permission": "<string>"
}
],
"changedCount": 123,
"confirmation": {
"action": "allow",
"agents": [
"<string>"
],
"capabilities": [
"<string>"
],
"contacts": [
"<string>"
],
"dryRun": true,
"force": true,
"global": true,
"message": "<string>",
"scopes": [
"<string>"
],
"profile": "<string>"
},
"dryRun": true,
"force": true,
"hints": [
"<string>"
],
"operations": [
{
"kind": "<string>",
"message": "<string>",
"status": "planned",
"capability": "<string>",
"target": "<string>"
}
],
"profile": "<string>",
"scopes": [
{
"label": "<string>",
"type": "chat",
"channel": "<string>",
"chatId": "<string>",
"chatTag": "<string>",
"known": true,
"requestedChatId": "<string>",
"taggedChatCount": 123,
"threadChatId": "<string>",
"title": "<string>"
}
],
"tagSlug": "<string>",
"targets": [
{
"id": "<string>",
"type": "<string>"
}
],
"nextCommand": "<string>"
}permissions
Plan or revoke a contact permission profile grant in a chat scope
POST
/
api
/
v1
/
permissions
/
deny
Plan or revoke a contact permission profile grant in a chat scope
curl --request POST \
--url http://localhost:3000/api/v1/permissions/deny \
--header 'Content-Type: application/json' \
--data '
{
"profile": "<string>",
"apply": true,
"chat": "<string>",
"chatTag": "<string>",
"force": true,
"to": "<string>"
}
'import requests
url = "http://localhost:3000/api/v1/permissions/deny"
payload = {
"profile": "<string>",
"apply": True,
"chat": "<string>",
"chatTag": "<string>",
"force": True,
"to": "<string>"
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
profile: '<string>',
apply: true,
chat: '<string>',
chatTag: '<string>',
force: true,
to: '<string>'
})
};
fetch('http://localhost:3000/api/v1/permissions/deny', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_PORT => "3000",
CURLOPT_URL => "http://localhost:3000/api/v1/permissions/deny",
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([
'profile' => '<string>',
'apply' => true,
'chat' => '<string>',
'chatTag' => '<string>',
'force' => true,
'to' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json"
],
]);
$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 := "http://localhost:3000/api/v1/permissions/deny"
payload := strings.NewReader("{\n \"profile\": \"<string>\",\n \"apply\": true,\n \"chat\": \"<string>\",\n \"chatTag\": \"<string>\",\n \"force\": true,\n \"to\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
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("http://localhost:3000/api/v1/permissions/deny")
.header("Content-Type", "application/json")
.body("{\n \"profile\": \"<string>\",\n \"apply\": true,\n \"chat\": \"<string>\",\n \"chatTag\": \"<string>\",\n \"force\": true,\n \"to\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("http://localhost:3000/api/v1/permissions/deny")
http = Net::HTTP.new(url.host, url.port)
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"profile\": \"<string>\",\n \"apply\": true,\n \"chat\": \"<string>\",\n \"chatTag\": \"<string>\",\n \"force\": true,\n \"to\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"capabilities": [
{
"objectId": "<string>",
"objectType": "<string>",
"permission": "<string>"
}
],
"changedCount": 123,
"confirmation": {
"action": "allow",
"agents": [
"<string>"
],
"capabilities": [
"<string>"
],
"contacts": [
"<string>"
],
"dryRun": true,
"force": true,
"global": true,
"message": "<string>",
"scopes": [
"<string>"
],
"profile": "<string>"
},
"dryRun": true,
"force": true,
"hints": [
"<string>"
],
"operations": [
{
"kind": "<string>",
"message": "<string>",
"status": "planned",
"capability": "<string>",
"target": "<string>"
}
],
"profile": "<string>",
"scopes": [
{
"label": "<string>",
"type": "chat",
"channel": "<string>",
"chatId": "<string>",
"chatTag": "<string>",
"known": true,
"requestedChatId": "<string>",
"taggedChatCount": 123,
"threadChatId": "<string>",
"title": "<string>"
}
],
"tagSlug": "<string>",
"targets": [
{
"id": "<string>",
"type": "<string>"
}
],
"nextCommand": "<string>"
}Body
application/json
Permission profile/tag name, with or without permission- prefix
Apply the planned provider-owned mutations
Scope contact grants to one chat (canonical chat id, platform chat id, or 'current'). Threads inherit their chat.
Scope contact grants to every chat carrying this chat tag
Explicitly use the global (all chats) contact scope. Prefer --chat; ask the human before going global.
Comma-separated contact: subjects to revoke the profile from
Response
Success — body conforms to the @Returns schema.
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes
Show child attributes