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.
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.
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.
# 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")// 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 });# 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.