Getting started
- Sign in and open Account / Developer.
- Create a scoped key and copy it once.
- Send it in the
Authorization: Bearerheader. - Call
GET /api/v1/me/accessto inspect effective access.
Versioned access to forecasts, quantile datasets, screeners, prediction-market exports, and collaborator-aware workspace resources.
Authorization: Bearer header.GET /api/v1/me/access to inspect effective access.API keys identify a user; they do not freeze a workspace role. Quantura checks current membership, role, resource ownership, and plan on every request. Viewer access is GET-only in the shared workspace and does not reduce permissions in the viewer's personal workspace.
curl -H "Authorization: Bearer $QUANTURA_API_KEY" \
https://quantura.studio/api/v1/me/accessimport os, requests
r = requests.get(
"https://quantura.studio/api/v1/workspaces",
headers={"Authorization": f"Bearer {os.environ['QUANTURA_API_KEY']}"},
)
r.raise_for_status()const response = await fetch(
"https://quantura.studio/api/v1/datasets",
{ headers: { Authorization: `Bearer ${process.env.QUANTURA_API_KEY}` } },
);
if (!response.ok) throw new Error(`API ${response.status}`);review_required is not represented as cleared for raw redistribution.Catalog metadata is available through GET /api/v1/datasets with datasets:read.
Quantura-created point-in-time P1/P25/P50/P75/P99 distributions for supported assets and contracts.
Provider-qualified contract observations normalized to decimal 0–1 targets and UTC timestamps.
Provider-sourced OHLCV and options observations with explicit source, units, timestamp, and freshness metadata.
Viewer permissions apply only inside the shared workspace and are re-evaluated on every request.
curl -H "Authorization: Bearer $QUANTURA_API_KEY" \
https://quantura.studio/api/v1/workspacescurl -H "Authorization: Bearer $QUANTURA_API_KEY" \
"https://quantura.studio/api/v1/workspaces/$WORKSPACE_ID/forecasts?limit=50"curl -H "Authorization: Bearer $QUANTURA_API_KEY" \
"https://quantura.studio/api/v1/workspaces/$WORKSPACE_ID/prediction-analyses"Create an immutable asynchronous job, poll its status, then download the final ensemble. Component-model arrays are not included in standard customer responses.
curl -H "Authorization: Bearer $QUANTURA_API_KEY" \
https://quantura.studio/api/v1/ensemble-forecasts/modelsAvailability reflects the caller's plan and runtime licensing. Toto and TimesFM contribute within P10–P90 only.
curl -X POST \
-H "Authorization: Bearer $QUANTURA_API_KEY" \
-H "Content-Type: application/json" \
-H "Idempotency-Key: research-run-001" \
-d '{
"source":{"type":"ticker","symbol":"AAPL"},
"prediction_length":30,
"horizon_mode":"trading_sessions",
"quantiles":[0.01,0.1,0.25,0.5,0.75,0.9,0.99],
"transform":"auto",
"models":{
"prophet":{"enabled":true,"weight":0.2},
"toto":{"enabled":true,"weight":0.2},
"granite":{"enabled":true,"weight":0.2},
"chronos":{"enabled":true,"weight":0.2},
"timesfm":{"enabled":false,"weight":0}
}
}' https://quantura.studio/api/v1/ensemble-forecastscurl -H "Authorization: Bearer $QUANTURA_API_KEY" \
https://quantura.studio/api/v1/ensemble-forecasts/$FORECAST_ID
curl -H "Authorization: Bearer $QUANTURA_API_KEY" \
"https://quantura.studio/api/v1/ensemble-forecasts/$FORECAST_ID/download?format=csv" \
--output forecast.csv
curl -X POST -H "Authorization: Bearer $QUANTURA_API_KEY" \
https://quantura.studio/api/v1/ensemble-forecasts/$FORECAST_ID/reproduceA successful create returns HTTP 202 unless an identical immutable result is safely reused. Reproduction uses the original input snapshot and pinned checkpoints while re-evaluating current access and licensing.
import os, time, requests
headers = {"Authorization": f"Bearer {os.environ['QUANTURA_API_KEY']}"}
job = requests.post(
"https://quantura.studio/api/v1/ensemble-forecasts",
headers=headers,
json=request_body,
).json()["data"]
while job["status"] in {"queued", "running"}:
time.sleep(3)
job = requests.get(f"https://quantura.studio{job['status_url']}", headers=headers).json()["data"]const created = await fetch("/api/v1/ensemble-forecasts", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.QUANTURA_API_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify(requestBody),
});
const { data: job } = await created.json();Use synthetic credentials in examples. Never paste production secrets into shared screenshots or support requests.