ECONALK PUBLIC API · 1.0.0

ECONALK Public API

Human-owned keys. Stable read-only snapshots. No autonomous agent signup or payment in Phase 1.

Quickstart

Key rotation: create replacement with explicit scopes, update server secret, verify traffic, then revoke old key. Raw keys display once and expire by default after 180 days.

AI agents may call this REST API now with a human-owned scoped key. Only autonomous agent signup and payment are deferred; /llms.txt remains documentation discovery, never a credential.

Run these calls in the interactive console →

curl --request GET 'https://api.econalk.com/v1/articles' --header 'Authorization: Bearer ek_live_YOUR_KEY'

JavaScript

const response = await fetch('https://api.econalk.com/v1/articles', { headers: { Authorization: 'Bearer ' + process.env.ECONALK_API_KEY } });
const payload = await response.json();

Python

import os, requests
response = requests.get('https://api.econalk.com/v1/articles', headers={'Authorization': 'Bearer ' + os.environ['ECONALK_API_KEY']})
response.raise_for_status()

Language guide

English

Human-owned keys. Stable read-only snapshots. No autonomous agent signup or payment in Phase 1.

Create, rotate, and revoke keys after signing in at ECONALK Developers. Keep secrets in server environment variables.

Member: 60/minute and 10,000/month. Premium: 300/minute and 100,000/month. Every plan hard-stops; no automatic or surprise overage.

Request quota does not grant redistribution rights. Production display, resale, or bulk extraction requires written Commercial approval.

Commercial access starts at $99/month. Ask ECONALK about approved rights, higher volume, and support.

한국어

사람 회원이 소유하는 키로 읽기 전용 스냅샷을 사용합니다. 1단계에는 AI 에이전트 자동 가입·결제가 없습니다.

ECONALK 개발자 화면에서 로그인 후 키를 생성·교체·폐기하세요. 비밀 키는 서버 환경 변수에만 보관하세요.

Member는 분당 60회·월 10,000회, Premium은 분당 300회·월 100,000회입니다. 모든 플랜은 한도에서 중단됩니다.

호출 한도는 재배포 권리를 포함하지 않습니다. 제품 표시·재판매·대량 추출은 Commercial 서면 승인이 필요합니다.

Commercial은 월 $99부터 시작합니다. 승인된 이용 권리, 추가 호출량, 지원은 ECONALK에 문의하세요.

日本語

人間の会員が所有するキーで、読み取り専用スナップショットを利用します。Phase 1 にエージェントの自動登録・決済はありません。

ECONALK Developers にログインしてキーを作成・ローテーション・失効してください。秘密はサーバー環境変数だけに保存します。

Member は毎分60回・月10,000回、Premium は毎分300回・月100,000回。上限で必ず停止します。

リクエスト枠に再配布権は含まれません。製品表示、再販、一括抽出には Commercial の書面承認が必要です。

Commercial は月額 $99 から。承認済み利用権、追加容量、サポートは ECONALK へお問い合わせください。

中文

API 密钥由真人会员持有,仅访问只读快照。第一阶段不提供 AI Agent 自动注册或付款。

登录 ECONALK Developers 后创建、轮换和撤销密钥。密钥只应保存在服务器环境变量中。

Member 每分钟60次、每月10,000次;Premium 每分钟300次、每月100,000次。达到额度后硬停止。

请求额度不包含再分发权。产品展示、转售或批量提取需要 Commercial 书面批准。

Commercial 每月 $99 起。已批准的使用权、额外调用量和支持请联系 ECONALK。

Endpoints

GET/v1/articlesarticles:read

List articles

Returns licensed ECONALK editorial fields. Rights metadata controls attribution and reuse; provider market snapshots are excluded. Snapshot generation and latest published article are each no more than 7 days old.

Try this endpoint with your key →

Request fields

limitquery · optionalinteger · default=20, min=1, max=100

Page size. Defaults to 20; maximum 100.

cursorquery · optionalstring · minLength=1, maxLength=2048

Opaque cursor bound to one immutable response snapshot.

localequery · optionalstring · enum=en-US | ko-KR | ja-JP | zh-CN

Defined by canonical OpenAPI constraints.

categoryquery · optionalstring · minLength=1, maxLength=80

Defined by canonical OpenAPI constraints.

200 response · ArticleListEnvelope

List articles response.

datarequiredarray<Article>

Field defined by canonical OpenAPI schema.

