ContinuumAlternatives

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.