CF Benchmarks REST API (1.0.0)

Download OpenAPI specification:Download

Authentication

This API requires users to specify an API key. This key can be obtained by contacting CF Benchmarks for a license.

Once given a username and key, you would provide both in the request header with a header field of the form Authorization: Basic <credentials> where credentials is the Base64 encoding of the username and key joined by a single colon ':'.

Responses

Successful

Successful responses have the format:

{
  "serverTime": "2019-08-13T23:30:53.992Z",
  "payload": {}
}

Where payload will contain the result of the API call.

Error

Error responses have the format:

{
  "serverTime": "2019-08-13T23:30:53.992Z",
  "error": "error text here"
}

Assets

Get all assets

Authorizations:
basic
query Parameters
dacsId
string

ID of DACS category to filter on

Responses

Response Schema: application/json
serverTime
string <date-time>
error
string or null

description of error in natural language, absent in case of successful operation

Array of objects or null or null (AssetDto)

The response data

Array
id
string

Asset ID

name
string

Asset name

aliasIds
Array of strings or null or null

List of other (alias) IDs used to represent this asset

Response samples

Content type
application/json
{
  • "serverTime": "2019-08-24T14:15:22Z",
  • "error": "string",
  • "payload": [
    • {
      • "id": "BTC",
      • "name": "Bitcoin",
      • "aliasIds": [
        ]
      }
    ]
}

Get asset

Authorizations:
basic
path Parameters
id
required
string

The ID of the asset

Responses

Response Schema: application/json
serverTime
string <date-time>
error
string or null

description of error in natural language, absent in case of successful operation

object or null (AssetDto)

The response data

id
string

Asset ID

name
string

Asset name

aliasIds
Array of strings or null or null

List of other (alias) IDs used to represent this asset

Response samples

Content type
application/json
{
  • "serverTime": "2019-08-24T14:15:22Z",
  • "error": "string",
  • "payload": {
    • "id": "BTC",
    • "name": "Bitcoin",
    • "aliasIds": [
      • "XBT"
      ]
    }
}

Get detailed asset

Authorizations:
basic
path Parameters
id
required
string

ID of the asset

Responses

Response Schema: application/json
serverTime
string <date-time>
error
string or null

description of error in natural language, absent in case of successful operation

object or null (AssetDetailDto)

The response data

id
string
name
string
aliasIds
Array of strings
object (DacsDto)
id
integer <int32>
startDate
string
Array of objects (DacsHistoryDto)
Array
id
integer <int32>
startDate
string

Response samples

Content type
application/json
{
  • "serverTime": "2019-08-24T14:15:22Z",
  • "error": "string",
  • "payload": {
    • "id": "string",
    • "name": "string",
    • "aliasIds": [
      • "string"
      ],
    • "dacs": {
      • "id": 0,
      • "startDate": "string",
      • "history": [
        ]
      }
    }
}

DACS

Digital Asset Classification Structure

Get all DACS categories

Authorizations:
basic
query Parameters
code
string

The DACS code to filter on. If passed, only the category with the given code will be returned. Otherwise all categories will.

Responses

Response Schema: application/json
serverTime
string <date-time>
error
string or null

description of error in natural language, absent in case of successful operation

Array of objects or null or null (DacsCategory)

The response data

Array
id
integer <int32>

The ID of the category

code
string

Used to help locate this category within the DACS universe. Child categories will have the same prefix as their parent. E.G parent will have code 10, and child will have code 1010.

name
string

Name of the category

colourRgb
string

RGB colour value to use for UI rendering

parentId
integer or null <int32>

The category's parent ID, if it has one

Response samples

Content type
application/json
{
  • "serverTime": "2019-08-24T14:15:22Z",
  • "error": "string",
  • "payload": [
    • {
      • "id": 0,
      • "code": "1010",
      • "name": "string",
      • "colourRgb": "#5F7CC6",
      • "parentId": 0
      }
    ]
}

Get specific DACS category

Authorizations:
basic
path Parameters
id
required
number <int32>

The DACS category ID

Responses

Response Schema: application/json
serverTime
string <date-time>
error
string or null

description of error in natural language, absent in case of successful operation

object or null (DacsCategory)

The response data

