Compass DocsBy Mesa

πŸ“‚ Data Endpoints

The live data plane: search and read people, projects, and investors, and run a cross search. Every endpoint is GET, returns JSON, and costs 5 credits per call (a private contact reveal costs 10, once). Auth and shared conventions are in the Endpoint Reference.

Status: private beta. See Roadmap & Availability.

Shared shape. List endpoints return { data, total, page, totalPages, meta }. Single reads return the object plus meta. meta is { creditsCharged, creditsBalance }. Lists accept page and limit (default 30, max 100).

People

GET /api/v1/people

Search and filter people. Scope read:metadata. 5 credits.

  • Query: q (name / handle / title), contactType (analyst | team), roles (comma-separated), channels (comma-separated), sort (recent | name), page, limit. Passing include=private here is rejected with 400 by design: reveal one contact at a time on the detail route.
  • Each record: id, firstName, lastName, jobTitle, twitterHandle, avatarUrl, companyId, company (nested object or null), createdAt, and the lock flags isLocked, hasEmail, hasPhone, hasTelegram, hasLinkedin. The private fields email, phone, telegram, linkedinUrl are always null on the list.
  • Also returns facets: { roles, channels } to drive filter UIs.

GET /api/v1/people/{id}

A full profile plus coworkers. Scope read:metadata; the reveal needs read:contacts. 5 credits, or 10 the first time you reveal private channels.

  • Query: include=private reveals email, phone, telegram, linkedinUrl. The reveal is a permanent unlock: later reads of the same contact cost 5 and keep the channels.
  • Returns data: { person, coworkers[] }. The has* flags tell you which channels exist before you pay to reveal them. On a self-billed reveal, creditsCharged and creditsBalance sit at the top level.

Projects

GET /api/v1/projects

Search and filter projects. 5 credits.

  • Query: q, sector (repeatable), token (launched | pre), sort (recent | name), page, limit.
  • Each record: id, name, slug, domain, sectors[], size, logoUrl, twitterHandle, communityLink, tokenLaunched, tokenLink, aiSummary, followers, handleHistory, twitterRisk, createdAt.

GET /api/v1/projects/{id}

One project with its team. 5 credits. Returns { project, team[] }. Team members show private channels only for contacts you have already unlocked.

Investors

GET /api/v1/investors

Search and filter funds. 5 credits.

  • Query: q, fundType, trustTier, sort (portfolio | roi | name | recent), page, limit.
  • Each record: id, name, slug, logoUrl, domain, linkedinUrl, discordUrl, twitterHandle, communityLink, fundType, fundAllTimeRoiPct, trustTier, trustTierRank, aiSummary, followers, handleHistory, twitterRisk, altRoles[], portfolioCount, createdAt.

GET /api/v1/investors/{slug}

One fund, keyed by slug (not id). 5 credits. Returns { investor, team[], portfolio[] }. Each portfolio row: investmentId, company, roundType, roundEventName, amountUsd, announceDate, isLead.

GET /api/v1/search?q=...

Cross search across projects and people. q is required (400 if missing). 5 credits. Returns { q, projects[], people[], meta } with up to 12 of each. People channels stay locked; reveal a person via /v1/people/{id}?include=private.

Network (planned)

A graph endpoint, the connections and warm paths behind the app's Network view, is planned and not yet live. Track it on the Roadmap & Availability page.