data[].slugrequiredstring · minLength=1, maxLength=200, pattern=^[a-z0-9]+(?:-[a-z0-9]+)*$

Field defined by canonical OpenAPI schema.

data[].titlerequiredstring · minLength=1, maxLength=300

Field defined by canonical OpenAPI schema.

data[].summaryrequiredstring · minLength=1, maxLength=1000

Field defined by canonical OpenAPI schema.

data[].localerequiredstring · enum=en-US | ko-KR | ja-JP | zh-CN

Field defined by canonical OpenAPI schema.

data[].categoryrequiredstring · minLength=1, maxLength=80

Field defined by canonical OpenAPI schema.

data[].publishedAtrequiredstring · format=date-time

Field defined by canonical OpenAPI schema.

data[].updatedAtoptionalstring · format=date-time

Field defined by canonical OpenAPI schema.

data[].authorrequiredstring · minLength=1, maxLength=120

Field defined by canonical OpenAPI schema.

data[].bodyoptionalstring · minLength=1, maxLength=262144

Safe CommonMark text. ECONALK MDX components are converted to inert Markdown and must never be executed as HTML or JSX. UTF-8 payload is capped at 262144 bytes.

data[].imageUrloptionalstring · format=uri, maxLength=2048

Field defined by canonical OpenAPI schema.

data[].tagsoptionalarray<string> · maxItems=20

Field defined by canonical OpenAPI schema.

data[].tags[]optionalstring · minLength=1, maxLength=80

Field defined by canonical OpenAPI schema.

data[].sourcesoptionalarray<ArticleSource> · maxItems=50

Field defined by canonical OpenAPI schema.

data[].sources[].titlerequiredstring · minLength=1, maxLength=300

Field defined by canonical OpenAPI schema.

data[].sources[].publisherrequiredstring · minLength=1, maxLength=160

Field defined by canonical OpenAPI schema.

data[].sources[].urlrequiredstring · format=uri, maxLength=2048

Field defined by canonical OpenAPI schema.

data[].sources[].publishedAtoptionalstring · format=date-time

Field defined by canonical OpenAPI schema.

data[].rightsrequiredobject<Rights>

Reuse terms for licensed ECONALK content. Clients must preserve attribution and follow linked API Terms.

data[].rights.licenserequiredstring · minLength=1, maxLength=120

Field defined by canonical OpenAPI schema.

data[].rights.attributionrequiredstring · minLength=1, maxLength=200

Field defined by canonical OpenAPI schema.

data[].rights.canonicalUrloptionalstring · format=uri, maxLength=2048

Field defined by canonical OpenAPI schema.

metarequiredobject<ListResponseMeta>

Field defined by canonical OpenAPI schema.

meta.requestIdrequiredstring · minLength=1, maxLength=128, pattern=^[A-Za-z0-9_-]+$

Field defined by canonical OpenAPI schema.

meta.snapshotrequiredobject<Snapshot>

Field defined by canonical OpenAPI schema.

meta.snapshot.idrequiredstring · minLength=1, maxLength=256

Field defined by canonical OpenAPI schema.

meta.snapshot.generatedAtrequiredstring · format=date-time

Field defined by canonical OpenAPI schema.

meta.snapshot.schemaVersionrequiredstring · pattern=^\d+\.\d+(?:\.\d+)?$

Field defined by canonical OpenAPI schema.

meta.paginationrequiredobject<Pagination>

Field defined by canonical OpenAPI schema.

meta.pagination.limitrequiredinteger · min=1, max=100

Field defined by canonical OpenAPI schema.

meta.pagination.nextCursorrequiredstring | null · minLength=1, maxLength=2048

Field defined by canonical OpenAPI schema.

meta.pagination.hasMorerequiredboolean

Field defined by canonical OpenAPI schema.

Documented statuses: 200, 400, 401, 403, 404, 429, 500, 503. Non-200 bodies use the canonical ErrorEnvelope.
GET/v1/articles/{slug}articles:read

Get article

Returns one licensed ECONALK article with explicit rights and source attribution metadata. Snapshot generation and latest published article are each no more than 7 days old.

Try this endpoint with your key →

Request fields

slugpath · requiredstring · minLength=1, maxLength=200, pattern=^[a-z0-9]+(?:-[a-z0-9]+)*$

Canonical URL-safe resource slug.

200 response · ArticleEnvelope

Get article response.

datarequiredobject<Article>

