Obter análises dos descendentes
curl --request GET \
--url https://api.olie.ai/api/management/projects/{project}/hierarchy/analytics \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.olie.ai/api/management/projects/{project}/hierarchy/analytics"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.olie.ai/api/management/projects/{project}/hierarchy/analytics', 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.olie.ai/api/management/projects/{project}/hierarchy/analytics",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$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.olie.ai/api/management/projects/{project}/hierarchy/analytics"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
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.olie.ai/api/management/projects/{project}/hierarchy/analytics")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.olie.ai/api/management/projects/{project}/hierarchy/analytics")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"response": true,
"data": {
"budget": {
"total_budget": 460000,
"average_budget": 230000,
"budget_distribution": {
"120000": 1,
"340000": 1
},
"projects_with_budget": 2,
"projects_without_budget": 1,
"budget_range": {
"min": 0,
"max": 340000
}
},
"funnels": {
"total_funnels": 1,
"average_funnels_per_project": 0.67,
"funnels_per_project": {
"019e0f21-4b3c-71a8-8f0e-9c2d5a7b1e40": 1
},
"projects_per_step": {
"181": 1
},
"projects_with_funnels": 1,
"projects_without_funnels": 2
},
"users": {
"total_users": 2,
"total_user_assignments": 3,
"average_users_per_project": 1,
"users_by_role": {
"assignee": 2,
"follower": 1
},
"users_per_project": {
"019e0f21-4b3c-71a8-8f0e-9c2d5a7b1e40": 2
},
"projects_with_users": 2,
"projects_without_users": 1
},
"status": {
"by_status": {
"1": 2,
"2": 1
},
"total_projects": 3,
"status_distribution_percentage": {
"1": 66.67,
"2": 33.33
}
},
"impact": {
"by_impact": {
"6": 1,
"7": 1,
"9": 1
},
"average_impact": 7.33,
"impact_range": {
"min": 6,
"max": 9
},
"high_impact_projects": 1,
"medium_impact_projects": 2,
"low_impact_projects": 0
},
"hierarchy": {
"total_levels": 2,
"level_distribution": {
"1": 2,
"2": 1
},
"leaf_projects": 2,
"branch_projects": 1,
"branch_to_leaf_ratio": 0.5,
"average_children_per_branch": 1
},
"timeline": {
"recent_projects": {
"last_30_days": 1,
"last_90_days": 2,
"last_365_days": 3
},
"recently_updated": 2,
"monthly_creation_trend": {
"2026-06": 1,
"2026-07": 1,
"2026-08": 1
},
"oldest_project_age_days": 74,
"newest_project_age_days": 3
}
}
}{
"response": false,
"message": "no_descendants_for_analytics",
"error": "No descendants found for project"
}projects
Obter análises dos descendentes
Consolida em um único retorno os números de todos os projetos abaixo do projeto informado — financeiro, tarefas, funis e pessoas envolvidas — para uma visão macro da estrutura.
Projetos sem nenhum descendente respondem com erro, já que não há o que consolidar.
GET
/
api
/
management
/
projects
/
{project}
/
hierarchy
/
analytics
Obter análises dos descendentes
curl --request GET \
--url https://api.olie.ai/api/management/projects/{project}/hierarchy/analytics \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.olie.ai/api/management/projects/{project}/hierarchy/analytics"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.olie.ai/api/management/projects/{project}/hierarchy/analytics', 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.olie.ai/api/management/projects/{project}/hierarchy/analytics",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$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.olie.ai/api/management/projects/{project}/hierarchy/analytics"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
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.olie.ai/api/management/projects/{project}/hierarchy/analytics")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.olie.ai/api/management/projects/{project}/hierarchy/analytics")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"response": true,
"data": {
"budget": {
"total_budget": 460000,
"average_budget": 230000,
"budget_distribution": {
"120000": 1,
"340000": 1
},
"projects_with_budget": 2,
"projects_without_budget": 1,
"budget_range": {
"min": 0,
"max": 340000
}
},
"funnels": {
"total_funnels": 1,
"average_funnels_per_project": 0.67,
"funnels_per_project": {
"019e0f21-4b3c-71a8-8f0e-9c2d5a7b1e40": 1
},
"projects_per_step": {
"181": 1
},
"projects_with_funnels": 1,
"projects_without_funnels": 2
},
"users": {
"total_users": 2,
"total_user_assignments": 3,
"average_users_per_project": 1,
"users_by_role": {
"assignee": 2,
"follower": 1
},
"users_per_project": {
"019e0f21-4b3c-71a8-8f0e-9c2d5a7b1e40": 2
},
"projects_with_users": 2,
"projects_without_users": 1
},
"status": {
"by_status": {
"1": 2,
"2": 1
},
"total_projects": 3,
"status_distribution_percentage": {
"1": 66.67,
"2": 33.33
}
},
"impact": {
"by_impact": {
"6": 1,
"7": 1,
"9": 1
},
"average_impact": 7.33,
"impact_range": {
"min": 6,
"max": 9
},
"high_impact_projects": 1,
"medium_impact_projects": 2,
"low_impact_projects": 0
},
"hierarchy": {
"total_levels": 2,
"level_distribution": {
"1": 2,
"2": 1
},
"leaf_projects": 2,
"branch_projects": 1,
"branch_to_leaf_ratio": 0.5,
"average_children_per_branch": 1
},
"timeline": {
"recent_projects": {
"last_30_days": 1,
"last_90_days": 2,
"last_365_days": 3
},
"recently_updated": 2,
"monthly_creation_trend": {
"2026-06": 1,
"2026-07": 1,
"2026-08": 1
},
"oldest_project_age_days": 74,
"newest_project_age_days": 3
}
}
}{
"response": false,
"message": "no_descendants_for_analytics",
"error": "No descendants found for project"
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Path Parameters
ID (UUID) do projeto.
Was this page helpful?