curl --request GET \
--url https://prod.api.elementary-data.com/public/beta/{env_id}/asset-health-scores/aggregate \
--header 'Authorization: Bearer <token>'import requests
url = "https://prod.api.elementary-data.com/public/beta/{env_id}/asset-health-scores/aggregate"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://prod.api.elementary-data.com/public/beta/{env_id}/asset-health-scores/aggregate', 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://prod.api.elementary-data.com/public/beta/{env_id}/asset-health-scores/aggregate",
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://prod.api.elementary-data.com/public/beta/{env_id}/asset-health-scores/aggregate"
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://prod.api.elementary-data.com/public/beta/{env_id}/asset-health-scores/aggregate")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://prod.api.elementary-data.com/public/beta/{env_id}/asset-health-scores/aggregate")
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{
"dimensions": [
{
"bucket_at": "2023-11-07T05:31:56Z",
"dimension": "completeness",
"score": 123,
"test_count": 123
}
],
"matched_count": 123,
"total": {
"bucket_at": "2023-11-07T05:31:56Z",
"score": 123,
"test_count": 123
}
}{
"error": {
"code": "<string>",
"message": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>"
}
}Aggregate asset health scores
Returns one health score card for a set of table assets — the same number the Data Health dashboard shows for a filter or folder. The ids, source_types, tags, db_names, schema_names, materializations and path filters intersect; with no filters, every table asset you can view is included. Every ids value must be a table asset, otherwise the request fails with 400 listing the invalid ids. The score is aggregated across the matching assets’ test results in the last 7 days, not averaged from per-asset scores. When no matching asset has test results in the window, returns a zero card (score 0, test_count 0, bucket_at null, no dimensions) alongside matched_count.
curl --request GET \
--url https://prod.api.elementary-data.com/public/beta/{env_id}/asset-health-scores/aggregate \
--header 'Authorization: Bearer <token>'import requests
url = "https://prod.api.elementary-data.com/public/beta/{env_id}/asset-health-scores/aggregate"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://prod.api.elementary-data.com/public/beta/{env_id}/asset-health-scores/aggregate', 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://prod.api.elementary-data.com/public/beta/{env_id}/asset-health-scores/aggregate",
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://prod.api.elementary-data.com/public/beta/{env_id}/asset-health-scores/aggregate"
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://prod.api.elementary-data.com/public/beta/{env_id}/asset-health-scores/aggregate")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://prod.api.elementary-data.com/public/beta/{env_id}/asset-health-scores/aggregate")
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{
"dimensions": [
{
"bucket_at": "2023-11-07T05:31:56Z",
"dimension": "completeness",
"score": 123,
"test_count": 123
}
],
"matched_count": 123,
"total": {
"bucket_at": "2023-11-07T05:31:56Z",
"score": 123,
"test_count": 123
}
}{
"error": {
"code": "<string>",
"message": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>"
}
}{
"error": {
"code": "<string>",
"message": "<string>"
}
}Authorizations
Personal or account token.
Path Parameters
Environment identifier that scopes the request.
Query Parameters
Aggregate only table assets with these ids.
1000Aggregate only table assets from these source types (e.g. dbt, fivetran).
1000Aggregate only table assets tagged with any of these tags.
1000Aggregate only table assets in these databases.
1000Aggregate only table assets in these schemas.
1000Aggregate only table assets with these materializations (e.g. table, view, incremental).
1000Return only table assets whose path equals one of these paths or is nested under one of them (/-separated, e.g. models/marts matches models/marts/orders.sql; a trailing / is ignored). Repeatable; assets without a path never match.
1000Response
Successful Response
Latest aggregated score per dimension. Dimensions with no results in the last 7 days are omitted.
Show child attributes
Show child attributes
Number of table assets you can view that match the filters, whether or not they have test results in the window. 0 when nothing matches.
Weighted score across all dimensions for the whole matching asset set, using the environment's configured dimension weights. Aggregated across the assets' test results, not an average of per-asset scores.
Show child attributes
Show child attributes