Field defined by canonical OpenAPI schema.

data.slugrequiredstring · minLength=1, maxLength=200, pattern=^[a-z0-9]+(?:-[a-z0-9]+)*$

Field defined by canonical OpenAPI schema.

data.titlerequiredstring · minLength=1, maxLength=300

Field defined by canonical OpenAPI schema.

data.summaryrequiredstring · minLength=1, maxLength=1000

Field defined by canonical OpenAPI schema.

data.localerequiredstring · enum=en-US | ko-KR | ja-JP | zh-CN

Field defined by canonical OpenAPI schema.

data.categoryrequiredstring · minLength=1, maxLength=80

Field defined by canonical OpenAPI schema.

data.publishedAtrequiredstring · format=date-time

Field defined by canonical OpenAPI schema.

data.updatedAtoptionalstring · format=date-time

Field defined by canonical OpenAPI schema.

data.authorrequiredstring · minLength=1, maxLength=120

Field defined by canonical OpenAPI schema.

data.bodyoptionalstring · minLength=1, maxLength=262144

Safe CommonMark text. ECONALK MDX components are converted to inert Markdown and must never be executed as HTML or JSX. UTF-8 payload is capped at 262144 bytes.

data.imageUrloptionalstring · format=uri, maxLength=2048

Field defined by canonical OpenAPI schema.

data.tagsoptionalarray<string> · maxItems=20

Field defined by canonical OpenAPI schema.

data.tags[]optionalstring · minLength=1, maxLength=80

Field defined by canonical OpenAPI schema.

data.sourcesoptionalarray<ArticleSource> · maxItems=50

Field defined by canonical OpenAPI schema.

data.sources[].titlerequiredstring · minLength=1, maxLength=300

Field defined by canonical OpenAPI schema.

data.sources[].publisherrequiredstring · minLength=1, maxLength=160

Field defined by canonical OpenAPI schema.

data.sources[].urlrequiredstring · format=uri, maxLength=2048

Field defined by canonical OpenAPI schema.

data.sources[].publishedAtoptionalstring · format=date-time

Field defined by canonical OpenAPI schema.

data.rightsrequiredobject<Rights>

Reuse terms for licensed ECONALK content. Clients must preserve attribution and follow linked API Terms.

data.rights.licenserequiredstring · minLength=1, maxLength=120

Field defined by canonical OpenAPI schema.

data.rights.attributionrequiredstring · minLength=1, maxLength=200

Field defined by canonical OpenAPI schema.

data.rights.canonicalUrloptionalstring · format=uri, maxLength=2048

Field defined by canonical OpenAPI schema.

metarequiredobject<ResponseMeta>

Field defined by canonical OpenAPI schema.

meta.requestIdrequiredstring · minLength=1, maxLength=128, pattern=^[A-Za-z0-9_-]+$

Field defined by canonical OpenAPI schema.

meta.snapshotrequiredobject<Snapshot>

Field defined by canonical OpenAPI schema.

meta.snapshot.idrequiredstring · minLength=1, maxLength=256

Field defined by canonical OpenAPI schema.

meta.snapshot.generatedAtrequiredstring · format=date-time

Field defined by canonical OpenAPI schema.

meta.snapshot.schemaVersionrequiredstring · pattern=^\d+\.\d+(?:\.\d+)?$

Field defined by canonical OpenAPI schema.

Documented statuses: 200, 400, 401, 403, 404, 429, 500, 503. Non-200 bodies use the canonical ErrorEnvelope.
GET/v1/economic-calendarcalendar:read

List economic calendar events

Returns ECONALK-curated events only. License and attribution are explicit; raw upstream payloads and provider identifiers are excluded. verifiedAt is no more than 100 days old, and coverageThrough extends at least 30 days beyond snapshot generation.

Try this endpoint with your key →

Request fields

fromquery · requiredstring · format=date, pattern=^\d{4}-\d{2}-\d{2}$

Inclusive start date. Combined range may not exceed 93 days.

toquery · requiredstring · format=date, pattern=^\d{4}-\d{2}-\d{2}$

Inclusive end date. Combined range may not exceed 93 days.

importancequery · optionalstring · enum=low | medium | high

Defined by canonical OpenAPI constraints.

countryquery · optionalstring · minLength=2, maxLength=2, pattern=^[A-Z]{2}$

Defined by canonical OpenAPI constraints.

limitquery · optionalinteger · default=20, min=1, max=100

