Open data on longevity funding and science: grants with solicitation documents, funding organizations, investors with dossiers, companies with evidence, heroes, projects, theories, the ideas graph. No key needed for any of it.
Base URL: https://eternalsearch.net/api/v1
OpenAPI 3.1 spec (machine-readable, start here for agents/tools): /api/v1/openapi (also at /openapi.json)
Docs as JSON: /api/v1/docs?format=json
AI-agent site map: /llms.txt
MCP server (add as a connector in Claude / ChatGPT / Cursor, no auth): https://eternalsearch.net/api/mcp
Omega Point through your agent: /omega-point/agents · spec /omega-point/api/agent/v1/openapi.json · MCP https://eternalsearch.net/api/mcp/omega-agent
Catalogue of holdings (how much we have, per family): /api/v1/catalogue
Nightly dataset dumps (NDJSON.gz per family): /datasets/index.json
Change feed for re-sync: /api/v1/changes?since=…
Developer landing page: /developers
Restricted-tier docs (Deep Intelligence): /api/v1/docs/intelligence
Data produced by Eternal Search (scores, rationale, extracted requirements, theories, summaries, the ideas graph) is licensed CC BY 4.0, attribution "Eternal Search (eternalsearch.net), powered by Open Longevity". Third-party texts we harvested keep their authors' rights: each record carries text_policy. full (public-domain, open-licence, press-wire or funder-hosted sources) returns the whole text; excerpt_only returns a short quotation plus the source URL. A team key returns full text for every row.
Anonymous requests: 600 per minute per IP (429 with Retry-After beyond that). Use the dumps for bulk access.
Authorization: Bearer es_your_api_key_here
Every open endpoint works without a key. A team key (es_…) adds team-private working data (CRM, contacts, research jobs, pipeline state, emails) and full third-party text. The personal Deep Intelligence layer is served only to the Open Longevity team.
/api/v1 and /api/public send CORS headers and answer browser preflight requests. Configure allowed origins with API_ALLOWED_ORIGINS as * or a comma-separated allowlist.
/grants, /events, /organizations, and /leads return paginated envelopes./search returns grouped arrays: events, grants, and leads for full/top keys./investors, /contacts, /research, and /crm/claims currently return top-level arrays.POST /research creates two jobs in parallel and returns grants_job plus events_job.| Path | Access | Notes |
|---|---|---|
| GET /catalogue | open | Row counts per family, evidence sub-counts, API and dump URLs. Start here. |
| GET /changes | open | Rows updated since a moment; cursor via next_since. |
| GET /grants | open | scope=verified_open (site promise) | verified | all. Verification flags on every row. |
| GET /grants/{public_id} | open | Documents with parsed text, extracted requirements with evidence, label relevance rationale, deep-read history. |
| GET /grants/{public_id}/documents/{id} | open | One solicitation document. |
| GET /organizations, /organizations/{public_id} | open | Funders with labels, relevance rationale and their grants. contact_email needs a team key. |
| GET /investors, /investors/{public_id} | open | Profiles, capital estimates with sources, dossier, funding events, belief timeline, links. Emails/CRM need a team key. |
| GET /investors/{public_id}/content | open | Harvested posts, talks, interviews; text_policy per row. |
| GET /companies, /companies/{public_id} | open | All 689 companies with publication_status; scores, per-dimension rationale, theories, evidence, dossier expansion. |
| GET /companies/{public_id}/publications | records | projects | funding | trials | open | Paginated evidence sub-resources. |
| GET /ratings/companies[/{public_id}] | open | Aliases of /companies. |
| GET /ratings/preservation[/{public_id}] | open | Every scored preservation company with the full evidence dossier. |
| GET /ratings/projects[/{public_id}], /ratings/funds | open | Rated projects with per-dimension scores, rationale and evidence; rated funds. |
| GET /heroes, /heroes/{public_id} | open | Scores, full dimension rationale, investments, donations, organizations founded, every source, beliefs. |
| GET /theories, /theories/clusters, /theories/{id} | open | Theories with Popperian evaluations, clusters, relationships. |
| GET /ideas | open | Canonical ideas graph: nodes and paged relationships. |
| GET /taxonomy, /sponsors, /events, /search, /stats | open | Taxonomy, sponsors, events, search, stats with catalogue totals. |
The Omega Point engine breaks a research goal into open questions, competing hypotheses and deciding experiments. Through the agent door your agent starts a run, follows its status and hands you the published result; at present the run executes on our server from the engine to the titles, deduplication, explanations, question headings, translations and the Russian report (the status says run_mode server), up to three runs per person at a time. Russian versions are the user's choice. Skill package and Node connector at /omega-point/api/agent/v1/skill; remote MCP server at /api/mcp/omega-agent.
| Path | Access | Notes |
|---|---|---|
| GET /leads, /contacts, /pipeline, /crm, /crm/claims | team | Working data of the key's team. |
| GET, POST /research | team | Research jobs spend tokens: never open. |
| GET /intelligence/* | restricted | Deep Intelligence personal layer; Open Longevity team only. |
curl "https://eternalsearch.net/api/v1/catalogue"
curl "https://eternalsearch.net/api/v1/grants?scope=all&limit=5"
curl "https://eternalsearch.net/api/v1/investors?is_person=true&q=aging"
curl "https://eternalsearch.net/api/v1/companies?publication_status=published&limit=5"
{
"grants_job": { "id": "uuid", "status": "pending", "job_type": "grants" },
"events_job": { "id": "uuid", "status": "pending", "job_type": "events" }
}