Reports
Get saved report insights
Reports are scoped to the authenticated organization. Data operations enforce source-context access and reject missing fields or unavailable saved contexts. Mutations, scheduling, audience handoffs and downloads require report-management permission; read operations expose only permitted source fields. Worksheet columns and row values are dynamic and should be interpreted using the returned field metadata.
GET
/
admin
/
reports
/
{id}
/
details
Get saved report insights
curl --request GET \
--url https://api.gratona.com/v1/admin/reports/{id}/details \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.gratona.com/v1/admin/reports/{id}/details"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.gratona.com/v1/admin/reports/{id}/details', 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.gratona.com/v1/admin/reports/{id}/details",
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.gratona.com/v1/admin/reports/{id}/details"
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.gratona.com/v1/admin/reports/{id}/details")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.gratona.com/v1/admin/reports/{id}/details")
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{
"data": {
"id": 123,
"source": "<string>",
"type": "<string>",
"type_label": "<string>",
"name": "<string>",
"search_query": "<string>",
"snapshot": true,
"starred": true,
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"module": {
"id": 123,
"key": "<string>",
"label": "<string>"
},
"context": {
"id": "<string>",
"label": "<string>",
"available": true
},
"filters": [
{
"field": "<string>",
"operator": "<string>",
"value": "<unknown>",
"op": "<string>"
}
],
"columns": {
"fields": [
"<string>"
],
"order": [
"<string>"
],
"labels": {},
"definitions": [
{
"key": "<string>",
"label": "<string>",
"type": "<string>",
"source": "<string>",
"capabilities": {},
"help": {}
}
]
},
"field_labels": {},
"date_range": {
"preset": "all_time",
"start_date": "2023-12-25",
"end_date": "2023-12-25"
},
"footer_calculations": [
{
"field_key": "<string>",
"operation": "count_empty"
}
],
"sort": {
"key": "<string>",
"order": "<string>"
},
"schedule": {},
"schedule_entitlement": {
"enabled": true,
"locked": true
},
"related": {},
"owner": {
"id": 123
},
"open": {
"path": "<string>",
"query": {}
},
"missing_fields": {},
"actions": {},
"estimated_row_count": {},
"last_export": {
"at": "2023-11-07T05:31:56Z",
"file_name": "<string>",
"download_url": "<string>",
"upload_id": 123
}
}
}{
"message": "Unauthorized",
"status": "error"
}{
"message": "Something went wrong. Please try again.",
"status": "error",
"error": "invalid_request",
"code": "DONOR_NOT_FOUND"
}{
"message": "Not Found",
"status": "error"
}Authorizations
bearerAuthapiKeyAuth
Passport bearer token authentication for legacy admin sessions.
Path Parameters
Record ID within the organization and any parent resource in this route.
Response
Get saved report insights response.
Show child attributes
Show child attributes
⌘I
Get saved report insights
curl --request GET \
--url https://api.gratona.com/v1/admin/reports/{id}/details \
--header 'Authorization: Bearer <token>'import requests
url = "https://api.gratona.com/v1/admin/reports/{id}/details"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://api.gratona.com/v1/admin/reports/{id}/details', 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.gratona.com/v1/admin/reports/{id}/details",
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.gratona.com/v1/admin/reports/{id}/details"
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.gratona.com/v1/admin/reports/{id}/details")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.gratona.com/v1/admin/reports/{id}/details")
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{
"data": {
"id": 123,
"source": "<string>",
"type": "<string>",
"type_label": "<string>",
"name": "<string>",
"search_query": "<string>",
"snapshot": true,
"starred": true,
"created_at": "2023-11-07T05:31:56Z",
"updated_at": "2023-11-07T05:31:56Z",
"module": {
"id": 123,
"key": "<string>",
"label": "<string>"
},
"context": {
"id": "<string>",
"label": "<string>",
"available": true
},
"filters": [
{
"field": "<string>",
"operator": "<string>",
"value": "<unknown>",
"op": "<string>"
}
],
"columns": {
"fields": [
"<string>"
],
"order": [
"<string>"
],
"labels": {},
"definitions": [
{
"key": "<string>",
"label": "<string>",
"type": "<string>",
"source": "<string>",
"capabilities": {},
"help": {}
}
]
},
"field_labels": {},
"date_range": {
"preset": "all_time",
"start_date": "2023-12-25",
"end_date": "2023-12-25"
},
"footer_calculations": [
{
"field_key": "<string>",
"operation": "count_empty"
}
],
"sort": {
"key": "<string>",
"order": "<string>"
},
"schedule": {},
"schedule_entitlement": {
"enabled": true,
"locked": true
},
"related": {},
"owner": {
"id": 123
},
"open": {
"path": "<string>",
"query": {}
},
"missing_fields": {},
"actions": {},
"estimated_row_count": {},
"last_export": {
"at": "2023-11-07T05:31:56Z",
"file_name": "<string>",
"download_url": "<string>",
"upload_id": 123
}
}
}{
"message": "Unauthorized",
"status": "error"
}{
"message": "Something went wrong. Please try again.",
"status": "error",
"error": "invalid_request",
"code": "DONOR_NOT_FOUND"
}{
"message": "Not Found",
"status": "error"
}