Page size. Defaults to 20; maximum 100.

cursorquery · optionalstring · minLength=1, maxLength=2048

Opaque cursor bound to one immutable response snapshot.

200 response · EconomicCalendarListEnvelope

List economic calendar events response.

datarequiredarray<EconomicCalendarEvent>

Field defined by canonical OpenAPI schema.

data[].idrequiredstring · minLength=1, maxLength=160

Field defined by canonical OpenAPI schema.

data[].namerequiredstring · minLength=1, maxLength=300

Field defined by canonical OpenAPI schema.

data[].countryrequiredstring · pattern=^[A-Z]{2}$

Field defined by canonical OpenAPI schema.

data[].currencyoptionalstring · pattern=^[A-Z]{3}$

Field defined by canonical OpenAPI schema.

data[].scheduledAtrequiredstring · format=date-time

Field defined by canonical OpenAPI schema.

data[].verifiedAtrequiredstring · format=date-time

Field defined by canonical OpenAPI schema.

data[].coverageThroughrequiredstring · format=date, pattern=^\d{4}-\d{2}-\d{2}$

Field defined by canonical OpenAPI schema.

data[].importancerequiredstring · enum=low | medium | high

Field defined by canonical OpenAPI schema.

data[].periodoptionalstring · minLength=1, maxLength=80

Field defined by canonical OpenAPI schema.

data[].actualoptionalnumber | null

Field defined by canonical OpenAPI schema.

data[].forecastoptionalnumber | null

Field defined by canonical OpenAPI schema.

data[].previousoptionalnumber | null

Field defined by canonical OpenAPI schema.

data[].unitoptionalstring · minLength=1, maxLength=40

Field defined by canonical OpenAPI schema.

data[].statusrequiredstring · enum=scheduled | released | revised

Field defined by canonical OpenAPI schema.

data[].rightsrequiredobject<CalendarRights>

Attribution and reuse terms for ECONALK-curated calendar records.

data[].rights.licenserequiredstring · minLength=1, maxLength=120

Field defined by canonical OpenAPI schema.

data[].rights.attributionrequiredstring · minLength=1, maxLength=200

Field defined by canonical OpenAPI schema.

metarequiredobject<ListResponseMeta>

Field defined by canonical OpenAPI schema.

meta.requestIdrequiredstring · minLength=1, maxLength=128, pattern=^[A-Za-z0-9_-]+$

Field defined by canonical OpenAPI schema.

meta.snapshotrequiredobject<Snapshot>

Field defined by canonical OpenAPI schema.

meta.snapshot.idrequiredstring · minLength=1, maxLength=256

Field defined by canonical OpenAPI schema.

meta.snapshot.generatedAtrequiredstring · format=date-time

Field defined by canonical OpenAPI schema.

meta.snapshot.schemaVersionrequiredstring · pattern=^\d+\.\d+(?:\.\d+)?$

Field defined by canonical OpenAPI schema.

meta.paginationrequiredobject<Pagination>

Field defined by canonical OpenAPI schema.

meta.pagination.limitrequiredinteger · min=1, max=100

Field defined by canonical OpenAPI schema.

meta.pagination.nextCursorrequiredstring | null · minLength=1, maxLength=2048

Field defined by canonical OpenAPI schema.

meta.pagination.hasMorerequiredboolean

Field defined by canonical OpenAPI schema.

Documented statuses: 200, 400, 401, 403, 404, 429, 500, 503. Non-200 bodies use the canonical ErrorEnvelope.
GET/v1/smart-money/investorssmart-money:read

List Smart Money investors

Returns SEC filing facts plus ECONALK snapshot metrics. Snapshot generation is no more than 14 days old; each filing-quarter end is no more than 180 days old. Each upstream snapshot is capped to the largest 250 filing rows. Reported values are not AUM and do not represent full-portfolio value. No live quotes, security identifiers, or licensed market-vendor fields are exposed.

Try this endpoint with your key →

Request fields

limitquery · optionalinteger · default=20, min=1, max=100

Page size. Defaults to 20; maximum 100.

cursorquery · optionalstring · minLength=1, maxLength=2048

Opaque cursor bound to one immutable response snapshot.

categoryquery · optionalstring · minLength=1, maxLength=80

Defined by canonical OpenAPI constraints.

200 response · SmartMoneyInvestorListEnvelope

List Smart Money investors response.

datarequiredarray<SmartMoneyInvestor>

