{"openapi":"3.1.0","info":{"title":"Eternal Search API","version":"1.0.0","description":"Verified funding discovery across science, medicine, engineering, and adjacent fields. Powered by Open Longevity. Public (no key): grants, events, search, stats, ratings (companies, funds, projects, heroes). Full tier (Bearer token): also investors, leads, organizations, sponsors, contacts, research, pipeline, CRM. Top tier (Bearer token): full tier plus Deep Intelligence (co-attendance events, tracked investor dossiers).","contact":{"url":"https://eternalsearch.net/api/v1/docs"}},"servers":[{"url":"https://eternalsearch.net/api/v1","description":"Production"}],"security":[{"bearerAuth":[]},{}],"paths":{"/api/omega/experiments/{public_id}/comments":{"servers":[{"url":"https://eternalsearch.net","description":"Production"}],"get":{"operationId":"listExperimentComments","summary":"Read the discussion on an Omega experiment","description":"The comment thread on a published Omega Point experiment, oldest first, flat. Each comment carries parent_id — the comment it answers — so a reply can be tied to its question. Open to everyone, no key.","security":[{}],"parameters":[{"name":"public_id","in":"path","required":true,"description":"The code in the experiment URL, e.g. dRlh1L7s in /omega/dRlh1L7s","schema":{"type":"string"}}],"responses":{"200":{"description":"The live thread","content":{"application/json":{"schema":{"type":"object","properties":{"comments":{"type":"array","items":{"$ref":"#/components/schemas/ExperimentComment"}}}}}}},"404":{"description":"No published experiment with that public id"}}},"post":{"operationId":"postExperimentComment","summary":"Comment on an Omega experiment","description":"Add a comment to a published Omega Point experiment. Open to AI agents on exactly the same terms as to people: no API key, no account, no approval step, no moderation queue. Declare yourself with kind=\"agent\" — that is a label on the comment, never a restriction, and it is never inferred from your User-Agent. The response carries a delete_token; keep it to remove your own comment later. One rate limit applies identically to every author: 12 comments per 10 minutes, and no byte-identical repost within 24 hours.","security":[{}],"parameters":[{"name":"public_id","in":"path","required":true,"description":"The code in the experiment URL, e.g. dRlh1L7s","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","required":["body"],"properties":{"body":{"type":"string","minLength":1,"maxLength":5000,"description":"The comment. Rejected over 5000 characters, never truncated"},"name":{"type":"string","maxLength":80,"description":"How to sign it. Blank posts as \"Unnamed agent\" or \"Anonymous reader\""},"kind":{"type":"string","enum":["agent","visitor"],"default":"visitor","description":"Self-declared author kind. Ignored when a session cookie identifies an account"},"parent_id":{"type":"string","format":"uuid","description":"Id of the comment being answered. Omit for a top-level comment. Must be a live comment on this same experiment, else 400"}}}}}},"responses":{"201":{"description":"Posted","content":{"application/json":{"schema":{"type":"object","properties":{"comment":{"$ref":"#/components/schemas/ExperimentComment"},"delete_token":{"type":"string","nullable":true,"description":"Returned exactly once; the only way to remove this comment without an account"}}}}}},"400":{"description":"Empty body, body/name over the cap, or a parent_id that is not a live comment on this experiment"},"404":{"description":"No published experiment with that public id"},"409":{"description":"That exact comment is already on this experiment"},"429":{"description":"Rate limit — same limit for every author"}}}},"/api/omega/comments/{id}":{"servers":[{"url":"https://eternalsearch.net","description":"Production"}],"delete":{"operationId":"removeExperimentComment","summary":"Remove your own comment","description":"Soft-delete one comment. The author removes their own: an account through its session, anyone else through the delete_token they were handed when posting. Anyone else gets 403 whether or not the comment exists.","security":[{}],"parameters":[{"name":"id","in":"path","required":true,"description":"Comment id returned when it was posted","schema":{"type":"string","format":"uuid"}},{"name":"X-Comment-Token","in":"header","description":"The delete_token from the POST response","schema":{"type":"string"}}],"responses":{"200":{"description":"Removed"},"401":{"description":"No session and no token"},"403":{"description":"Not the author, already removed, or no such comment"}}}},"/grants":{"get":{"operationId":"listGrants","summary":"List open funding grants","description":"List verified open grants ordered by soonest deadline. Filter by label, funder, text, or deadline range. Public tier: title, funder, deadline, URL, labels. Bearer token adds relevance_score, stage, and source.","parameters":[{"name":"q","in":"query","description":"Text search across grant title and description","schema":{"type":"string"}},{"name":"label","in":"query","description":"Filter to grants with this label slug (e.g. longevity, aging, biotech)","schema":{"type":"string"}},{"name":"labels","in":"query","description":"Comma-separated label slugs — grant must have ALL","schema":{"type":"string"}},{"name":"labels_any","in":"query","description":"Comma-separated label slugs — grant must have at least one","schema":{"type":"string"}},{"name":"funder","in":"query","description":"Filter by funder name (partial, case-insensitive)","schema":{"type":"string"}},{"name":"deadline_after","in":"query","description":"Grants with deadline on or after this date (YYYY-MM-DD)","schema":{"type":"string","format":"date"}},{"name":"deadline_before","in":"query","description":"Grants with deadline on or before this date (YYYY-MM-DD)","schema":{"type":"string","format":"date"}},{"name":"include_expired","in":"query","description":"Include past-deadline grants (default: false)","schema":{"type":"boolean","default":false}},{"name":"limit","in":"query","description":"Results per page (max 200, default 50)","schema":{"type":"integer","default":50,"maximum":200,"minimum":1}},{"name":"offset","in":"query","description":"Pagination offset","schema":{"type":"integer","default":0,"minimum":0}}],"responses":{"200":{"description":"Paginated list of grants","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/Grant"}},"pagination":{"$ref":"#/components/schemas/Pagination"},"access_level":{"type":"string"}}}}}}}}},"/events":{"get":{"operationId":"listEvents","summary":"List upcoming research events","description":"Conferences, summits, and workshops on longevity, biotech, and adjacent fields, ordered by start date. Public tier: core fields. Bearer token adds relevance_score and discovery metadata.","parameters":[{"name":"q","in":"query","description":"Text search in title, description, organizer, or location","schema":{"type":"string"}},{"name":"event_type","in":"query","description":"Filter by event type (e.g. conference, workshop, summit)","schema":{"type":"string"}},{"name":"location","in":"query","description":"Filter by location (partial match)","schema":{"type":"string"}},{"name":"date_after","in":"query","description":"Events starting on or after this date (YYYY-MM-DD)","schema":{"type":"string","format":"date"}},{"name":"date_before","in":"query","description":"Events starting on or before this date (YYYY-MM-DD)","schema":{"type":"string","format":"date"}},{"name":"include_past","in":"query","description":"Include past events (default: false)","schema":{"type":"boolean","default":false}},{"name":"limit","in":"query","description":"Results per page (max 200, default 50)","schema":{"type":"integer","default":50,"maximum":200,"minimum":1}},{"name":"offset","in":"query","description":"Pagination offset","schema":{"type":"integer","default":0,"minimum":0}}],"responses":{"200":{"description":"Paginated list of events","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/Event"}},"pagination":{"$ref":"#/components/schemas/Pagination"}}}}}}}}},"/search":{"get":{"operationId":"searchFunding","summary":"Cross-entity text search (grants + events)","description":"Unified keyword search returning matching grants and upcoming events. Full-tier Bearer token also returns raw leads. Use for broad queries like \"gene therapy funding\" or \"longevity conferences\".","parameters":[{"name":"q","in":"query","required":true,"description":"Search query (min 2 characters)","schema":{"type":"string","minLength":2}},{"name":"limit","in":"query","description":"Max results per entity type (max 100, default 20)","schema":{"type":"integer","default":20,"maximum":100,"minimum":1}}],"responses":{"200":{"description":"Search results grouped by entity type","content":{"application/json":{"schema":{"type":"object","properties":{"grants":{"type":"array","items":{"$ref":"#/components/schemas/SearchGrant"}},"events":{"type":"array","items":{"$ref":"#/components/schemas/SearchEvent"}}}}}}},"400":{"description":"Query too short","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/stats":{"get":{"operationId":"getFundingStats","summary":"Funding landscape statistics","description":"High-level counts and date ranges for the grants and events catalogue. Full-tier Bearer token adds lead pipeline stats and recent discovery run data.","responses":{"200":{"description":"Aggregated stats","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Stats"}}}}}}},"/organizations":{"get":{"operationId":"listOrganizations","summary":"List grant-giving organizations — full-tier Bearer token required","description":"Foundations, government bodies, universities, and labs that fund research. Filter by type, label, or minimum open grant count. Returns 403 without a full-tier key.","parameters":[{"name":"q","in":"query","description":"Text search in name and description","schema":{"type":"string"}},{"name":"org_type","in":"query","description":"Filter by type","schema":{"type":"string","enum":["foundation","government","corporate","university","lab","hybrid_fund"]}},{"name":"label","in":"query","description":"Filter to orgs with this label slug","schema":{"type":"string"}},{"name":"labels","in":"query","description":"Comma-separated label slugs — org must have ALL","schema":{"type":"string"}},{"name":"labels_any","in":"query","description":"Comma-separated label slugs — org must have at least one","schema":{"type":"string"}},{"name":"min_open_grants","in":"query","description":"Only orgs with at least this many active open grants","schema":{"type":"integer","minimum":0}},{"name":"limit","in":"query","schema":{"type":"integer","default":50,"maximum":200,"minimum":1}},{"name":"offset","in":"query","schema":{"type":"integer","default":0,"minimum":0}}],"responses":{"200":{"description":"Paginated list of organizations","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/Organization"}},"pagination":{"$ref":"#/components/schemas/Pagination"}}}}}},"403":{"description":"Full-tier key required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/investors":{"get":{"operationId":"listInvestors","summary":"List profiled investors — full-tier Bearer token required","description":"Equity investors, angels, VCs, and family offices with bios, investment entities, and linked grant opportunities. Returns 403 without a full-tier key.","parameters":[{"name":"q","in":"query","description":"Text search in name and bio","schema":{"type":"string"}},{"name":"type","in":"query","description":"Filter by investor type (individual, angel, vc, family_office, corporate_vc, accelerator, institution, lp)","schema":{"type":"string"}},{"name":"limit","in":"query","description":"Results per page (max 200, default 50)","schema":{"type":"integer","default":50,"maximum":200,"minimum":1}},{"name":"include_stale","in":"query","description":"Include stale/archived linked leads (default: false)","schema":{"type":"boolean","default":false}}],"responses":{"200":{"description":"List of investors","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Investor"}}}}},"403":{"description":"Full-tier key required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/leads":{"get":{"operationId":"listLeads","summary":"List raw discovery leads — full-tier Bearer token required","description":"Unprocessed and partially-processed funding opportunities from the discovery pipeline. Includes contact_email and approach_strategy. Returns 403 without a full-tier key.","parameters":[{"name":"q","in":"query","description":"Text search in name and description","schema":{"type":"string"}},{"name":"entity_type","in":"query","description":"Filter by entity type","schema":{"type":"string"}},{"name":"opportunity_type","in":"query","description":"Filter by opportunity type (e.g. grant, investment)","schema":{"type":"string"}},{"name":"status","in":"query","description":"Filter by pipeline status","schema":{"type":"string"}},{"name":"stage","in":"query","description":"Filter by pipeline stage","schema":{"type":"string"}},{"name":"min_score","in":"query","description":"Minimum relevance score (0–100)","schema":{"type":"integer","minimum":0,"maximum":100}},{"name":"limit","in":"query","description":"Results per page (max 200, default 50)","schema":{"type":"integer","default":50,"maximum":200,"minimum":1}},{"name":"offset","in":"query","description":"Pagination offset","schema":{"type":"integer","default":0,"minimum":0}},{"name":"include_stale","in":"query","description":"Include archived/inactive/legacy leads (default: false)","schema":{"type":"boolean","default":false}}],"responses":{"200":{"description":"Paginated list of leads","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/Lead"}},"pagination":{"$ref":"#/components/schemas/Pagination"}}}}}},"403":{"description":"Full-tier key required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/ratings/companies":{"get":{"operationId":"listRatedCompanies","summary":"List rated longevity companies","description":"Tier-aware. Public tier returns site-visible companies (is_public=true and not disqualified). A full/top-tier key returns ALL published companies (is_public=true, including disqualified) with extra status flags. Page with limit/offset (max 200) to fetch the full set.","parameters":[{"name":"q","in":"query","description":"Text search across name and description","schema":{"type":"string"}},{"name":"limit","in":"query","schema":{"type":"integer","default":50,"maximum":200,"minimum":1}},{"name":"offset","in":"query","schema":{"type":"integer","default":0,"minimum":0}}],"responses":{"200":{"description":"Paginated list of rated companies","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/RatedCompany"}},"pagination":{"$ref":"#/components/schemas/Pagination"},"access_level":{"type":"string"}}}}}}}}},"/ratings/companies/{publicId}":{"get":{"operationId":"getRatedCompany","summary":"Rated company detail","description":"Tier-aware. Public tier returns the 8-dimension scores with rationale_summary, the theories list, and top-cited publications (analyst-only fields stripped). A full/top-tier key additionally receives the full dossier_expansion and an evidence bundle (all accepted public records with full text, extracted projects, linked people).","parameters":[{"name":"publicId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Company detail with scores, theories, and publications (plus full evidence for full/top-tier keys)","content":{"application/json":{"schema":{"type":"object","properties":{"company":{"$ref":"#/components/schemas/RatedCompanyDetail"},"access_level":{"type":"string"}}}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/ratings/preservation":{"get":{"operationId":"listRatedPreservationCompanies","summary":"List rated preservation companies","description":"Cryonics, brain preservation, genome, digital-afterlife, biobanking and adjacent companies scored on continuity + legacy overalls. Tier-aware: public tier returns is_public=true rows; a full/top-tier key returns every scored company (including those not yet public).","parameters":[{"name":"q","in":"query","description":"Text search across name and one_liner","schema":{"type":"string"}},{"name":"section","in":"query","description":"Filter by preservation section","schema":{"type":"string"}},{"name":"limit","in":"query","schema":{"type":"integer","default":50,"maximum":200,"minimum":1}},{"name":"offset","in":"query","schema":{"type":"integer","default":0,"minimum":0}}],"responses":{"200":{"description":"Paginated list of rated preservation companies","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/RatedPreservationCompany"}},"pagination":{"$ref":"#/components/schemas/Pagination"},"access_level":{"type":"string"}}}}}}}}},"/ratings/preservation/{publicId}":{"get":{"operationId":"getRatedPreservationCompany","summary":"Rated preservation company detail","description":"Tier-aware. Public tier returns high-confidence dimensions only. A full/top-tier key returns all dimensions with raw rationale plus the full evidence dossier (facets, sources, publications, projects, funding, partnerships, IP, people, social, theories).","parameters":[{"name":"publicId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Preservation company detail with dimensions (plus full evidence for full/top-tier keys)","content":{"application/json":{"schema":{"type":"object","properties":{"company":{"$ref":"#/components/schemas/RatedPreservationCompany"},"access_level":{"type":"string"}}}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/ratings/funds":{"get":{"operationId":"listRatedFunds","summary":"List rated funds (public)","description":"Public-tier endpoint. Returns grant-giving organizations that have at least one published review. No API key required.","parameters":[{"name":"q","in":"query","description":"Partial name match","schema":{"type":"string"}},{"name":"limit","in":"query","schema":{"type":"integer","default":50,"maximum":200,"minimum":1}},{"name":"offset","in":"query","schema":{"type":"integer","default":0,"minimum":0}}],"responses":{"200":{"description":"Paginated list of rated funds","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/RatedFund"}},"pagination":{"$ref":"#/components/schemas/Pagination"},"access_level":{"type":"string"}}}}}}}}},"/ratings/projects":{"get":{"operationId":"listRatedProjects","summary":"List rated projects (public)","description":"Public-tier endpoint. Returns rated longevity projects (is_public=true, rating_status=ready). Returns the headline overall score, scientific/breakthrough/investor sub-overalls, section assignment, and the brief_concise blurb.","parameters":[{"name":"q","in":"query","description":"Text search across name and brief","schema":{"type":"string"}},{"name":"section","in":"query","description":"Filter by section slug (bioreplacement, bioinformation, drug-discovery, genetic-cellular-therapies, aging-biology, diagnostics-biomarkers, brain-cognitive, research-infrastructure)","schema":{"type":"string"}},{"name":"limit","in":"query","schema":{"type":"integer","default":50,"maximum":200,"minimum":1}},{"name":"offset","in":"query","schema":{"type":"integer","default":0,"minimum":0}}],"responses":{"200":{"description":"Paginated list of rated projects","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/RatedProject"}},"pagination":{"$ref":"#/components/schemas/Pagination"},"access_level":{"type":"string"}}}}}}}}},"/ratings/projects/{publicId}":{"get":{"operationId":"getRatedProject","summary":"Rated project detail — full transparency (public)","description":"Public-tier detail for a single rated project. Returns ALL per-dimension scores, LLM rationale, risk panel, evidence rows, authors, and linked companies. This endpoint is the explicit full-transparency exception to public projection rules.","parameters":[{"name":"publicId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Project detail with full dim scores, rationale, evidence, authors, companies","content":{"application/json":{"schema":{"type":"object","properties":{"project":{"$ref":"#/components/schemas/RatedProjectDetail"},"authors":{"type":"array","items":{"type":"object"}},"companies":{"type":"array","items":{"type":"object"}},"evidence":{"type":"array","items":{"type":"object"}},"access_level":{"type":"string"}}}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/theories":{"get":{"operationId":"listTheories","summary":"List scientific theories held by companies and projects (public)","description":"Scientific theories extracted from company and project evidence, each with its Popperian evaluation (premise plausibility, explanatory power, falsifiability, ambition — latest run per dimension) and a count of every connection group. Public tier returns theories whose OWNER is published (company is_public=true, or rated project is_public=true and rating_status=ready). Bearer token adds independent theories, theories on unpublished owners, and the extraction provenance (extraction_confidence, added_by, added_via).","parameters":[{"name":"q","in":"query","description":"Text search across theory name, statement, and summary","schema":{"type":"string"}},{"name":"owner_kind","in":"query","description":"Filter by owner type","schema":{"type":"string","enum":["company","rated_project"]}},{"name":"company","in":"query","description":"Filter to theories owned by this company public_id","schema":{"type":"string"}},{"name":"project","in":"query","description":"Filter to theories owned by this rated project public_id","schema":{"type":"string"}},{"name":"cluster","in":"query","description":"Filter to theories in this theory-cluster slug","schema":{"type":"string"}},{"name":"min_popperian","in":"query","description":"Minimum summed Popperian score across the four dimensions (0-40)","schema":{"type":"number"}},{"name":"sort","in":"query","description":"Sort key","schema":{"type":"string","enum":["popperian_sum","theory_name","extracted_at","owner_name","premise_plausibility","explanatory_power","falsifiability","ambition","foundational_alignment_avg"],"default":"popperian_sum"}},{"name":"order","in":"query","schema":{"type":"string","enum":["asc","desc"],"default":"desc"}},{"name":"limit","in":"query","schema":{"type":"integer","default":50,"maximum":200,"minimum":1}},{"name":"offset","in":"query","schema":{"type":"integer","default":0,"minimum":0}}],"responses":{"200":{"description":"Paginated list of theories","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/Theory"}},"pagination":{"$ref":"#/components/schemas/Pagination"},"access_level":{"type":"string"}}}}}}}}},"/theories/clusters":{"get":{"operationId":"listTheoryClusters","summary":"List theory clusters — the theory-to-theory backbone (public)","description":"A cluster is a canonical claim that several independently-extracted theories were judged to be restatements of. Use a cluster slug with GET /theories?cluster=<slug> to pull its members. Counts are tier-aware: a public caller only counts members whose owner is published, so theory_count can be lower than true membership.","parameters":[{"name":"q","in":"query","description":"Text search across cluster slug and canonical statement","schema":{"type":"string"}},{"name":"level","in":"query","description":"Filter by cluster level","schema":{"type":"string"}},{"name":"parent","in":"query","description":"Filter to children of this cluster slug","schema":{"type":"string"}},{"name":"include_deprecated","in":"query","description":"Include deprecated/merged clusters (default: false)","schema":{"type":"boolean","default":false}},{"name":"limit","in":"query","schema":{"type":"integer","default":50,"maximum":200,"minimum":1}},{"name":"offset","in":"query","schema":{"type":"integer","default":0,"minimum":0}}],"responses":{"200":{"description":"Paginated list of theory clusters","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/TheoryCluster"}},"pagination":{"$ref":"#/components/schemas/Pagination"},"access_level":{"type":"string"}}}}}}}}},"/theories/{id}":{"get":{"operationId":"getTheory","summary":"Theory detail with all connections (public)","description":"A single theory plus every edge hanging off it: owner company or rated project, per-dimension Popperian scores with rationale and supporting/counter evidence, cluster memberships, sibling theories sharing those clusters, person endorsements, foundational-theory alignment, linked company projects, and the reasoning tree. Sibling theories are filtered by the same owner-visibility rule, so the cluster graph never exposes an unpublished owner.","parameters":[{"name":"id","in":"path","required":true,"description":"Theory UUID","schema":{"type":"string","format":"uuid"}}],"responses":{"200":{"description":"Theory detail with connections","content":{"application/json":{"schema":{"$ref":"#/components/schemas/TheoryDetail"}}}},"404":{"description":"Not found, or owner not published for this tier","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/heroes":{"get":{"operationId":"listHeroes","summary":"List rated longevity heroes (public)","description":"Public-tier endpoint. Returns rated heroes (is_public=true) with overall score, role tags, theme tags, total high-confidence capital moved, and the per-dimension score rows.","parameters":[{"name":"q","in":"query","description":"Text search across name, tagline, impact statement","schema":{"type":"string"}},{"name":"role","in":"query","description":"Filter by role tag","schema":{"type":"string"}},{"name":"theme","in":"query","description":"Filter by theme tag (vision statement kind)","schema":{"type":"string"}},{"name":"limit","in":"query","schema":{"type":"integer","default":50,"maximum":200,"minimum":1}},{"name":"offset","in":"query","schema":{"type":"integer","default":0,"minimum":0}}],"responses":{"200":{"description":"Paginated list of rated heroes","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/Hero"}},"pagination":{"$ref":"#/components/schemas/Pagination"},"access_level":{"type":"string"}}}}}}}}},"/heroes/{publicId}":{"get":{"operationId":"getHero","summary":"Hero detail (public)","description":"Public-tier detail for a single rated hero. Returns bio, scores, vision statements, strategy profile, investments, donations, orgs founded, scientific sources, bravery exhibits, self-experiments, company connections, and belief timeline.","parameters":[{"name":"publicId","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Hero detail with all public sections","content":{"application/json":{"schema":{"type":"object","properties":{"hero":{"$ref":"#/components/schemas/HeroDetail"},"scores":{"type":"array","items":{"type":"object"}},"vision_statements":{"type":"array","items":{"type":"object"}},"strategy":{"type":["object","null"]},"investments":{"type":"array","items":{"type":"object"}},"donations":{"type":"array","items":{"type":"object"}},"orgs_founded":{"type":"array","items":{"type":"object"}},"scientific_sources":{"type":"array","items":{"type":"object"}},"bravery_exhibits":{"type":"array","items":{"type":"object"}},"self_experiments":{"type":"array","items":{"type":"object"}},"company_connections":{"type":"array","items":{"type":"object"}},"belief_timeline":{"type":"array","items":{"type":"object"}},"access_level":{"type":"string"}}}}}},"404":{"description":"Not found","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/intelligence/events":{"get":{"operationId":"listIntelligenceEvents","summary":"List co-attendance events — top-tier Bearer token required","description":"Deep Intelligence: key events with investor co-attendance. Requires a top-tier API key. Audit-logged.","parameters":[{"name":"min","in":"query","description":"Minimum attendee count","schema":{"type":"integer","minimum":1}}],"responses":{"200":{"description":"Key events with co-attendance counts"},"403":{"description":"Top-tier key required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/intelligence/investors":{"get":{"operationId":"listTrackedInvestors","summary":"List tracked investors — top-tier Bearer token required","description":"Deep Intelligence: tracked investors with funding sequence, event-attendance, and health-signal indicators. Requires a top-tier API key. Audit-logged.","responses":{"200":{"description":"Tracked investor rows"},"403":{"description":"Top-tier key required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/intelligence/investors/{id}":{"get":{"operationId":"getTrackedInvestor","summary":"Tracked investor dossier — top-tier Bearer token required","description":"Deep Intelligence dossier for one tracked investor: events, funding rounds, hypotheses, semantic profile. Requires a top-tier API key AND OpenLongevity team membership. Audit-logged.","parameters":[{"name":"id","in":"path","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Deep dossier"},"403":{"description":"Top-tier key + OL team required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"404":{"description":"Investor not found"}}}},"/sponsors":{"get":{"operationId":"listSponsors","summary":"List event sponsors — full-tier Bearer token required","description":"Organizations that sponsor longevity and biotech research events. Filterable by type and label. Returns event count per sponsor. Returns 403 without a full-tier key.","parameters":[{"name":"q","in":"query","description":"Text search in name and description","schema":{"type":"string"}},{"name":"sponsor_type","in":"query","description":"Filter by sponsor type","schema":{"type":"string","enum":["corporate","foundation","government","university","individual","vc_fund","accelerator","other"]}},{"name":"label","in":"query","description":"Filter to sponsors with this label slug","schema":{"type":"string"}},{"name":"labels","in":"query","description":"Comma-separated label slugs — sponsor must have ALL","schema":{"type":"string"}},{"name":"labels_any","in":"query","description":"Comma-separated label slugs — sponsor must have at least one","schema":{"type":"string"}},{"name":"limit","in":"query","schema":{"type":"integer","default":50,"maximum":200,"minimum":1}},{"name":"offset","in":"query","schema":{"type":"integer","default":0,"minimum":0}}],"responses":{"200":{"description":"Paginated list of sponsors","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/Sponsor"}},"pagination":{"$ref":"#/components/schemas/Pagination"}}}}}},"403":{"description":"Full-tier key required","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}},"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","description":"Eternal Search API key (es_…). Tiers are cumulative — a Top key satisfies Full and Public. Without a key you get public-tier access (grants, events, search, stats, ratings, heroes). A Full key adds investors, leads, organizations, sponsors, contacts, research, pipeline, CRM. A Top key additionally unlocks Deep Intelligence endpoints under /intelligence/*."}},"schemas":{"ExperimentComment":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"parent_id":{"type":"string","format":"uuid","nullable":true,"description":"The comment this one answers; null at the top of the thread. The list is flat and chronological — nest it yourself if you need the tree"},"author_kind":{"type":"string","enum":["account","visitor","agent"],"description":"Who wrote it. A label only — the three kinds have identical rights"},"author_name":{"type":"string","nullable":true,"description":"Account name, or the self-declared name of a visitor or agent"},"author_image":{"type":"string","nullable":true,"description":"Avatar URL, accounts only"},"body":{"type":"string"},"created_at":{"type":"string","format":"date-time"}}},"Grant":{"type":"object","properties":{"id":{"type":"string"},"public_id":{"type":"string","nullable":true},"title":{"type":"string"},"description":{"type":"string","nullable":true},"funder_name":{"type":"string"},"deadline":{"type":"string","format":"date-time","nullable":true},"url":{"type":"string","description":"Direct application URL"},"info_url":{"type":"string","nullable":true},"location":{"type":"string","nullable":true},"labels":{"type":"array","items":{"type":"string"}},"public_url":{"type":"string","nullable":true},"relevance_score":{"type":"number","nullable":true,"description":"Full-tier only: 0–100"},"stage":{"type":"string","nullable":true,"description":"Full-tier only"},"status":{"type":"string","nullable":true,"description":"Full-tier only"},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"}}},"Event":{"type":"object","properties":{"id":{"type":"string"},"public_id":{"type":"string","nullable":true},"title":{"type":"string"},"description":{"type":"string","nullable":true},"url":{"type":"string","nullable":true},"registration_url":{"type":"string","nullable":true},"start_date":{"type":"string","format":"date-time","nullable":true},"end_date":{"type":"string","format":"date-time","nullable":true},"submission_deadline":{"type":"string","format":"date-time","nullable":true},"location":{"type":"string","nullable":true},"is_online":{"type":"boolean","nullable":true},"organizer":{"type":"string","nullable":true},"event_type":{"type":"string","nullable":true},"submission_url":{"type":"string","nullable":true},"topics":{"type":"array","items":{"type":"string"},"nullable":true},"prizes_text":{"type":"string","nullable":true},"eligibility_text":{"type":"string","nullable":true},"relevance_score":{"type":"number","nullable":true},"public_url":{"type":"string","nullable":true},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"}}},"Investor":{"type":"object","properties":{"id":{"type":"string"},"public_id":{"type":"string","nullable":true},"name":{"type":"string"},"type":{"type":"string","description":"individual, angel, vc, family_office, corporate_vc, accelerator, institution, lp"},"bio":{"type":"string","nullable":true},"entities":{"type":"array","items":{"type":"object","properties":{"entity_name":{"type":"string"},"entity_type":{"type":"string"},"role":{"type":"string","nullable":true},"url":{"type":"string","nullable":true}}}},"linked_leads":{"type":"array","items":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"relationship":{"type":"string","nullable":true},"relevance_score":{"type":"number","nullable":true}}}},"public_url":{"type":"string","nullable":true}}},"Lead":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"entity_type":{"type":"string","nullable":true},"opportunity_types":{"type":"array","items":{"type":"string"}},"status":{"type":"string","nullable":true},"stage":{"type":"string","nullable":true},"active_action":{"type":"string","nullable":true},"relevance_score":{"type":"number","nullable":true},"description":{"type":"string","nullable":true},"url":{"type":"string","nullable":true},"location":{"type":"string","nullable":true},"contact_email":{"type":"string","nullable":true},"submission_url":{"type":"string","nullable":true},"info_url":{"type":"string","nullable":true},"approach_strategy":{"type":"string","nullable":true},"grant_deadline":{"type":"string","format":"date-time","nullable":true},"discovery_source":{"type":"string","nullable":true},"created_at":{"type":"string","format":"date-time"},"updated_at":{"type":"string","format":"date-time"}}},"Organization":{"type":"object","properties":{"id":{"type":"string"},"public_id":{"type":"string","nullable":true},"name":{"type":"string"},"org_type":{"type":"string"},"description":{"type":"string","nullable":true},"location":{"type":"string","nullable":true},"url":{"type":"string","nullable":true},"grants_count":{"type":"integer"},"open_grants_count":{"type":"integer"},"next_open_deadline":{"type":"string","format":"date-time","nullable":true},"labels":{"type":"array","items":{"type":"string"}},"actionability_score":{"type":"number","nullable":true},"public_url":{"type":"string","nullable":true}}},"Sponsor":{"type":"object","properties":{"id":{"type":"string"},"public_id":{"type":"string","nullable":true},"name":{"type":"string"},"slug":{"type":"string","nullable":true},"sponsor_type":{"type":"string","nullable":true},"description":{"type":"string","nullable":true},"location":{"type":"string","nullable":true},"url":{"type":"string","nullable":true},"logo_url":{"type":"string","nullable":true},"events_count":{"type":"integer"},"labels":{"type":"array","items":{"type":"string"}},"public_url":{"type":"string","nullable":true}}},"SearchGrant":{"type":"object","properties":{"id":{"type":"string"},"title":{"type":"string"},"funder_name":{"type":"string"},"deadline":{"type":"string","format":"date-time","nullable":true},"url":{"type":"string"},"public_id":{"type":"string","nullable":true}}},"SearchEvent":{"type":"object","properties":{"id":{"type":"string"},"title":{"type":"string"},"description":{"type":"string","nullable":true},"url":{"type":"string","nullable":true},"start_date":{"type":"string","format":"date-time","nullable":true},"location":{"type":"string","nullable":true},"organizer":{"type":"string","nullable":true},"event_type":{"type":"string","nullable":true}}},"Theory":{"type":"object","properties":{"id":{"type":"string","format":"uuid","description":"Theory identifier — use with GET /theories/{id}"},"theory_name":{"type":"string"},"theory_summary":{"type":"string","nullable":true},"theory_text":{"type":"string","description":"The theory statement as extracted"},"source_url":{"type":"string","nullable":true},"source_type":{"type":"string","nullable":true,"description":"publication | company_website | press_release | patent | interview | investor_deck | manual_entry"},"is_primary":{"type":"boolean","description":"The owner's central theory"},"extracted_at":{"type":"string","nullable":true},"owner":{"$ref":"#/components/schemas/TheoryOwner"},"evaluation":{"type":"object","description":"Popperian evaluation — latest run per dimension.","properties":{"popperian_sum":{"type":"number","nullable":true,"description":"Sum of the four dimensions, 0-40"},"premise_plausibility":{"type":"number","nullable":true},"explanatory_power":{"type":"number","nullable":true},"falsifiability":{"type":"number","nullable":true},"ambition":{"type":"number","nullable":true},"dimensions":{"type":"object","additionalProperties":{"type":"number","nullable":true}},"foundational_alignment_avg":{"type":"number","nullable":true}}},"connections":{"type":"object","description":"Edge counts; the edges themselves are on GET /theories/{id}.","properties":{"cluster_slugs":{"type":"array","items":{"type":"string"}},"cluster_count":{"type":"integer"},"endorsement_count":{"type":"integer"},"foundational_alignment_count":{"type":"integer"},"project_count":{"type":"integer"},"reasoning_node_count":{"type":"integer"}}},"detail_url":{"type":"string"},"extraction_confidence":{"type":"string","nullable":true,"description":"Full tier only"},"added_by":{"type":"string","nullable":true,"description":"Full tier only"},"added_by_user_email":{"type":"string","nullable":true,"description":"Full tier only"},"added_via":{"type":"string","nullable":true,"description":"Full tier only"}}},"TheoryOwner":{"type":"object","properties":{"kind":{"type":"string","enum":["company","rated_project"]},"name":{"type":"string","nullable":true},"public_id":{"type":"string","nullable":true},"public_url":{"type":"string","nullable":true},"is_public":{"type":"boolean","description":"Full tier only"}}},"TheoryCluster":{"type":"object","properties":{"slug":{"type":"string"},"canonical_statement":{"type":"string"},"level":{"type":"string"},"parent_cluster_slug":{"type":"string","nullable":true},"methodology_dimensions":{"type":"array","items":{"type":"string"}},"deprecated":{"type":"boolean"},"merged_into_slug":{"type":"string","nullable":true},"theory_count":{"type":"integer","description":"Members visible to this tier"},"owner_count":{"type":"integer","description":"Distinct owners among visible members"},"avg_popperian_sum":{"type":"number","nullable":true},"seeded_by":{"type":"string","nullable":true,"description":"Full tier only"}}},"TheoryDetail":{"type":"object","properties":{"theory":{"$ref":"#/components/schemas/Theory"},"owner":{"$ref":"#/components/schemas/TheoryOwner"},"evaluation":{"type":"object","properties":{"layer":{"type":"string"},"popperian_sum":{"type":"number","nullable":true},"dimensions":{"type":"object","additionalProperties":{"type":"number","nullable":true}},"scores":{"type":"array","items":{"type":"object","properties":{"dimension":{"type":"string"},"score":{"type":"number","nullable":true},"rationale":{"type":"string"},"supporting_evidence":{"type":"array","items":{"type":"string"}},"counter_evidence":{"type":"array","items":{"type":"string"}},"confidence":{"type":"string","nullable":true}}}},"foundational_alignment_avg":{"type":"number","nullable":true}}},"connections":{"type":"object","properties":{"clusters":{"type":"array","items":{"type":"object"},"description":"Cluster memberships with role, confidence, and assignment rationale"},"related_theories":{"type":"array","items":{"type":"object"},"description":"Sibling theories sharing a cluster — the theory-to-theory edge"},"endorsements":{"type":"array","items":{"type":"object"},"description":"People who endorse, reject, or qualify the theory, with rationale"},"foundational_alignment":{"type":"array","items":{"type":"object"},"description":"Agreement/tension against foundational aging theories"},"projects":{"type":"array","items":{"type":"object"},"description":"Company projects operationalising the theory"},"reasoning_nodes":{"type":"array","items":{"type":"object"},"description":"Premise/derivation/prediction/observation tree, parent_node_id-linked"}}},"access_level":{"type":"string"}}},"Pagination":{"type":"object","properties":{"total":{"type":"integer"},"limit":{"type":"integer"},"offset":{"type":"integer"},"has_more":{"type":"boolean"}}},"Stats":{"type":"object","properties":{"grants":{"type":"object","properties":{"total":{"type":"integer"},"closing_soon":{"type":"integer","description":"Closing within 14 days"},"earliest_deadline":{"type":"string","format":"date-time","nullable":true},"latest_deadline":{"type":"string","format":"date-time","nullable":true}}},"events":{"type":"object","properties":{"total":{"type":"integer"},"next_30_days":{"type":"integer"}}},"last_updated":{"type":"string","format":"date-time"},"access_level":{"type":"string"}}},"Error":{"type":"object","properties":{"error":{"type":"string"}}},"RatedCompany":{"type":"object","properties":{"public_id":{"type":"string"},"name":{"type":"string"},"logo_url":{"type":"string","nullable":true},"primary_approach":{"type":"string","nullable":true},"headquarters":{"type":"string","nullable":true},"funding_stage":{"type":"string","nullable":true},"company_status":{"type":"string","nullable":true},"founding_year":{"type":"integer","nullable":true},"website":{"type":"string","nullable":true},"overall_score":{"type":"number","nullable":true},"overall_score_computed_at":{"type":"string","format":"date-time","nullable":true},"scores":{"type":"object","additionalProperties":{"type":"number"}},"public_url":{"type":"string"}}},"RatedCompanyDetail":{"allOf":[{"$ref":"#/components/schemas/RatedCompany"},{"type":"object","properties":{"description":{"type":"string","nullable":true},"total_funding_usd":{"type":"string","nullable":true},"created_at":{"type":"string","format":"date-time","nullable":true},"updated_at":{"type":"string","format":"date-time","nullable":true},"scores":{"type":"array","items":{"type":"object","properties":{"dimension":{"type":"string"},"score":{"type":"number","nullable":true},"confidence":{"type":"string","nullable":true},"theory_count":{"type":"integer"},"evidence_count":{"type":"integer"},"rationale_summary":{"type":"string","nullable":true}}}},"theories":{"type":"array","items":{"type":"object","properties":{"theory_name":{"type":"string"},"source_type":{"type":"string"},"source_url":{"type":"string","nullable":true},"is_primary":{"type":"boolean"}}}},"publications":{"type":"array","items":{"type":"object","properties":{"title":{"type":"string"},"journal":{"type":"string","nullable":true},"publication_year":{"type":"integer","nullable":true},"citation_count":{"type":"integer","nullable":true},"pubmed_id":{"type":"string","nullable":true},"doi":{"type":"string","nullable":true},"source_url":{"type":"string","nullable":true}}}}}}]},"RatedPreservationCompany":{"type":"object","properties":{"public_id":{"type":"string"},"name":{"type":"string"},"logo_url":{"type":"string","nullable":true},"section":{"type":"string"},"one_liner":{"type":"string","nullable":true},"website":{"type":"string","nullable":true},"continuity_overall":{"type":"number","nullable":true},"legacy_overall":{"type":"number","nullable":true},"scores":{"type":"object","additionalProperties":{"type":"number"}},"public_url":{"type":"string"}}},"RatedFund":{"type":"object","properties":{"public_id":{"type":"string"},"name":{"type":"string"},"logo_url":{"type":"string","nullable":true},"last_review_at":{"type":"string","format":"date-time","nullable":true},"review_count":{"type":"integer"},"total_rating":{"type":"number"},"dimension_means":{"type":"object","additionalProperties":{"type":"number"}},"public_url":{"type":"string"}}},"RatedProject":{"type":"object","properties":{"public_id":{"type":"string"},"name":{"type":"string"},"section":{"type":"string"},"canonical_url":{"type":"string","nullable":true},"brief_concise":{"type":"string","nullable":true},"overall_score":{"type":"number","nullable":true},"scientific_overall":{"type":"number","nullable":true},"breakthrough_overall":{"type":"number","nullable":true},"investor_overall":{"type":"number","nullable":true},"last_rated_at":{"type":"string","format":"date-time","nullable":true},"public_url":{"type":"string"}}},"RatedProjectDetail":{"type":"object","description":"Full-transparency exception: all dimension scores, LLM rationale, evidence, authors, and linked companies are public.","properties":{"public_id":{"type":"string"},"name":{"type":"string"},"section":{"type":"string","nullable":true},"canonical_url":{"type":"string","nullable":true},"brief_concise":{"type":"string","nullable":true},"brief_hypothesis":{"type":"string","nullable":true},"brief_mechanism":{"type":"string","nullable":true},"brief_approach":{"type":"string","nullable":true},"brief_status":{"type":"string","nullable":true},"brief_success_criteria":{"type":"string","nullable":true},"brief_near_term_impact":{"type":"string","nullable":true},"brief_future_horizons":{"type":"string","nullable":true},"breakthrough_thesis":{"type":"string","nullable":true},"failure_thesis":{"type":"string","nullable":true},"scientific_overall":{"type":"number","nullable":true},"breakthrough_overall":{"type":"number","nullable":true},"investor_overall":{"type":"number","nullable":true},"overall_score":{"type":"number","nullable":true},"scientific_dims":{"type":"object","nullable":true},"breakthrough_dims":{"type":"object","nullable":true},"investor_dims":{"type":"object","nullable":true},"risk_panel":{"type":"object","nullable":true},"tam_usd":{"type":"number","nullable":true},"capital_to_breakeven_usd":{"type":"number","nullable":true},"time_to_value_months":{"type":"integer","nullable":true},"upside_best_case_multiple":{"type":"number","nullable":true},"exit_comparables":{"type":"array","items":{},"nullable":true},"total_capital_to_commercialize_usd":{"type":"number","nullable":true},"effect_size_years_lifespan":{"type":"number","nullable":true},"effect_size_value":{"type":"number","nullable":true},"effect_size_unit":{"type":"string","nullable":true},"time_horizon_years":{"type":"number","nullable":true},"ip_market_structure":{"type":"string","nullable":true},"last_rated_at":{"type":"string","format":"date-time","nullable":true},"public_url":{"type":"string"}}},"Hero":{"type":"object","properties":{"public_id":{"type":"string"},"name":{"type":"string"},"tagline":{"type":"string","nullable":true},"photo_url":{"type":"string","nullable":true},"photo_checked_at":{"type":"string","format":"date-time","nullable":true},"role_tags":{"type":"array","items":{"type":"string"}},"theme_tags":{"type":"array","items":{"type":"string"}},"impact_statement":{"type":"string","nullable":true},"overall_score":{"type":"number","nullable":true},"total_capital_moved":{"type":"number"},"updated_at":{"type":"string","format":"date-time","nullable":true},"scores":{"type":"array","items":{"type":"object","properties":{"dimension":{"type":"string"},"score":{"type":"number","nullable":true},"rationale_summary":{"type":"string","nullable":true},"confidence":{"type":"string","nullable":true},"n_a_reason":{"type":"string","nullable":true}}}},"public_url":{"type":"string"}}},"HeroDetail":{"allOf":[{"$ref":"#/components/schemas/Hero"},{"type":"object","properties":{"bio":{"type":"string","nullable":true},"x_handle":{"type":"string","nullable":true},"x_url":{"type":"string","nullable":true},"website":{"type":"string","nullable":true}}}]}}}}