ALPHA TIER HISTORICAL RESEARCH PACKS

Historical Research Pack Manifest API

Fetch one pack's manifest by ID. The manifest is the pack's source of truth: it fixes the study period, the publication, definition-freeze and data-cutoff timestamps, the source-code hashes, the results summary, the stated limitations and the SHA-256 and byte length of every downloadable artifact. Background: research packs.

Host
historical
Tier
Alpha / Enterprise
at
Optional
Format
JSON (REST)

Endpoint

GET/v1/research/packs/{packId}
Host: historical.flashalpha.comAuth: X-Api-KeyTier: Alpha or Enterprise

Parameters

NameInRequiredDescription
packIdpathyesPack ID from the catalog, e.g. income-spy-qqq-2024-2025-v1-db139753fe8b
atquerynoET wall-clock instant; the pack is returned only if it was available then

Request

curl -H "X-Api-Key: YOUR_API_KEY" \
  "https://historical.flashalpha.com/v1/research/packs/income-spy-qqq-2024-2025-v1-db139753fe8b"
import requests

PACK = "income-spy-qqq-2024-2025-v1-db139753fe8b"
m = requests.get(
    f"https://historical.flashalpha.com/v1/research/packs/{PACK}",
    headers={"X-Api-Key": "YOUR_API_KEY"},
).json()
print(m["status"], m["published_at_utc"], m["data_cutoff_utc"])
for a in m["artifacts"]:
    print(a["name"], a["media_type"], a["bytes"], a["sha256"])

Response

{
  "schema_version": 1,
  "pack_id": "income-spy-qqq-2024-2025-v1-db139753fe8b",
  "status": "retrospective_pilot_partial_history_coverage",
  "research_type": "income_strategy_backtest",
  "evidence_mode": "retrospective_model_simulation",
  "strategy_version": "income-monthly-v1",
  "strategies": ["covered_call", "cash_secured_put"],
  "symbols": ["SPY", "QQQ"],
  "period_start": "2024-01-02",
  "period_end": "2025-12-31",
  "published_at_utc": "2026-10-16T09:23:45.160415Z",
  "definition_frozen_at_utc": "2026-10-16T08:27:23.633272+00:00",
  "data_cutoff_utc": "2025-12-31T21:00:00Z",
  "source_fingerprint": "db139753fe8b5952b4e1f6435164a36276311f0bfb5913ba451976737aff204e",
  "source_code_sha256": { "research/income_pilot.py": "61c22603f9ae...", "...": "..." },
  "applicability": "strategy_family_research_not_a_backtest_of_this_candidate",
  "summary": [
    { "symbol": "SPY", "strategy": "covered_call", "evaluation_window": "full_2024_2025",
      "status": "complete_model_simulation", "metrics": { "initial_equity_usd": 100000, "final_equity_usd": 121504.7, "...": "..." } },
    ...
  ],
  "limitations": [
    "QQQ 2024 held-contract quote gaps withhold full-period/development performance",
    "Retrospective chronological holdout; not prospective validation",
    ...
  ],
  "artifacts": [
    { "name": "methodology.json", "media_type": "application/json", "sha256": "5cc77420293697f8...", "bytes": 1721 },
    ...
  ]
}
FieldDescription
pack_idName, version and the first 12 hex characters of source_fingerprint; any change to rules, inputs or code produces a new ID
statusCoverage of the study; this pilot is partial because QQQ runs spanning 2024 are withheld
published_at_utc, definition_frozen_at_utc, data_cutoff_utcThe three times an at request is checked against
summary[]Per symbol, strategy and evaluation window: completion status and metrics (equity, returns, drawdown, trades)
limitations[]What the study does not establish; read these before citing a result
artifacts[]name, media_type, sha256 and bytes for each file the artifact route serves
source_code_sha256Hash of every research script that produced the pack

Errors

StatuserrorWhen
400invalid_research_pack_idThe ID contains characters outside the allowed set
400invalid_atat is not a valid ET timestamp or date
401-Missing or invalid X-Api-Key
403tier_restrictedPlan below Alpha
404research_pack_not_availableNo pack with this ID, or it was not yet available at at