id
integer <int32>

The ID of the category

code
string

Used to help locate this category within the DACS universe. Child categories will have the same prefix as their parent. E.G parent will have code 10, and child will have code 1010.

name
string

Name of the category

colourRgb
string

RGB colour value to use for UI rendering

parentId
integer or null <int32>

The category's parent ID, if it has one

Response samples

Content type
application/json
{
  • "serverTime": "2019-08-24T14:15:22Z",
  • "error": "string",
  • "payload": {
    • "id": 0,
    • "code": "1010",
    • "name": "string",
    • "colourRgb": "#5F7CC6",
    • "parentId": 0
    }
}

Indices

Get indices summaries

Authorizations:
basic

Responses

Response Schema: application/json
serverTime
string <date-time>
error
string or null

description of error in natural language, absent in case of successful operation

Array of objects or null or null (IndexDto)

The response data

Array
id
string

ID of the Index

name
string

The name of the index

decimals
integer <int32>

Number of decimal places in the publish result

base
string

base asset ID

quote
string

quote asset ID

demiseDateTime
string or null <date-time>

Date time when this index will be demised

Response samples

Content type
application/json
{
  • "serverTime": "2019-08-24T14:15:22Z",
  • "error": "string",
  • "payload": [
    • {
      • "id": "BRR",
      • "name": "CME CF Bitcoin Reference Rate",
      • "decimals": 2,
      • "base": "BTC",
      • "quote": "USD",
      • "demiseDateTime": "2019-08-24T14:15:22Z"
      }
    ]
}

Get index summary

Authorizations:
basic
path Parameters
externalId
required
string

ID of the Index

Responses

Response Schema: application/json
serverTime
string <date-time>
error
string or null

description of error in natural language, absent in case of successful operation

object or null (IndexDto)

The response data

id
string

ID of the Index

name
string

The name of the index

decimals
integer <int32>

Number of decimal places in the publish result

base
string

base asset ID

quote
string

quote asset ID

demiseDateTime
string or null <date-time>

Date time when this index will be demised

Response samples

Content type
application/json
{
  • "serverTime": "2019-08-24T14:15:22Z",
  • "error": "string",
  • "payload": {
    • "id": "BRR",
    • "name": "CME CF Bitcoin Reference Rate",
    • "decimals": 2,
    • "base": "BTC",
    • "quote": "USD",
    • "demiseDateTime": "2019-08-24T14:15:22Z"
    }
}

Get index detailed

Authorizations:
basic
path Parameters
externalId
required
string

ID of the Index

Responses

Response Schema: application/json
serverTime
string <date-time>
error
string or null

description of error in natural language, absent in case of successful operation

object or null (IndexDetailDto)

The response data

id
string

ID of the Index

name
string

The name of the index

decimals
integer <int32>

Number of decimal places in published result

base
string

base asset ID

quote
string

quote asset ID

underlyingAssetsType
string
Enum: "SINGLE_ASSET" "PORTFOLIO"
bloomberg
string or null

ID under which the index is stored in Bloomberg system

refinitiv
string or null

ID under which the index is stored in Refinitiv system

isin
string or null

ISIN

sedol
string or null

SEDOL

inceptionValue
number or null <double>

If this index is a portfolio, then this is its value at inception

publicationFrequency
string or null
Enum: "NOT_APPLICABLE" "DAILY" "BUSINESS_DAYS" "PER_SECOND" "PER_MINUTE" "PER_HOUR" "UNRECOGNIZED"

How often the value of this index is updated

publicationTime
string or null <time>

If the publicationFrequency is DAILY then this field will denote the time of publication

publicationTimeZone
string or null

If the publicationFrequency is DAILY then this field will denote the timezone of publicationTime

object or null (ReferenceRateParameters)

Reference rate specific parameters

windowDuration
string or null

ISO8601 formatted duration of the observation window

partitionCount
integer or null <int32>

Number of partitions in the observation window

inceptionDateTime
string or null <date-time>

Date time when this index was initially created

launchDateTime
string or null <date-time>

Date time when this index was officially launched publically

demiseDateTime
string or null <date-time>

If this index has been demised, then this field will be present and contain the date and time when it was demised.

