curl --request GET \
--url 'https://api.edgeful.com/v1/custom-reports/<definition_id>/runs/<run_id>' \
--header 'Authorization: Bearer <api-key>'import requests
url = "https://api.edgeful.com/v1/custom-reports/<definition_id>/runs/<run_id>"
headers = {"Authorization": "Bearer <api-key>"}
response = requests.get(url, headers=headers)
print(response.json())const url = "https://api.edgeful.com/v1/custom-reports/<definition_id>/runs/<run_id>";
const options = {
method: "GET",
headers: { Authorization: "Bearer <api-key>" },
};
const response = await fetch(url, options);
const data = await response.json();
console.log(data);<?php
$ch = curl_init("https://api.edgeful.com/v1/custom-reports/<definition_id>/runs/<run_id>");
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "GET");
curl_setopt($ch, CURLOPT_HTTPHEADER, ["Authorization: Bearer <api-key>"]);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);
echo $response;package main
import (
"fmt"
"io"
"net/http"
)
func main() {
req, _ := http.NewRequest("GET", "https://api.edgeful.com/v1/custom-reports/<definition_id>/runs/<run_id>", nil)
req.Header.Set("Authorization", "Bearer <api-key>")
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://api.edgeful.com/v1/custom-reports/<definition_id>/runs/<run_id>"))
.header("Authorization", "Bearer <api-key>")
.method("GET", HttpRequest.BodyPublishers.noBody())
.build();
HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());require "net/http"
require "uri"
uri = URI("https://api.edgeful.com/v1/custom-reports/<definition_id>/runs/<run_id>")
request = Net::HTTP::Get.new(uri)
request["Authorization"] = "Bearer <api-key>"
response = Net::HTTP.start(uri.hostname, uri.port, use_ssl: uri.scheme == "https") do |http|
http.request(request)
end
puts response.body{
"status": "<string>",
"definition_id": "<string>",
"run_id": "<string>",
"message": "<string>",
"effective_controls": "<unknown>",
"data_through": "<string>",
"computed_at": "<string>",
"retryable": true,
"retry_after_seconds": 123,
"poll_after_seconds": 123,
"route_to_refine": "<unknown>",
"summary": "<unknown>",
"detailed_data": [
"<unknown>"
],
"total_rows": 123,
"truncated": true,
"column_units": "<unknown>",
"row_label": "<unknown>",
"row_grain": "<unknown>",
"presentation": "<unknown>",
"url": "<string>"
}{
"detail": {
"detail": "No active subscription with API access found.",
"code": "missing_entitlement"
}
}{
"detail": "Custom report not found."
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}custom report run
read one run of a saved custom report by its run_id: status running and poll_after_seconds while it computes, then its result with every row. never starts a run. works with writes off.
curl --request GET \
--url 'https://api.edgeful.com/v1/custom-reports/<definition_id>/runs/<run_id>' \
--header 'Authorization: Bearer <api-key>'import requests
url = "https://api.edgeful.com/v1/custom-reports/<definition_id>/runs/<run_id>"
headers = {"Authorization": "Bearer <api-key>"}
response = requests.get(url, headers=headers)
print(response.json())const url = "https://api.edgeful.com/v1/custom-reports/<definition_id>/runs/<run_id>";
const options = {
method: "GET",
headers: { Authorization: "Bearer <api-key>" },
};
const response = await fetch(url, options);
const data = await response.json();
console.log(data);<?php
$ch = curl_init("https://api.edgeful.com/v1/custom-reports/<definition_id>/runs/<run_id>");
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "GET");
curl_setopt($ch, CURLOPT_HTTPHEADER, ["Authorization: Bearer <api-key>"]);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
curl_close($ch);
echo $response;package main
import (
"fmt"
"io"
"net/http"
)
func main() {
req, _ := http.NewRequest("GET", "https://api.edgeful.com/v1/custom-reports/<definition_id>/runs/<run_id>", nil)
req.Header.Set("Authorization", "Bearer <api-key>")
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
body, _ := io.ReadAll(resp.Body)
fmt.Println(string(body))
}import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://api.edgeful.com/v1/custom-reports/<definition_id>/runs/<run_id>"))
.header("Authorization", "Bearer <api-key>")
.method("GET", HttpRequest.BodyPublishers.noBody())
.build();
HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());require "net/http"
require "uri"
uri = URI("https://api.edgeful.com/v1/custom-reports/<definition_id>/runs/<run_id>")
request = Net::HTTP::Get.new(uri)
request["Authorization"] = "Bearer <api-key>"
response = Net::HTTP.start(uri.hostname, uri.port, use_ssl: uri.scheme == "https") do |http|
http.request(request)
end
puts response.body{
"status": "<string>",
"definition_id": "<string>",
"run_id": "<string>",
"message": "<string>",
"effective_controls": "<unknown>",
"data_through": "<string>",
"computed_at": "<string>",
"retryable": true,
"retry_after_seconds": 123,
"poll_after_seconds": 123,
"route_to_refine": "<unknown>",
"summary": "<unknown>",
"detailed_data": [
"<unknown>"
],
"total_rows": 123,
"truncated": true,
"column_units": "<unknown>",
"row_label": "<unknown>",
"row_grain": "<unknown>",
"presentation": "<unknown>",
"url": "<string>"
}{
"detail": {
"detail": "No active subscription with API access found.",
"code": "missing_entitlement"
}
}{
"detail": "Custom report not found."
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}Authorizations
Send your Edgeful API key in the Authorization header as Bearer <api-key> (for example, Bearer ef_live_<random>).
Path Parameters
the saved custom report's id, from the list.
the run's id, from run custom report or the latest result.
Response
Successful Response
running, the run's outcome such as succeeded or failed, or no_result when the report has no successful run.
saved custom report id.
the run that produced the result.
a note about the run.
the inputs the run actually used.
the last date the data covers.
when the run finished.
whether a failed run may be retried.
seconds to wait before retrying.
while running: seconds to wait before reading the run again.
where to refine the report.
the result's summary values.
the result's rows, every one the run stored.
rows in the result.
true when the response does not carry every row.
units per column.
what a row represents.
the row grain.
presentation hints.
the report in Edgeful.
Was this page helpful?