Skip to content

API Reference

All endpoints return JSON and are accessible without authentication. CORS is enabled for all origins.

Every node page is also available as markdown by appending .md to the URL (e.g., /nodes/econ/profit-extraction.md).

Nodes

Get a single node

GET /api/nodes/{COORDINATE}

Example:

curl https://retflo.org/api/nodes/ECON.PROFIT.1

Response:

{
  "coordinate": "ECON.PROFIT.1",
  "domain": "econ",
  "tags": ["profit", "surplus-value", "exploitation"],
  "aliases": ["profit is earned", "risk justifies reward"],
  "recursion_point": true,
  "links": {
    "redirect": ["PHIL.COERCION.1", "ECON.EXIT.1"]
  },
  "content": "# The Profit Extraction Problem\n\n..."
}

List nodes

GET /api/nodes
GET /api/nodes?domain=econ

Returns an array of all nodes, optionally filtered by domain. Each entry includes metadata but not full content (use the single-node endpoint for content).

Domains

Get a domain

GET /api/domains/{domain}

Example:

curl https://retflo.org/api/domains/econ

Returns domain metadata and a list of its nodes.

List domains

GET /api/domains

Returns all 7 domains with node counts.

Graph

Full connection graph

GET /api/graph

Returns the complete graph structure: all nodes and all connections between them.

{
  "nodes": [...],
  "connections": [
    {
      "source": "AUTH.FEDERATION.1",
      "target": "AUTH.ENFORCEMENT.1",
      "type": "flow",
      "why": "..."
    }
  ]
}

Search nodes

GET /api/search?q={query}
GET /api/search?q={query}&domain={domain}&tag={tag}

Parameters:

ParameterTypeDescription
qstringSearch query (matches title, content, aliases)
domainstringFilter by domain (auth, econ, hist, phil, rhet, soc, tech)
tagstringFilter by tag

Example:

curl "https://retflo.org/api/search?q=profit&domain=econ"

Rate Limiting

No authentication required. Rate limiting may be applied to prevent abuse. If you need high-volume access, consider fetching /api/graph once and caching locally.