Export
Export full database
Returns the complete taxonomy database as a single JSON document. Includes all entities (domains, disciplines, sub-disciplines, topics) and all relationship tables. Use this for initial local database setup, then poll for updates with the updated_since parameter.
/api/v2/export
Authentication
Requires Bearer token in the Authorization header.
Query Parameters
updated_since
string
optional
ISO 8601 timestamp. When provided, returns only entities updated after this time. Junction tables are always returned in full. Example: 2026-01-01T00:00:00Z
Response
meta
object
Export metadata including schema_version, exported_at, type (full or delta), and record counts per table
domains
array
All domain records with id, name, slug, description, source_updated_at
disciplines
array
All discipline records
sub_disciplines
array
All sub-discipline records
topics
array
All topic records including synonyms and parent_topic_id
domain_disciplines
array
Domain-to-discipline relationships (domain_id, discipline_id)
discipline_sub_disciplines
array
Discipline-to-sub-discipline relationships
sub_discipline_topics
array
Sub-discipline-to-topic relationships
curl -X GET "https://macademiatree.com/api/v2/export" \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json"import requests
response = requests.get(
"https://macademiatree.com/api/v2/export",
headers={"Authorization": "Bearer YOUR_API_KEY"}
)
data = response.json()const response = await fetch("https://macademiatree.com/api/v2/export", {
headers: {
"Authorization": "Bearer YOUR_API_KEY"
}
});
const data = await response.json();$ch = curl_init("https://macademiatree.com/api/v2/export");
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/export", 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/export"))
.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/export")
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){
"meta": {
"schema_version": "1.0",
"exported_at": "2026-03-23T12:00:00Z",
"type": "full",
"counts": {
"domains": 8,
"disciplines": 95,
"sub_disciplines": 420,
"topics": 3200,
"domain_disciplines": 110,
"discipline_sub_disciplines": 480,
"sub_discipline_topics": 4100
}
},
"domains": [
{
"id": "a1b2c3d4-...",
"name": "Natural Sciences",
"slug": "natural-sciences",
"description": "Study of the physical world",
"source_updated_at": "2026-03-01T00:00:00Z"
}
],
"disciplines": [
"..."
],
"sub_disciplines": [
"..."
],
"topics": [
{
"id": "d4e5f6a7-...",
"name": "Neural Networks",
"slug": "neural-networks",
"description": "Computing systems inspired by biological networks",
"synonyms": [
"ANN"
],
"parent_topic_id": null,
"source_updated_at": "2026-03-01T00:00:00Z"
}
],
"domain_disciplines": [
{
"domain_id": "a1b2c3d4-...",
"discipline_id": "b2c3d4e5-..."
}
],
"discipline_sub_disciplines": [
"..."
],
"sub_discipline_topics": [
"..."
]
}{
"error": "Invalid or missing API key"
}