Skip to main content

langchain-etfiq

LangChain tools for ETFIQ's free ETF data. No API key.

from langchain_etfiq import EtfiqToolkit

tools = {t.name: t for t in EtfiqToolkit().get_tools()}
tools["etfiq_profile"].invoke({"ticker": "JEPI"})
# {'ticker': 'JEPI', 'name': 'JPMorgan Equity Premium Income ETF', 'fee': 0.35, 'fee_asof': '2026-10-19',
#  'ret_1y': 9.95, 'yield_12m': 8.63, 'bench_gap_1y': -1.6, 'bench_gap_1y_ref': 'SPY', ...,
#  'as_of': '2026-11-02', 'source_url': 'https://etfiq.com/funds/jepi',
#  'attribution': 'Source: ETFIQ (etfiq.com), data as of 2026-11-02'}

Source: ETFIQ (etfiq.com), data as of the date in each record's as_of. Keep the record's attribution line when you reuse it.

Tools

Tool Does
etfiq_search find ETFs by ticker or name
etfiq_profile fee, size, returns, yield, IQ score, flows, benchmark gap, each dated
etfiq_holdings issuer-published holdings, weights in percent, cash as its own row
etfiq_flows money in and out, 1D to 1Y
etfiq_compare two to five ETFs side by side
etfiq_screen filter by category, issuer, fee, size, return, yield

Give them to an agent:

from langchain.agents import create_agent
agent = create_agent("anthropic:claude-sonnet-4-5", EtfiqToolkit().get_tools())

Or use the MCP server

ETFIQ's MCP server (33 tools, including the committee, scorecards and model portfolios) works today through langchain-mcp-adapters:

from langchain_mcp_adapters.client import MultiServerMCPClient

client = MultiServerMCPClient({"etfiq": {"url": "https://mcp.etfiq.com/mcp", "transport": "streamable_http"}})
tools = await client.get_tools()   # 33 tools

Licence and terms

Code: MIT. ETFIQ's computed data is open with attribution, see https://etfiq.com/license/. Holdings are issuer-published and stay under the issuer's terms; each record says so. Requests are paced at 2 a second with User-Agent: etfiq-langchain/0.1.0 (data@etfiq.com).

Tests

pip install -e ".[test]" && pytest tests

Unit tests use langchain-tests. Integration tests read the live files at https://etfiq.com/data/.

Metadata

Release files for langchain-etfiq 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for langchain-etfiq 0.1.0
File Size Uploaded Provenance Actions
langchain_etfiq-0.1.0.tar.gz 8.4 kB With provenance Details for langchain_etfiq-0.1.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for langchain-etfiq 0.1.0
File Interpreter ABI Platform Actions
langchain_etfiq-0.1.0-py3-none-any.whl Python 3 none any Details for langchain_etfiq-0.1.0-py3-none-any.whl

Total release size: 17.0 kB

Release files / langchain_etfiq-0.1.0.tar.gz

Download URL langchain_etfiq-0.1.0.tar.gz
Size 8.4 kB
Tags Source
SHA-256 checksum
How to use checksums
f0757bd5382d5d41d257632ea4f60985f58685759a61eef4c16067191a3744e8
BLAKE2b-256 checksum
How to use checksums
c229f1607038a8faf9185ef3923631b890904ad732c10404706d311ed6dffdfc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 3, 2026.

Transparency log

Release files / langchain_etfiq-0.1.0-py3-none-any.whl

Download URL langchain_etfiq-0.1.0-py3-none-any.whl
Size 8.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
a9fbafbd74281fbca5fc355f3879efe3136a91aff24d3c90e0e6bad5b891b601
BLAKE2b-256 checksum
How to use checksums
54974c9b608959b9461ad60c9d5b0440fffa2da8fcb00d80edca82991f32533d
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 3, 2026.

Transparency log

Security for langchain-etfiq 0.1.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for langchain_etfiq-0.1.0.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 3, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files Full provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page