List themes
curl --request GET \
--url https://api.gildea.ai/v1/themes \
--header 'X-API-Key: <api-key>'import requests
url = "https://api.gildea.ai/v1/themes"
headers = {"X-API-Key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-API-Key': '<api-key>'}};
fetch('https://api.gildea.ai/v1/themes', 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.gildea.ai/v1/themes",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"X-API-Key: <api-key>"
],
]);
$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.gildea.ai/v1/themes"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-API-Key", "<api-key>")
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.gildea.ai/v1/themes")
.header("X-API-Key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.gildea.ai/v1/themes")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-API-Key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"themes": [
{
"axis": "value_chain",
"label": "Foundation Models",
"signal_count": 245,
"trend": {
"share_of_voice": 0.22,
"streak": 4,
"current_week": 170,
"prior_week": 160
},
"direction": "Rising",
"confidence": "Significant",
"stability": "Steady",
"notability": "High",
"notability_reasoning": "Share of voice is climbing and the growth streak is intact this week."
}
]
}{
"error": {
"code": "not_found",
"message": "Signal '0001f3a7b9c8d4e5f6a7b8c9d0e1f2a3b4c5d6e7' not found",
"status": 404,
"field": "body.text",
"request_id": "9b2e6c1a-4f3d-4e8a-9c7b-2a1d0e5f6a7b",
"retry_after": 30,
"reset": 1768500000
}
}{
"error": {
"code": "not_found",
"message": "Signal '0001f3a7b9c8d4e5f6a7b8c9d0e1f2a3b4c5d6e7' not found",
"status": 404,
"field": "body.text",
"request_id": "9b2e6c1a-4f3d-4e8a-9c7b-2a1d0e5f6a7b",
"retry_after": 30,
"reset": 1768500000
}
}{
"error": {
"code": "not_found",
"message": "Signal '0001f3a7b9c8d4e5f6a7b8c9d0e1f2a3b4c5d6e7' not found",
"status": 404,
"field": "body.text",
"request_id": "9b2e6c1a-4f3d-4e8a-9c7b-2a1d0e5f6a7b",
"retry_after": 30,
"reset": 1768500000
}
}Themes
List Themes
Retrieve all themes with signal counts and trend stats
GET
/
v1
/
themes
List themes
curl --request GET \
--url https://api.gildea.ai/v1/themes \
--header 'X-API-Key: <api-key>'import requests
url = "https://api.gildea.ai/v1/themes"
headers = {"X-API-Key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-API-Key': '<api-key>'}};
fetch('https://api.gildea.ai/v1/themes', 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.gildea.ai/v1/themes",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"X-API-Key: <api-key>"
],
]);
$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.gildea.ai/v1/themes"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-API-Key", "<api-key>")
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.gildea.ai/v1/themes")
.header("X-API-Key", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.gildea.ai/v1/themes")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-API-Key"] = '<api-key>'
response = http.request(request)
puts response.read_body{
"themes": [
{
"axis": "value_chain",
"label": "Foundation Models",
"signal_count": 245,
"trend": {
"share_of_voice": 0.22,
"streak": 4,
"current_week": 170,
"prior_week": 160
},
"direction": "Rising",
"confidence": "Significant",
"stability": "Steady",
"notability": "High",
"notability_reasoning": "Share of voice is climbing and the growth streak is intact this week."
}
]
}{
"error": {
"code": "not_found",
"message": "Signal '0001f3a7b9c8d4e5f6a7b8c9d0e1f2a3b4c5d6e7' not found",
"status": 404,
"field": "body.text",
"request_id": "9b2e6c1a-4f3d-4e8a-9c7b-2a1d0e5f6a7b",
"retry_after": 30,
"reset": 1768500000
}
}{
"error": {
"code": "not_found",
"message": "Signal '0001f3a7b9c8d4e5f6a7b8c9d0e1f2a3b4c5d6e7' not found",
"status": 404,
"field": "body.text",
"request_id": "9b2e6c1a-4f3d-4e8a-9c7b-2a1d0e5f6a7b",
"retry_after": 30,
"reset": 1768500000
}
}{
"error": {
"code": "not_found",
"message": "Signal '0001f3a7b9c8d4e5f6a7b8c9d0e1f2a3b4c5d6e7' not found",
"status": 404,
"field": "body.text",
"request_id": "9b2e6c1a-4f3d-4e8a-9c7b-2a1d0e5f6a7b",
"retry_after": 30,
"reset": 1768500000
}
}The taxonomy is fixed (12 themes across two axes), so this endpoint is not paginated. For what each theme covers, see Themes.
Authorizations
API key for authentication. Include in every request as X-API-Key: gld_your_key_here.
Query Parameters
Filter by taxonomy axis: 'value_chain' or 'market_force'.
Available options:
value_chain, market_force Response
Successful Response
Themes with trend stats and interpretation. Not paginated (bounded taxonomy).
Show child attributes
Show child attributes