← index§API — reference notes
API
Read-only JSON endpoints over the same content that renders this site — themes, threads, hypotheses, and elements. All GET, all public, no auth. Responses are statically generated at build time.
GET /api/themes
List published themes
Every published theme, with its threads, hypotheses, and elements nested inline.
example response
[
{
"label": "career",
"name": "Career",
"slug": "career",
"description": "...",
"status": "active",
"published": true,
"url": "https://edwardfleming.org/",
"threads": [
{
"name": "Career Path Skill Tree",
"slug": "career-path-skill-tree",
"status": "active",
"postCount": 3,
"url": "https://edwardfleming.org/threads/career-path-skill-tree",
"hypotheses": [
{
"name": "...",
"slug": "...",
"status": "open",
"url": "https://edwardfleming.org/threads/career-path-skill-tree",
"elements": [
{
"type": "observations",
"name": "...",
"slug": "...",
"content": "...",
"url": "https://edwardfleming.org/threads/career-path-skill-tree#..."
}
]
}
]
}
]
}
]GET /api/themes/[slug]
Get a single theme
Same shape as one entry from /api/themes. 404s if the slug doesn't exist.
example response
{
"label": "career",
"name": "Career",
"slug": "career",
"description": "...",
"status": "active",
"published": true,
"url": "https://edwardfleming.org/",
"threads": [ /* ... */ ]
}GET /api/threads
List all threads
Every thread across published themes, flattened into a single array. Each thread carries a summary of its parent theme.
example response
[
{
"name": "Career Path Skill Tree",
"slug": "career-path-skill-tree",
"status": "active",
"postCount": 3,
"url": "https://edwardfleming.org/threads/career-path-skill-tree",
"hypotheses": [ /* ... */ ],
"theme": {
"label": "career",
"name": "Career",
"slug": "career",
"status": "active",
"url": "https://edwardfleming.org/"
}
}
]GET /api/threads/[slug]
Get a single thread
The thread and its parent theme summary, returned separately. 404s if the slug doesn't exist.
example response
{
"theme": {
"label": "career",
"name": "Career",
"slug": "career",
"status": "active",
"url": "https://edwardfleming.org/"
},
"thread": {
"name": "Career Path Skill Tree",
"slug": "career-path-skill-tree",
"status": "active",
"postCount": 3,
"url": "https://edwardfleming.org/threads/career-path-skill-tree",
"hypotheses": [ /* ... */ ]
}
}- Only
publishedthemes and their threads are included in list endpoints. - Every node includes a
urlfield pointing at the page a visitor would see it on — an element'surlpoints at its source page if it has one, otherwise its thread anchor. - Unknown slugs return
404with{ "error": "..." }. - No authentication is required or supported. This is declared machine-readably via
/.well-known/oauth-protected-resource(RFC 9728), whoseauthorization_serverslist is empty — there is no authorization server protecting this API.