curl --request GET \
--url 'https://api.edgeful.com/v1/settings/report-catalog' \
--header 'Authorization: Bearer <api-key>'import requests
url = "https://api.edgeful.com/v1/settings/report-catalog"
headers = {"Authorization": "Bearer <api-key>"}
response = requests.get(url, headers=headers)
print(response.json())const url = "https://api.edgeful.com/v1/settings/report-catalog";
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/settings/report-catalog");
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/settings/report-catalog", 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/settings/report-catalog"))
.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/settings/report-catalog")
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{
"count": 123,
"families": [
{
"slug": "<string>",
"name": "<string>",
"availability": "<string>",
"markets": [
"<string>"
],
"sub_reports": [
"<string>"
],
"categories": [
"<string>"
],
"runnable": true,
"sessions": [
"<string>"
]
}
],
"surface": "<string>",
"markets": [
"<string>"
],
"sessions": "<unknown>",
"tickers": "<unknown>",
"reports": "<unknown>",
"customizations": "<unknown>",
"filters": "<unknown>",
"min_reports": 123,
"max_reports": 123
}{
"detail": "NQX is not a futures ticker Edgeful knows."
}{
"detail": {
"detail": "No active subscription with API access found.",
"code": "missing_entitlement"
}
}{
"detail": [
{
"loc": [
"<string>"
],
"msg": "<string>",
"type": "<string>",
"input": "<unknown>",
"ctx": {}
}
]
}report catalog
list the report pages settings refer to (surface report): slug, name, markets, sub-reports, categories and whether your plan can run each; with a market, the standard session ids the defaults accept for each page there. with surface wip or screener, list what a What’s in Play or screener template is composed from instead. these slugs name pages, not report endpoints.
curl --request GET \
--url 'https://api.edgeful.com/v1/settings/report-catalog' \
--header 'Authorization: Bearer <api-key>'import requests
url = "https://api.edgeful.com/v1/settings/report-catalog"
headers = {"Authorization": "Bearer <api-key>"}
response = requests.get(url, headers=headers)
print(response.json())const url = "https://api.edgeful.com/v1/settings/report-catalog";
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/settings/report-catalog");
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/settings/report-catalog", 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/settings/report-catalog"))
.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/settings/report-catalog")
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{
"count": 123,
"families": [
{
"slug": "<string>",
"name": "<string>",
"availability": "<string>",
"markets": [
"<string>"
],
"sub_reports": [
"<string>"
],
"categories": [
"<string>"
],
"runnable": true,
"sessions": [
"<string>"
]
}
],
"surface": "<string>",
"markets": [
"<string>"
],
"sessions": "<unknown>",
"tickers": "<unknown>",
"reports": "<unknown>",
"customizations": "<unknown>",
"filters": "<unknown>",
"min_reports": 123,
"max_reports": 123
}{
"detail": "NQX is not a futures ticker Edgeful knows."
}{
"detail": {
"detail": "No active subscription with API access found.",
"code": "missing_entitlement"
}
}{
"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>).
Query Parameters
cut the catalog to one market; all is a market of the wip and screener surfaces only.
futures, stock, forex, crypto report lists report pages; wip or screener lists what those templates are composed from.
report, wip, screener Response
Successful Response
report surface: number of families listed.
report surface: the report pages.
Show child attributes
Show child attributes
wip or screener surfaces: the surface described.
wip or screener surfaces: the markets listed.
wip or screener surfaces: sessions per market.
wip or screener surfaces: tickers per market.
wip or screener surfaces: report keys with their exclusions or suffix rule.
wip or screener surfaces: customization setting keys with fields, options and defaults.
wip surface: the percentage range.
screener surface: fewest reports per template.
screener surface: most reports per template.
Was this page helpful?