API Reference

Every endpoint with its limits and delivery formats, plus the OpenAPI 3.1 spec and the response schemas.

Getting Started

AuthenticationAPI key authentication via X-API-Key header
Rate limitingPer-plan limits, 429 responses with Retry-After
Limits & filteringdate_from / date_to / limit query params on list endpoints
ErrorsStandard error codes and messages (401, 403, 429)

Embeddings API

GET /v1/embeddings/{ticker}Embedding vectors for a ticker. Requires fiscal_period=YYYY-Qn; limit 1 to 100
GET /v1/transcripts/{ticker}List available transcript periods (fiscal_period, chunk_count) to discover values; limit 1 to 500

Signals API

GET /v1/signals/{ticker}Quant signals, newest first. Filter with date_from / date_to (ISO YYYY-MM-DD, inclusive) and limit (1 to 365, default 30). Each record carries a 0-1 Piotroski score plus five component families: piotroski, altman_z, beneish_m, sloan_accrual, regime.

Reference API

GET /v1/tickersList the tickers available to your plan: { tickers: [...], total: n }

Delivery

REST APIJSON, all plans. Base URL: api.vectorfinancials.com
GCS ParquetStarter+: raw parquet files pushed to your GCS bucket
Iceberg via PolarisPro+: Polaris REST catalog at catalog.vectorfinancials.com
BigQuery Analytics HubPro+: shared datasets via Analytics Hub
Snowflake (preview)Pro+: native Iceberg tables in Snowflake via Polaris (work-in-progress preview)

OpenAPI spec

The API follows the OpenAPI 3.1 specification. Point your client generator, Swagger UI, or Redoc at the machine-readable spec:

Download openapi.jsonhttps://api.vectorfinancials.com/openapi.json

Response schemas

EmbeddingRecord
tickerstringStock ticker symbol (e.g. AAPL)
fiscal_periodstringFiscal quarter (e.g. 2024-Q3)
chunk_idxintegerChunk index within the transcript
embeddingnumber[]768-dimensional embedding vector (gemini-embedding-2-preview)
effective_tsstring (ISO 8601)When the data became effective
knowledge_tsstring (ISO 8601)When VectorFin ingested this data
model_versionstringEmbedding model used (e.g. gemini/gemini-embedding-2-preview)
SignalRecord
tickerstringStock ticker symbol
datestring (YYYY-MM-DD)Signal date
scorenumberPiotroski F-Score as a 0-1 fraction (count of 9 positives divided by 9)
componentsobjectFive signal families: piotroski / altman_z / beneish_m / sloan_accrual / regime (see below)
components.piotroskiobject9 booleans; F-Score = count of true: positive_ni, positive_ocf, roa_increasing, ocf_gt_ni, leverage_decreasing, current_ratio_increasing, no_dilution, gross_margin_increasing, asset_turnover_increasing (each boolean | null)
components.altman_zobject{ score: number, zone: safe|grey|distress, components: { x1..x5: number } }. Bankruptcy distress.
components.beneish_mobject{ score: number, flag: boolean }. M-Score with an earnings-manipulation risk flag.
components.sloan_accrualobject | null{ ratio: number, quality: high|medium|low }. Accrual ratio and earnings quality; the whole object may be null when inputs are unavailable.
components.regimeobject{ current, confidence }. HMM market regime.
components.regime.currentstring | nullbull | bear | sideways | null (null when the regime cannot be determined)
components.regime.confidencenumber | nullModel confidence (0 to 1) in the current regime
effective_tsstring (ISO 8601)When the data became effective
knowledge_tsstring (ISO 8601)When VectorFin computed this signal (bitemporal: latest per (ticker, date) is current view)