exchanges
Array of strings

Constituent exchanges

Response samples

Content type
application/json
{
  • "serverTime": "2019-08-24T14:15:22Z",
  • "error": "string",
  • "payload": {
    • "id": "BRR",
    • "name": "CME CF Bitcoin Reference Rate",
    • "decimals": 2,
    • "base": "BTC",
    • "quote": "USD",
    • "underlyingAssetsType": "SINGLE_ASSET",
    • "bloomberg": "string",
    • "refinitiv": "string",
    • "isin": "string",
    • "sedol": "string",
    • "inceptionValue": 1000,
    • "publicationFrequency": "DAILY",
    • "publicationTime": "16:00",
    • "publicationTimeZone": "Europe/London",
    • "referenceRateParameters": {
      • "windowDuration": "PT1H30M",
      • "partitionCount": 10
      },
    • "inceptionDateTime": "2019-08-24T14:15:22Z",
    • "launchDateTime": "2019-08-24T14:15:22Z",
    • "demiseDateTime": "2019-08-24T14:15:22Z",
    • "exchanges": [
      • "coinbase",
      • "kraken"
      ]
    }
}

Get index status

Whether the index is currently live or not (demised)

Authorizations:
basic
path Parameters
externalId
required
string

ID of the Index

Responses

Response Schema: application/json
serverTime
string <date-time>
error
string or null

description of error in natural language, absent in case of successful operation

object or null (IndexStateDto)

The response data

id
string
state
string
Enum: "LIVE" "DEMISED"

Response samples

Content type
application/json
{
  • "serverTime": "2019-08-24T14:15:22Z",
  • "error": "string",
  • "payload": {
    • "id": "string",
    • "state": "LIVE"
    }
}

Curve

Index curve by maturity

Get recent published Index curves

Requests are rate limited to 10 requests per user per second. Will return the most recent - up to 1 year, curves in ascending order of time. In exceptional circumstances index curves may be delayed or amended after publication. In such cases cases, the curve object may also contain either of the following two fields: amendTime or repeatOfPreviousValue.

Authorizations:
basic
query Parameters
id
required
string

ID of stream

Responses

Response Schema: application/json
serverTime
string <date-time>
error
string or null

description of error in natural language, absent in case of successful operation

Array of objects or null or null (Curve)

The response data

Array
object

Published Index Curve

property name*
additional property
string

Published Index Curve

time
integer <int64>

Milliseconds since Unix epoch

amendTime
integer <int64>

If the curve has been amended after being previously published, this field indicates the time of the amendment in milliseconds since Unix epoch. If no amendment has been made, the field will be absent.

repeatOfPreviousValue
boolean

If an error has occurred during calculation such that an index curve could not be calculated for that day, and it has been replaced with the curve from the previous day, this boolean field will exist, and will be true. If no such error has occurred, the field will be absent.

Response samples

Content type
application/json
{
  • "serverTime": "2019-08-24T14:15:22Z",
  • "error": "string",
  • "payload": [
    • {
      • "tenors": {
        },
      • "time": 0,
      • "amendTime": 0,
      • "repeatOfPreviousValue": true
      }
    ]
}

History

Api to fetch historical data going back from inception.

Gets historical data for a particular index, over a fixed period of time

The data will be sorted by time, in ascending order. The time range of the data is defined by the timespan and timestamp parameters. Note that timestamp must be truncated to the timespan granularity. See the timespan parameter description for some working examples. In order to access this data, the user has to be authorized for the index and the STREAM_HISTORICAL_VALUES data stream

Authorizations:
basic
query Parameters
id
required
string

The id of the index

timespan
required
string

The fixed period of time to get the data for. Can be (YEAR | MONTH | DAY | HOUR). For indices that are published every second, the allowable periods are (DAY | HOUR). For indices that are published on a daily / hourly basis, the allowable periods are (YEAR | MONTH). Note that in order to access historical values for a particular index, the STREAM_HISTORICAL_VALUES permission is required on that index.

timestamp
required
string

