Skip to content

sources

The sources.* commands inspect the providers Finance CLI can use for market data, SEC filings, documents, news, transcripts, estimates, and local document parsing.

Run these commands before a workflow when you want to confirm which providers are installed, which credentials are configured, and whether a provider can answer a lightweight validation request.

List known Finance CLI data providers and the capabilities attached to each provider.

finance sources.list returns the provider inventory compiled into Finance CLI. It reports each provider’s machine-readable name, display label, supported capabilities, package dependency, environment variables, and setup notes.

This command does not contact remote providers. It only checks whether package-backed providers can be imported locally.

Use this command when you want to see what Finance CLI can route to before running a workflow. It is the fastest way to discover provider names such as yfinance, sec, gdelt, fmp, pymupdf, camelot, and paddleocr.

Terminal window
finance sources.list

No command-specific arguments.

Terminal window
finance sources.list --output json

This output was generated with finance sources.list --output json.

{
"ok": true,
"data": {
"sources": [
{
"name": "yfinance",
"label": "Yahoo Finance via yfinance",
"capabilities": [
"quote",
"ohlcv",
"fundamentals",
"calendar",
"sector",
"industry",
"screen"
],
"required_env": [],
"optional_env": [],
"package": "yfinance",
"notes": "Public market, company calendar, sector, industry, and screener data via yfinance.",
"package_installed": true
},
{
"name": "sec",
"label": "SEC EDGAR",
"capabilities": [
"filings",
"filing_sections",
"company_metadata"
],
"required_env": [],
"optional_env": [
"FINANCE_SEC_USER_AGENT"
],
"package": null,
"notes": "Public SEC JSON plus edgartools for filing reads.",
"package_installed": true
},
{
"name": "gdelt",
"label": "GDELT",
"capabilities": [
"news",
"timeline",
"tone",
"geo"
],
"required_env": [],
"optional_env": [],
"package": null,
"notes": "Public global news APIs with article and timeline metadata.",
"package_installed": true
}
],
"count": 11
},
"error": null,
"warnings": []
}
FieldTypeDescription
okbooleanWhether the command completed successfully.
dataobject or nullCommand-specific result payload. It is null when ok is false.
errorstring or nullHuman-readable error message when ok is false; otherwise null.
warningsarrayNon-fatal warnings returned by the command.
data.sourcesarrayProvider inventory rows. The full command returns all known providers.
data.sources[].namestringProvider key accepted by commands such as finance sources.test SOURCE.
data.sources[].labelstringHuman-readable provider label.
data.sources[].capabilitiesarrayCapability tags used to describe what the provider can support.
data.sources[].required_envarrayEnvironment variables required before the provider is considered configured.
data.sources[].optional_envarrayEnvironment variables that can improve or identify provider access but are not required.
data.sources[].packagestring or nullImport name checked for package-backed providers. null means no import check is needed.
data.sources[].package_installedbooleanWhether the package import check succeeded.
data.sources[].notesstringSetup or coverage note for the provider.
data.countintegerNumber of known provider rows returned.

Check local provider setup state without making provider network requests.

finance sources.status checks installed package dependencies and expected environment variables for every known provider. It adds configured and status fields to each provider row and returns a summary of local readiness.

This command does not prove that a provider can answer a live request. Use finance sources.test for connectivity checks.

Use this command after installation, before debugging a workflow, or before running provider-backed examples in another namespace. It tells you whether local setup is missing credentials or importable packages.

Terminal window
finance sources.status

No command-specific arguments.

Terminal window
finance sources.status --output json

This output was generated with finance sources.status --output json.

{
"ok": true,
"data": {
"sources": [
{
"name": "yfinance",
"label": "Yahoo Finance via yfinance",
"configured": true,
"status": "configured",
"package": "yfinance",
"package_installed": true,
"required_env": [],
"optional_env": [],
"capabilities": [
"quote",
"ohlcv",
"fundamentals",
"calendar",
"sector",
"industry",
"screen"
],
"notes": "Public market, company calendar, sector, industry, and screener data via yfinance."
},
{
"name": "fmp",
"label": "Financial Modeling Prep",
"configured": false,
"status": "missing_config",
"package": null,
"package_installed": true,
"required_env": [
{
"name": "FMP_API_KEY",
"present": false
}
],
"optional_env": [],
"capabilities": [
"analyst_estimates",
"consensus_estimates"
],
"notes": "Analyst estimate provider via FMP stable analyst-estimates endpoint."
}
],
"count": 11,
"summary": {
"total": 11,
"configured": 8,
"ok": 0,
"failed": 0,
"missing_config": 3
}
},
"error": null,
"warnings": []
}
FieldTypeDescription
okbooleanWhether the command completed successfully.
dataobject or nullCommand-specific result payload. It is null when ok is false.
errorstring or nullHuman-readable error message when ok is false; otherwise null.
warningsarrayNon-fatal warnings returned by the command.
data.sourcesarrayProvider setup rows. The full command returns all known providers.
data.sources[].namestringProvider key.
data.sources[].configuredbooleantrue when required environment variables are present and package import checks pass.
data.sources[].statusstringconfigured or missing_config.
data.sources[].packagestring or nullImport name checked for package-backed providers.
data.sources[].package_installedbooleanWhether the package import check succeeded.
data.sources[].required_envarrayRequired environment variables with name and present.
data.sources[].optional_envarrayOptional environment variables with name and present.
data.sources[].capabilitiesarrayCapability tags available from the provider.
data.sources[].notesstringSetup or coverage note for the provider.
data.countintegerNumber of provider rows returned.
data.summary.totalintegerTotal provider rows inspected.
data.summary.configuredintegerProviders with local configuration ready.
data.summary.okintegerConnectivity successes. This is 0 for sources.status because the command does not run probes.
data.summary.failedintegerConnectivity failures. This is 0 for sources.status because the command does not run probes.
data.summary.missing_configintegerProviders missing required local configuration.