Field defined by canonical OpenAPI schema.

data[].cikrequiredstring · pattern=^\d{10}$

Field defined by canonical OpenAPI schema.

data[].slugrequiredstring · minLength=1, maxLength=160, pattern=^[a-z0-9]+(?:-[a-z0-9]+)*$

Field defined by canonical OpenAPI schema.

data[].namerequiredstring · minLength=1, maxLength=200

Field defined by canonical OpenAPI schema.

data[].firmrequiredstring · minLength=1, maxLength=300

Field defined by canonical OpenAPI schema.

data[].categoryoptionalstring · minLength=1, maxLength=80

Field defined by canonical OpenAPI schema.

data[].filingQuarterrequiredstring · pattern=^\d{4}-Q[1-4]$

Field defined by canonical OpenAPI schema.

data[].reportedSnapshotValueUsdrequirednumber · min=0

Sum across retained largest 250 filing rows; not AUM or full-portfolio value.

data[].positionCountrequiredinteger · min=0, max=250

Count of retained positions, capped at 250; not full filing position count.

data[].top10Weightrequirednumber · min=0, max=1

Combined weight of ten largest positions within retained capped snapshot.

data[].activityrequiredobject<SmartMoneyActivity>

Field defined by canonical OpenAPI schema.

data[].activity.newrequiredinteger · min=0

Field defined by canonical OpenAPI schema.

data[].activity.addedrequiredinteger · min=0

Field defined by canonical OpenAPI schema.

data[].activity.trimmedrequiredinteger · min=0

Field defined by canonical OpenAPI schema.

data[].activity.soldrequiredinteger · min=0

Field defined by canonical OpenAPI schema.

data[].marketValuePercentilerequirednumber | null · min=0, max=100

Percentile of reportedSnapshotValueUsd across ECONALK tracked snapshots; not AUM percentile.

data[].generatedAtrequiredstring · format=date-time

Field defined by canonical OpenAPI schema.

metarequiredobject<ListResponseMeta>

Field defined by canonical OpenAPI schema.

meta.requestIdrequiredstring · minLength=1, maxLength=128, pattern=^[A-Za-z0-9_-]+$

Field defined by canonical OpenAPI schema.

meta.snapshotrequiredobject<Snapshot>

Field defined by canonical OpenAPI schema.

meta.snapshot.idrequiredstring · minLength=1, maxLength=256

Field defined by canonical OpenAPI schema.

meta.snapshot.generatedAtrequiredstring · format=date-time

Field defined by canonical OpenAPI schema.

meta.snapshot.schemaVersionrequiredstring · pattern=^\d+\.\d+(?:\.\d+)?$

Field defined by canonical OpenAPI schema.

meta.paginationrequiredobject<Pagination>

Field defined by canonical OpenAPI schema.

meta.pagination.limitrequiredinteger · min=1, max=100

Field defined by canonical OpenAPI schema.

meta.pagination.nextCursorrequiredstring | null · minLength=1, maxLength=2048

Field defined by canonical OpenAPI schema.

meta.pagination.hasMorerequiredboolean

Field defined by canonical OpenAPI schema.

Documented statuses: 200, 400, 401, 403, 404, 429, 500, 503. Non-200 bodies use the canonical ErrorEnvelope.
GET/v1/smart-money/investors/{slug}smart-money:read

Get Smart Money investor

Returns one SEC filing snapshot and issuer-name positions derived by ECONALK. Snapshot generation is no more than 14 days old; the filing-quarter end is no more than 180 days old. Each upstream snapshot is capped to the largest 250 filing rows. Reported values are not AUM and do not represent full-portfolio value.

Try this endpoint with your key →

Request fields

slugpath · requiredstring · minLength=1, maxLength=160, pattern=^[a-z0-9]+(?:-[a-z0-9]+)*$

Canonical URL-safe resource slug.

200 response · SmartMoneyInvestorDetailEnvelope

Get Smart Money investor response.

datarequiredobject<SmartMoneyInvestorDetail>

Field defined by canonical OpenAPI schema.

data.cikrequiredstring · pattern=^\d{10}$

Field defined by canonical OpenAPI schema.

data.slugrequiredstring · minLength=1, maxLength=160, pattern=^[a-z0-9]+(?:-[a-z0-9]+)*$

Field defined by canonical OpenAPI schema.

data.namerequiredstring · minLength=1, maxLength=200

