VectorFin Python Client
Query VectorFin embeddings and signals from Python via the REST API. Works on every plan, including Free.
Prerequisites
Connection Guide
Install requests and set your API key
No SDK required. The REST API uses a single header (X-API-Key). Free-tier keys are issued instantly when you sign up at app.vectorfinancials.com.
pip install requests pandas
# Set the key from your dashboard. Free tier covers the top 100 tickers
# with a 90-day signal lookback and 1,000 calls/month.
import os
VF_API_KEY = os.environ["VECTORFIN_API_KEY"]List available tickers
Fetch the tickers your plan can access. Free returns the top 100; Starter and above return all 5,000+ US equities.
import requests
resp = requests.get(
"https://api.vectorfinancials.com/v1/tickers",
headers={"X-API-Key": VF_API_KEY},
timeout=10,
)
resp.raise_for_status()
data = resp.json()
print(f"{data['total']} tickers available")
print(data["tickers"][:10])Fetch transcript embeddings
Pull 768-dim embeddings for a ticker and fiscal period. fiscal_period is required (it scopes the partition scan); limit caps at 100 per call.
import pandas as pd, numpy as np
resp = requests.get(
"https://api.vectorfinancials.com/v1/embeddings/AAPL",
headers={"X-API-Key": VF_API_KEY},
params={"fiscal_period": "2024-Q3", "limit": 50},
timeout=10,
)
resp.raise_for_status()
records = resp.json() # list[EmbeddingRecord]
df = pd.DataFrame(records)
E = np.stack(df["embedding"].values) # (N, 768)
print(f"Loaded {E.shape[0]} chunks for AAPL 2024-Q3")Fetch quant signals
Pull the daily signal feed for a ticker. Free tier is capped at 90-day lookback and 7-day windows; paid tiers go back to data history start.
resp = requests.get(
"https://api.vectorfinancials.com/v1/signals/NVDA",
headers={"X-API-Key": VF_API_KEY},
params={"date_from": "2024-01-01", "limit": 365},
timeout=10,
)
resp.raise_for_status()
signals = pd.DataFrame(resp.json())
signals["date"] = pd.to_datetime(signals["date"])
signals = signals.set_index("date").sort_index()
print(signals[["score", "components"]].tail())Local cosine search over fetched embeddings
No server-side vector search yet — fetch the chunks for the tickers you care about and run similarity locally. For corpus-wide search, upgrade to Pro and query the Iceberg tables directly (see the Apache Iceberg integration).
# Fetch chunks for a basket and run cosine locally
chunks = []
for ticker in ["AAPL", "MSFT", "NVDA"]:
r = requests.get(
f"https://api.vectorfinancials.com/v1/embeddings/{ticker}",
headers={"X-API-Key": VF_API_KEY},
params={"fiscal_period": "2024-Q3", "limit": 100},
)
r.raise_for_status()
chunks.extend(r.json())
E = np.stack([c["embedding"] for c in chunks])
query = np.random.randn(768) # replace with your real query embedding
query /= np.linalg.norm(query)
sims = E @ query / np.linalg.norm(E, axis=1)
top5 = np.argsort(sims)[::-1][:5]
for i in top5:
c = chunks[i]
print(f"{c['ticker']} {c['fiscal_period']} chunk {c['chunk_idx']} sim={sims[i]:.3f}")Available Tables
All 7 VectorFin data tables — bitemporal (effective_ts + knowledge_ts), append-only, nightly updates.
GET /v1/tickersList tickers available on your plan▼
requests.get("https://api.vectorfinancials.com/v1/tickers", headers={"X-API-Key": key})GET /v1/embeddings/{ticker}Transcript chunk embeddings for a ticker + fiscal_period (required)▼
requests.get("https://api.vectorfinancials.com/v1/embeddings/AAPL", params={"fiscal_period": "2024-Q3"}, headers={"X-API-Key": key})GET /v1/signals/{ticker}Daily quant signals for a ticker (date_from, date_to, limit)▼
requests.get("https://api.vectorfinancials.com/v1/signals/NVDA", params={"date_from": "2024-01-01", "limit": 365}, headers={"X-API-Key": key})Related Integrations
Start querying in 2 minutes
Sign up for VectorFin and get immediate API access.