{"openapi":"3.1.0","info":{"title":"Eternal Search API","version":"1.0.0","description":"Programmatic access to verified grants, events, leads, investors, CRM workflows, and research jobs. CORS is enabled for /api/v1 and /api/public. Configure allowed browser origins with API_ALLOWED_ORIGINS."},"servers":[{"url":"/api/v1","description":"Relative base URL"},{"url":"https://eternalsearch.net/api/v1","description":"Production"}],"tags":[{"name":"Public","description":"Public-tier endpoints; bearer token optional."},{"name":"Full","description":"Full-tier endpoints; bearer token required."},{"name":"Top","description":"Top-tier Deep Intelligence endpoints."},{"name":"CRM","description":"Team-scoped outreach workflows."}],"components":{"securitySchemes":{"bearerAuth":{"type":"http","scheme":"bearer","bearerFormat":"API key","description":"Use `Authorization: Bearer es_...`."}},"schemas":{"AccessLevel":{"type":"string","enum":["public","full","top"]},"Theory":{"type":"object","properties":{"id":{"type":"string","format":"uuid"},"theory_name":{"type":"string"},"theory_summary":{"type":"string","nullable":true},"theory_text":{"type":"string"},"source_url":{"type":"string","nullable":true},"source_type":{"type":"string","nullable":true},"is_primary":{"type":"boolean"},"extracted_at":{"type":"string","nullable":true},"owner":{"type":"object","description":"kind, name, public_id, public_url."},"evaluation":{"type":"object","description":"popperian_sum (0-40), the four dimension scores, foundational_alignment_avg."},"connections":{"type":"object","description":"cluster_slugs plus counts for endorsements, foundational alignment, projects, reasoning nodes."},"detail_url":{"type":"string"}}},"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"},"owner_count":{"type":"integer"},"avg_popperian_sum":{"type":"number","nullable":true}}},"Pagination":{"type":"object","properties":{"total":{"type":"integer"},"limit":{"type":"integer"},"offset":{"type":"integer"},"has_more":{"type":"boolean"}},"required":["total","limit","offset","has_more"]},"Error":{"type":"object","properties":{"error":{"type":"string"}},"required":["error"]},"Grant":{"type":"object","properties":{"id":{"type":"string"},"title":{"type":"string"},"description":{"type":["string","null"]},"funder_name":{"type":["string","null"]},"deadline":{"type":["string","null"],"format":"date-time"},"url":{"type":["string","null"]},"info_url":{"type":["string","null"]},"location":{"type":["string","null"]},"labels":{"type":"array","items":{"type":"string"}}}},"Event":{"type":"object","properties":{"id":{"type":"string"},"title":{"type":"string"},"description":{"type":["string","null"]},"url":{"type":["string","null"]},"registration_url":{"type":["string","null"]},"start_date":{"type":["string","null"],"format":"date-time"},"end_date":{"type":["string","null"],"format":"date-time"},"location":{"type":["string","null"]},"organizer":{"type":["string","null"]},"event_type":{"type":["string","null"]}}},"Lead":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"entity_type":{"type":["string","null"]},"opportunity_types":{"type":"array","items":{"type":"string"}},"status":{"type":["string","null"]},"stage":{"type":["string","null"]},"relevance_score":{"type":["number","null"]},"description":{"type":["string","null"]},"url":{"type":["string","null"]},"location":{"type":["string","null"]},"grant_deadline":{"type":["string","null"],"format":"date-time"}}},"Investor":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"type":{"type":["string","null"]},"bio":{"type":["string","null"]},"net_worth_estimate":{"type":["string","null"]}}},"ResearchJob":{"type":"object","properties":{"id":{"type":"string"},"query":{"type":["string","null"]},"status":{"type":"string"},"job_type":{"type":["string","null"]},"best_strategy_score":{"type":["number","null"]},"results_count":{"type":["integer","null"]},"leads_created":{"type":["integer","null"]},"events_created":{"type":["integer","null"]},"created_at":{"type":["string","null"],"format":"date-time"},"started_at":{"type":["string","null"],"format":"date-time"},"completed_at":{"type":["string","null"],"format":"date-time"}}},"Claim":{"type":"object","properties":{"id":{"type":"string"},"lead_id":{"type":["string","null"]},"investor_id":{"type":["string","null"]},"claimed_by":{"type":"string"},"status":{"type":["string","null"]},"team_id":{"type":["string","null"]}}},"RatedCompany":{"type":"object","properties":{"public_id":{"type":"string"},"name":{"type":"string"},"logo_url":{"type":["string","null"]},"primary_approach":{"type":["string","null"]},"headquarters":{"type":["string","null"]},"funding_stage":{"type":["string","null"]},"company_status":{"type":["string","null"]},"founding_year":{"type":["integer","null"]},"website":{"type":["string","null"]},"overall_score":{"type":["number","null"]},"scores":{"type":"object","additionalProperties":{"type":"number"}},"public_url":{"type":"string"}}},"RatedPreservationCompany":{"type":"object","properties":{"public_id":{"type":"string"},"name":{"type":"string"},"logo_url":{"type":["string","null"]},"section":{"type":"string"},"one_liner":{"type":["string","null"]},"website":{"type":["string","null"]},"continuity_overall":{"type":["number","null"]},"legacy_overall":{"type":["number","null"]},"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","null"]},"review_count":{"type":"integer"},"total_rating":{"type":"number"},"dimension_means":{"type":"object","additionalProperties":{"type":"number"}},"last_review_at":{"type":["string","null"],"format":"date-time"},"public_url":{"type":"string"}}},"RatedProject":{"type":"object","properties":{"public_id":{"type":"string"},"name":{"type":"string"},"section":{"type":"string"},"brief_concise":{"type":["string","null"]},"overall_score":{"type":["number","null"]},"scientific_overall":{"type":["number","null"]},"breakthrough_overall":{"type":["number","null"]},"investor_overall":{"type":["number","null"]},"last_rated_at":{"type":["string","null"],"format":"date-time"},"public_url":{"type":"string"}}},"Hero":{"type":"object","properties":{"public_id":{"type":"string"},"name":{"type":"string"},"tagline":{"type":["string","null"]},"photo_url":{"type":["string","null"]},"role_tags":{"type":"array","items":{"type":"string"}},"theme_tags":{"type":"array","items":{"type":"string"}},"impact_statement":{"type":["string","null"]},"overall_score":{"type":["number","null"]},"total_capital_moved":{"type":"number"},"public_url":{"type":"string"}}}}},"paths":{"/grants":{"get":{"tags":["Public"],"summary":"List verified grants","description":"Public endpoint. Full/top keys add internal grant metadata fields.","parameters":[{"name":"q","in":"query","required":false,"description":"Search title or description.","schema":{"type":"string"}},{"name":"funder","in":"query","required":false,"description":"Partial funder name match.","schema":{"type":"string"}},{"name":"deadline_after","in":"query","required":false,"description":"Lower deadline bound.","schema":{"type":"string","format":"date"}},{"name":"deadline_before","in":"query","required":false,"description":"Upper deadline bound.","schema":{"type":"string","format":"date"}},{"name":"include_expired","in":"query","required":false,"description":"Include past-deadline grants.","schema":{"type":"boolean"}},{"name":"label","in":"query","required":false,"description":"Require a single label slug.","schema":{"type":"string"}},{"name":"labels","in":"query","required":false,"description":"Require all label slugs (comma-separated).","schema":{"type":"string"}},{"name":"labels_any","in":"query","required":false,"description":"Require any label slug (comma-separated).","schema":{"type":"string"}},{"name":"limit","in":"query","required":false,"description":"Page size.","schema":{"type":"integer","minimum":1,"maximum":200}},{"name":"offset","in":"query","required":false,"description":"Page offset.","schema":{"type":"integer","minimum":0}}],"responses":{"200":{"description":"Paginated grant results.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/Grant"}},"pagination":{"$ref":"#/components/schemas/Pagination"},"access_level":{"$ref":"#/components/schemas/AccessLevel"}},"required":["data","pagination","access_level"]}}}},"403":{"description":"Invalid API key.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/events":{"get":{"tags":["Public"],"summary":"List verified events","parameters":[{"name":"q","in":"query","required":false,"description":"Search title, description, organizer, or location.","schema":{"type":"string"}},{"name":"event_type","in":"query","required":false,"description":"Event type filter.","schema":{"type":"string"}},{"name":"location","in":"query","required":false,"description":"Partial location match.","schema":{"type":"string"}},{"name":"date_after","in":"query","required":false,"description":"Lower date bound.","schema":{"type":"string","format":"date"}},{"name":"date_before","in":"query","required":false,"description":"Upper date bound.","schema":{"type":"string","format":"date"}},{"name":"include_past","in":"query","required":false,"description":"Include past events.","schema":{"type":"boolean"}},{"name":"limit","in":"query","required":false,"description":"Page size.","schema":{"type":"integer","minimum":1,"maximum":200}},{"name":"offset","in":"query","required":false,"description":"Page offset.","schema":{"type":"integer","minimum":0}}],"responses":{"200":{"description":"Paginated event results.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/Event"}},"pagination":{"$ref":"#/components/schemas/Pagination"},"access_level":{"$ref":"#/components/schemas/AccessLevel"}},"required":["data","pagination","access_level"]}}}}}}},"/search":{"get":{"tags":["Public"],"summary":"Unified search across events and grants","description":"Full/top keys also return matching leads.","parameters":[{"name":"q","in":"query","required":true,"description":"Search query, minimum 2 characters.","schema":{"type":"string","minLength":2}},{"name":"limit","in":"query","required":false,"description":"Per-type result limit.","schema":{"type":"integer","minimum":1,"maximum":100}}],"responses":{"200":{"description":"Search results grouped by entity type.","content":{"application/json":{"schema":{"type":"object","properties":{"events":{"type":"array","items":{"$ref":"#/components/schemas/Event"}},"grants":{"type":"array","items":{"$ref":"#/components/schemas/Grant"}},"leads":{"type":"array","items":{"$ref":"#/components/schemas/Lead"}},"access_level":{"$ref":"#/components/schemas/AccessLevel"}},"required":["events","grants","access_level"]}}}},"400":{"description":"Missing or short query.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/stats":{"get":{"tags":["Public"],"summary":"Database summary statistics","responses":{"200":{"description":"Counts and date ranges for grants/events, plus lead/pipeline stats for full/top keys."}}}},"/organizations":{"get":{"tags":["Full"],"summary":"List organizations","security":[{"bearerAuth":[]}],"parameters":[{"name":"q","in":"query","required":false,"description":"Search name or description.","schema":{"type":"string"}},{"name":"org_type","in":"query","required":false,"description":"Organization type.","schema":{"type":"string"}},{"name":"label","in":"query","required":false,"description":"Require a single label slug.","schema":{"type":"string"}},{"name":"labels","in":"query","required":false,"description":"Require all label slugs (comma-separated).","schema":{"type":"string"}},{"name":"labels_any","in":"query","required":false,"description":"Require any label slug (comma-separated).","schema":{"type":"string"}},{"name":"min_open_grants","in":"query","required":false,"description":"Minimum open grants.","schema":{"type":"integer","minimum":0}},{"name":"limit","in":"query","required":false,"description":"Page size.","schema":{"type":"integer","minimum":1,"maximum":200}},{"name":"offset","in":"query","required":false,"description":"Page offset.","schema":{"type":"integer","minimum":0}}],"responses":{"200":{"description":"Paginated organization results."},"403":{"description":"Full access required."}}}},"/leads":{"get":{"tags":["Full"],"summary":"List leads","security":[{"bearerAuth":[]}],"parameters":[{"name":"q","in":"query","required":false,"description":"Search name or description.","schema":{"type":"string"}},{"name":"entity_type","in":"query","required":false,"description":"Entity type filter.","schema":{"type":"string"}},{"name":"opportunity_type","in":"query","required":false,"description":"Opportunity type filter.","schema":{"type":"string"}},{"name":"status","in":"query","required":false,"description":"Lead status.","schema":{"type":"string"}},{"name":"stage","in":"query","required":false,"description":"Lead stage.","schema":{"type":"string"}},{"name":"min_score","in":"query","required":false,"description":"Minimum relevance score.","schema":{"type":"integer","minimum":0,"maximum":100}},{"name":"include_stale","in":"query","required":false,"description":"Include stale/archived/legacy rows.","schema":{"type":"boolean"}},{"name":"limit","in":"query","required":false,"description":"Page size.","schema":{"type":"integer","minimum":1,"maximum":200}},{"name":"offset","in":"query","required":false,"description":"Page offset.","schema":{"type":"integer","minimum":0}}],"responses":{"200":{"description":"Paginated lead results."},"403":{"description":"Full access required."}}}},"/leads/{id}":{"get":{"tags":["Full"],"summary":"Lead detail","security":[{"bearerAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"description":"Lead identifier.","schema":{"type":"string"}}],"responses":{"200":{"description":"Lead with contacts, notes, recent actions, and linked investors."},"404":{"description":"Lead not found."}}}},"/investors":{"get":{"tags":["Full"],"summary":"List profiled investors","security":[{"bearerAuth":[]}],"description":"Returns a JSON array, not a paginated envelope.","parameters":[{"name":"q","in":"query","required":false,"description":"Search name or bio.","schema":{"type":"string"}},{"name":"type","in":"query","required":false,"description":"Investor type.","schema":{"type":"string"}},{"name":"include_stale","in":"query","required":false,"description":"Include stale linked leads.","schema":{"type":"boolean"}},{"name":"limit","in":"query","required":false,"description":"Maximum results.","schema":{"type":"integer","minimum":1,"maximum":200}}],"responses":{"200":{"description":"Investor rows with entities and linked leads.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Investor"}}}}}}}},"/investors/{id}":{"get":{"tags":["Full"],"summary":"Investor dossier","security":[{"bearerAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"description":"Investor identifier.","schema":{"type":"string"}},{"name":"include_stale","in":"query","required":false,"description":"Include stale linked leads.","schema":{"type":"boolean"}}],"responses":{"200":{"description":"Investor detail with entities, linked leads, events, dossier, and meetings."},"404":{"description":"Investor not found."}}}},"/contacts":{"get":{"tags":["Full"],"summary":"Aggregated contacts across leads","security":[{"bearerAuth":[]}],"description":"Returns a JSON array, not a paginated envelope.","parameters":[{"name":"q","in":"query","required":false,"description":"Search contact name.","schema":{"type":"string"}},{"name":"role","in":"query","required":false,"description":"Match contact role.","schema":{"type":"string"}},{"name":"min_leads","in":"query","required":false,"description":"Minimum linked leads.","schema":{"type":"integer","minimum":1}},{"name":"include_stale","in":"query","required":false,"description":"Include stale leads.","schema":{"type":"boolean"}},{"name":"limit","in":"query","required":false,"description":"Maximum results.","schema":{"type":"integer","minimum":1,"maximum":500}}],"responses":{"200":{"description":"Aggregated contact rows."}}}},"/pipeline":{"get":{"tags":["Full"],"summary":"Discovery pipeline overview","security":[{"bearerAuth":[]}],"parameters":[{"name":"limit","in":"query","required":false,"description":"Recent run limit.","schema":{"type":"integer","minimum":1,"maximum":100}}],"responses":{"200":{"description":"Recent runs, active run count, and saved search queries."}}}},"/research":{"get":{"tags":["Full"],"summary":"List research jobs","security":[{"bearerAuth":[]}],"description":"Returns a JSON array. Visibility is team-scoped unless the key has admin/super-admin/research.view_all access.","parameters":[{"name":"limit","in":"query","required":false,"description":"Maximum jobs.","schema":{"type":"integer","minimum":1,"maximum":50}}],"responses":{"200":{"description":"Research job rows.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/ResearchJob"}}}}}}},"post":{"tags":["Full"],"summary":"Create research jobs","security":[{"bearerAuth":[]}],"description":"Creates two parallel jobs: one `grants` job and one `events` job. Provide either `query` (≥10 chars) or `project_id` to attach team/project context; when `project_id` is present, `query` may be shorter or omitted.","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"query":{"type":"string","minLength":10,"description":"Required if project_id is not provided."},"webhook_url":{"type":"string","format":"uri","description":"Optional callback URL invoked on job completion."},"project_id":{"type":"string","description":"Optional saved-project id; attaches full team/project context."}}}}}},"responses":{"201":{"description":"Created parallel grants/events jobs.","content":{"application/json":{"schema":{"type":"object","properties":{"grants_job":{"$ref":"#/components/schemas/ResearchJob"},"events_job":{"$ref":"#/components/schemas/ResearchJob"}},"required":["grants_job","events_job"]}}}},"400":{"description":"Missing query/project context.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/research/{id}":{"get":{"tags":["Full"],"summary":"Research job detail","security":[{"bearerAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"description":"Research job identifier.","schema":{"type":"string"}}],"responses":{"200":{"description":"Job detail with linked leads and readiness stats."},"404":{"description":"Job not found or not visible to this team."}}}},"/crm":{"get":{"tags":["CRM"],"summary":"CRM endpoint index","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Method matrix and permission summary for the CRM surface."}}}},"/crm/claims":{"get":{"tags":["CRM"],"summary":"List CRM claims","security":[{"bearerAuth":[]}],"description":"Returns a JSON array scoped by the key holder's CRM permissions.","parameters":[{"name":"type","in":"query","required":false,"description":"lead or investor.","schema":{"type":"string"}},{"name":"status","in":"query","required":false,"description":"Claim status.","schema":{"type":"string"}},{"name":"claimed_by","in":"query","required":false,"description":"Owner email.","schema":{"type":"string"}},{"name":"search","in":"query","required":false,"description":"Search lead/investor name.","schema":{"type":"string"}},{"name":"include_archived","in":"query","required":false,"description":"Include archived claims.","schema":{"type":"boolean"}},{"name":"limit","in":"query","required":false,"description":"Maximum claims.","schema":{"type":"integer","minimum":1,"maximum":200}}],"responses":{"200":{"description":"Claim rows.","content":{"application/json":{"schema":{"type":"array","items":{"$ref":"#/components/schemas/Claim"}}}}}}},"post":{"tags":["CRM"],"summary":"Claim a lead or investor","security":[{"bearerAuth":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"lead_id":{"type":"string"},"investor_id":{"type":"string"}}}}}},"responses":{"201":{"description":"Claim created."},"409":{"description":"Already claimed by this user."}}}},"/crm/claims/{id}":{"get":{"tags":["CRM"],"summary":"Claim detail","security":[{"bearerAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"description":"Claim identifier.","schema":{"type":"string"}}],"responses":{"200":{"description":"Claim with full communication history."},"403":{"description":"Claim exists but is outside the key's visibility scope."},"404":{"description":"Claim not found."}}},"patch":{"tags":["CRM"],"summary":"Update claim stage","security":[{"bearerAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"description":"Claim identifier.","schema":{"type":"string"}}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","properties":{"stage":{"type":"string"},"notes":{"type":"string"}},"required":["stage"]}}}},"responses":{"200":{"description":"Inserted communication-log entry."}}},"delete":{"tags":["CRM"],"summary":"Release claim","security":[{"bearerAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"description":"Claim identifier.","schema":{"type":"string"}}],"responses":{"200":{"description":"Claim archived and released."}}}},"/crm/claims/{id}/history":{"get":{"tags":["CRM"],"summary":"Claim communication history","security":[{"bearerAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"description":"Claim identifier.","schema":{"type":"string"}}],"responses":{"200":{"description":"Communication log entries."}}}},"/ratings/companies":{"get":{"tags":["Public"],"summary":"List rated longevity companies","description":"Tier-aware. Public tier returns is_public=true AND not-disqualified rows (the site-visible set). A full/top-tier key returns ALL published companies (is_public=true, including disqualified ones) with extra status flags (disqualified, disqualified_reason, operating_status, research_status, is_editors_choice). Page with limit/offset (max 200) to fetch the full set.","parameters":[{"name":"q","in":"query","required":false,"description":"Search name or description.","schema":{"type":"string"}},{"name":"limit","in":"query","required":false,"description":"Page size.","schema":{"type":"integer","minimum":1,"maximum":200}},{"name":"offset","in":"query","required":false,"description":"Page offset.","schema":{"type":"integer","minimum":0}}],"responses":{"200":{"description":"Paginated rated companies.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/RatedCompany"}},"pagination":{"$ref":"#/components/schemas/Pagination"},"access_level":{"$ref":"#/components/schemas/AccessLevel"}},"required":["data","pagination","access_level"]}}}}}}},"/ratings/companies/{publicId}":{"get":{"tags":["Public"],"summary":"Rated company detail","description":"Tier-aware. Public tier returns the 8-dimension scores with rationale_summary, the theory list, and top-cited publications (analyst-only fields stripped). A full/top-tier key additionally receives the full dossier_expansion (entities, funding, partnerships, investments, sponsorships, vacancies, team events, social, IP, filings, press) and an `evidence` bundle (all accepted public records with full text/transcripts, extracted projects, and linked people).","parameters":[{"name":"publicId","in":"path","required":true,"description":"Company short public_id.","schema":{"type":"string"}}],"responses":{"200":{"description":"Company with scores, theories, and publications (plus full evidence for full/top-tier keys)."},"404":{"description":"Not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/ratings/preservation":{"get":{"tags":["Public"],"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 (rating_status='scored', including those not yet public). Optional `section` filter.","parameters":[{"name":"q","in":"query","required":false,"description":"Search name or one_liner.","schema":{"type":"string"}},{"name":"section","in":"query","required":false,"description":"Filter by preservation section (e.g. cryonics, brain-preservation).","schema":{"type":"string"}},{"name":"limit","in":"query","required":false,"description":"Page size.","schema":{"type":"integer","minimum":1,"maximum":200}},{"name":"offset","in":"query","required":false,"description":"Page offset.","schema":{"type":"integer","minimum":0}}],"responses":{"200":{"description":"Paginated 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":{"$ref":"#/components/schemas/AccessLevel"}},"required":["data","pagination","access_level"]}}}}}}},"/ratings/preservation/{publicId}":{"get":{"tags":["Public"],"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 assets, people, social accounts, theories).","parameters":[{"name":"publicId","in":"path","required":true,"description":"Preservation company short public_id.","schema":{"type":"string"}}],"responses":{"200":{"description":"Preservation company with dimensions (plus full evidence for full/top-tier keys)."},"404":{"description":"Not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/ratings/funds":{"get":{"tags":["Public"],"summary":"List rated funds","description":"Public endpoint. Returns grant-giving organizations with at least one published review.","parameters":[{"name":"q","in":"query","required":false,"description":"Partial name match.","schema":{"type":"string"}},{"name":"limit","in":"query","required":false,"description":"Page size.","schema":{"type":"integer","minimum":1,"maximum":200}},{"name":"offset","in":"query","required":false,"description":"Page offset.","schema":{"type":"integer","minimum":0}}],"responses":{"200":{"description":"Paginated rated funds.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/RatedFund"}},"pagination":{"$ref":"#/components/schemas/Pagination"},"access_level":{"$ref":"#/components/schemas/AccessLevel"}},"required":["data","pagination","access_level"]}}}}}}},"/ratings/projects":{"get":{"tags":["Public"],"summary":"List rated projects","description":"Public endpoint. Returns is_public=true projects with rating_status='ready', including overall + scientific/breakthrough/investor sub-overalls.","parameters":[{"name":"q","in":"query","required":false,"description":"Search name or brief.","schema":{"type":"string"}},{"name":"section","in":"query","required":false,"description":"Section slug filter.","schema":{"type":"string"}},{"name":"limit","in":"query","required":false,"description":"Page size.","schema":{"type":"integer","minimum":1,"maximum":200}},{"name":"offset","in":"query","required":false,"description":"Page offset.","schema":{"type":"integer","minimum":0}}],"responses":{"200":{"description":"Paginated rated projects.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/RatedProject"}},"pagination":{"$ref":"#/components/schemas/Pagination"},"access_level":{"$ref":"#/components/schemas/AccessLevel"}},"required":["data","pagination","access_level"]}}}}}}},"/ratings/projects/{publicId}":{"get":{"tags":["Public"],"summary":"Rated project detail — full transparency","description":"Public-tier detail. Returns ALL per-dimension scores, LLM rationale, evidence rows, authors, and linked companies. This endpoint is the explicit full-transparency exception to the public projection rules.","parameters":[{"name":"publicId","in":"path","required":true,"description":"Project short public_id.","schema":{"type":"string"}}],"responses":{"200":{"description":"Project with full dim scores, rationale, evidence, authors, and companies."},"404":{"description":"Not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/theories":{"get":{"tags":["Public"],"summary":"List scientific theories","description":"Public endpoint. Scientific theories extracted from company and rated-project evidence, each with its Popperian evaluation (latest run per dimension) and per-edge connection counts. Public tier returns theories whose owner is published; a bearer token adds independent theories, unpublished owners, and extraction provenance.","parameters":[{"name":"q","in":"query","required":false,"description":"Search theory name, statement, or summary.","schema":{"type":"string"}},{"name":"owner_kind","in":"query","required":false,"description":"company | rated_project.","schema":{"type":"string"}},{"name":"company","in":"query","required":false,"description":"Owner company public_id.","schema":{"type":"string"}},{"name":"project","in":"query","required":false,"description":"Owner rated-project public_id.","schema":{"type":"string"}},{"name":"cluster","in":"query","required":false,"description":"Theory-cluster slug.","schema":{"type":"string"}},{"name":"min_popperian","in":"query","required":false,"description":"Minimum summed Popperian score (0-40).","schema":{"type":"number"}},{"name":"sort","in":"query","required":false,"description":"popperian_sum | theory_name | extracted_at | owner_name | premise_plausibility | explanatory_power | falsifiability | ambition | foundational_alignment_avg.","schema":{"type":"string"}},{"name":"order","in":"query","required":false,"description":"asc | desc.","schema":{"type":"string"}},{"name":"limit","in":"query","required":false,"description":"Page size.","schema":{"type":"integer","minimum":1,"maximum":200}},{"name":"offset","in":"query","required":false,"description":"Page offset.","schema":{"type":"integer","minimum":0}}],"responses":{"200":{"description":"Paginated theories.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/Theory"}},"pagination":{"$ref":"#/components/schemas/Pagination"},"access_level":{"$ref":"#/components/schemas/AccessLevel"}},"required":["data","pagination","access_level"]}}}}}}},"/theories/clusters":{"get":{"tags":["Public"],"summary":"List theory clusters","description":"Public endpoint. A cluster is a canonical claim that several independently-extracted theories were judged to restate. Feed a slug back into /theories?cluster=<slug> to pull its members. Counts reflect only the members visible to the caller's tier.","parameters":[{"name":"q","in":"query","required":false,"description":"Search slug or canonical statement.","schema":{"type":"string"}},{"name":"level","in":"query","required":false,"description":"Cluster level filter.","schema":{"type":"string"}},{"name":"parent","in":"query","required":false,"description":"Parent cluster slug.","schema":{"type":"string"}},{"name":"include_deprecated","in":"query","required":false,"description":"Include deprecated/merged clusters.","schema":{"type":"boolean"}},{"name":"limit","in":"query","required":false,"description":"Page size.","schema":{"type":"integer","minimum":1,"maximum":200}},{"name":"offset","in":"query","required":false,"description":"Page offset.","schema":{"type":"integer","minimum":0}}],"responses":{"200":{"description":"Paginated theory clusters.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/TheoryCluster"}},"pagination":{"$ref":"#/components/schemas/Pagination"},"access_level":{"$ref":"#/components/schemas/AccessLevel"}},"required":["data","pagination","access_level"]}}}}}}},"/theories/{id}":{"get":{"tags":["Public"],"summary":"Theory detail with all connections","description":"Public endpoint. Returns the theory plus every edge hanging off it: owner, 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 obey the same owner-visibility rule.","parameters":[{"name":"id","in":"path","required":true,"description":"Theory UUID.","schema":{"type":"string"}}],"responses":{"200":{"description":"Theory with evaluation and all connection groups."},"404":{"description":"Not found, or the owner is not published for this tier.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/heroes":{"get":{"tags":["Public"],"summary":"List rated longevity heroes","description":"Public endpoint. Returns rated heroes (is_public=true) with overall score, role tags, theme tags, and per-dimension score rows.","parameters":[{"name":"q","in":"query","required":false,"description":"Search name, tagline, or impact statement.","schema":{"type":"string"}},{"name":"role","in":"query","required":false,"description":"Filter by role tag.","schema":{"type":"string"}},{"name":"theme","in":"query","required":false,"description":"Filter by theme tag (vision-statement kind).","schema":{"type":"string"}},{"name":"limit","in":"query","required":false,"description":"Page size.","schema":{"type":"integer","minimum":1,"maximum":200}},{"name":"offset","in":"query","required":false,"description":"Page offset.","schema":{"type":"integer","minimum":0}}],"responses":{"200":{"description":"Paginated rated heroes.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/Hero"}},"pagination":{"$ref":"#/components/schemas/Pagination"},"access_level":{"$ref":"#/components/schemas/AccessLevel"}},"required":["data","pagination","access_level"]}}}}}}},"/heroes/{publicId}":{"get":{"tags":["Public"],"summary":"Hero detail","description":"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,"description":"Hero short public_id.","schema":{"type":"string"}}],"responses":{"200":{"description":"Hero detail with all public sections."},"404":{"description":"Not found.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/ideas":{"get":{"tags":["Top"],"summary":"Canonical-ideas tree with company/people/investor/project/publication matches","security":[{"bearerAuth":[]}],"description":"Machine-readable form of the internal canonical-ideas tree. Returns the backbone ideas (biology + method clusters) and their sub-idea nodes, each with the matched companies, people, investors, projects, and publications, plus idea↔idea connections. Response includes BOTH a nested `roots` tree and `flat` normalized link arrays keyed by node id. Top-tier key required — this is internal knowledge-graph data, not a public projection.","parameters":[{"name":"cluster","in":"query","required":false,"description":"Restrict to one cluster: biology or method.","schema":{"type":"string","enum":["biology","method"]}},{"name":"nested","in":"query","required":false,"description":"Set false to omit the nested `roots` tree.","schema":{"type":"boolean"}},{"name":"flat","in":"query","required":false,"description":"Set false to omit the `flat` link arrays.","schema":{"type":"boolean"}},{"name":"connections","in":"query","required":false,"description":"Set false to omit idea↔idea edges.","schema":{"type":"boolean"}}],"responses":{"200":{"description":"Ideas tree with counts, nested roots, flat link arrays, and connections."},"403":{"description":"Top-tier key required."}}}},"/intelligence/events":{"get":{"tags":["Top"],"summary":"Top-tier co-attendance events","security":[{"bearerAuth":[]}],"parameters":[{"name":"min","in":"query","required":false,"description":"Minimum attendee count.","schema":{"type":"integer","minimum":1}}],"responses":{"200":{"description":"Key events with investor co-attendance."},"403":{"description":"Top-tier key required."}}}},"/intelligence/investors":{"get":{"tags":["Top"],"summary":"Top-tier tracked investors","security":[{"bearerAuth":[]}],"responses":{"200":{"description":"Tracked investors for deep-intelligence workflows."},"403":{"description":"Top-tier key required."}}}},"/intelligence/investors/{id}":{"get":{"tags":["Top"],"summary":"Top-tier investor dossier","security":[{"bearerAuth":[]}],"parameters":[{"name":"id","in":"path","required":true,"description":"Investor identifier.","schema":{"type":"string"}}],"responses":{"200":{"description":"Deep-intelligence investor dossier."},"403":{"description":"Top-tier key required."},"404":{"description":"Investor not found."}}}}}}