{"openapi":"3.1.0","info":{"title":"TokenRoster API","version":"1.0.0","summary":"Public read-only REST API for the TokenRoster company and token registry.","description":"The TokenRoster API (tokenroster.com) exposes the public registry of reviewed companies, DAOs, and nonprofits: profiles, token details, governance proposals, cap tables, people, and assessment programs. All endpoints are read-only GET requests and require no authentication or API key. Responses use a `{ data, pagination? }` envelope. Human-readable docs: https://tokenroster.com/developers · agent index: https://tokenroster.com/llms.txt","contact":{"name":"TokenRoster","url":"https://tokenroster.com/developers"}},"servers":[{"url":"https://tokenroster.com","description":"TokenRoster production"}],"paths":{"/api/v1/companies":{"get":{"operationId":"listCompanies","summary":"List reviewed companies","description":"Paginated list of all reviewed companies in the registry, newest first.","tags":["Companies"],"parameters":[{"name":"page","in":"query","required":false,"description":"1-based page number. Defaults to 1.","schema":{"type":"integer","minimum":1,"default":1}},{"name":"pageSize","in":"query","required":false,"description":"Items per page (1–100). Defaults to 25.","schema":{"type":"integer","minimum":1,"maximum":100,"default":25}}],"responses":{"200":{"description":"One page of companies.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/Company"}},"pagination":{"$ref":"#/components/schemas/Pagination"}},"required":["data","pagination"]}}}},"500":{"description":"Unexpected server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/companies/{slug}":{"get":{"operationId":"getCompany","summary":"Get a company with its full detail bundle","description":"One company plus its token distribution, governance proposals, team positions, and cap table.","tags":["Companies"],"parameters":[{"name":"slug","in":"path","required":true,"description":"Company slug (the `id` field from the list endpoint).","schema":{"type":"string"}}],"responses":{"200":{"description":"Company detail bundle.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"object","properties":{"company":{"$ref":"#/components/schemas/Company"},"distribution":{"$ref":"#/components/schemas/Distribution"},"proposals":{"type":"array","items":{"$ref":"#/components/schemas/Proposal"}},"positions":{"type":"array","items":{"$ref":"#/components/schemas/Position"}},"capTable":{"type":"array","items":{"$ref":"#/components/schemas/CapTableEntry"}}},"required":["company"]}},"required":["data"]}}}},"404":{"description":"No resource with that slug.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Unexpected server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/people":{"get":{"operationId":"listPeople","summary":"List people","description":"Paginated directory of people profiles, newest first, with the number of reviewed companies each holds a position at.","tags":["People"],"parameters":[{"name":"page","in":"query","required":false,"description":"1-based page number. Defaults to 1.","schema":{"type":"integer","minimum":1,"default":1}},{"name":"pageSize","in":"query","required":false,"description":"Items per page (1–100). Defaults to 25.","schema":{"type":"integer","minimum":1,"maximum":100,"default":25}}],"responses":{"200":{"description":"One page of people.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/Person"}},"pagination":{"$ref":"#/components/schemas/Pagination"}},"required":["data","pagination"]}}}},"500":{"description":"Unexpected server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/people/{slug}":{"get":{"operationId":"getPerson","summary":"Get a person with their positions","description":"One person profile with their positions at reviewed companies.","tags":["People"],"parameters":[{"name":"slug","in":"path","required":true,"description":"Person slug (from the list endpoint).","schema":{"type":"string"}}],"responses":{"200":{"description":"Person detail.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/Person"}},"required":["data"]}}}},"404":{"description":"No resource with that slug.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}},"500":{"description":"Unexpected server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/programs":{"get":{"operationId":"listPrograms","summary":"List assessment programs open for applications","description":"Programs (scoring frameworks run by registered companies) currently accepting applications.","tags":["Programs"],"responses":{"200":{"description":"All open programs.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"type":"array","items":{"$ref":"#/components/schemas/Program"}}},"required":["data"]}}}},"500":{"description":"Unexpected server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}},"/api/v1/stats":{"get":{"operationId":"getStats","summary":"Get aggregate registry stats","description":"Registry-wide aggregates: company count, open funding rounds, combined treasury, people, live programs.","tags":["Stats"],"responses":{"200":{"description":"Aggregate stats.","content":{"application/json":{"schema":{"type":"object","properties":{"data":{"$ref":"#/components/schemas/Stats"}},"required":["data"]}}}},"500":{"description":"Unexpected server error.","content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}}}}}}},"components":{"schemas":{"Pagination":{"type":"object","description":"Pagination metadata for list endpoints.","properties":{"page":{"type":"integer","minimum":1},"pageSize":{"type":"integer","minimum":1,"maximum":100},"pageCount":{"type":"integer","minimum":1},"total":{"type":"integer","minimum":0}},"required":["page","pageSize","pageCount","total"]},"Error":{"type":"object","properties":{"error":{"type":"string","description":"Human-readable error message."}},"required":["error"]},"Company":{"type":"object","description":"A reviewed company in the TokenRoster registry (company, DAO, nonprofit, accelerator, incubator, ...).","properties":{"id":{"type":"string","description":"Stable identifier — the company slug. Use it with GET /api/v1/companies/{slug}."},"name":{"type":"string"},"symbol":{"type":"string","description":"Token symbol, when the company has a token."},"teamSize":{"type":"integer","description":"Number of listed team members."},"treasury":{"type":"string","description":"Formatted treasury size, e.g. \"$1.2M\"."},"status":{"type":"string","enum":["active","upcoming","inactive"]},"type":{"type":"string","description":"Organization type, e.g. Corporation, DAO, Non-profit, Accelerator."},"industry":{"type":"string"},"orgKind":{"type":"string"},"themes":{"type":"array","items":{"type":"string"}},"description":{"type":"string"},"body":{"type":["string","null"],"description":"Long-form markdown description."},"website":{"type":"string"},"dao_website":{"type":"string"},"createdAt":{"type":"string","description":"Listing date, e.g. \"January 2026\"."},"icon":{"type":"string","description":"Logo URL."},"socials":{"type":["object","null"],"description":"Social/contact links. Absent links are null.","properties":{"email":{"type":["string","null"]},"phone_number":{"type":["string","null"]},"facebook":{"type":["string","null"]},"instagram":{"type":["string","null"]},"tiktok":{"type":["string","null"]},"linkedin":{"type":["string","null"]},"youtube":{"type":["string","null"]},"twitter":{"type":["string","null"]}}},"address":{"type":["array","null"],"items":{"type":"object","properties":{"address_1":{"type":["string","null"]},"address_2":{"type":["string","null"]},"city":{"type":["string","null"]},"state":{"type":["string","null"]},"zip":{"type":["string","null"]}}}}},"required":["id","name"],"additionalProperties":true},"Distribution":{"type":["object","null"],"description":"Token distribution details, null when not published.","properties":{"method":{"type":"string"},"details":{"type":"string"},"schedule":{"type":"string"},"vestingPeriod":{"type":"string"},"pools":{"type":"array","items":{"type":"object","properties":{"name":{"type":"string"},"percentage":{"type":"number"}}}}},"additionalProperties":true},"Proposal":{"type":"object","description":"A governance proposal.","properties":{"id":{"type":"string"},"title":{"type":"string"},"status":{"type":"string","enum":["active","passed","failed","pending"]},"votes":{"type":"object","properties":{"for":{"type":"number"},"against":{"type":"number"}}},"endDate":{"type":"string"}},"additionalProperties":true},"Position":{"type":"object","description":"A team position at the company, with the person holding it.","properties":{"title":{"type":"string"},"person":{"type":"object","properties":{"name":{"type":"string"},"slug":{"type":"string","description":"Use with GET /api/v1/people/{slug}."}},"additionalProperties":true}},"additionalProperties":true},"CapTableEntry":{"type":"object","description":"A cap table entry (token holder).","properties":{"address":{"type":"string"},"name":{"type":"string"},"tokens":{"type":"string"},"percentage":{"type":"number"}},"additionalProperties":true},"Person":{"type":"object","description":"A person profile (founder, operator, contributor).","properties":{"documentId":{"type":"string"},"name":{"type":"string"},"slug":{"type":"string","description":"Stable identifier. Use with GET /api/v1/people/{slug}."},"bio":{"type":["string","null"]},"companyCount":{"type":"integer","description":"Number of reviewed companies the person holds a position at (list endpoint only)."},"positions":{"type":"array","description":"Positions with company references (detail endpoint only).","items":{"additionalProperties":true,"type":"object"}}},"required":["name","slug"],"additionalProperties":true},"Program":{"type":"object","description":"An assessment program open for applications, run by a registered company.","properties":{"frameworkId":{"type":"string","description":"Scoring framework identifier."},"frameworkName":{"type":"string"},"company":{"type":"object","properties":{"id":{"type":"string"},"name":{"type":"string"},"slug":{"type":["string","null"]},"symbol":{"type":["string","null"]},"icon":{"type":"string"}},"additionalProperties":true}},"required":["frameworkId","frameworkName","company"],"additionalProperties":true},"Stats":{"type":"object","description":"Aggregate registry statistics.","properties":{"total":{"type":"integer","description":"Reviewed companies in the registry."},"projectsRaising":{"type":"integer","description":"Companies with an open funding round."},"totalTreasury":{"type":"string","description":"Combined treasury, e.g. \"$1.2B\"."},"founders":{"type":"integer","description":"People profiles in the registry."},"frameworks":{"type":"integer","description":"Live assessment programs."}},"additionalProperties":true}}},"tags":[{"name":"Companies","description":"Reviewed companies, DAOs, and nonprofits."},{"name":"People","description":"Founder and contributor profiles."},{"name":"Programs","description":"Assessment programs open for applications."},{"name":"Stats","description":"Aggregate registry statistics."}]}