curl --request GET \
--url https://api.getoneprofile.ai/assistant/conversations/{conversation_id}/grants/ \
--header 'X-API-Key: <api-key>'import requests
url = "https://api.getoneprofile.ai/assistant/conversations/{conversation_id}/grants/"
headers = {"X-API-Key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-API-Key': '<api-key>'}};
fetch('https://api.getoneprofile.ai/assistant/conversations/{conversation_id}/grants/', 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.getoneprofile.ai/assistant/conversations/{conversation_id}/grants/",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"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"
"net/http"
"io"
)
func main() {
url := "https://api.getoneprofile.ai/assistant/conversations/{conversation_id}/grants/"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-API-Key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.getoneprofile.ai/assistant/conversations/{conversation_id}/grants/")
.header("X-API-Key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.getoneprofile.ai/assistant/conversations/{conversation_id}/grants/")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-API-Key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"follows_defaults": true,
"granted_tools": [
"<string>"
],
"granted_verbs": [
"create_table_from_search"
]
}{
"detail": "<string>"
}{
"detail": "<string>"
}{
"detail": "<string>"
}{
"detail": "<string>",
"issues": [
{
"input": "<string>",
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>"
}
]
}{
"detail": "<string>"
}{
"detail": "<string>"
}{
"detail": "<string>"
}Read what a conversation may apply without asking
What this chat conversation applies without asking, as it stands now: the write operations the AI Assistant runs unasked here (approving a card for this conversation adds one) and the verbs, and whether that list is the workspace defaults (read live, so a change in Settings reaches it) or the conversation’s own, frozen the first time it allowed something. Anything on the list still asks when it is priced at or above the spend threshold, and a send always asks.
curl --request GET \
--url https://api.getoneprofile.ai/assistant/conversations/{conversation_id}/grants/ \
--header 'X-API-Key: <api-key>'import requests
url = "https://api.getoneprofile.ai/assistant/conversations/{conversation_id}/grants/"
headers = {"X-API-Key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-API-Key': '<api-key>'}};
fetch('https://api.getoneprofile.ai/assistant/conversations/{conversation_id}/grants/', 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.getoneprofile.ai/assistant/conversations/{conversation_id}/grants/",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"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"
"net/http"
"io"
)
func main() {
url := "https://api.getoneprofile.ai/assistant/conversations/{conversation_id}/grants/"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-API-Key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.getoneprofile.ai/assistant/conversations/{conversation_id}/grants/")
.header("X-API-Key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.getoneprofile.ai/assistant/conversations/{conversation_id}/grants/")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-API-Key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"follows_defaults": true,
"granted_tools": [
"<string>"
],
"granted_verbs": [
"create_table_from_search"
]
}{
"detail": "<string>"
}{
"detail": "<string>"
}{
"detail": "<string>"
}{
"detail": "<string>",
"issues": [
{
"input": "<string>",
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>"
}
]
}{
"detail": "<string>"
}{
"detail": "<string>"
}{
"detail": "<string>"
}Authorizations
Path Parameters
Response
Successful Response
What one conversation may apply without asking: the list, and where it comes from.
Read for the shield in the chat header. follows_defaults tells the
header whether to show the list as the workspace's (change it in
Settings) or as this thread's own (take one back here, or return to the
defaults). granted_tools is what the shield lists: the AI Assistant's
cards are decided by tool, and the verbs decide only an agent's.
Whether the list is the workspace defaults, read live. False once the conversation has a list of its own, which a change in Settings no longer reaches.
The write operations the AI Assistant runs without asking in this conversation, in effect now: operation names as GET /assistant/tools/ lists them, and family:<area> for the rest of one part of the product. Approving a card for this conversation adds its operation here. Only what still allows something is listed, by the name its operation has today.
The verbs this conversation applies without asking, in effect now.
The eight things an AI may do to a workspace.
Exactly eight, not sixty: today's cell-level actions all run against one cell, and building a table, adding contacts to a sequence and starting a search had no home at all. Anything new here is a product decision about what an assistant may touch, not a convenience for a planner.
create_table_from_search, add_column, run_column, enrich_rows, add_contacts_to_sequence, push_to_destination, call_endpoint, start_search Was this page helpful?