Functional Empathy

For researchers

Research API

The same curated collection, as a complete fixed JSON snapshot.

This edition contains 23 paper records. It is not an exhaustive literature search. Each record states its actual reading scope and separate rights.

Download this edition

Pinned API release: 26c0bb5382b44a6631a36d7193d1e5d10f589ad3353e89474e7ae69254162ecf

Fields and limits

Records have stable paper IDs, verified citation text, nullable DOI/authors/year, curated category and constructs, a method description, source/version, reading review, approved original annotations and separate rights fields. Null means missing or unverified, not an inferred value.

Reading depth describes coverage, not scientific validation. An annotation is classified as a source finding, Foundation interpretation or model proposal. Paper files, publisher abstracts, private notes and figures are excluded.

Download the bulk catalog and filter locally. v1 has no server-side query endpoint or pagination. API query parameters are unsupported. Website search parameters are browser-local state. See the OpenAPI 3.1.2 contract and response schemas.

Python example

Pin one descriptor before fetching its catalog; handle HTTP or non-JSON failures.

import json
from urllib.request import urlopen
from urllib.error import HTTPError, URLError

origin = "https://functionalempathy.org"
try:
    with urlopen(origin + "/api/v1/current.json", timeout=10) as response:
        release = json.load(response)
    with urlopen(origin + release["catalog_url"], timeout=10) as response:
        catalog = json.load(response)
except (HTTPError, URLError, ValueError) as error:
    raise RuntimeError("Collection unavailable") from error
papers = [p for p in catalog["papers"] if "Compassion" in p["constructs"]]
print(release["release_id"], [p["id"] for p in papers])

Browser example

async function readJSON(url) {
  const response = await fetch(url);
  if (!response.ok) throw new Error(`HTTP ${response.status}`);
  return response.json();
}
const release = await readJSON('/api/v1/current.json');
const catalog = await readJSON(release.catalog_url);
const paper = catalog.papers.find(p => p.id === 'P078');

Citing a fixed edition

Functional Empathy Research Library. Heart AI Foundation, maintainer. 2026-10-09. Release 26c0bb5382b44a6631a36d7193d1e5d10f589ad3353e89474e7ae69254162ecf. Cite the fixed catalog URL at the approved origin. No dataset DOI is assigned.

Reuse and HTTP behavior

This edition grants no additional reuse license for its curation or original explanations. Bibliographic facts retain their applicable rights. Source articles retain their own terms. Fixed payloads are content-addressed; notices and the current descriptor are separate mutable resources.

Fixed resources support GET and HEAD with validators. Public API responses allow cross-origin reads and OPTIONS. Current-release and notice responses use no-store. Unsupported API queries, unknown resources and unsupported methods return their documented status; clients should also handle network and non-JSON failures.

Collection and review methodology →