Platform API

    A first-class API into the financial data plumbing you already trust.

    The engage insights API connects directly to leading custodians and financial data portals so your portfolios, holdings and counterparties flow into the platform automatically — and out into your own systems whenever you need them.

    Portfolio sync

    Daily holdings, NAV and exposure data pulled directly from your custodian — no manual exports, no broken spreadsheets.

    Counterparty registry

    Issuer and counterparty lists kept in sync with your custodian's golden source, including LEIs, sectors and corporate actions.

    Real-time webhooks

    Push events for new holdings, votes cast, engagements updated, or controversies detected — straight into your data warehouse.

    OAuth 2.0 + scoped keys

    Per-fund API keys, granular scopes and rotating secrets. Every call is signed, logged and exportable for audit.

    Custodian connectors

    Pre-built integrations with the custodians stewardship teams actually use.

    Out-of-the-box connectors automatically pull your portfolios and counterparty list from your custodian on a daily schedule. Every connector is open source — fork it, audit it, or extend it to fit your internal data pipeline.

    CACEISBNP Paribas Securities ServicesSociété Générale Securities ServicesState StreetBNY MellonNorthern TrustCustom SFTP / file feed
    Don't see your custodian? Our reference connectors run on a generic SFTP / SWIFT MT535 ingestion layer — most new custodians are wired up in under 5 business days by your CSM.
    Open-source examples

    Sync portfolios and counterparties in less than 20 lines of code.

    The snippets below are taken straight from our public repositories. Use them to wire your custodian feed, your data warehouse and your stewardship workflow into a single pipeline.

    Python
    # pip install engageinsights
    from engageinsights import Client
    
    client = Client(api_key="ei_live_…")
    
    # 1. Pull today's holdings from your custodian feed (CACEIS, BNP, SGSS, …)
    holdings = client.portfolios.sync(
        custodian="caceis",
        fund_id="FR0010XXXXXX",
        as_of="2026-04-17",
    )
    
    # 2. Push the issuer + counterparty list into engage insights
    client.counterparties.upsert(
        [
            {"lei": h.issuer_lei, "name": h.issuer_name, "country": h.country}
            for h in holdings
        ]
    )
    
    print(f"Synced {len(holdings)} positions across {len({h.issuer_lei for h in holdings})} issuers")
    TypeScript
    // npm install @engageinsights/sdk
    import { EngageInsights } from "@engageinsights/sdk";
    
    const ei = new EngageInsights({ apiKey: process.env.EI_API_KEY! });
    
    // Subscribe to controversy alerts on holdings you actually own
    ei.webhooks.on("controversy.detected", async (event) => {
      await notifyStewardshipTeam({
        issuer: event.issuer.name,
        severity: event.severity,
        fundsExposed: event.funds.map((f) => f.id),
        sourceUrl: event.source.url,
      });
    });
    
    await ei.webhooks.listen({ port: 4000 });
    cURL
    # Trigger a fresh portfolio sync from BNP Paribas Securities Services
    curl -X POST https://api.engageinsights.io/v1/portfolios/sync \
      -H "Authorization: Bearer $EI_API_KEY" \
      -H "Content-Type: application/json" \
      -d '{
        "custodian": "bnp_securities_services",
        "fund_id": "LU1234567890",
        "as_of": "2026-04-17"
      }'

    See what your stewardship workflow could look like.

    30 minutes. Live demo. Tailored to your fund structure and regulatory obligations.

    1. 30-min live demo2. 100% Custom Solution3. Live in 2 weeks