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.

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.

ParameterValuesDescription
marketCRYPTO, FOREXReturn only instruments in one market.
statusavailable, coming_soonReturn 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-06-03",
      "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-06-03",
      "granularities": ["tick", "1m", "2m", "5m", "10m", "15m", "30m", "1h", "2h", "4h", "12h", "1d", "1w"],
      "status": "available"
    }
  ]
}

Fields

FieldTypeDescription
symbolstringThe platform symbol — what you reference in a scenario configuration (e.g. C:BTCUSD, F:EURUSD). Crypto symbols are prefixed C:, forex F:.
namestringHuman-readable instrument name (e.g. Bitcoin/US Dollar).
marketstringMarket type: CRYPTO or FOREX.
dataSymbolstringThe data-layer symbol used internally for storage and lookups (e.g. BTC-USD, EUR-USD). Not the string you put in a scenario config — use symbol for that.
underlyingstringThe asset being traded (e.g. BTC, EUR).
denominationstringWhat the asset is priced and settled in (e.g. USD).
dataStartDatestring | nullEarliest date with historical data, as an ISO YYYY-MM-DD date. null (or omitted) means availability is unknown or the instrument is still "coming soon".
dataEndDatestringLatest 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.
granularitiesstring[]Timeframes you can request. The list is global (the same for every instrument): tick first, then candles from smallest to largest.
statusstringavailable if dataStartDate is present, coming_soon if not.

Some responses also carry tickSize, lotSize, and pricePrecision when the platform knows the instrument's trading rules; these are null when the rules are unknown and are not required for backtesting.

The catalog today

At time of writing the catalog holds 12 instruments — 5 crypto pairs and 7 FX majors, all available. Crypto history begins in 2017–2020 (per coin); FX history reaches back to 2009. 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.

SymbolMarketUnderlyingData starts
C:BTCUSDCRYPTOBTC2017-12-18
C:ETHUSDCRYPTOETH2017-12-18
C:XRPUSDCRYPTOXRP2018-05-05
C:DOGEUSDCRYPTODOGE2019-07-05
C:SOLUSDCRYPTOSOL2020-08-11
F:EURUSDFOREXEUR2009-09-25
F:GBPUSDFOREXGBP2009-09-25
F:USDJPYFOREXUSD2009-09-27
F:USDCHFFOREXUSD2009-09-25
F:AUDUSDFOREXAUD2009-09-25
F:USDCADFOREXUSD2009-09-25
F:NZDUSDFOREXNZD2009-09-25

When you set the date window for a scenario configuration, keep it inside the instrument's dataStartDatedataEndDate range. A window that starts before the data exists will simply have no bars to replay.

Errors

StatusWhen
400 Bad RequestAn invalid market or status filter value was supplied.
500 Internal Server ErrorThe catalog could not be loaded.

The same public surface offers three companion endpoints for narrower lookups. All return the same instrument shape under data.

EndpointPurpose
GET /v1/instruments/marketsList 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