An ISO8601 timestamp to define the start of the period to get the data for. Note that the timestamp must be truncated to the timespan granularity. For example, here are some acceptable (timespan, timestamp) pairs: (YEAR, 2022-01-01T00:00:00.000Z), (YEAR, 2023-01-01T00:00:00.000Z) (MONTH, 2022-01-01T00:00:00.000Z), (MONTH, 2022-02-01T00:00:00.000Z), (MONTH, 2022-12-01T00:00:00.000Z) (DAY, 2022-01-01T00:00:00.000Z), (DAY, 2022-01-05T00:00:00.000Z), (DAY, 2022-03-07T00:00:00.000Z) (HOUR, 2022-01-01T00:00:00.000Z), (HOUR, 2022-01-01T13:00:00.000Z), (HOUR, 2022-03-06T14:00:00.000Z).

Responses

Response Schema: application/json
serverTime
string <date-time>
error
string or null

description of error in natural language, absent in case of successful operation

Array of objects or null or null (ResultValue)

The response data

Array
time
integer <int64>
value
string

Response samples

Content type
application/json
{
  • "serverTime": "2019-08-24T14:15:22Z",
  • "error": "string",
  • "payload": [
    • {
      • "time": 0,
      • "value": "string"
      }
    ]
}

Info

Get indices

Returns a list of indices accessible by the API token

Authorizations:
basic

Responses

Response Schema: application/json
serverTime
string <date-time>
error
string or null

description of error in natural language, absent in case of successful operation

Array of objects or null or null (Info)

The response data

Array
id
string

Index ID

decimals
integer <int32>

Number of decimal places in the published result

Response samples

Content type
application/json
{
  • "serverTime": "2019-08-24T14:15:22Z",
  • "error": "string",
  • "payload": [
    • {
      • "id": "BRR",
      • "decimals": 2
      }
    ]
}

Latest Values

Get latest values

Authorizations:
basic
query Parameters
id
required
string

ID(s) of stream, may contain up to 30 different IDs, separated by commas

Responses

Response Schema: application/json
serverTime
string <date-time>
error
string or null

description of error in natural language, absent in case of successful operation

object or null (LatestValues)

The response data

object

Latest value by ID

additional property
object (LatestValue)

Latest value by ID

value
string

Most recently published index value

time
integer <int64>

Milliseconds since Unix epoch of value

amendTime
integer or null <int64>

If the value has been amended after being previously published, this field indicates the time of the amendment in milliseconds since Unix epoch. If no amendment has been made, the field will be absent.

repeatOfPreviousValue
boolean or null

If an error has occurred during calculation such that an index value could not be calculated for that day, and it has been replaced with the value from the previous day, this boolean field will exist, and will be true. If no such error has occurred, the field will be absent.

Response samples

Content type
application/json
{
  • "serverTime": "2019-08-24T14:15:22Z",
  • "error": "string",
  • "payload": {
    • "latest_values": {
      • "BRR": {
        },
      • "BRTI": {
        }
      }
    }
}

Stats

Index stat data

Get stats records

Returns the most recent stat records in ascending order of time.

Authorizations:
basic
query Parameters
id
required
string

ID of stream

streamtype
required
string

Stream type, must be one of volume, weight, constituentresult, or rti

Responses

Response Schema: application/json
serverTime
string <date-time>
error
string or null

description of error in natural language, absent in case of successful operation

Array of (VolumeStat (object or null)) or (WeightStat (object or null)) or (ConstituentResultStat (object or null)) or (RtiStat (object or null)) or null (AbstractStat)

The response data

Array
Any of
time
integer <int64>

Milliseconds since Unix epoch

amendTime
integer <int64>

If the value has been amended after being previously published, this field indicates the time of the amendment in milliseconds since Unix epoch. If no amendment has been made, the field will be absent.

repeatOfPreviousValue
boolean

If an error has occurred during calculation such that an index value could not be calculated for that day, and it has been replaced with the value from the previous day, this boolean field will exist, and will be true. If no such error has occurred, the field will be absent.

value
string

Published index value

volume
string

Total volume during the calculation window

object

Map of exchange name to volumes

additional property
object (ExchangeVolume)

Map of exchange name to volumes

volumePercent
string

Percent of total volume from exchange

Response samples