Field defined by canonical OpenAPI schema.

data.firmrequiredstring · minLength=1, maxLength=300

Field defined by canonical OpenAPI schema.

data.categoryoptionalstring · minLength=1, maxLength=80

Field defined by canonical OpenAPI schema.

data.filingQuarterrequiredstring · pattern=^\d{4}-Q[1-4]$

Field defined by canonical OpenAPI schema.

data.reportedSnapshotValueUsdrequirednumber · min=0

Sum across retained largest 250 filing rows; not AUM or full-portfolio value.

data.positionCountrequiredinteger · min=0, max=250

Count of retained positions, capped at 250; not full filing position count.

data.top10Weightrequirednumber · min=0, max=1

Combined weight of ten largest positions within retained capped snapshot.

data.activityrequiredobject<SmartMoneyActivity>

Field defined by canonical OpenAPI schema.

data.activity.newrequiredinteger · min=0

Field defined by canonical OpenAPI schema.

data.activity.addedrequiredinteger · min=0

Field defined by canonical OpenAPI schema.

data.activity.trimmedrequiredinteger · min=0

Field defined by canonical OpenAPI schema.

data.activity.soldrequiredinteger · min=0

Field defined by canonical OpenAPI schema.

data.marketValuePercentilerequirednumber | null · min=0, max=100

Percentile of reportedSnapshotValueUsd across ECONALK tracked snapshots; not AUM percentile.

data.generatedAtrequiredstring · format=date-time

Field defined by canonical OpenAPI schema.

data.positionsrequiredarray<SmartMoneyPosition> · maxItems=250

Field defined by canonical OpenAPI schema.

data.positions[].issuerNamerequiredstring · minLength=1, maxLength=300

Field defined by canonical OpenAPI schema.

data.positions[].sharesrequirednumber · min=0

Field defined by canonical OpenAPI schema.

data.positions[].reportedValueUsdrequirednumber · min=0

Reported value within the retained filing snapshot; not transaction cash flow.

data.positions[].weightWithinSnapshotrequirednumber · min=0, max=1

Weight within retained largest 250 filing rows; not full-portfolio weight.

data.positions[].putCallrequiredstring | null · enum=Put | Call | null

Field defined by canonical OpenAPI schema.

data.positions[].previousSharesrequirednumber | null · min=0

Field defined by canonical OpenAPI schema.

data.positions[].previousReportedValueUsdrequirednumber | null · min=0

Field defined by canonical OpenAPI schema.

data.positions[].previousWeightWithinSnapshotrequirednumber | null · min=0, max=1

Field defined by canonical OpenAPI schema.

data.positions[].sharesChangerequirednumber

Field defined by canonical OpenAPI schema.

data.positions[].reportedValueChangeUsdrequirednumber

Quarter-over-quarter reported-value change; includes market-price movement and is not transaction cash flow.

data.positions[].weightChangerequirednumber · min=-1, max=1

Field defined by canonical OpenAPI schema.

data.positions[].actionrequiredstring · enum=new | added | trimmed | hold

Field defined by canonical OpenAPI schema.

metarequiredobject<ResponseMeta>

Field defined by canonical OpenAPI schema.

meta.requestIdrequiredstring · minLength=1, maxLength=128, pattern=^[A-Za-z0-9_-]+$

Field defined by canonical OpenAPI schema.

meta.snapshotrequiredobject<Snapshot>

Field defined by canonical OpenAPI schema.

meta.snapshot.idrequiredstring · minLength=1, maxLength=256

Field defined by canonical OpenAPI schema.

meta.snapshot.generatedAtrequiredstring · format=date-time

Field defined by canonical OpenAPI schema.

meta.snapshot.schemaVersionrequiredstring · pattern=^\d+\.\d+(?:\.\d+)?$

Field defined by canonical OpenAPI schema.

Documented statuses: 200, 400, 401, 403, 404, 429, 500, 503. Non-200 bodies use the canonical ErrorEnvelope.
GET/v1/smart-money/consensussmart-money:read

List Smart Money consensus

Returns issuer-name consensus aggregated from SEC filing snapshots by ECONALK. Snapshot generation is no more than 14 days old; filing-quarter ends are no more than 180 days old. Inputs are capped to the largest 250 filing rows per investor. Reported values are not AUM and do not represent full-portfolio value.

Try this endpoint with your key →

Request fields

limitquery · optionalinteger · default=10, min=1, max=10

