CLI for the Bigdata.com REST API
Project description
Bigdata CLI
Command-line interface for the Bigdata.com REST API. Search news, access financial data, explore the Knowledge Graph, and more — all from your terminal.
Installation
The CLI is published on PyPI as bigdata-cli.
uv (recommended):
uv tool install bigdata-cli
Installs the CLI into its own isolated environment and puts bigdata / bd on your $PATH.
Upgrade later with uv tool upgrade bigdata-cli (or bd update).
pip:
pip install bigdata-cli
Prefer pipx install bigdata-cli if you'd rather not pollute your global site-packages.
One-liner (no Python toolchain needed):
curl -fsSL https://github.com/Bigdata-com/bigdata-cli/raw/main/install.sh | bash
Installs uv if it's missing (which also manages Python for you), then installs the CLI in an isolated environment. Re-run it to upgrade.
Latest from git (unreleased changes):
uv tool install git+https://github.com/Bigdata-com/bigdata-cli.git
# or
pip install git+https://github.com/Bigdata-com/bigdata-cli.git
From source (for development):
git clone https://github.com/Bigdata-com/bigdata-cli.git
cd bigdata-cli
uv sync
Two entry points are available: bigdata (full name) and bd (short alias).
Quick start
# 1. Configure your API key (interactive — prompts for key and profile)
bd configure
# Or non-interactive (useful for CI/scripts)
bd configure --non-interactive --api-key your-api-key
# You can also set the key via environment variable instead
export BIGDATA_API_KEY=your-api-key
# 2. Discover the available commands
bd --help
bd search --help
bd find --help
bd resolve --help
# 3. Search across news, filings, and transcripts
bd search run "Tesla AI chips" --limit 5
# 4. Discover entities in the Knowledge Graph (fuzzy search)
bd find companies "Apple"
# 5. Resolve a known identifier to a stable entity (deterministic lookup)
bd resolve isin US0378331005
# 6. Combine commands — get an entity ID, then filter a search by it
bd find companies "Tesla" -o json | jq -r '.results[0].id'
bd search run "earnings" --entity-any-of DD3BB1 --limit 10
# 7. Aggregate signals over time
bd search volume "Tesla" --date-start 2025-01-01 --date-end 2025-03-31
bd search co-mentions-entities "AI chips" --limit 10
Most commands accept -o json|csv|ndjson for machine-readable output and --raw for the
unmodified API response — both useful for piping into jq, scripts, or AI agents.
Commands
Search (bd search)
Search across news, filings, transcripts, and research.
# Basic text search
bd search run "AI regulation in Europe"
# Search with filters
bd search run "earnings beat" \
--entity-any-of DD3BB1 \
--date-start 2025-01-01 \
--date-end 2025-03-31 \
--sentiment positive \
--limit 10
# Smart search (semantic)
bd search run "What is Tesla's revenue growth?" --mode smart
# Co-mentioned entities
bd search co-mentions-entities "AI chips" --limit 10
# Co-mentioned topics
bd search co-mentions-topics "electric vehicles"
# Search volume over time
bd search volume "Tesla" --date-start 2025-01-01 --date-end 2025-03-31
# Complex filters via JSON file
bd search run --body-file query.json
Available search filters:
| Flag | Description |
|---|---|
TEXT (positional) |
Search query text (4-1400 chars) |
--mode, -m |
fast (default) or smart |
--limit, -l |
Max results |
--entity-any-of |
Entity IDs — match any |
--entity-all-of |
Entity IDs — match all |
--entity-none-of |
Entity IDs — exclude |
--keyword-any-of |
Keywords — match any |
--keyword-all-of |
Keywords — match all |
--topic-any-of |
Topic IDs — match any |
--source-include |
Source IDs to include |
--source-exclude |
Source IDs to exclude |
--date-start |
Start date (ISO 8601) |
--date-end |
End date (ISO 8601) |
--sentiment |
positive, negative, neutral |
--category |
news, filings, transcripts, etc. |
--document-type |
NEWS, FILING, TRANSCRIPT |
Knowledge Graph
The Knowledge Graph is split across two command groups based on how you query it:
bd find-- fuzzy discovery. Input is ambiguous (a name, a query string) and the response may contain multiple candidate matches. Use this when you're exploring or don't yet know the entity's stable ID.bd resolve-- deterministic 1:1 lookup. Input is a stable identifier (ISIN, CUSIP, SEDOL, listing) and the response maps it to the matching entity. Use this when you already know which identifier you have and want the canonical entity back.
# Fuzzy discovery
bd find companies "Apple"
bd find sources "Reuters"
bd find etfs "SPY"
bd find sectors
# Deterministic resolution (companies, today)
bd resolve isin US0378331005
bd resolve cusip 037833100
bd resolve sedol 2046251
bd resolve listing XNAS:AAPL
# Bulk resolution -- pass multiple identifiers
bd resolve isin US0378331005 US88160R1014
# Lookup an entity by its Bigdata ID
bd find entities D8442A
Configuration
bd configure
The quickest way to set up your API key:
# Interactive (prompts for API key and profile name)
bd configure
# Non-interactive (for CI/scripts)
bd configure --non-interactive --api-key your-api-key
bd configure --non-interactive --api-key other-key --profile work
This writes credentials to ~/.bigdata/config.toml. If the file already exists,
the profile is updated and you'll see a warning before overwriting.
Config file
You can also edit ~/.bigdata/config.toml directly — one section per profile:
[default]
api_key = "your-api-key"
[work]
api_key = "work-api-key"
The file is created with a placeholder on first run if it doesn't exist.
Switch profiles with --profile:
bd --profile work find companies "Apple"
Resolution order
Settings are resolved by load_config() in src/bigdata_cli/config.py per profile.
For any CLI flag like output_format is (highest → lowest):
-o / --outputCLI flag- Selected profile in
~/.bigdata/config.toml BIGDATA_OUTPUT_FORMATenvironment variable (or.envfile in the working directory)- Built-in default (
table)
For api_key and base_url (highest → lowest):
- Selected profile in
~/.bigdata/config.toml(when the value is set in that profile) BIGDATA_API_KEY/BIGDATA_BASE_URLenvironment variables (or.envfile)- Built-in default (empty
api_key,https://api.bigdata.comforbase_url)
Raw JSON input
For complex queries that go beyond CLI flags, use --body or --body-file:
# Inline JSON
bd search run --body '{"query": {"text": "Tesla", "max_chunks": 5}}'
# From file
bd search run --body-file my-query.json
This works on every POST command.
Entity IDs
Most structured data commands take entity identifiers as positional arguments. By default, identifiers are treated as Bigdata entity IDs (rp_entity_id). Use --id-type to specify a different type (ticker, isin, cusip, sedol):
# Find Tesla's entity ID
bd find companies "Tesla" -o json | head -5
# → "id": "DD3BB1"
Development
# Install with dev dependencies
pip install -e ".[dev]"
# Run tests
pytest -v
# Run a specific test file
pytest tests/test_commands/test_search.py -v
Links
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file bigdata_cli-0.1.0.tar.gz.
File metadata
- Download URL: bigdata_cli-0.1.0.tar.gz
- Upload date:
- Size: 30.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
373677a8f5cf5b34bb2f061251219c69b22a5c9a1f067b0be20d55273704f3db
|
|
| MD5 |
b659a1c1a7dfe56ccb663c116b581fb9
|
|
| BLAKE2b-256 |
3a5b20f9c0d2d2515dfbf42d03fc23053c48819ae6674286d526e5a253a4232e
|
Provenance
The following attestation bundles were made for bigdata_cli-0.1.0.tar.gz:
Publisher:
workflow.yml on Bigdata-com/bigdata-cli
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
bigdata_cli-0.1.0.tar.gz -
Subject digest:
373677a8f5cf5b34bb2f061251219c69b22a5c9a1f067b0be20d55273704f3db - Sigstore transparency entry: 1603361291
- Sigstore integration time:
-
Permalink:
Bigdata-com/bigdata-cli@305623fc1caa55f9045516d8e351ff391d3d0904 -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/Bigdata-com
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
workflow.yml@305623fc1caa55f9045516d8e351ff391d3d0904 -
Trigger Event:
push
-
Statement type:
File details
Details for the file bigdata_cli-0.1.0-py3-none-any.whl.
File metadata
- Download URL: bigdata_cli-0.1.0-py3-none-any.whl
- Upload date:
- Size: 22.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
94452a310d4f692249fe66927e15e31209475fac4cca820c6f9e0117dc71e2a5
|
|
| MD5 |
666db98b7fef85753f5f297dea9f2c6a
|
|
| BLAKE2b-256 |
982ab487da35829610879978d6db72b6f537f62e63ca3830b3382e93b3bbfe10
|
Provenance
The following attestation bundles were made for bigdata_cli-0.1.0-py3-none-any.whl:
Publisher:
workflow.yml on Bigdata-com/bigdata-cli
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
bigdata_cli-0.1.0-py3-none-any.whl -
Subject digest:
94452a310d4f692249fe66927e15e31209475fac4cca820c6f9e0117dc71e2a5 - Sigstore transparency entry: 1603361470
- Sigstore integration time:
-
Permalink:
Bigdata-com/bigdata-cli@305623fc1caa55f9045516d8e351ff391d3d0904 -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/Bigdata-com
-
Access:
private
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
workflow.yml@305623fc1caa55f9045516d8e351ff391d3d0904 -
Trigger Event:
push
-
Statement type: