Dementia Atlas

Open API

The whole corpus is published as static files under /api/v1/ with permissive CORS: JSON per entity and per kind, one-line-per-record NDJSON, CSV for spreadsheets, and a JSON Schema. No key, no rate limit beyond the CDN. Licence CC BY-NC 4.0.

Attribution required

The data are free for non-commercial, educational and research use under CC BY-NC 4.0. If you use the API or the files, name Dementia Atlas and link to dementia-atlas.vercel.app wherever the data or text derived from it appears, for example: Data from Dementia Atlas, CC BY-NC 4.0. Logos remain their owners' trademarks. The same notice is in /api/v1/meta.json, as the first line of every CSV and inside every JSON download from the site's tables.

Files

PathContents
/api/v1/all.jsonAll 72 entities, fully resolved with defaults, plus an incoming map of backlinks per id.
/api/v1/all.ndjsonThe same entities, one JSON object per line with its route, for streaming tools (jq -c, DuckDB, pandas read_json(lines=True)).
/api/v1/schema.jsonJSON Schema (draft 2020-12) of one entity, generated from the Zod schema that validates the corpus at build time.
/api/v1/openapi.jsonOpenAPI 3.1 description of every file here and the feeds, generated at build time from the same layout that writes them.
/api/v1/search.jsonCompact documents (id, kind, name, tldr, route) used by the site search.
/api/v1/diagnoses.json · .csv8 diagnoses. The CSV flattens each record: lists of ids joined with “; ”, nested tables as JSON in the cell.
/api/v1/fronts.json · .csv11 fronts. The CSV flattens each record: lists of ids joined with “; ”, nested tables as JSON in the cell.
/api/v1/technologies.json · .csv10 technologies. The CSV flattens each record: lists of ids joined with “; ”, nested tables as JSON in the cell.
/api/v1/targets.json · .csv5 targets. The CSV flattens each record: lists of ids joined with “; ”, nested tables as JSON in the cell.
/api/v1/drugs.json · .csv9 drugs. The CSV flattens each record: lists of ids joined with “; ”, nested tables as JSON in the cell.
/api/v1/companies.json · .csv3 companies. The CSV flattens each record: lists of ids joined with “; ”, nested tables as JSON in the cell.
/api/v1/institutions.json · .csv4 institutions. The CSV flattens each record: lists of ids joined with “; ”, nested tables as JSON in the cell.
/api/v1/pathways.json · .csv1 pathways. The CSV flattens each record: lists of ids joined with “; ”, nested tables as JSON in the cell.
/api/v1/terms.json · .csv4 terms. The CSV flattens each record: lists of ids joined with “; ”, nested tables as JSON in the cell.
/api/v1/trials.json · .csv4 trials. The CSV flattens each record: lists of ids joined with “; ”, nested tables as JSON in the cell.
/api/v1/pairings.json · .csv1 pairings. The CSV flattens each record: lists of ids joined with “; ”, nested tables as JSON in the cell.
/api/v1/roadmaps.json · .csv1 roadmaps. The CSV flattens each record: lists of ids joined with “; ”, nested tables as JSON in the cell.
/api/v1/ideas.json · .csv3 ideas. The CSV flattens each record: lists of ids joined with “; ”, nested tables as JSON in the cell.
/api/v1/collections.json · .csv1 collections. The CSV flattens each record: lists of ids joined with “; ”, nested tables as JSON in the cell.
/api/v1/people.json · .csv1 people. The CSV flattens each record: lists of ids joined with “; ”, nested tables as JSON in the cell.
/api/v1/bottlenecks.json · .csv4 bottlenecks. The CSV flattens each record: lists of ids joined with “; ”, nested tables as JSON in the cell.
/api/v1/key papers.json · .csv1 key papers. The CSV flattens each record: lists of ids joined with “; ”, nested tables as JSON in the cell.
/api/v1/journals.json · .csv1 journals. The CSV flattens each record: lists of ids joined with “; ”, nested tables as JSON in the cell.
/api/v1/entities/<id>.jsonOne entity with its neighbours, e.g. alzheimers-disease.json, da-lecanemab.json.
/api/v1/my-cancers.jsonEvery diagnosis as id, name, route and hub group: the chooser list the site fetches on demand.
/api/v1/ranking.jsonInstitution ranking rows with the score components.
/api/v1/meta.jsonBuild date, counts, schema version, the list of files and feeds.

Every table on the site also has CSV and JSON buttons that export exactly the rows shown after filtering, and the landscape grid exports the grid.

Feeds

Atom 1.0 feeds for the parts of Dementia Atlas that move. Subscribe in any feed reader; the entries link back to the page and to the primary source.

FeedContents
/feeds/changelog.xml
Changelog
One entry per release of the site.
/feeds/regulatory.xml
Regulatory events
Designations, filings, approvals, complete response letters, withdrawals and label changes, newest first (100).
/feeds/calendar.xml
Readout calendar
Regulatory dates, advisory committees, expected readouts and congresses; expected dates are marked as editorial estimates.
/feeds/pulse.xml
Research pulse
What the leading journals, regulators and news sources are saying, item by item with links.

Bulk download and citation

Each tagged version of Dementia Atlas is published as a GitHub release with the whole /api/v1/ tree attached as a tarball, the CSVs as a zip, the NDJSON, and SHA-256 checksums, so a paper or a pipeline can pin an exact snapshot.

Dementia Atlas contributors. Dementia Atlas: a cited map of dementia. Version <tag>, <date>. https://dementia-atlas.vercel.app (data CC BY-NC 4.0). https://github.com/mikepsinn/dementia-atlas/releases/tag/<tag>

MCP and CLI

The same files are also the machine surface for assistants. Tools read /api/v1/ directly (no key, no checkout) and should end every output with an attribution line.

Command or toolWhat it does
search <query>Word plus concept search, fused as the site does it; each hit says why it matched.
get <id|route>One record: TL;DR, summary, key fields, connected records, sources.
list <kind>Every record of a kind.
curl -s https://dementia-atlas.vercel.app/api/v1/search.json
curl -s https://dementia-atlas.vercel.app/api/v1/entities/alzheimers-disease.json | jq '.entity.name'

Schema and field names live in src/lib/schema.ts.

Schema

Every entity shares base fields (id, kind, name, aka, tldr, summary, status, asOf, wikipedia, links, tags) and relationship arrays holding ids. Kind-specific fields are documented in src/lib/schema.ts in the repository, which is the source of truth and is enforced at build time; schema.json is generated from it.

Examples

# one entity and its neighbouring products
curl -s https://dementia-atlas.vercel.app/api/v1/entities/da-lecanemab.json | jq '.entity.name, .neighbours.trial[].name'

# every approved product as CSV
curl -sO https://dementia-atlas.vercel.app/api/v1/drugs.csv

# stream the whole corpus one record at a time
curl -s https://dementia-atlas.vercel.app/api/v1/all.ndjson | jq -c 'select(.kind=="trial") | {id, name, status}'