Page size. Defaults to 10; maximum 10. Every encoded response is independently capped at 512 KiB.

cursorquery · optionalstring · minLength=1, maxLength=2048

Opaque cursor bound to one immutable response snapshot.

200 response · SmartMoneyConsensusListEnvelope

List Smart Money consensus response.

datarequiredarray<SmartMoneyConsensus>

Field defined by canonical OpenAPI schema.

data[].issuerNamerequiredstring · minLength=1, maxLength=300

Field defined by canonical OpenAPI schema.

data[].holderCountrequiredinteger · min=1, max=50

Field defined by canonical OpenAPI schema.

data[].holdersrequiredarray<SmartMoneyConsensusHolder> · minItems=1, maxItems=50

Field defined by canonical OpenAPI schema.

data[].holders[].investorSlugrequiredstring · minLength=1, maxLength=160

Field defined by canonical OpenAPI schema.

data[].holders[].investorNamerequiredstring · minLength=1, maxLength=200

Field defined by canonical OpenAPI schema.

data[].holders[].weightWithinSnapshotrequirednumber · min=0, max=1

Weight within retained largest 250 filing rows; not full-portfolio weight.

data[].holders[].reportedValueUsdrequirednumber · min=0

Field defined by canonical OpenAPI schema.

data[].totalReportedValueUsdrequirednumber · min=0

Aggregate reported value across retained snapshots; not AUM or full-portfolio value.

data[].averageWeightWithinSnapshotrequirednumber · min=0, max=1

Average weight within each retained largest-250-row snapshot.

metarequiredobject<ListResponseMeta>

Field defined by canonical OpenAPI schema.

meta.requestIdrequiredstring · minLength=1, maxLength=128, pattern=^[A-Za-z0-9_-]+$

Field defined by canonical OpenAPI schema.

meta.snapshotrequiredobject<Snapshot>

Field defined by canonical OpenAPI schema.

meta.snapshot.idrequiredstring · minLength=1, maxLength=256

Field defined by canonical OpenAPI schema.

meta.snapshot.generatedAtrequiredstring · format=date-time

Field defined by canonical OpenAPI schema.

meta.snapshot.schemaVersionrequiredstring · pattern=^\d+\.\d+(?:\.\d+)?$

Field defined by canonical OpenAPI schema.

meta.paginationrequiredobject<Pagination>

Field defined by canonical OpenAPI schema.

meta.pagination.limitrequiredinteger · min=1, max=100

Field defined by canonical OpenAPI schema.

meta.pagination.nextCursorrequiredstring | null · minLength=1, maxLength=2048

Field defined by canonical OpenAPI schema.

meta.pagination.hasMorerequiredboolean

Field defined by canonical OpenAPI schema.

Documented statuses: 200, 400, 401, 403, 404, 429, 500, 503. Non-200 bodies use the canonical ErrorEnvelope.
GET/v1/smart-money/tradessmart-money:read

List Smart Money trades

Returns query-complete quarter-over-quarter SEC filing changes using issuer names. Snapshot generation is no more than 14 days old; filing-quarter ends are no more than 180 days old. Current positions are limited to the largest 250 filing rows per investor; historical sold rows are retained separately, so change-row counts can exceed 250. Reported-value changes are not transaction cash flow. Exchange symbols, CUSIPs, and sector-vendor fields are excluded.

Try this endpoint with your key →

Request fields

limitquery · optionalinteger · default=20, min=1, max=100

Page size. Defaults to 20; maximum 100.

cursorquery · optionalstring · minLength=1, maxLength=2048

Opaque cursor bound to one immutable response snapshot.

actionquery · optionalstring · enum=new | added | trimmed | sold

Defined by canonical OpenAPI constraints.

investorSlugquery · optionalstring · minLength=1, maxLength=160

Defined by canonical OpenAPI constraints.

200 response · SmartMoneyTradeListEnvelope

List Smart Money trades response.

datarequiredarray<SmartMoneyTrade>

Field defined by canonical OpenAPI schema.

data[].investorSlugrequiredstring · minLength=1, maxLength=160

Field defined by canonical OpenAPI schema.

data[].investorNamerequiredstring · minLength=1, maxLength=200

Field defined by canonical OpenAPI schema.

data[].filingQuarterrequiredstring · pattern=^\d{4}-Q[1-4]$

Field defined by canonical OpenAPI schema.

data[].issuerNamerequiredstring · minLength=1, maxLength=300

