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
Host:
historical.flashalpha.comAuth: X-Api-KeyTier: Alpha or EnterpriseParameters
| Name | In | Required | Description |
|---|---|---|---|
packId | path | yes | Pack ID from the catalog, e.g. income-spy-qqq-2024-2025-v1-db139753fe8b |
at | query | no | ET 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 },
...
]
}
| Field | Description |
|---|---|
pack_id | Name, version and the first 12 hex characters of source_fingerprint; any change to rules, inputs or code produces a new ID |
status | Coverage of the study; this pilot is partial because QQQ runs spanning 2024 are withheld |
published_at_utc, definition_frozen_at_utc, data_cutoff_utc | The 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_sha256 | Hash of every research script that produced the pack |
Errors
| Status | error | When |
|---|---|---|
| 400 | invalid_research_pack_id | The ID contains characters outside the allowed set |
| 400 | invalid_at | at is not a valid ET timestamp or date |
| 401 | - | Missing or invalid X-Api-Key |
| 403 | tier_restricted | Plan below Alpha |
| 404 | research_pack_not_available | No pack with this ID, or it was not yet available at at |
Related endpoints
- Research Pack Catalog API -
GET /v1/research/packs - Research Pack Artifact API -
GET /v1/research/packs/{packId}/artifacts/{name} - Historical trader context - income replays link the relevant pack through
metrics.research - The first pack's results - SPY and QQQ covered calls and cash-secured puts