complexity
- Simple
- Moderate
- Complex
- Very Complex
Read-only API reference for retrieving Quantpedia strategy metadata, including list and detail endpoints, auth requirements, response schema, enum values, and error handling behavior.
This document describes the Quantpedia Public API.
The API exposes the following endpoints:
These endpoints return Quantpedia strategy metadata. The list endpoint returns a lightweight catalog of strategies. The detail endpoint returns the full strategy metadata for a single strategy.
The API uses HTTP Basic Authentication.
Authorization: Basic <base64(username:apikey)>
curl -u "your_username:your_api_key" https://quantpedia.com/api/v1/strategy
curl -u "your_username:your_api_key" https://quantpedia.com/api/v1/strategy/STRATEGY_ID
When you provide valid credentials, the API verifies your API key and returns only the strategies your account is authorized to access.
Without valid credentials, you may receive limited or no strategy data.
All endpoints use the following base URL:
https://quantpedia.com
GET /api/v1/strategy
Returns all Quantpedia strategies visible to you.
curl -u "your_username:your_api_key" https://quantpedia.com/api/v1/strategy
[
{
"id": "abc123",
"name": "Trend Following Across Asset Classes",
"path": "api/v1/strategy/abc123"
},
{
"id": "def456",
"name": "Short-Term Reversal in Equities",
"path": "api/v1/strategy/def456"
}
]
| Field | Type | Description |
|---|---|---|
| id | string | Internal strategy identifier |
| name | string | Human-readable strategy name |
| path | string | Relative API path for the strategy detail endpoint |
GET /api/v1/strategy/{id}
| Name | Type | Description |
|---|---|---|
| id | string | Strategy identifier |
Returns the full metadata for a single strategy. Not all detail fields are available for all subscription levels, so the response can differ based on your subscription.
curl -u "your_username:your_api_key" https://quantpedia.com/api/v1/strategy/abc123
{
"id": "abc123",
"name": "Trend Following Across Asset Classes",
"description": "A systematic strategy that takes long and short positions based on medium-term price trends across global futures markets.",
"paperMetrics": {
"backtestStartYear": 1985,
"backtestEndYear": 2020,
"performance": 12.4,
"performanceNotes": "Annualized return reported in the source paper.",
"volatility": 10.1,
"volatilityNotes": "Annualized volatility from the paper.",
"drawdownMax": -18.6,
"drawdownMaxNotes": "Maximum drawdown reported in the paper.",
"sharpeRatio": 1.05
},
"calculatedMetrics": {
"start": "2000-01-01",
"end": "2025-12-31",
"perf1M": 0.8,
"perf1Y": 9.4,
"perf3Y": 28.2,
"perf5Y": 51.3,
"perfYTD": 3.1,
"perfPreviousYear": 7.6,
"perfInception": 184.7,
"perfToDrawdownMax": 2.3,
"perfToDrawdown95": 2.8,
"volatility1Y": 9.9,
"volatility5Y": 10.4,
"volatilityInception": 10.8,
"drawdown95": -12.1,
"drawdownMax": -22.3,
"sharpeRatio5Y": 0.91,
"sharpeRatioInception": 0.88,
"correlation": 0.12
},
"keywords": ["trend-following", "diversification", "futures"],
"instruments": ["Futures"],
"marketFactors": ["Equities", "Bonds", "Currencies", "Commodities"],
"regions": ["Global"],
"complexity": "Moderate",
"complexityNotes": "Requires multi-market data and periodic rebalancing.",
"confidence": "Strong",
"confidenceNotes": "Supported by a long backtest and multiple related studies.",
"crisisHedge": "Probably",
"crisisHedgeNotes": "Tends to perform well during persistent market stress but not in every short drawdown.",
"instrumentsCount": 20,
"instrumentsCountNotes": "The exact number depends on the implementation universe.",
"rebalancingPeriod": "Monthly",
"rebalancingPeriodNotes": "Signal evaluation and portfolio refresh are typically done once per month.",
"simpleTradingStrategy": "Go long assets with positive trailing trend and short assets with negative trailing trend.",
"fundamentalReason": "Behavioral underreaction and slow-moving information diffusion can create persistent trends.",
"relatedDataset": "Continuous futures prices",
"sourcePaper": {
"name": "A Century of Evidence on Trend-Following Investing",
"abstract": "The paper documents persistent return premia from time-series momentum across asset classes.",
"sources": [
"https://example.org/paper"
]
},
"otherPapers": [
{
"name": "Time Series Momentum",
"abstract": "Additional evidence on momentum effects across liquid futures markets.",
"sources": [
"https://example.org/related-paper"
]
}
]
}
GET /api/v1/strategy/{id}/performance?orient=split
| Name | Type | Description |
|---|---|---|
| id | string | Strategy identifier |
| Name | Type | Description |
|---|---|---|
| orient | string | Optional. Output JSON orientation: split (default) or records |
Returns the strategy's performance time series (date-indexed). Dates are serialized as YYYY-MM-DD. Access to performance curves is restricted: a strategy must be visible to your account and your account must have portfolio access to use the performance data.
curl -u "your_username:your_api_key" "https://quantpedia.com/api/v1/strategy/abc123/performance"
curl -u "your_username:your_api_key" "https://quantpedia.com/api/v1/strategy/abc123/performance?orient=split"
curl -u "your_username:your_api_key" "https://quantpedia.com/api/v1/strategy/abc123/performance?orient=records"
[
{"date":"2025-01-01","performance":0.0023},
{"date":"2025-01-02","performance":-0.0011}
]
{
"columns":["date","performance"],
"data":[["2025-01-01",0.0023],["2025-01-02",-0.0011]]
}
GET /api/v1/strategy/{id}/source-code
| Name | Type | Description |
|---|---|---|
| id | string | Strategy identifier |
Returns backtest source files for the strategy. Each item includes the file name, last modified timestamp, and the file content. The endpoint requires that the strategy has an associated backtest and that your account is authorized to view the strategy.
curl -u "your_username:your_api_key" https://quantpedia.com/api/v1/strategy/abc123/source-code
[
{
"file_name": "main.py",
"modified_at": "2025-01-02T14:23:00.000",
"content": "..."
},
{
"file_name": "research.ipynb",
"modified_at": "2025-01-02T14:23:00.000",
"content": "..."
}
]
If the strategy has no backtest or your account is not authorized to access the backtest files, the endpoint returns a 404 response.
| Field | Type | Description |
|---|---|---|
| id | string | Internal strategy identifier |
| name | string | Strategy name |
| description | string | Human-readable summary of the strategy |
| paperMetrics | object | Metrics sourced from the academic paper |
| calculatedMetrics | object | Calculated performance metrics |
| keywords | array of string | Strategy keywords |
| instruments | array of string | Instrument types used by the strategy |
| marketFactors | array of string | Asset classes or market groups |
| regions | array of string | Geographic coverage |
| complexity | string | Complexity classification |
| complexityNotes | string | Additional notes for complexity |
| confidence | string | Confidence classification |
| confidenceNotes | string | Additional notes for confidence |
| crisisHedge | string | Crisis hedge assessment |
| crisisHedgeNotes | string | Additional notes for crisis hedge assessment |
| instrumentsCount | integer | Number of instruments used |
| instrumentsCountNotes | string | Additional notes for instrument count |
| rebalancingPeriod | string | Rebalancing frequency |
| rebalancingPeriodNotes | string | Additional notes for rebalancing |
| simpleTradingStrategy | string | Plain-language summary of the trading rules |
| fundamentalReason | string | Economic or behavioral rationale |
| relatedDataset | string | Related dataset reference |
| sourcePaper | object | Primary source paper |
| otherPapers | array of object | Related papers |
| Field | Type | Description |
|---|---|---|
| backtestStartYear | integer | Start year of the paper backtest |
| backtestEndYear | integer | End year of the paper backtest |
| performance | number | Reported paper performance |
| performanceNotes | string | Notes about performance |
| volatility | number | Reported paper volatility |
| volatilityNotes | string | Notes about volatility |
| drawdownMax | number | Reported paper maximum drawdown |
| drawdownMaxNotes | string | Notes about maximum drawdown |
| sharpeRatio | number | Reported paper Sharpe ratio |
| Field | Type |
|---|---|
| start | date string |
| end | date string |
| perf1M | number |
| perf1Y | number |
| perf3Y | number |
| perf5Y | number |
| perfYTD | number |
| perfPreviousYear | number |
| perfInception | number |
| perfToDrawdownMax | number |
| perfToDrawdown95 | number |
| volatility1Y | number |
| volatility5Y | number |
| volatilityInception | number |
| drawdown95 | number |
| drawdownMax | number |
| sharpeRatio5Y | number |
| sharpeRatioInception | number |
| correlation | number |
| Field | Type | Description |
|---|---|---|
| name | string | Paper title |
| abstract | string | Paper abstract or summary |
| sources | array of string | Related source URLs |
If a strategy is not found or you do not have access to it, the API returns an error response.
Clients should handle non-2xx responses, including:
Always send your credentials with every request:
curl -u "your_username:your_api_key" https://quantpedia.com/api/v1/strategy
curl -u "your_username:your_api_key" https://quantpedia.com/api/v1/strategy/{id}
Quantpedia Public Strategy API documentation page.