Integrations
Connect an Infracost API key
Stores the tenant’s own Infracost API key so CostGraph can answer Infracost CLI pricing queries for AWS, Azure and Google Cloud and adjust them to the tenant’s billed rates. The key is verified with Infracost before it is stored, and is never returned.
POST
/
integrations
/
infracost
/
connect
Connect an Infracost API key
curl --request POST \
--url https://api.costgraph.ai/integrations/infracost/connect \
--header 'Content-Type: application/json' \
--data '
{
"api_key": "<string>",
"tenant_id": "<string>"
}
'import requests
url = "https://api.costgraph.ai/integrations/infracost/connect"
payload = {
"api_key": "<string>",
"tenant_id": "<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({api_key: '<string>', tenant_id: '<string>'})
};
fetch('https://api.costgraph.ai/integrations/infracost/connect', 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/integrations/infracost/connect",
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([
'api_key' => '<string>',
'tenant_id' => '<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 := "https://api.costgraph.ai/integrations/infracost/connect"
payload := strings.NewReader("{\n \"api_key\": \"<string>\",\n \"tenant_id\": \"<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("https://api.costgraph.ai/integrations/infracost/connect")
.header("Content-Type", "application/json")
.body("{\n \"api_key\": \"<string>\",\n \"tenant_id\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.costgraph.ai/integrations/infracost/connect")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"api_key\": \"<string>\",\n \"tenant_id\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"message": "some message",
"status": "success",
"data": "<unknown>"
}{
"message": "some message",
"status": "error"
}{
"message": "some message",
"status": "error"
}Was this page helpful?
⌘I
Connect an Infracost API key
curl --request POST \
--url https://api.costgraph.ai/integrations/infracost/connect \
--header 'Content-Type: application/json' \
--data '
{
"api_key": "<string>",
"tenant_id": "<string>"
}
'import requests
url = "https://api.costgraph.ai/integrations/infracost/connect"
payload = {
"api_key": "<string>",
"tenant_id": "<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({api_key: '<string>', tenant_id: '<string>'})
};
fetch('https://api.costgraph.ai/integrations/infracost/connect', 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/integrations/infracost/connect",
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([
'api_key' => '<string>',
'tenant_id' => '<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 := "https://api.costgraph.ai/integrations/infracost/connect"
payload := strings.NewReader("{\n \"api_key\": \"<string>\",\n \"tenant_id\": \"<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("https://api.costgraph.ai/integrations/infracost/connect")
.header("Content-Type", "application/json")
.body("{\n \"api_key\": \"<string>\",\n \"tenant_id\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.costgraph.ai/integrations/infracost/connect")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"api_key\": \"<string>\",\n \"tenant_id\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"message": "some message",
"status": "success",
"data": "<unknown>"
}{
"message": "some message",
"status": "error"
}{
"message": "some message",
"status": "error"
}