Run a lightweight provider connectivity test against one provider or all providers.

finance sources.test runs a minimal validation query for the selected provider. For example, yfinance requests a quote, sec resolves company metadata, and document parser providers check that their package import path works.

The command returns one result row per provider. The top-level command can be ok: true even when an individual provider row reports status: failed or status: missing_config; inspect data.results and data.summary for provider-level readiness.

Use this command when a workflow fails and you need to separate local setup problems from provider connectivity problems. It is also useful before running examples that depend on a specific provider.

Terminal window
finance sources.test [SOURCE|source=SOURCE] [symbol=SYMBOL] [timeout=SECONDS]
ArgumentRequiredDefaultAccepted valuesDescription
SOURCENoall providersyfinance, sec, gdelt, motley_fool, company_ir, fmp, pymupdf, camelot, paddleocr, alphavantage, alpaca, allPositional provider key. Omit it or pass all to test every provider.
sourceNoall providersSame as SOURCEKeyword form of the provider key. Use either SOURCE or source=SOURCE, not both.
symbolNoAAPLPublic ticker symbolSymbol used by probes that need a ticker. The value is uppercased in the result.
timeoutNo30Seconds as a numberTimeout passed to provider probes. Some providers can still take most of the timeout window.
Terminal window
finance sources.test yfinance symbol=AAPL --output json
finance sources.test sec symbol=AAPL timeout=60 --output json
finance sources.test source=all symbol=MSFT timeout=60 --output json

This output was generated with finance sources.test yfinance symbol=AAPL --output json.

{
"ok": true,
"data": {
"symbol": "AAPL",
"results": [
{
"name": "yfinance",
"configured": true,
"ok": true,
"status": "ok",
"latency_ms": 1167.07,
"error": null,
"required_env": [],
"optional_env": [],
"capabilities": [
"quote",
"ohlcv",
"fundamentals",
"calendar",
"sector",
"industry",
"screen"
]
}
],
"count": 1,
"summary": {
"total": 1,
"configured": 1,
"ok": 1,
"failed": 0,
"missing_config": 0
}
},
"error": null,
"warnings": []
}

Provider failures are returned inside data.results. This output was generated with finance sources.test sec symbol=AAPL timeout=60 --output json in an environment where the SEC request was rejected:

{
"ok": true,
"data": {
"symbol": "AAPL",
"results": [
{
"name": "sec",
"configured": true,
"ok": false,
"status": "failed",
"latency_ms": 366.72,
"error": "SEC request failed: Client error '403 Forbidden' for url 'https://www.sec.gov/files/company_tickers.json'\nFor more information check: https://developer.mozilla.org/en-US/docs/Web/HTTP/Status/403",
"required_env": [],
"optional_env": [
{
"name": "FINANCE_SEC_USER_AGENT",
"present": false
}
],
"capabilities": [
"filings",
"filing_sections",
"company_metadata"
]
}
],
"count": 1,
"summary": {
"total": 1,
"configured": 1,
"ok": 0,
"failed": 1,
"missing_config": 0
}
},
"error": null,
"warnings": []
}
FieldTypeDescription
okbooleanWhether the command completed successfully.
dataobject or nullCommand-specific result payload. It is null when ok is false.
errorstring or nullHuman-readable error message when ok is false; otherwise null.
warningsarrayNon-fatal warnings returned by the command.
data.symbolstringUppercased ticker symbol used by provider probes.
data.resultsarrayOne result row per selected provider.
data.results[].namestringProvider key that was tested.
data.results[].configuredbooleanWhether local setup was sufficient to attempt the probe.
data.results[].okbooleanProvider-level probe result.
data.results[].statusstringok, failed, or missing_config.
data.results[].latency_msnumber or nullProbe duration in milliseconds. null when no probe ran because configuration was missing.
data.results[].errorstring or nullProvider-level error message.
data.results[].required_envarrayRequired environment variable status rows.
data.results[].optional_envarrayOptional environment variable status rows.
data.results[].capabilitiesarrayCapability tags attached to the provider.
data.countintegerNumber of provider result rows returned.
data.summary.totalintegerNumber of provider result rows summarized.
data.summary.configuredintegerProviders locally configured.
data.summary.okintegerProviders whose probe succeeded.
data.summary.failedintegerProviders whose probe failed or could not run.
data.summary.missing_configintegerProviders skipped because required configuration is missing.