API v1
Read-only JSON access to the record. Every fact carries its source; shapes are stable within v1 (breaking changes mean a v2 namespace, never silent edits).
Authentication
Founding members issue keys on /account/api (the raw key is shown once; we store a hash). Send it as Authorization: Bearer ca_live_…
curl -H "Authorization: Bearer ca_live_..." \ "https://continuumalternatives.com/api/v1/search?q=uljanik"
Limits
60 requests/minute per key (HTTP 429 beyond it). Usage is metered daily per key. No write endpoints exist in v1.
Endpoints
GET /api/v1/entities
Parameters: kind (organization|fund_vehicle|deal|event, default organization) · country (ISO-2) · tag · class|strategy (taxonomy slug) · q (text) · page
Paginated active entities: slug, name, country, summary, tags, url.
GET /api/v1/entities/{slug}
Parameters: —
Profile: identity, tags, approved classifications, website/city/founded, steward statement (if any), stats.
GET /api/v1/entities/{slug}/timeline
Parameters: —
Approved facts in date order, each with its source name + URL (or 'internal record').
GET /api/v1/entities/{slug}/edges
Parameters: —
Approved relationships: edge type, direction, phrase, counterpart + URL, role, started_on.
GET /api/v1/facts
Parameters: channel · class (asset-class slug) · country (ISO-2) · since (YYYY-MM-DD, recorded date) · limit (≤200)
Approved facts across the record, newest first, entity + source attached.
GET /api/v1/search
Parameters: q (required)
Name/alias matches over active public entities; match = text|semantic.
Data coverage — honestly
The corpus is ~14,600 register-verified European entities, deepest in Central and South-Eastern Europe; timeline density varies by country and register accessibility (see /coverage). Facts are approved-only and cited; where the record is thin, responses are short rather than padded.
Building with an AI agent? The same data speaks MCP — /docs/mcp.