Macademia Tree API
A structured taxonomy of academic knowledge you can query through a simple REST API.
What's in the dataset?
Academic knowledge organized into four levels — each with stable UUIDs, human-readable slugs, and many-to-many relationships:
12
Domains
66
Disciplines
978
Sub-disciplines
Topics
Coming soon
Authentication
All requests require a Bearer token in the Authorization header.
1
Get your API key
Sign up and create a key from your dashboard. Each account can have up to 3 active keys.
2
Add to your request
curl -X GET "https://macademiatree.com/api/v2/domains" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json"import requests
response = requests.get(
"https://macademiatree.com/api/v2/domains",
headers={"Authorization": "Bearer YOUR_API_KEY"}
)
data = response.json()const response = await fetch("https://macademiatree.com/api/v2/domains", {
headers: {
"Authorization": "Bearer YOUR_API_KEY"
}
});
const data = await response.json();$ch = curl_init("https://macademiatree.com/api/v2/domains");
curl_setopt($ch, CURLOPT_HTTPHEADER, [
"Authorization: Bearer YOUR_API_KEY"
]);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$response = curl_exec($ch);
$data = json_decode($response, true);req, _ := http.NewRequest("GET", "https://macademiatree.com/api/v2/domains", nil)
req.Header.Set("Authorization", "Bearer YOUR_API_KEY")
client := &http.Client{}
resp, _ := client.Do(req)
defer resp.Body.Close()HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://macademiatree.com/api/v2/domains"))
.header("Authorization", "Bearer YOUR_API_KEY")
.build();
HttpResponse<String> response = HttpClient.newHttpClient()
.send(request, HttpResponse.BodyHandlers.ofString());require "net/http"
require "json"
uri = URI("https://macademiatree.com/api/v2/domains")
request = Net::HTTP::Get.new(uri)
request["Authorization"] = "Bearer YOUR_API_KEY"
response = Net::HTTP.start(uri.hostname, uri.port, use_ssl: true) do |http|
http.request(request)
end
data = JSON.parse(response.body)
3
Check rate limit headers
Every response includes your current usage:
X-RateLimit-Limit: 100
X-RateLimit-Remaining: 99
X-RateLimit-Reset: 1742688000
X-RateLimit-Monthly-Limit: 3000
X-RateLimit-Monthly-Remaining: 2999
Rate limits & pricing
The free tier includes 100 requests/day and 3,000 requests/month. Need more? See the Pricing page for details.