Available Instruments
Before you author a scenario you need to know two things: which symbols you can backtest, and what date range of data exists for each. The hosted Tektii platform exposes its full data catalog through the management API at https://api.tektii.com, so you can answer both questions with a single request.
The instruments catalog is public — GET /v1/instruments returns 200 with the full list and needs no authentication. You can browse the available data before you create an account or an API key. (This is the one read-only corner of the management API that is open; every other endpoint still requires your TEKTII_API_KEY — see Authentication.)
GET /v1/instruments
Lists every instrument the platform can backtest, with optional filtering.
curl https://api.tektii.com/v1/instruments
Query parameters
Both are optional and case-insensitive.
| Parameter | Values | Description |
|---|---|---|
market | CRYPTO, FOREX | Return only instruments in one market. |
status | available, coming_soon | Return only instruments with the given availability status. |
# Only the FX majors curl "https://api.tektii.com/v1/instruments?market=FOREX" # Only instruments with data ready to backtest curl "https://api.tektii.com/v1/instruments?status=available"
Response
The catalog is returned under a top-level data array:
{
"data": [
{
"symbol": "C:BTCUSD",
"name": "Bitcoin/US Dollar",
"market": "CRYPTO",
"dataSymbol": "BTC-USD",
"underlying": "BTC",
"denomination": "USD",
"dataStartDate": "2017-12-18",
"dataEndDate": "2026-07-12",
"granularities": ["tick", "1m", "2m", "5m", "10m", "15m", "30m", "1h", "2h", "4h", "12h", "1d", "1w"],
"status": "available"
},
{
"symbol": "F:EURUSD",
"name": "Euro/US Dollar",
"market": "FOREX",
"dataSymbol": "EUR-USD",
"underlying": "EUR",
"denomination": "USD",
"dataStartDate": "2009-09-25",
"dataEndDate": "2026-07-12",
"granularities": ["tick", "1m", "2m", "5m", "10m", "15m", "30m", "1h", "2h", "4h", "12h", "1d", "1w"],
"status": "available",
"tickSize": "0.00001",
"pricePrecision": 5
}
]
}
Fields
| Field | Type | Description |
|---|---|---|
symbol | string | The platform symbol — what you reference in a scenario configuration (e.g. C:BTCUSD, F:EURUSD). Crypto symbols are prefixed C:, forex F:. |
name | string | Human-readable instrument name (e.g. Bitcoin/US Dollar). |
market | string | Market type: CRYPTO or FOREX. |
dataSymbol | string | An internal identifier (e.g. BTC-USD, EUR-USD). Not accepted in scenario configs — use symbol for that. |
underlying | string | The asset being traded (e.g. BTC, EUR). |
denomination | string | What the asset is priced and settled in (e.g. USD). |
dataStartDate | string | Earliest date with historical data, as an ISO YYYY-MM-DD date. Omitted when availability is unknown or the instrument is still "coming soon". |
dataEndDate | string | Latest date with historical data, as an ISO YYYY-MM-DD date. This is a rolling boundary — yesterday's date in UTC, since data is considered current within 24 hours. |
granularities | string[] | Data granularities held in the catalog. The list is global (the same for every instrument): tick first, then candles from smallest to largest. Note that backtest subscriptions consume candle timeframes only (candle_1m…candle_1w) — tick appears in the catalog but is not a subscribable event; see valid events. |
status | string | available if dataStartDate is present, coming_soon if not. |
Some instruments also carry tickSize, lotSize, and pricePrecision when the platform knows the instrument's trading rules; each field is omitted when the rules are unknown. Today the FX pairs carry tickSize and pricePrecision (0.00001 / 5 decimal places, or 0.001 / 3 for JPY-quoted pairs), crypto pairs carry neither, and lotSize is not yet populated for any instrument. None of them are required for backtesting.
The catalog exposes two symbol strings per instrument. The platform symbol (symbol, e.g. F:EURUSD) is the one a scenario configuration expects. dataSymbol (e.g. EUR-USD) is an internal identifier. This management-API symbol scheme is a separate layer from the self-hosted Gateway's provider-native symbol format, where strings are passed through to your broker verbatim — don't mix the two.
The catalog today
At time of writing the catalog holds 42 instruments — 20 crypto pairs and 22 FX pairs, all available. FX history reaches back to late September 2009; crypto history begins per coin, from 2015 to 2023. dataEndDate rolls forward daily, so the live response is always the source of truth — the start dates below are stable and are what constrain how far back a scenario window can begin.
The lists below are a point-in-time snapshot for orientation. Instruments may be added over time and dataEndDate advances daily, so always call GET /v1/instruments for the current catalog rather than relying on these values.
FX — all 22 pairs have history from late September 2009, so any of them supports a scenario window back to then: F:EURUSD, F:GBPUSD, F:USDJPY, F:USDCHF, F:AUDUSD, F:USDCAD, F:NZDUSD, F:EURGBP, F:EURJPY, F:GBPJPY, F:EURCHF, F:EURAUD, F:EURCAD, F:EURNZD, F:GBPCHF, F:GBPAUD, F:AUDJPY, F:AUDNZD, F:AUDCAD, F:CADJPY, F:CHFJPY, F:NZDJPY.
Crypto — all pairs are USD-denominated; history depth varies per coin:
| Symbol | Underlying | Data starts |
|---|---|---|
C:LTCUSD | LTC | 2015-01-01 |
C:ETCUSD | ETC | 2016-07-27 |
C:XLMUSD | XLM | 2017-01-17 |
C:BCHUSD | BCH | 2017-08-01 |
C:TRXUSD | TRX | 2017-10-07 |
C:BTCUSD | BTC | 2017-12-18 |
C:ETHUSD | ETH | 2017-12-18 |
C:ADAUSD | ADA | 2018-02-26 |
C:XRPUSD | XRP | 2018-05-05 |
C:BNBUSD | BNB | 2018-08-20 |
C:LINKUSD | LINK | 2019-06-27 |
C:DOGEUSD | DOGE | 2019-07-05 |
C:ATOMUSD | ATOM | 2020-01-14 |
C:SOLUSD | SOL | 2020-08-11 |
C:DOTUSD | DOT | 2020-08-18 |
C:UNIUSD | UNI | 2020-09-17 |
C:AVAXUSD | AVAX | 2021-11-10 |
C:NEARUSD | NEAR | 2022-01-03 |
C:APTUSD | APT | 2022-10-19 |
C:POLUSD | POL | 2023-12-21 |
When you set the date window for a scenario configuration, keep it inside the instrument's dataStartDate → dataEndDate range. A window that starts before the data exists will simply have no bars to replay.
Errors
| Status | When |
|---|---|
400 Bad Request | An invalid market or status filter value was supplied. |
500 Internal Server Error | The catalog could not be loaded. |
Related catalog endpoints
The same public surface offers three companion endpoints for narrower lookups. All return the same instrument shape under data.
| Endpoint | Purpose |
|---|---|
GET /v1/instruments/markets | List the available markets (e.g. CRYPTO, FOREX) as { id, name } pairs. |
GET /v1/instruments/search?q=<query> | Search instruments by partial symbol or name match (case-insensitive). |
GET /v1/instruments/{symbol} | Fetch a single instrument by its platform symbol (e.g. /v1/instruments/F:EURUSD). Returns 404 if no such symbol exists. |
# What markets exist? curl https://api.tektii.com/v1/instruments/markets # Find everything matching "btc" curl "https://api.tektii.com/v1/instruments/search?q=btc" # Look up one instrument curl https://api.tektii.com/v1/instruments/F:EURUSD
Next steps
- Command Reference → scenario — create a scenario against these symbols and date ranges.
- Instrument Types (Gateway) — how symbols work on the self-hosted Trading Gateway, which is a different layer from this hosted catalog.
- Authentication — set up your API key for the rest of the management API.