Fintel Data
Alex YangCommunityCreated by Alex Yang
- Skill
- Tool integration
- Business and productivity
- MIT
- No issues found
AutoGineer summary
Written by AutoGineer from the skill’s own files, not by the author
The Fintel Data skill enables AI agents to retrieve institutional-grade market intelligence from the Fintel platform. It supports both REST API and MCP server interfaces for accessing specialized financial datasets, such as short interest, borrow rates, fails-to-deliver, 13F institutional ownership, and insider trading activity. The skill is strictly read-only, focusing on GET requests to provide users with factual market data for analysis.
What it does
- Retrieves short interest, borrow rates, and shares available to borrow.
- Fetches institutional ownership data derived from SEC 13F filings.
- Accesses insider transaction records from SEC Form 3, 4, and 5.
- Provides analyst price targets, ratings, and earnings forecasts.
- Looks up security identifiers including ticker, CUSIP, ISIN, and FIGI.
- Queries EOD price history and latest market price statistics.
When to use it
- When a user asks for short squeeze data or short interest metrics.
- When researching institutional holders or insider buying/selling activity.
- When needing up-to-date analyst ratings or price targets for a specific ticker.
- When verifying security details using CUSIP, ISIN, or FIGI identifiers.
- When accessing Fintel watchlists or alerts for a user account.
Advantages
- Provides access to specialized datasets like borrow rates and FTDs.
- Supports both REST and MCP integration patterns.
- Includes robust error handling for API entitlements and service status.
- Standardizes data presentation for financial metrics and ownership tables.
Usage examples
- “What is the current short interest and borrow rate for AAPL?”
- The agent queries the Fintel API for the specified ticker and returns the latest short interest percentage and current securities-lending fee rates.
- “Who are the top institutional owners of Tesla?”
- The agent retrieves the 13F-derived ownership data and presents a formatted table of the largest institutional holders.
- “Show me recent insider buying for NVDA.”
- The agent fetches SEC Form 4 data for the ticker and lists recent insider transactions, distinguishing between buys and sells.
Install
Download the skill as a ZIP:
https://autogineer.com/agent-skills/himself65/fintel-data/downloadUnzip it into the cross-client skills folder of your project:
mkdir -p .agents/skills && unzip fintel-data.zip -d .agents/skills
Documentation by Alex Yang
Fintel Data Skill
If your host has not already executed the shell probes below (for example, in Codex), run the commands inside the ! wrappers with its shell tool before choosing a setup path. Use the actual output; if shell access is unavailable, report that limitation.
Fintel (fintel.io) is an institutional-grade market intelligence platform. Its strongest datasets are the ones most other providers lack: short interest, borrow rates, short volume, fails-to-deliver, 13F institutional ownership, and insider transactions.
Fintel exposes two surfaces backed by the same data contract:
| Surface | Endpoint | Auth | Best for |
|---|---|---|---|
| REST | https://api.fintel.io/v1/* | X-API-KEY header | Default — curl from any CLI agent |
| MCP | https://mcp.fintel.io/mcp | X-API-KEY header | MCP-native clients, tool auto-discovery |
Both require a Fintel API key. This skill is read-only — only call GET endpoints. The API also exposes write endpoints (create/delete stock lists, alert subscriptions, teams); do not call them.
Step 1: Resolve FINTEL_API_KEY
The skill resolves FINTEL_API_KEY in this order:
FINTEL_API_KEYenvironment variableFINTEL_API_KEYin.envin the current directoryFINTEL_API_KEYin.envat the git repo root (so a worktree inherits the key from the main checkout)
!`if [ -n "$FINTEL_API_KEY" ]; then echo "KEY_FROM_ENV_VAR"; elif [ -f .env ] && grep -qE "^FINTEL_API_KEY=" .env; then echo "KEY_FROM_LOCAL_DOTENV:$(pwd)/.env"; else GIT_COMMON=$(git rev-parse --path-format=absolute --git-common-dir 2>/dev/null); if [ -n "$GIT_COMMON" ]; then ROOT=$(dirname "$GIT_COMMON"); if [ -f "$ROOT/.env" ] && grep -qE "^FINTEL_API_KEY=" "$ROOT/.env"; then echo "KEY_FROM_ROOT_DOTENV:$ROOT/.env"; else echo "KEY_NOT_SET"; fi; else echo "KEY_NOT_SET"; fi; fi`Then act on the result:
KEY_FROM_ENV_VAR— use$FINTEL_API_KEYdirectly in curl calls.KEY_FROM_LOCAL_DOTENV:<path>/KEY_FROM_ROOT_DOTENV:<path>— load once before calling:export FINTEL_API_KEY=$(grep -E "^FINTEL_API_KEY=" <path> | head -1 | cut -d= -f2- | sed 's/^["'\'']//;s/["'\'']$//')KEY_NOT_SET— ask the user for their key. Keys come with a Fintel API plan (fintel.io, docs at api.fintel.io/docs). They can eitherexport FINTEL_API_KEY="..."or addFINTEL_API_KEY=...to.envat the repo root (preferred for worktrees).
Step 2: Resolve the Security
Most endpoints are addressed by {country}/{symbol} — an ISO country
code plus ticker, e.g. us/AAPL. Default to us when the user gives
only a ticker.
If the ticker is ambiguous or the user gives a company name, CUSIP, ISIN, or FIGI, resolve it first:
# name / ticker / CUSIP / ISIN / FIGI search
curl -s -H "X-API-KEY: $FINTEL_API_KEY" "https://api.fintel.io/v1/securities?query=apple&country=us"
# exact identifier lookup (type: cusip, isin, ticker, id)
curl -s -H "X-API-KEY: $FINTEL_API_KEY" "https://api.fintel.io/v1/identifiers/isin/US0378331005"Step 3: Match the Request to an Endpoint
| User wants | Endpoint | Notes |
|---|---|---|
| Short interest, days to cover | /v1/securities/{country}/{symbol}/short-interest | Trailing year, NYSE/NASDAQ-reported. Limited availability — must be enabled per account; 403 means not entitled |
| Borrow rate, cost to borrow, shares available | /v1/securities/{country}/{symbol}/borrow-rate | Latest securities-lending fee rate, rebate rate, shares available |
| Daily short volume | /v1/securities/{country}/{symbol}/short-volume | Trailing year: short, short-exempt, total volume |
| Fails-to-deliver / FTD | /v1/securities/{country}/{symbol}/fails-to-deliver | Trailing-year SEC FTD records (US only) |
| Institutional owners / 13F holders | /v1/securities/{country}/{symbol}/owners | Current SEC 13F-derived holders |
| Insider transactions / Form 4 | /v1/securities/{country}/{symbol}/insiders | SEC Form 3/4/5-derived; count param |
| Analyst price targets | /v1/securities/{country}/{symbol}/price-targets | High, low, mean, median |
| Analyst buy/hold/sell ratings | /v1/securities/{country}/{symbol}/analyst-ratings | Aggregated recommendations |
| Revenue / EPS forecasts | /v1/securities/{country}/{symbol}/forecast | Aggregated analyst estimates |
| EOD price history | /v1/securities/{country}/{symbol}/eod | period: 1m, 3m, 6m, 1y (default), 2y, 3y, 5y, all |
| Latest price + derived stats | /v1/securities/{country}/{symbol}/last-price | 52w high/low, WTD/MTD/YTD change; falls back to EOD close with meta.warnings=["quote_stale"] |
| Dividend history | /v1/securities/{country}/{symbol}/dividends | |
| Earnings history and surprises | /v1/securities/{country}/{symbol}/earnings | |
| Upcoming earnings (one stock / market-wide) | /v1/securities/{country}/{symbol}/calendar/earnings or /v1/calendar/earnings | from/to ISO dates, default today +7d, max 90d window |
| Upcoming dividends (one stock / market-wide) | /v1/securities/{country}/{symbol}/calendar/dividends or /v1/calendar/dividends | Same window rules |
| A specific fundamental metric | /v1/securities/{country}/{symbol}/data-points/{key} | Discover keys via /v1/data-definitions?query=... |
| Top/bottom ranked stocks | /v1/leaderboards then /v1/leaderboards/{key}/entries | 503 not_available means retry later; meta.status="beta" means stub data |
| Security profile, listings, identifier history | /v1/securities/{country}/{symbol} | |
| User's watchlists | /v1/stock-lists, /v1/stock-lists/{id}/items | Also /insiders, /owners, /filings per list |
| User's alerts | /v1/alerts, /v1/alert-messages | |
| Account / entitlements | /v1/account |
Full parameter details, country/exchange discovery endpoints, and more
curl examples: read references/api-reference.md.
Step 4: Call the API
curl -s -H "X-API-KEY: $FINTEL_API_KEY" \
"https://api.fintel.io/v1/securities/us/AAPL/short-volume" | python3 -m json.toolSuccess responses are JSON; some carry a
metaobject (warnings, freshness, status). Surfacemeta.warningsto the user when present.Errors return
{"error": {"code": "...", "message": "..."}}— e.g.unauthorized(bad/missing key),403(dataset not enabled for the account, common for short-interest),503 not_available(ranking service down — retry later, don't treat as empty data).Usage is metered per account — batch thoughtfully; don't poll.
Step 5: MCP Alternative (Optional)
For MCP-native setups, the same tools are discoverable from the official
server (tool names like fintel.get_short_interest,
fintel.get_security_owners — REST parity, same entitlements):
claude mcp add --transport http fintel https://mcp.fintel.io/mcp --header "X-API-KEY: your_key_here"Prefer REST via curl when shell access is available — it needs no setup beyond the key. Use MCP when the user explicitly asks for it or shell access is restricted (note: neither works on Claude.ai's sandbox).
Step 6: Respond to the User
Format numbers cleanly: prices to 2 decimals, percentages to 1-2 decimals, share counts with commas or abbreviations (2.3M, 1.1B).
For short data: contextualize — short interest as % of float, days to cover, borrow fee trend direction. High borrow fee + falling shares available is the classic squeeze setup; present the data, not a prediction.
For ownership/insiders: use tables (holder, shares, change, date). Distinguish buys from sells and option exercises in Form 4 data.
Note the data source: "Fintel" with dataset provenance (SEC 13F, Form 3/4/5, NYSE/NASDAQ short reports) when relevant.
Never turn the data into a trading recommendation, price target, or squeeze call — present facts and let the user draw conclusions.
Reference Files
references/api-reference.md— full REST endpoint reference: all GET endpoints with parameters, defaults, limits, error semantics, MCP tool name mapping, and curl examples.
Files
- ATTRIBUTION.mdAdded by AutoGineer882 B
- LICENSELicence file added by AutoGineer1.0 KiB
- README.md2.4 KiB
- SKILL.md8.7 KiB
- references/api-reference.md9.3 KiB
references/api-reference.md
Fintel Public Data API — Endpoint Reference
Base URL: https://api.fintel.io
Auth: X-API-KEY: $FINTEL_API_KEY header on every request (the legacy
auth header is accepted for compatibility; prefer X-API-KEY).
Docs: https://api.fintel.io/docs · OpenAPI: https://api.fintel.io/openapi.json
MCP: https://mcp.fintel.io/mcp (canonical) or https://api.fintel.io/mcp
(secondary) — JSON-RPC 2.0 over HTTP POST, same auth header, same
entitlements, tool names in the tables below.
All endpoints in this file are GET and read-only. Required
parameters are marked *. Path params {country} (ISO code, e.g. us)
and {symbol} (ticker, e.g. AAPL) apply to every /v1/securities/...
endpoint and are not repeated in the tables.
Error envelope: {"error": {"code": "...", "message": "..."}}.
Common codes: unauthorized (401, missing/invalid/revoked key —
response carries WWW-Authenticate: ApiKey realm="fintel-api"), 403
(dataset not enabled for the account), not_available (503, downstream
service down — retry later). Success responses may carry a meta object
with warnings, status, and freshness/provenance metadata.
Security Master & Reference
| Endpoint | MCP tool | Params | Description |
|---|---|---|---|
/v1/securities | fintel.search_securities | query* (ticker exact, name prefix, or exact CUSIP/ISIN/FIGI), country, limit (1-100, default 25) | Search the security master; returns active securities |
/v1/securities/{country}/{symbol} | fintel.get_security | — | Full profile incl. security_identifiers history and security_listings on other exchanges |
/v1/identifiers/{type}/{value} | fintel.lookup_identifier | type: cusip, isin, ticker, id; value | Resolve an external identifier to a security profile |
/v1/countries | fintel.list_countries | — | Countries with active securities + counts |
/v1/countries/{countryCode}/securities | fintel.list_country_securities | limit, page | Active securities in a country (alias: /v1/countries/{countryCode}) |
/v1/exchanges | fintel.list_exchanges | — | Exchanges with active securities + counts |
/v1/exchanges/{exchangeCode}/securities | fintel.list_exchange_securities | limit, page | Active securities on an exchange (alias: /v1/exchanges/{exchangeCode}) |
curl -s -H "X-API-KEY: $FINTEL_API_KEY" "https://api.fintel.io/v1/securities?query=apple&country=us&limit=5"
curl -s -H "X-API-KEY: $FINTEL_API_KEY" "https://api.fintel.io/v1/identifiers/cusip/037833100"Market Data / Prices
| Endpoint | MCP tool | Params | Description |
|---|---|---|---|
/v1/securities/{country}/{symbol}/eod | fintel.get_price_bars | period: 1m, 3m, 6m, 1y (default), 2y, 3y, 5y, all | EOD adjusted daily price bars |
/v1/securities/{country}/{symbol}/last-price | fintel.get_last_price | session: regular (default), pre, post, extended | Latest trade price + previous close, daily change abs/pct, intraday high/low, WTD/MTD/YTD change, 52-week high/low with distance, volume, avg volume. US listings use intraday tick tape when available; otherwise degrades to latest EOD close with meta.warnings=["quote_stale"] |
Short Interest & Borrow
Fintel's signature datasets. All trailing-year unless noted.
| Endpoint | MCP tool | Params | Description |
|---|---|---|---|
/v1/securities/{country}/{symbol}/short-interest | fintel.get_short_interest | — | Exchange-reported short interest (NYSE/NASDAQ-derived). Limited availability: disabled for general use, must be enabled per account — expect 403 otherwise |
/v1/securities/{country}/{symbol}/borrow-rate | fintel.get_borrow_rate | — | Latest securities-lending borrow rate: fee rate, rebate rate, shares available to borrow |
/v1/securities/{country}/{symbol}/short-volume | fintel.get_short_volume | — | Daily short-sale volume: short volume, short-exempt volume, total volume |
/v1/securities/{country}/{symbol}/fails-to-deliver | fintel.get_fails_to_deliver | — | SEC fails-to-deliver records (US securities): fail quantity and price |
curl -s -H "X-API-KEY: $FINTEL_API_KEY" "https://api.fintel.io/v1/securities/us/GME/borrow-rate"
curl -s -H "X-API-KEY: $FINTEL_API_KEY" "https://api.fintel.io/v1/securities/us/GME/short-volume"Ownership & Insiders
| Endpoint | MCP tool | Params | Description |
|---|---|---|---|
/v1/securities/{country}/{symbol}/owners | fintel.get_security_owners | — | Current institutional owners (SEC 13F-derived) |
/v1/securities/{country}/{symbol}/insiders | fintel.get_security_insiders | count | Reported insider transactions (SEC Form 3/4/5-derived) |
Fundamentals
| Endpoint | MCP tool | Params | Description |
|---|---|---|---|
/v1/securities/{country}/{symbol}/dividends | fintel.get_security_dividends | — | Historical dividend payments |
/v1/securities/{country}/{symbol}/earnings | fintel.get_security_earnings | — | Historical earnings reports and surprises |
/v1/securities/{country}/{symbol}/data-points/{key} | fintel.get_security_data_point | key* — a data-dictionary key | One financial metric by key; discover keys via data definitions below |
Analyst Estimates
| Endpoint | MCP tool | Params | Description |
|---|---|---|---|
/v1/securities/{country}/{symbol}/price-targets | fintel.get_security_price_targets | — | Analyst price targets: high, low, mean, median |
/v1/securities/{country}/{symbol}/analyst-ratings | fintel.get_security_analyst_ratings | — | Aggregated buy/hold/sell recommendations |
/v1/securities/{country}/{symbol}/forecast | fintel.get_security_forecast | — | Aggregated revenue and earnings forecasts |
Calendars
Date rules for all four: from (ISO-8601, default today), to (default
from + 7 days, max window 90 days), limit (1-1000, default 100).
| Endpoint | MCP tool | Description |
|---|---|---|
/v1/calendar/earnings | fintel.get_earnings_calendar | Market-wide earnings events |
/v1/calendar/dividends | fintel.get_dividend_calendar | Market-wide dividend events |
/v1/securities/{country}/{symbol}/calendar/earnings | fintel.get_security_earnings_calendar | One security's earnings events |
/v1/securities/{country}/{symbol}/calendar/dividends | fintel.get_security_dividend_calendar | One security's dividend events |
curl -s -H "X-API-KEY: $FINTEL_API_KEY" "https://api.fintel.io/v1/calendar/earnings?from=2026-07-21&to=2026-07-28&limit=200"Leaderboards
| Endpoint | MCP tool | Params | Description |
|---|---|---|---|
/v1/leaderboards | fintel.list_leaderboards | — | All available leaderboards (top/bottom performers by category) |
/v1/leaderboards/{key} | fintel.get_leaderboard | — | Leaderboard metadata |
/v1/leaderboards/{key}/entries | fintel.get_leaderboard | limit (1-500, default 50) | Ordered current entries. 503 not_available = ranking service down, retry later (not an empty result). meta.status="beta" = served from stub dataset |
Data Definitions (data dictionary)
| Endpoint | MCP tool | Params | Description |
|---|---|---|---|
/v1/data-definitions | fintel.list_data_definitions | query, tag, limit, page | Search available metrics/attributes |
/v1/data-definitions/{key} | fintel.get_data_definition | — | Detail for one metric/attribute key |
Account & Application State (read-only subset)
| Endpoint | MCP tool | Description |
|---|---|---|
/v1/account | fintel.get_account | Account profile and entitlements |
/v1/stock-lists | fintel.list_stock_lists | User's stock lists (watchlists) |
/v1/stock-lists/{stockListId} | fintel.get_stock_list | One stock list |
/v1/stock-lists/{stockListId}/items | fintel.list_stock_list_items | Symbols in a list |
/v1/stock-lists/{stockListId}/insiders | — | Insider transactions across a list |
/v1/stock-lists/{stockListId}/owners | — | Institutional owners across a list |
/v1/stock-lists/{stockListId}/filings | — | Filings across a list |
/v1/alerts | fintel.list_alerts | User's alerts |
/v1/alerts/{alertId} | fintel.get_alert | One alert |
/v1/alert-messages | fintel.list_alert_messages | Fired alert messages |
/v1/alert-definitions | — | Available alert definitions |
/v1/screens | — | User's saved screens |
/v1/follows | — | User's follows |
/v1/teams, /v1/teams/{teamId}, /v1/teams/{teamId}/members | fintel.list_teams, fintel.get_team, fintel.get_team_members | Team collaboration (read) |
The API also exposes write endpoints on these resources (POST/PUT/PATCH/ DELETE for stock lists, alert subscriptions, teams, documents, topics). This skill never calls them — read-only by policy.
MCP Notes
Protocol: JSON-RPC 2.0 over HTTP POST to
https://mcp.fintel.io/mcp.Same auth (
X-API-KEYheader), same entitlements, same backend as REST ("one data contract, two front doors").tools/listreturns the account-aware live catalog — tools the key is actually entitled to. The public (unauthenticated) capability catalog is at https://mcp.fintel.io/#capabilities.Example raw call:
curl -s -X POST https://mcp.fintel.io/mcp \ -H "Content-Type: application/json" -H "X-API-KEY: $FINTEL_API_KEY" \ -d '{"jsonrpc":"2.0","id":1,"method":"tools/list","params":{}}'
Requirements and compatibility
Works with: Claude Code, Claude apps, OpenAI Codex, GitHub Copilot, Cursor, Gemini CLI, Kiro, OpenCode, Goose, Amp, Roo Code, JetBrains Junie, Factory Droid, Devin (ex-Windsurf), Mistral Vibe, OpenHands, Letta
“Works with” means the tool reads the open Agent Skills format; a skill written for one tool may use features others lack.
Needs: Needs network access, Needs an API key, Needs Python
Security
No issues found by our static scan· No issues found
A static scan is not a guarantee. Skills are third-party content: review a skill before you let an agent use it.
Attribution and licence
- Created by
- Alex Yang
- Publisher
- Alex Yang (Community)
- Source
- himself65/finance-skills · plugins/data-providers/skills/fintel-data · commit a085078
- Licence
- MIT License (redistribution allowed)
- LICENSE (added by AutoGineer from LICENSE)
- ATTRIBUTION.md (written by AutoGineer)
- Synced
AutoGineer is not affiliated with or endorsed by Alex Yang or Alex Yang.
Download ZIP
The ZIP holds the skill’s files, its licence files and an ATTRIBUTION.md. Download fintel-data.zip