Field defined by canonical OpenAPI schema.

data[].putCallrequiredstring | null · enum=Put | Call | null

Option side when filing row is an option; null for equity.

data[].actionrequiredstring · enum=new | added | trimmed | sold

Field defined by canonical OpenAPI schema.

data[].sharesChangerequirednumber

Field defined by canonical OpenAPI schema.

data[].reportedValueChangeUsdrequirednumber

Quarter-over-quarter reported-value change; includes market-price movement and is not transaction cash flow.

data[].weightChangerequirednumber · min=-1, max=1

Field defined by canonical OpenAPI schema.

metarequiredobject<ListResponseMeta>

Field defined by canonical OpenAPI schema.

meta.requestIdrequiredstring · minLength=1, maxLength=128, pattern=^[A-Za-z0-9_-]+$

Field defined by canonical OpenAPI schema.

meta.snapshotrequiredobject<Snapshot>

Field defined by canonical OpenAPI schema.

meta.snapshot.idrequiredstring · minLength=1, maxLength=256

Field defined by canonical OpenAPI schema.

meta.snapshot.generatedAtrequiredstring · format=date-time

Field defined by canonical OpenAPI schema.

meta.snapshot.schemaVersionrequiredstring · pattern=^\d+\.\d+(?:\.\d+)?$

Field defined by canonical OpenAPI schema.

meta.paginationrequiredobject<Pagination>

Field defined by canonical OpenAPI schema.

meta.pagination.limitrequiredinteger · min=1, max=100

Field defined by canonical OpenAPI schema.

meta.pagination.nextCursorrequiredstring | null · minLength=1, maxLength=2048

Field defined by canonical OpenAPI schema.

meta.pagination.hasMorerequiredboolean

Field defined by canonical OpenAPI schema.

Documented statuses: 200, 400, 401, 403, 404, 429, 500, 503. Non-200 bodies use the canonical ErrorEnvelope.

Response headers

X-RateLimit-Limitinteger

Request limit for current rolling window.

X-RateLimit-Remaininginteger

Requests remaining in current rolling window.

X-RateLimit-Resetinteger

UTC Unix timestamp when rolling rate window resets.

X-Quota-Limitinteger

Requests allowed in current monthly quota period.

X-Quota-Remaininginteger

Requests remaining in current monthly quota period.

X-Quota-Resetinteger

UTC Unix timestamp when monthly quota resets.

X-Request-Idstring

Stable request identifier echoed in response body metadata or errors.

Pagination

Pagination uses opaque signed cursors bound to immutable snapshot and filters. Follow meta.pagination.nextCursor; never construct or persist assumptions about cursor contents.

Freshness

Freshness: articles 7 days; curated calendar verification 100 days with 30-day coverage; Smart Money generation 14 days and filing quarters 180 days. Invalid or stale data returns 503, never empty 200.

Quotas and extra usage

Quota: Member 60/minute and 10,000/month; Premium 300/minute and 100,000/month; Commercial from $99/month, default 600/minute and 250,000+/month. All plans hard-stop. Contact ECONALK for extra usage.

Discuss Commercial access →

Usage rights

Rights: attribution is required. Bulk extraction, raw data resale, sublicensing, and redistribution require separate written approval. Request allowance alone grants no display or resale rights.

Errors · ErrorEnvelope

Errors use one envelope and request ID. 401/403/429 and 5xx do not consume quota; 400 and 404 do. Rate and monthly headers appear on every API response. Unknown 401 limits use safe zero values.

errorrequiredobject

Field defined by canonical OpenAPI schema.

error.coderequiredstring · enum=invalid_request | invalid_cursor | invalid_api_key | insufficient_scope | not_found | rate_limited | quota_exceeded | snapshot_unavailable | internal_error

Field defined by canonical OpenAPI schema.

error.messagerequiredstring · minLength=1, maxLength=500

Field defined by canonical OpenAPI schema.

error.requestIdrequiredstring · minLength=1, maxLength=128, pattern=^[A-Za-z0-9_-]+$

Field defined by canonical OpenAPI schema.

error.docsUrlrequiredstring · format=uri

Field defined by canonical OpenAPI schema.

Error catalog →

Changelog

2026-08-05 — v1 standalone API: articles, economic calendar, and delayed Smart Money snapshots.

Breaking removals or meaning changes require v2. Deprecations publish Deprecation, Sunset, and Link headers.