Content type
application/json
{
  • "serverTime": "2019-08-24T14:15:22Z",
  • "error": "string",
  • "payload": [
    • {
      • "time": 0,
      • "amendTime": 0,
      • "repeatOfPreviousValue": true,
      • "value": "string",
      • "volume": "string",
      • "volumes": {
        }
      }
    ]
}

Summary

Index Summary data

Get summary data

Authorizations:
basic
query Parameters
id
required
string

Index ID

Responses

Response Schema: application/json
serverTime
string <date-time>
error
string or null

description of error in natural language, absent in case of successful operation

object or null (Summary)

The response data

value
string or null

Most recently published index value

time
integer or null <int64>

Milliseconds since Unix epoch of most recent value

Array of objects (BareValue)

Published values and times from the last 24 hours

Array
value
string

Published index value

time
integer <int64>

Time of value publication in milliseconds since Unix epoch

Response samples

Content type
application/json
{
  • "serverTime": "2019-08-24T14:15:22Z",
  • "error": "string",
  • "payload": {
    • "value": "string",
    • "time": 0,
    • "last24Hours": [
      • {
        }
      ]
    }
}

Get summary data for multiple indices

Authorizations:
basic
query Parameters
ids
required
string

Up to 30 index IDs seperated by commas

Responses

Response Schema: application/json
serverTime
string <date-time>
error
string or null

description of error in natural language, absent in case of successful operation

object or null

The response data

additional property
object or null (Summary)

The response data

value
string or null

Most recently published index value

time
integer or null <int64>

Milliseconds since Unix epoch of most recent value

Array of objects (BareValue)

Published values and times from the last 24 hours

Array
value
string

Published index value

time
integer <int64>

Time of value publication in milliseconds since Unix epoch

Response samples

Content type
application/json
{
  • "serverTime": "2019-08-24T14:15:22Z",
  • "error": "string",
  • "payload": {
    • "property1": {
      • "value": "string",
      • "time": 0,
      • "last24Hours": [
        ]
      },
    • "property2": {
      • "value": "string",
      • "time": 0,
      • "last24Hours": [
        ]
      }
    }
}

Supplies

Asset supplies

Get the supply history for the given asset

Will return the most recent supplies for the given asset.

Authorizations:
basic
path Parameters
id
required
string

ID of asset

Responses

Response Schema: application/json
serverTime
string <date-time>
error
string or null

description of error in natural language, absent in case of successful operation

object or null (SupplyDto)

The response data

asset
string

Asset ID, e.g. BTC

object

Supplies per supply type

additional property
object (SupplyValuesDto)

Supplies per supply type

Array of objects (SupplyValueDto)

Supply value history

Array
value
string

Published Index Value

date
string

Date in form YYYY-MM-DD

Response samples

Content type
application/json
{
  • "serverTime": "2019-08-24T14:15:22Z",
  • "error": "string",
  • "payload": {
    • "asset": "string",
    • "supplies": {
      • "property1": {
        },
      • "property2": {
        }
      }
    }
}

Values

Index value data

Get recent published Index values

Will return the most recent values in ascending order of time (1 hour for RTIs and 1 year for RRs).

In exceptional circumstances index values may be delayed or amended after publication. In such cases cases, the value object may also contain either of the following two fields: amendTime or repeatOfPreviousValue.

Authorizations:
basic
query Parameters
id
required
string

ID of stream

Responses

Response Schema: application/json
serverTime
string <date-time>
error
string or null

description of error in natural language, absent in case of successful operation

Array of objects or null or null (Value)

The response data

Array
value
string

Published Index Value

time
integer <int64>

Milliseconds since Unix epoch

amendTime
integer <int64>

If the value has been amended after being previously published, this field indicates the time of the amendment in milliseconds since Unix epoch. If no amendment has been made, the field will be absent.

repeatOfPreviousValue
boolean

If an error has occurred during calculation such that an index value could not be calculated for that day, and it has been replaced with the value from the previous day, this boolean field will exist, and will be true. If no such error has occurred, the field will be absent.

Response samples

Content type
application/json
{
  • "serverTime": "2019-08-24T14:15:22Z",
  • "error": "string",
  • "payload": [
    • {
      • "value": "string",
      • "time": 0,
      • "amendTime": 0,
      • "repeatOfPreviousValue": true
      }
    ]
}