Organizations
Grant support access
Org owners and admins only. Lets CostGraph support open read-only sessions on the organization for duration_hours (1 to 168). Each session lasts at most 30 minutes and never outlives the grant, and org owners are emailed when one starts. The grant is recorded in the audit log.
POST
/
api
/
v1
/
organizations
/
{org_id}
/
support-access
Grant support access
curl --request POST \
--url https://api.costgraph.ai/api/v1/organizations/{org_id}/support-access \
--header 'Authorization: <api-key>' \
--header 'Content-Type: application/json' \
--data '
{
"duration_hours": 84
}
'import requests
url = "https://api.costgraph.ai/api/v1/organizations/{org_id}/support-access"
payload = { "duration_hours": 84 }
headers = {
"Authorization": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({duration_hours: 84})
};
fetch('https://api.costgraph.ai/api/v1/organizations/{org_id}/support-access', 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.costgraph.ai/api/v1/organizations/{org_id}/support-access",
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([
'duration_hours' => 84
]),
CURLOPT_HTTPHEADER => [
"Authorization: <api-key>",
"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 := "https://api.costgraph.ai/api/v1/organizations/{org_id}/support-access"
payload := strings.NewReader("{\n \"duration_hours\": 84\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "<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.post("https://api.costgraph.ai/api/v1/organizations/{org_id}/support-access")
.header("Authorization", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"duration_hours\": 84\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.costgraph.ai/api/v1/organizations/{org_id}/support-access")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"duration_hours\": 84\n}"
response = http.request(request)
puts response.read_body{
"message": "some message",
"status": "success",
"data": {
"created_at": "<string>",
"expires_at": "<string>",
"id": "<string>",
"status": "active",
"granted_by_email": "<string>",
"granted_by_name": "<string>",
"revoked_at": "<string>",
"revoked_by_email": "<string>",
"revoked_by_name": "<string>"
}
}{
"message": "some message",
"status": "error"
}{
"message": "some message",
"status": "error"
}{
"message": "some message",
"status": "error"
}{
"message": "some message",
"status": "error"
}Authorizations
Enter "Bearer {token}"
Path Parameters
Organization ID
Body
application/json
How long support access lasts
Required range:
1 <= x <= 168Was this page helpful?
⌘I
Grant support access
curl --request POST \
--url https://api.costgraph.ai/api/v1/organizations/{org_id}/support-access \
--header 'Authorization: <api-key>' \
--header 'Content-Type: application/json' \
--data '
{
"duration_hours": 84
}
'import requests
url = "https://api.costgraph.ai/api/v1/organizations/{org_id}/support-access"
payload = { "duration_hours": 84 }
headers = {
"Authorization": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({duration_hours: 84})
};
fetch('https://api.costgraph.ai/api/v1/organizations/{org_id}/support-access', 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.costgraph.ai/api/v1/organizations/{org_id}/support-access",
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([
'duration_hours' => 84
]),
CURLOPT_HTTPHEADER => [
"Authorization: <api-key>",
"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 := "https://api.costgraph.ai/api/v1/organizations/{org_id}/support-access"
payload := strings.NewReader("{\n \"duration_hours\": 84\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "<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.post("https://api.costgraph.ai/api/v1/organizations/{org_id}/support-access")
.header("Authorization", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"duration_hours\": 84\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.costgraph.ai/api/v1/organizations/{org_id}/support-access")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"duration_hours\": 84\n}"
response = http.request(request)
puts response.read_body{
"message": "some message",
"status": "success",
"data": {
"created_at": "<string>",
"expires_at": "<string>",
"id": "<string>",
"status": "active",
"granted_by_email": "<string>",
"granted_by_name": "<string>",
"revoked_at": "<string>",
"revoked_by_email": "<string>",
"revoked_by_name": "<string>"
}
}{
"message": "some message",
"status": "error"
}{
"message": "some message",
"status": "error"
}{
"message": "some message",
"status": "error"
}{
"message": "some message",
"status": "error"
}