+
VectorFin
Fully self-serve

VectorFin Python Client

Query VectorFin embeddings and signals from Python via the REST API. Works on every plan, including Free.

2 min
Setup time
7
Iceberg tables
5K+
US tickers
Nightly
Updates

Prerequisites

📋VectorFin Free plan
🔑API key from app.vectorfinancials.com
☁️Python account

Connection Guide

1

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.

bash
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"]
2

List available tickers

Fetch the tickers your plan can access. Free returns the top 100; Starter and above return all 5,000+ US equities.

python
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])
3

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.

python
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")
4

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.

python
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())
5

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).

python
# 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
sql
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)
sql
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)
sql
requests.get("https://api.vectorfinancials.com/v1/signals/NVDA", params={"date_from": "2024-01-01", "limit": 365}, headers={"X-API-Key": key})

Start querying in 2 minutes

Sign up for VectorFin and get immediate API access.