Query Interface

The gateways support a HTTP interface to query for internal state.

Warning

This interface is currently EXPERIMENTAL. It is not an ideal interface due to

  • The gateway code being more complex, i.e. getting a bigger surface which can potentially impact operation adversely.

  • The interface is request/response likely causing the user to poll often, again increasing the risks of adversely impacting the gateway.

Implementation

Access is through a non-latency-sensitive thread.

This thread listens to the broadcast queue and caches relevant data.

This solution therefore has no impact on the latency profile of the core gateway design.

URL

Path

The basic path is

  • /api/<object_type>

Note

The user has the option to prefix the path by settings the --url_prefix flag. In this case, the path is then /<url_prefix>/api/<object_type>.

Query

The following query parameters are optional and supported by some end-points.

  • user (string)

  • account (string)

  • exchange (string)

  • symbol (string)

  • recursive (bool)

  • active (bool)

Interfaces

Session

GET /api/session

Fetch session information.

$ curl http://localhost/api/session \
        --verbose \
        --write-out '\n' \
        --unix-socket ~/run/metrics/deribit.sock

*   Trying /home/thraneh/run/metrics/deribit.sock:0...
* Connected to localhost (/home/thraneh/run/metrics/deribit.sock) port 80 (#0)
> GET /api/session HTTP/1.1
> Host: localhost
> User-Agent: curl/7.81.0
> Accept: */*
>
* Mark bundle as not supporting multiuse
< HTTP/1.1 200 OK
< Server: roq-deribit/0.9.4
< Access-Control-Allow-Origin: *
< Cache-Control: no-store
< Date: Sun, 14 May 2023 04:00:52 GMT
< Content-Type: application/json
< Content-Length: 757
<
* Connection #0 to host localhost left intact
{"package":{"name":"roq-deribit","version":"0.9.4","build_number":"unknown"},"config":{"name":"deribit","config_hash":"9M4CpcPmByCaAoiw4NukVWcRrFhELP2Uz7JG5-BJyD4=","accounts":1,"api":""},"session":{"id":"e29f6803-4447-4612-8d3c-bf09db279770","cache_dir":"/home/thraneh/var/lib/roq/cache/deribit","event_logs":{"public":"/home/thraneh/var/lib/roq/data/public/2023-W20/deribit/deribit-public-1684036540992.roq","private":"/home/thraneh/var/lib/roq/data/private/2023-W20/deribit/deribit-private-1684036540992.roq"}},"host":{"kernel":{"name":"Linux","release":"5.19.0-41-generic","version":"#42~22.04.1-Ubuntu SMP PREEMPT_DYNAMIC Tue Apr 18 17:40:00 UTC 2"},"network":{"hostname":"VQ-WRK-02"}},"process":{"pid":660984,"start_time":1684036540,"user":"thraneh"}}

Users

GET /api/users

Fetch user information.

$ curl http://localhost/api/users \
          --verbose \
          --write-out '\n' \
          --unix-socket ~/run/metrics/deribit.sock

*   Trying /home/thraneh/run/metrics/deribit.sock:0...
* Connected to localhost (/home/thraneh/run/metrics/deribit.sock) port 80 (#0)
> GET /api/users HTTP/1.1
> Host: localhost
> User-Agent: curl/7.81.0
> Accept: */*
>
* Mark bundle as not supporting multiuse
< HTTP/1.1 200 OK
< Server: roq-deribit/0.9.4
< Access-Control-Allow-Origin: *
< Cache-Control: no-store
< Date: Sun, 14 May 2023 05:14:22 GMT
< Content-Type: application/json
< Content-Length: 36
<
* Connection #0 to host localhost left intact
["test","trader","position","maker"]
$ curl http://localhost/api/users?user=trader \
          --verbose \
          --write-out '\n' \
          --unix-socket ~/run/metrics/deribit.sock

*   Trying /home/thraneh/run/metrics/deribit.sock:0...
* Connected to localhost (/home/thraneh/run/metrics/deribit.sock) port 80 (#0)
> GET /api/users?user=trader HTTP/1.1
> Host: localhost
> User-Agent: curl/7.81.0
> Accept: */*
>
* Mark bundle as not supporting multiuse
< HTTP/1.1 200 OK
< Server: roq-deribit/0.9.4
< Access-Control-Allow-Origin: *
< Cache-Control: no-store
< Date: Sun, 14 May 2023 05:17:17 GMT
< Content-Type: application/json
< Content-Length: 35
<
* Connection #0 to host localhost left intact
{"name":"trader","connected":false}

Accounts

GET /api/accounts

Fetch account information.

$ curl http://localhost/api/accounts \
            --verbose \
            --write-out '\n' \
            --unix-socket ~/run/metrics/deribit.sock

*   Trying /home/thraneh/run/metrics/deribit.sock:0...
* Connected to localhost (/home/thraneh/run/metrics/deribit.sock) port 80 (#0)
> GET /api/accounts HTTP/1.1
> Host: localhost
> User-Agent: curl/7.81.0
> Accept: */*
>
* Mark bundle as not supporting multiuse
< HTTP/1.1 200 OK
< Server: roq-deribit/0.9.4
< Access-Control-Allow-Origin: *
< Cache-Control: no-store
< Date: Sun, 14 May 2023 05:17:46 GMT
< Content-Type: application/json
< Content-Length: 6
<
* Connection #0 to host localhost left intact
["A1"]
$ curl http://localhost/api/accounts?accounts=A1 \
          --verbose \
          --write-out '\n' \
          --unix-socket ~/run/metrics/deribit.sock

*   Trying /home/thraneh/run/metrics/deribit.sock:0...
* Connected to localhost (/home/thraneh/run/metrics/deribit.sock) port 80 (#0)
> GET /api/accounts?accounts=A1 HTTP/1.1
> Host: localhost
> User-Agent: curl/7.81.0
> Accept: */*
>
* Mark bundle as not supporting multiuse
< HTTP/1.1 200 OK
< Server: roq-deribit/0.9.4
< Access-Control-Allow-Origin: *
< Cache-Control: no-store
< Date: Sun, 14 May 2023 05:18:13 GMT
< Content-Type: application/json
< Content-Length: 6
<
* Connection #0 to host localhost left intact
["A1"]

Stream Status

GET /api/stream_status

Fetch stream status.

Note

It is not possible to use query parameters.

$ curl http://localhost/api/stream_status \
              --verbose \
              --write-out '\n' \
              --unix-socket ~/run/metrics/deribit.sock

*   Trying /home/thraneh/run/metrics/deribit.sock:0...
* Connected to localhost (/home/thraneh/run/metrics/deribit.sock) port 80 (#0)
> GET /api/stream_status HTTP/1.1
> Host: localhost
> User-Agent: curl/7.81.0
> Accept: */*
>
* Mark bundle as not supporting multiuse
< HTTP/1.1 200 OK
< Server: roq-deribit/0.9.4
< Access-Control-Allow-Origin: *
< Cache-Control: no-store
< Date: Sun, 14 May 2023 05:27:59 GMT
< Content-Type: application/json
< Content-Length: 9
<
* Connection #0 to host localhost left intact
[4,3,1,2]
$ curl http://localhost/api/stream_status/1 \
            --verbose \
            --write-out '\n' \
            --unix-socket ~/run/metrics/deribit.sock

*   Trying /home/thraneh/run/metrics/deribit.sock:0...
* Connected to localhost (/home/thraneh/run/metrics/deribit.sock) port 80 (#0)
> GET /api/stream_status/1 HTTP/1.1
> Host: localhost
> User-Agent: curl/7.81.0
> Accept: */*
>
* Mark bundle as not supporting multiuse
< HTTP/1.1 200 OK
< Server: roq-deribit/0.9.4
< Access-Control-Allow-Origin: *
< Cache-Control: no-store
< Date: Sun, 14 May 2023 05:28:36 GMT
< Content-Type: application/json
< Content-Length: 292
<
* Connection #0 to host localhost left intact
{"stream_id":1,"account":"A1","supports":"CREATE_ORDER|MODIFY_ORDER|CANCEL_ORDER|ORDER_ACK|ORDER|TRADE|POSITION","transport":"TCP","protocol":"FIX","encoding":"FIX","priority":"PRIMARY","connection_status":"READY","interface":null,"authority":"test.deribit.com:9881","path":null,"proxy":null}

Gateway Status

GET /api/gateway_status

Fetch gateway status.

$ curl http://localhost/api/gateway_status \
                --verbose \
                --write-out '\n' \
                --unix-socket ~/run/metrics/deribit.sock

*   Trying /home/thraneh/run/metrics/deribit.sock:0...
* Connected to localhost (/home/thraneh/run/metrics/deribit.sock) port 80 (#0)
> GET /api/gateway_status HTTP/1.1
> Host: localhost
> User-Agent: curl/7.81.0
> Accept: */*
>
* Mark bundle as not supporting multiuse
< HTTP/1.1 200 OK
< Server: roq-deribit/0.9.4
< Access-Control-Allow-Origin: *
< Cache-Control: no-store
< Date: Sun, 14 May 2023 05:34:57 GMT
< Content-Type: application/json
< Content-Length: 11
<
* Connection #0 to host localhost left intact
["A1",null]
$ curl http://localhost/api/gateway_status?account=A1 \
                  --verbose \
                  --write-out '\n' \
                  --unix-socket ~/run/metrics/deribit.sock

*   Trying /home/thraneh/run/metrics/deribit.sock:0...
* Connected to localhost (/home/thraneh/run/metrics/deribit.sock) port 80 (#0)
> GET /api/gateway_status?account=A1 HTTP/1.1
> Host: localhost
> User-Agent: curl/7.81.0
> Accept: */*
>
* Mark bundle as not supporting multiuse
 < HTTP/1.1 200 OK
 < Server: roq-deribit/0.9.4
 < Access-Control-Allow-Origin: *
 < Cache-Control: no-store
 < Date: Sun, 14 May 2023 05:48:45 GMT
 < Content-Type: application/json
 < Content-Length: 215
 <
 * Connection #0 to host localhost left intact
   {"account":"A1","supported":"CREATE_ORDER|MODIFY_ORDER|CANCEL_ORDER|ORDER_ACK|ORDER|TRADE|POSITION|FUNDS","available":"CREATE_ORDER|MODIFY_ORDER|CANCEL_ORDER|ORDER_ACK|ORDER|TRADE|POSITION|FUNDS","unavailable":null}
$ curl http://localhost/api/gateway_status?account=null \
                  --verbose \
                  --write-out '\n' \
                  --unix-socket ~/run/metrics/deribit.sock

*   Trying /home/thraneh/run/metrics/deribit.sock:0...
* Connected to localhost (/home/thraneh/run/metrics/deribit.sock) port 80 (#0)
> GET /api/gateway_status?account=null HTTP/1.1
> Host: localhost
> User-Agent: curl/7.81.0
> Accept: */*
>
* Mark bundle as not supporting multiuse
< HTTP/1.1 200 OK
< Server: roq-deribit/0.9.4
< Access-Control-Allow-Origin: *
< Cache-Control: no-store
< Date: Sun, 14 May 2023 05:49:23 GMT
< Content-Type: application/json
< Content-Length: 205
<
* Connection #0 to host localhost left intact
{"account":null,"supported":"REFERENCE_DATA|MARKET_STATUS|TOP_OF_BOOK|MARKET_BY_PRICE|TRADE_SUMMARY","available":"REFERENCE_DATA|MARKET_STATUS|TOP_OF_BOOK|MARKET_BY_PRICE|TRADE_SUMMARY","unavailable":null}

Exchanges

GET /api/exchanges

Fetch exchanges.

$ curl http://localhost/api/exchanges \
                --verbose \
                --write-out '\n' \
                --unix-socket ~/run/metrics/deribit.sock

*   Trying /home/thraneh/run/metrics/deribit.sock:0...
* Connected to localhost (/home/thraneh/run/metrics/deribit.sock) port 80 (#0)
> GET /api/exchanges HTTP/1.1
> Host: localhost
> User-Agent: curl/7.81.0
> Accept: */*
>
* Mark bundle as not supporting multiuse
< HTTP/1.1 200 OK
< Server: roq-deribit/0.9.4
< Access-Control-Allow-Origin: *
< Cache-Control: no-store
< Date: Sun, 14 May 2023 05:35:40 GMT
< Content-Type: application/json
< Content-Length: 11
<
* Connection #0 to host localhost left intact
["deribit"]

Markets

GET /api/markets?exchange=<exchange>

Fetch markets.

$ curl http://localhost/api/markets?exchange=deribit \
                --verbose \
                --write-out '\n' \
                --unix-socket ~/run/metrics/deribit.sock

*   Trying /home/thraneh/run/metrics/deribit.sock:0...
* Connected to localhost (/home/thraneh/run/metrics/deribit.sock) port 80 (#0)
> GET /api/markets?exchange=deribit HTTP/1.1
> Host: localhost
> User-Agent: curl/7.81.0
> Accept: */*
>
* Mark bundle as not supporting multiuse
< HTTP/1.1 200 OK
< Server: roq-deribit/0.9.4
< Access-Control-Allow-Origin: *
< Cache-Control: no-store
< Date: Sun, 14 May 2023 05:36:11 GMT
< Content-Type: application/json
< Content-Length: 20604
<
* Connection #0 to host localhost left intact
["BTC-29SEP23-50000-C","ETH-19MAY23-2100-P","ETH-30JUN23-900-C","BTC-28JUL23-22000-C","BTC_USDC-PERPETUAL","BTC-29MAR24-34000-P","BTC-29DEC23-34000-P","BTC-29SEP23-30000-P","ETH-29DEC23-1500-C","ETH-29MAR24-2000-P","BTC-30JUN23-100000-C","BTC-2JUN23-26000-C","BTC-FS-19MAY23_PERP","BTC-14MAY23-25500-C","BTC-19MAY23-26000-P","ETH-15MAY23-1850-C","ETH-26MAY23-4500-P","BTC-14MAY23-28000-C","ETH-29SEP23-1100-P","BTC-29DEC23-50000-P","BTC-29MAR24-80000-C","BTC-15MAY23-23500-P","ETH-29MAR24-6000-P","TRX_USDC-PERPETUAL","ETH-26MAY23-1500-C","BTC-19MAY23-30000-C","BTC-29MAR24-10000-P","BTC-14MAY23-27000-C","ETH-15MAY23-2000-P","BTC-26MAY23-36000-C","ETH-19MAY23-1500-C","NEAR_USDC-DERIBIT-INDEX","ETH-15MAY23-2100-P","ETH-29DEC23-9000-P","ETH-14MAY23-1700-C","ETH-29SEP23-6000-P","BTC-30JUN23-25000-P","SOL_USDC-PERPETUAL","BTC-30JUN23","ETH-19MAY23-1600-C","BTC-29DEC23-15000-P","ETH-30JUN23-5000-P","ETH-29MAR24-1600-C","BTC-26MAY23-29000-C","ETH-29DEC23-8000-C","BTC-15MAY23-28500-C","ETH-28JUL23-2800-P","BTC-26MAY23-23000-C","ETH-30JUN23-1100-C","BNB_USD-DERIBIT-INDEX","DOT_USDC-DERIBIT-INDEX","BTC-30JUN23-15000-C","ETH-29SEP23-1900-P","ETH-30JUN23","ETH-30JUN23-8000-P","BTC-29DEC23-60000-C","ETH-26MAY23-800-C","ETH-29MAR24-3200-P","ETH-29DEC23-1600-P","BTC-19MAY23-29000-C","BTC-19MAY23-40000-P","ETH-29SEP23-1400-P","BTC-29DEC23-12000-P","ETH-29SEP23-3600-C","ETH-30JUN23-1900-P","ETH-26MAY23","ETH-30JUN23-5000-C","ETH-29SEP23-2600-C","BTC-30JUN23-50000-C","ETH-14MAY23-2050-C","BTC-15MAY23-30000-C","BTC-FS-29SEP23_PERP","ETH-28JUL23-1600-C","ETH-30JUN23-3600-C","XRP_USDC-DERIBIT-INDEX","ETH-15MAY23-1400-P","BTC-30JUN23-20000-C","SOL-DERIBIT-INDEX","ETH-30JUN23-1400-P","ETH-29SEP23-2000-P","BTC-29SEP23-24000-C","BTC-30JUN23-30000-P","BTC-29MAR24-32000-C","BTC-28JUL23-18000-P","BTC-29SEP23-16000-P","BTC-15MAY23-27250-P","BTC-14MAY23-27500-P","ETH-30JUN23-10000-C","BTC-26MAY23-21000-P","BTC-15MAY23-25000-C","BCH_USDC-DERIBIT-INDEX","ETH-29SEP23-6000-C","BTC-14MAY23-27500-C","BTC-29DEC23-34000-C","BTC-28JUL23-27000-P","ETH-2JUN23-1900-C","ETH-30JUN23-3800-C","ETH-26MAY23-4000-P","ETH-29DEC23-7000-C","ETH-29SEP23-2200-C","ETH-30JUN23-2000-C","ETH-14MAY23-1900-P","ETH-29DEC23-1100-P","BTC-29DEC23-10000-P","BTC-30JUN23-26000-C","ETH-29SEP23-600-P","XRP_USDC-PERPETUAL","ETH-29DEC23-900-P","BTC-29SEP23-28000-P","ETHDVOL_USDC-28JUN23","BTC-19MAY23-30000-P","LTC_USDC-PERPETUAL","BTC-26MAY23-32000-P","ETH-29MAR24-2200-C","BTC-29SEP23-24000-P","BTC-29MAR24-50000-P","ETH-28JUL23-4000-C","BTC-CCAL-28JUL23_26MAY23-27000","BTC-29SEP23-16000-C","ETH_USDC-15MAY23","BTC-29SEP23-25000-C","BTC-26MAY23-24000-C","DOT_USDC-PERPETUAL","ETH-26MAY23-3000-P","BTC-14MAY23-28500-C","ETH-2JUN23-1800-P","ETH-15MAY23-1600-P","ETH-29MAR24-3400-C","ETH-29DEC23-2800-P","ETH-2JUN23-2400-C","ETH-19MAY23-1900-P","BTC-28JUL23-38000-P","ETH-30JUN23-3000-P","ETH-19MAY23-2200-P","BTC-28JUL23-28000-P","BTC-29DEC23-70000-C","ETH-30JUN23-1700-P","ETH-29SEP23-1500-C","ETH-2JUN23-2100-C","BTC-2JUN23-15000-P","BTC-14MAY23-29000-P","ETH-28JUL23-2000-P","BTC-29SEP23-18000-C","BTC-26MAY23-25000-C","ETH-29SEP23-3800-C","BTC-15MAY23-26250-P","BTC-29MAR24-24000-P","BTC-29DEC23-32000-P","BTC-29MAR24-80000-P","ETH-15MAY23-1775-P","ETH_BTC-DERIBIT-INDEX","BTC-29SEP23-35000-P","BTC-29DEC23-35000-P","BTC-28JUL23-50000-C","BTC-14MAY23-28500-P","BTC-29SEP23","NEAR_USD-DERIBIT-INDEX","ETH-15MAY23-1800-C","ETH-30JUN23-6000-P","BTC-15MAY23-26250-C","BTC-14MAY23-29500-C","BTC-29MAR24-60000-P","ETH-19MAY23-1700-C","ETH-28JUL23-4500-P","ETH-15MAY23-1700-P","ETH-29SEP23-3200-C","BTC-26MAY23-16000-C","BTC-29SEP23-20000-P","ETH-29SEP23-3400-P","BTC-29DEC23-20000-C","ETH-29DEC23-3400-P","BTC-28JUL23-31000-C","ETH-15MAY23-1600-C","BTC-26MAY23-35000-P","ETH-2JUN23-1300-C","BTC-29DEC23-22000-C","ETH-29SEP23-1900-C","ETH-30JUN23-1300-P","ETH-26MAY23-2600-P","ETH-29SEP23-3400-C","BTC-28JUL23-24000-P","BTC-29SEP23-34000-C","BTC-29SEP23-35000-C","ETH-28JUL23-2100-C","BTC-26MAY23-31000-C","BTC-30JUN23-24000-P","ETH-14MAY23-1800-P","BTC-29DEC23-24000-C","BTC-28JUL23-40000-C","BTC-26MAY23-45000-P","ETH-30JUN23-1600-C","AVAX_USD-DERIBIT-INDEX","ETH-30JUN23-3800-P","BTC-14MAY23-24000-C","BTC-29SEP23-22000-C","ETH-29DEC23-8000-P","ALGO_USDC-DERIBIT-INDEX","ETH-29MAR24-2300-P","ETH-26MAY23-1500-P","BTC-26MAY23-20000-P","BTC-29SEP23-10000-P","AVAX_USDC-PERPETUAL","AVAX_USDC-DERIBIT-INDEX","ETH-29DEC23-2300-P","ETH-29DEC23-4200-P","ETH-29DEC23-1000-P","BTC-30JUN23-60000-C","BTC-26MAY23-36000-P","ETH-30JUN23-800-P","BTC-29DEC23","BTC-26MAY23-17000-C","ETH-14MAY23-1600-C","BTC-2JUN23-24000-P","BTC-15MAY23-27500-C","BTC-28JUL23-23000-P","BTC-19MAY23-25000-P","LTC_USD-DERIBIT-INDEX","BTC-29DEC23-16000-P","ETH-29DEC23-900-C","ETH-30JUN23-2100-C","BTC-FS-29MAR24_30JUN23","BTC-29SEP23-12000-P","ETH-30JUN23-1700-C","ETH-14MAY23-1500-P","ETH-14MAY23-1725-C","ETH-15MAY23-1300-P","ETH-14MAY23-1500-C","ETH-14MAY23-2000-P","BTC-28JUL23-35000-P","ETH-29SEP23-7000-P","BTC-29MAR24-35000-C","ETH-26MAY23-1600-P","BTC-15MAY23-27000-C","BTC-CCOND-19MAY23-26000_32000_35000_40000","BTC-29SEP23-26000-C","MATIC_USD-DERIBIT-INDEX","DOGE_USDC-PERPETUAL","BTC-30JUN23-18000-C","BTC-26MAY23-20000-C","ETH-29MAR24-3000-C","ETH-28JUL23-3500-P","ETH-28JUL23-3000-C","BTC-2JUN23-28000-P","ETH-14MAY23-1675-C","ETH-29MAR24-1400-C","BTC-29SEP23-20000-C","ETH-15MAY23-1700-C","ETH-29DEC23-3200-P","ETH-14MAY23-1400-P","ETH-2JUN23-1600-C","ETH-29DEC23-2300-C","ETH-29DEC23-1700-P","DOT_USD-DERIBIT-INDEX","ETH-14MAY23-1900-C","BTC-15MAY23-24500-P","ETH-14MAY23-1650-P","ETH-29DEC23-2000-C","ETH-14MAY23-1200-P","BTC-29DEC23-38000-C","ETH-15MAY23-1925-P","ETH-30JUN23-3400-C","ETH-26MAY23-1800-C","ETH-2JUN23-2100-P","BTC-29DEC23-26000-C","BTC-14MAY23-27250-C","BTC-29SEP23-60000-P","BTC-26MAY23-35000-C","ETH-28JUL23-2600-P","BTC-30JUN23-34000-P","BTC-15MAY23-28000-P","BTC-2JUN23-15000-C","ETH-15MAY23-2000-C","BTC-15MAY23-30000-P","BTC-19MAY23-32000-P","BTC-26MAY23-22000-C","ETH-28JUL23-1700-P","ETH_USDC-14MAY23","ALGO_USDC-PERPETUAL","ETH-15MAY23-1675-P","ETH-26MAY23-2200-C","ETH-28JUL23-2200-C","ETH-28JUL23-3200-C","ETH-29DEC23-1400-C","ETH-29SEP23-2300-C","ETH-29SEP23-4000-P","ETH-30JUN23-3400-P","BTC-29SEP23-36000-P","ETH-30JUN23-2100-P","BTC-26MAY23-33000-P","ETH-26MAY23-2300-C","ETH-29MAR24-3600-P","BTC-19MAY23-24000-C","ETH-26MAY23-2200-P","BTC-29DEC23-70000-P","ETH-19MAY23-1700-P","ETH-29MAR24-2600-P","BTC-29SEP23-32000-C","ETH-15MAY23-1750-P","ETH-30JUN23-800-C","ETH-15MAY23-1950-P","BTC-26MAY23-19000-P","ETH-29DEC23-2800-C","BTC-28JUL23-30000-P","ETH_USDC","BTC-26MAY23-50000-P","ETH-29DEC23-9000-C","BTC-29MAR24-60000-C","BTC-FS-29SEP23_26MAY23","ETH-30JUN23-6000-C","ETHW_USD-DERIBIT-INDEX","ETH-29MAR24-8000-C","ETH-29DEC23-800-C","BTC-14MAY23-26000-C","ETH-19MAY23-1800-C","ETH-26MAY23-1000-C","ETH-15MAY23-1550-P","ETH-28JUL23-1700-C","BTC-2JUN23-40000-C","ETH-29DEC23-2100-P","SOL_USDC-DERIBIT-INDEX","ETH-14MAY23-1950-P","ETH-29MAR24-9000-C","BTC-30JUN23-10000-P","BTC-CCOND-19MAY23-25000_30000_32000_35000","BTC-30JUN23-35000-C","BTC-30JUN23-16000-C","ETH-30JUN23-1600-P","ETH-14MAY23-1825-P","ETH-2JUN23-1700-P","BTC-2JUN23-29000-C","ETH-29MAR24-7000-P","ETH-29DEC23-2200-C","ADA_USDC-DERIBIT-INDEX","BTC-26MAY23-27000-P","ETH-15MAY23-1500-P","ETH-26MAY23-2400-C","ETH-15MAY23-1200-C","ETH-29SEP23-2000-C","BTC-29SEP23-12000-C","ETH-15MAY23-1675-C","ETH-26MAY23-2300-P","BTC-14MAY23-23000-C","ETH-26MAY23-2400-P","BTC-28JUL23-38000-C","BTC-28JUL23-20000-C","ETHDVOL_USDC-DERIBIT-INDEX","ETH-29MAR24-5000-C","BTC-26MAY23-18000-C","BTC-14MAY23-26250-P","BTC-29MAR24-22000-P","ETH-29MAR24-1900-P","BTCDVOL_USDC-15MAY23","BTC-26MAY23-31000-P","BTC-15MAY23-26500-P","BTC-29DEC23-30000-P","BTC-14MAY23-27250-P","BTC-29SEP23-26000-P","ETH-15MAY23-2100-C","ETH-14MAY23-1550-C","ETH-14MAY23-1925-P","BTC-29MAR24-40000-C","ETH-30JUN23-4000-P","ETH-26MAY23-3000-C","ETH-29SEP23-1500-P","BTC-28JUL23-55000-C","ETH-29DEC23-1200-C","BTC-29DEC23-28000-P","BTC-19MAY23-26000-C","ETH-29MAR24-1500-P","BTC-29DEC23-20000-P","ETH-29MAR24-1000-P","ETH-29MAR24-4000-P","BTC-26MAY23-26000-P","ETH-CBUT-30JUN23-1600_1900_2200","ETH-15MAY23-2200-P","ETH-29MAR24-1000-C","ETH-14MAY23-2100-C","ETH-29MAR24-2100-P","ETH-26MAY23-1300-P","BTCDVOL_USDC-DERIBIT-INDEX","ETH-15MAY23-1550-C","BTC-26MAY23-30000-P","BTC-28JUL23-45000-C","XRP_USD-DERIBIT-INDEX","ETH-26MAY23-3500-C","ETH-28JUL23-2200-P","SHIB_USDC-PERPETUAL","ETH-19MAY23-2000-P","ETH-29MAR24-2400-C","ETHDVOL_USDC-14MAY23","ETH-15MAY23-1875-P","BTC-30JUN23-60000-P","BTC-29DEC23-10000-C","BTC-29DEC23-50000-C","BTC-28JUL23-33000-P","BTC-15MAY23-29000-P","ETH-29MAR24-1700-P","BTC-29MAR24-28000-C","ETH-19MAY23-1600-P","BTC-30JUN23-25000-C","BTC-29DEC23-60000-P","ETH-14MAY23-1625-C","ETH-15MAY23-1725-P","ETH-29SEP23-8000-P","BTC-15MAY23-23500-C","ETH-29MAR24-1800-P","ETH-14MAY23-1700-P","ETH-30JUN23-2600-P","ETH-30JUN23-1900-C","ETH-15MAY23-1800-P","ETH-29SEP23-1200-C","ETH-2JUN23-1400-P","ETH-29DEC23-2400-C","ALGO_USD-DERIBIT-INDEX","ETH-30JUN23-900-P","BTC-29DEC23-45000-C","BTC-29SEP23-40000-C","ETH-14MAY23-1800-C","BTC-28JUL23-55000-P","BTC-29DEC23-40000-P","ETH-30JUN23-1200-P","ETH-29MAR24-3200-C","ETH-29DEC23-2000-P","ETH-29MAR24-2800-C","ETH-2JUN23-1500-C","BTC-19MAY23-40000-C","ETH-26MAY23-1200-P","BTC-30JUN23-16000-P","BTC-FS-26MAY23_PERP","ETH-29MAR24-8000-P","ETH-29MAR24-1700-C","ETH-26MAY23-1900-P","ETH-14MAY23-1750-P","ETH-FS-30JUN23_PERP","BTC-2JUN23-35000-P","MSHIB_USDC-DERIBIT-INDEX","ETH-26MAY23-1700-C","ETH-14MAY23-1850-P","BTC-15MAY23-25500-C","BTC-14MAY23-26750-P","ETH-26MAY23-4500-C","ETH-29DEC23-3600-P","BTC-29DEC23-22000-P","BTC-2JUN23-29000-P","BTC-26MAY23-19000-C","ETH-29MAR24-1800-C","ETH-29DEC23-1800-P","BTC-29SEP23-25000-P","BTC-14MAY23-25000-P","ETH-29DEC23-4000-P","BTC-14MAY23-26500-C","ETH-2JUN23-2200-C","BTC-26MAY23-40000-P","ETH-14MAY23-1300-C","BTC-26MAY23-32000-C","BTC-28JUL23-21000-C","ETH-19MAY23-1500-P","ETH-14MAY23-1925-C","ETH-30JUN23-9000-P","ETH-30JUN23-2200-P","BTC-29DEC23-45000-P","BTC-29DEC23-30000-C","ETH-19MAY23-2200-C","BTC-29SEP23-10000-C","BTC-26MAY23-21000-C","ETHDVOL_USDC-15MAY23","ETH-14MAY23-2000-C","BTC-26MAY23-26000-C","BTC-2JUN23-30000-P","BTC-14MAY23-23500-C","BTC-29DEC23-26000-P","ETH-29MAR24-10000-C","ETH-30JUN23-3200-C","BTC-PERPETUAL","BTC-26MAY23-27000-C","ETH-29DEC23-1600-C","ETH-28JUL23-3000-P","ETH-29DEC23-1800-C","BTC-29DEC23-36000-C","BTC-CS-26MAY23-24000_30000","SHIB_USD-DERIBIT-INDEX","ETH-29DEC23-1700-C","ETH-19MAY23-2500-C","ETH-26MAY23-2800-P","ETH-29SEP23-1300-P","BTC-28JUL23-21000-P","ETH-29DEC23-1100-C","BTC-26MAY23-40000-C","LINK_USD-DERIBIT-INDEX","ETH-STRG-26MAY23-500_1300","ETH-28JUL23-1800-P","ETH-30JUN23-7000-P","BNB_USDC-DERIBIT-INDEX","BTC-30JUN23-15000-P","BTC-19MAY23-28000-C","BTC-15MAY23-27500-P","BTC-2JUN23-25000-P","BTC-2JUN23-26000-P","BTC-29MAR24-45000-C","ETH-PERPETUAL","ETH-29MAR24-1200-P","ETH-30JUN23-1100-P","BTC-19MAY23-31000-C","ETH-28JUL23-2000-C","BTC-14MAY23-25750-P","ETH-30JUN23-10000-P","BCH_USD-DERIBIT-INDEX","BTC-2JUN23-27000-C","ETH-26MAY23-1400-P","ETH-15MAY23-1650-C","BTC-15MAY23-24000-P","BTC-2JUN23-40000-P","MATIC_USDC-PERPETUAL","ETH-30JUN23-7000-C","BTC-29MAR24-15000-C","ETH-15MAY23-1825-C","BTC-19MAY23-31000-P","ETH-29MAR24-2800-P","ETH-29DEC23-3800-P","BTC-29SEP23-28000-C","BTC-15MAY23-26750-C","BTC-29MAR24-24000-C","ETH-29SEP23-1400-C","ETH-26MAY23-800-P","ETH-28JUL23-1900-P","ETH-26MAY23-4000-C","BTC-28JUL23-30000-C","ETH-29SEP23-2400-C","ETH-29SEP23-5000-P","BTC-26MAY23-28000-C","BTC-30JUN23-50000-P","ETH-28JUL23-2600-C","BTC-30JUN23-100000-P","ETH-15MAY23-1900-P","UNI_USD-DERIBIT-INDEX","BTC-15MAY23-26000-P","ETH-30JUN23-1400-C","BTC-2JUN23-35000-C","BTC-30JUN23-32000-P","BTC-14MAY23-25750-C","ETH-29SEP23-3600-P","BTC-29DEC23-18000-C","ETH-28JUL23-4000-P","ETH-30JUN23-1500-C","BTC-19MAY23-35000-C","BTC-29SEP23-36000-C","ETH-15MAY23-1775-C","ETH-29MAR24-5000-P","BTC-29DEC23-32000-C","ETH-29MAR24-4200-C","ETH-29DEC23-1900-C","BTC-15MAY23-29500-C","ETH-30JUN23-3200-P","ETH-29SEP23-2100-C","BTC-19MAY23-27000-C","ETH-29SEP23-900-P","BTC-2JUN23-24000-C","BTC-14MAY23-23500-P","BCH_USDC-PERPETUAL","BTC-28JUL23-35000-C","BTC-26MAY23-50000-C","ETH-30JUN23-2200-C","LINK_USDC-DERIBIT-INDEX","ETH-28JUL23-4500-C","BTC-19MAY23","ETH-2JUN23-1400-C","BTC-26MAY23-14000-P","BTCDVOL_USDC-14MAY23","BTC-29SEP23-40000-P","ADA_USD-DERIBIT-INDEX","ETH-15MAY23-1725-C","BTC-14MAY23-28000-P","BTC-14MAY23-26000-P","BTC-29SEP23-32000-P","ETH-29SEP23-4000-C","ETH-28JUL23-1200-P","ETH-29SEP23-800-C","BTC-29DEC23-12000-C","BTC-FS-29MAR24_29SEP23","ETH-29MAR24-7000-C","BTC-19MAY23-24000-P","BTC-28JUL23-40000-P","ETH-28JUL23-1800-C","ETH-14MAY23-1400-C","ETH-29SEP23-1600-C","BTC-28JUL23-33000-C","BTC-14MAY23-24500-C","BTC-28JUL23-34000-C","BNB_USDC-PERPETUAL","ETH-15MAY23-1650-P","ETH-28JUL23-1000-P","ETH-2JUN23-2000-C","BTC-2JUN23-27000-P","BTC-28JUL23-31000-P","BTC-28JUL23-34000-P","ETH-15MAY23-1500-C","BTC-29SEP23-18000-P","BTC-30JUN23-26000-P","ETH-14MAY23-1600-P","BTC-29DEC23-25000-P","BTC-26MAY23-34000-P","BTC-19MAY23-28000-P","BTC-2JUN23-30000-C","ETH-28JUL23-3500-C","ETH-29SEP23-2200-P","BTC-15MAY23-29500-P","BTC-29SEP23-14000-P","ETH-30JUN23-2600-C","BTC-30JUN23-28000-C","ETH-2JUN23-2200-P","BTC-19MAY23-29000-P","BTC-29MAR24-70000-P","ETH-29SEP23-8000-C","ETH-14MAY23-1775-P","BTC-29MAR24-20000-C","ETH-FS-29DEC23_PERP","ETH-29MAR24-1200-C","ETH_BTC","ETH-29DEC23-2200-P","ETH-29MAR24-9000-P","BTC-FS-29MAR24_29DEC23","ETH-14MAY23-1200-C","ETH-29SEP23-3000-C","BTC-29DEC23-24000-P","ETH-26MAY23-2100-C","ETH-19MAY23-2000-C","BTC-28JUL23-29000-C","BTC-28JUL23-32000-P","BTC-28JUL23-25000-C","ETH-29SEP23-2800-P","BTC-28JUL23-28000-C","BTC-29MAR24-50000-C","ETH-15MAY23-1825-P","ETH-30JUN23-8000-C","ETH-29DEC23-3400-C","ETH-15MAY23-1925-C","BTC-28JUL23-20000-P","BTC-28JUL23-50000-P","ETH-26MAY23-2000-P","BTC-29MAR24-26000-P","BTC-14MAY23-27000-P","BTC-26MAY23-38000-C","ETH-2JUN23-2300-C","BTC-29DEC23-15000-C","ADA_USDC-PERPETUAL","BTC-30JUN23-40000-C","BTC-30JUN23-18000-P","BTC-29DEC23-40000-C","ETH-29SEP23-1700-C","BTC-26MAY23","BTC-26MAY23-22000-P","BTC-26MAY23-28000-P","ETH-26MAY23-2100-P","ETH-29SEP23-1200-P","ETH-19MAY23-1900-C","ETH-19MAY23","ETH-29DEC23-10000-P","BTC-29MAR24-30000-P","ETH-30JUN23-1800-P","ETH-29DEC23-10000-C","BTC-29DEC23-38000-P","BTC-PS-30JUN23-20000_10000","BTC-30JUN23-14000-P","ETH-30JUN23-1000-C","ETH-29DEC23-1400-P","BTC-14MAY23-24500-P","ETH-29DEC23-3000-C","ETH-19MAY23-2100-C","ETH-14MAY23-1850-C","BTC-19MAY23-20000-P","ETH-14MAY23-1675-P","ETH-29SEP23","ETH-19MAY23-2300-P","ETH-30JUN23-1500-P","BTC-29SEP23-34000-P","ETH-2JUN23-2000-P","ETH-29MAR24","ETH-29SEP23-3200-P","ETH-29SEP23-5000-C","ETH-28JUL23-1600-P","ETH-28JUL23-1900-C","BTC-14MAY23-23000-P","ETH-29MAR24-2100-C","ETH-14MAY23-1950-C","BTC-30JUN23-14000-C","ETH-28JUL23-2100-P","ETH-29DEC23-1000-C","ETH-CS-26MAY23-1400_1500","ETH-28JUL23-5000-C","ETH-29MAR24-6000-C","BTC-29MAR24-36000-C","BTC-29SEP23-60000-C","BTC-30JUN23-20000-P","ETH-14MAY23-1725-P","ETH-28JUL23-2400-P","BTC-PS-30JUN23-22000_10000","ETH-29SEP23-1000-P","ETH-29MAR24-1900-C","ETH-14MAY23-1750-C","BTC-15MAY23-26500-C","BTC-19MAY23-25000-C","ETH-29SEP23-1100-C","ETH-30JUN23-1300-C","ETH-29SEP23-2800-C","BTC_USDC-DERIBIT-INDEX","BTC-30JUN23-22000-C","BTC-26MAY23-24000-P","ETH-29MAR24-10000-P","BTC-29MAR24-22000-C","ETH-14MAY23-1825-C","ETH-28JUL23-5000-P","ETH-15MAY23-1400-C","ETH-30JUN23-2800-P","BTC-14MAY23-26250-C","ETH-26MAY23-1400-C","ETH-15MAY23-1950-C","BTC-28JUL23-16000-P","BTC-26MAY23-30000-C","BTC-29DEC23-18000-P","ETH-19MAY23-2300-C","BTC-28JUL23-16000-C","BTC-29SEP23-30000-C","ETH-29MAR24-1400-P","ETH-26MAY23-2500-P","ETH-26MAY23-2800-C","ETH-28JUL23-1400-C","UNI_USDC-PERPETUAL","BTC-30JUN23-24000-C","BTC-26MAY23-45000-C","MATIC_USDC-DERIBIT-INDEX","ETH-26MAY23-1300-C","BTC-14MAY23-24000-P","BTC-29SEP23-22000-P","ETH-29DEC23-7000-P","BTC-2JUN23-28000-C","BTC-28JUL23-27000-C","BTC-28JUL23-23000-C","ETH-29MAR24-2000-C","BTC-19MAY23-32000-C","BTC-15MAY23-28500-P","ETH-29MAR24-2400-P","BTC-29DEC23-14000-C","BTC-29MAR24-30000-C","ETH-29MAR24-4200-P","BTC-26MAY23-14000-C","ETH-29DEC23-1500-P","BTC-29DEC23-36000-P","ETH-29SEP23-3800-P","ETH-29SEP23-2100-P","ETH-2JUN23-1700-C","BTC-29SEP23-50000-P","ETH-29MAR24-3800-C","ETH-29SEP23-2400-P","ETH-29DEC23-3600-C","BTC-14MAY23-29500-P","BTC-30JUN23-28000-P","BTC-29MAR24-10000-C","ETH-29DEC23-2100-C","BTC-26MAY23-17000-P","BTC-15MAY23-27250-C","ETH-29SEP23-1300-C","ETH-26MAY23-1800-P","ETH-30JUN23-4200-C","ETH-29DEC23-2600-P","LTC_USDC-DERIBIT-INDEX","BTC-15MAY23-26750-P","ETH-30JUN23-2300-C","BTC-28JUL23-36000-C","BTC-30JUN23-35000-P","ETH-15MAY23-1200-P","ETH-29MAR24-2200-P","SHIB_USDC-DERIBIT-INDEX","ETH-29DEC23-3000-P","ETH-30JUN23-1800-C","ETH-2JUN23-2300-P","ETH-29SEP23-1800-P","USDC-DERIBIT-INDEX","ETH-26MAY23-1900-C","LINK_USDC-PERPETUAL","ETH-14MAY23-1300-P","BTC-15MAY23-24000-C","ETH-CS-26MAY23-1200_1900","ETH-26MAY23-1700-P","BTC-15MAY23-25000-P","BTC-29MAR24-32000-P","BTC-FS-29MAR24_PERP","BTC-28JUL23-24000-C","BTC-26MAY23-33000-C","BTC-28JUL23-26000-P","BTC-29MAR24-20000-P","BTC-28JUL23-45000-P","ETH-14MAY23-2050-P","BTC-26MAY23-23000-P","ETH-29DEC23-2400-P","BTC-15MAY23-28000-C","ETH-30JUN23-3600-P","ETH-29DEC23-4200-C","BTC-29DEC23-16000-C","ETH-29DEC23-600-P","ETH-30JUN23-4200-P","ETH-29DEC23-2600-C","BTC-14MAY23-25500-P","ETH-14MAY23-1650-C","ETH-30JUN23-2300-P","ETH-26MAY23-1000-P","ETH-15MAY23-2200-C","BTC-28JUL23-25000-P","ETH-29SEP23-2600-P","ETH-29MAR24-1600-P","BTC-26MAY23-34000-C","ETH-26MAY23-3500-P","ETH-29DEC23-6000-C","ETH_USDC-DERIBIT-INDEX","BTC-29MAR24-26000-C","ETH-14MAY23-2100-P","BTC-29SEP23-15000-P","ETH-30JUN23-1200-C","ETH-CS-26MAY23-1200_1300","ETH-29MAR24-3600-C","BTC-15MAY23-24500-C","BTCDVOL_USDC-30AUG23","BTC-14MAY23-25000-C","ETH-28JUL23-2800-C","TRX_USDC-DERIBIT-INDEX","BTC-29MAR24-40000-P","ETH-28JUL23-2400-C","BTC-29MAR24","ETH-29MAR24-3000-P","BTCDVOL_USDC-31MAY23","BTC-14MAY23-29000-C","BTC-29MAR24-70000-C","BTC-28JUL23-32000-C","ETH-15MAY23-1750-C","BTC-29DEC23-28000-C","BTC-29DEC23-35000-C","BTC-29SEP23-14000-C","BTC-26MAY23-16000-P","BTC-26MAY23-18000-P","BTC-2JUN23-20000-P","ETH-2JUN23-1800-C","ETH-19MAY23-1800-P","ETH_USDC-PERPETUAL","BTC-DERIBIT-INDEX","BTC-19MAY23-20000-C","ETH-14MAY23-1625-P","ETH-30JUN23-3000-C","UNI_USDC-DERIBIT-INDEX","ETH-2JUN23-1500-P","BTC_USDC","ETH-19MAY23-2400-P","ETH-29DEC23-600-C","ETH-2JUN23-1600-P","ETH-29SEP23-900-C","ETH-26MAY23-2500-C","ETH-FS-29SEP23_26MAY23","ETH-15MAY23-1850-P","ETH-26MAY23-500-P","ETH-30JUN23-1000-P","ETH-28JUL23-1400-P","ETH-30JUN23-4000-C","ETH-2JUN23-2400-P","ETH-28JUL23-1000-C","ETH-15MAY23-1875-C","ETH-29DEC23-3200-C","ETH-29MAR24-1500-C","BTC-28JUL23-26000-C","BTC-29MAR24-15000-P","BTC-29MAR24-28000-P","ETH-14MAY23-1775-C","ETH-29SEP23-600-C","BTC-28JUL23-29000-P","ETH-29MAR24-3400-P","ETH-19MAY23-2500-P","BTC-FS-30JUN23_PERP","ETH-26MAY23-500-C","ETH-29MAR24-4000-C","BTC-28JUL23-22000-P","ETH-29DEC23-6000-P","ETHDVOL_USDC-26JUL23","BTC-28JUL23-36000-P","ETH-14MAY23-1875-P","BTC-15MAY23-27000-P","DOGE_USDC-DERIBIT-INDEX","ETH-29MAR24-2600-C","ETH-29SEP23-1000-C","BTC-19MAY23-27000-P","BTC-30JUN23-30000-C","BTC-28JUL23-18000-C","ETH-29SEP23-800-P","ETH-15MAY23-1300-C","ETH-29DEC23-4000-C","ETH-29SEP23-3000-P","ETH-2JUN23-1300-P","BTC-30JUN23-22000-P","BTC-2JUN23-20000-C","BTC-30JUN23-32000-C","ETH-29SEP23-1600-P","ETH-26MAY23-1200-C","BTC-26MAY23-38000-P","ETH-29SEP23-2300-P","ETH-30JUN23-2400-C","BTC-FS-29MAR24_26MAY23","BTC-2JUN23-25000-C","BTC-29MAR24-34000-C","BTC-15MAY23-29000-C","ETH-14MAY23-1875-C","ETH-DERIBIT-INDEX","BTC-26MAY23-25000-P","ETH-30JUN23-2400-P","ETH-26MAY23-1600-C","BTC-26MAY23-29000-P","BTC-29MAR24-45000-P","ETH-29MAR24-3800-P","ETH-29SEP23-7000-C","BTC-29MAR24-36000-P","ETH-15MAY23-2050-P","BTC-29DEC23-14000-P","ETH-30JUN23-2000-P","DOGE_USD-DERIBIT-INDEX","BTC-29DEC23-25000-C","BTC-19MAY23-35000-P","ETH-15MAY23-1900-C","BTC-30JUN23-40000-P","BTC-30JUN23-34000-C","ETH-29DEC23-5000-C","BTC-FS-29MAR24_19MAY23","BTC-30JUN23-10000-C","ETH-28JUL23-3200-P","BTC-15MAY23-25500-P","ETH-2JUN23-1900-P","ETH-14MAY23-1550-P","ETH-28JUL23-1200-C","ETH-FS-29SEP23_PERP","TRX_USD-DERIBIT-INDEX","BTC-29SEP23-15000-C","ETH-29DEC23","ETH-29MAR24-2300-C","ETH-29SEP23-1700-P","ETH-30JUN23-2800-C","ETH-29DEC23-3800-C","ETH-15MAY23-2050-C","ETH-26MAY23-2600-C","BTC-14MAY23-26500-P","ETH-29DEC23-1900-P","ETH-29DEC23-5000-P","ETH-29DEC23-800-P","ETH-30JUN23-9000-C","ETH-29DEC23-1300-C","ETH-19MAY23-2400-C","ETH-29DEC23-1300-P","BTC-15MAY23-26000-C","BTC-14MAY23-26750-C","ETH-26MAY23-2000-C","ETH-29SEP23-1800-C","BTC-29MAR24-35000-P","ETH-29DEC23-1200-P"]

Reference Data

GET /api/reference_data

Fetch reference data.

$ curl 'http://localhost/api/reference_data?exchange=deribit&symbol=BTC-PERPETUAL' \
                --verbose \
                --write-out '\n' \
                --unix-socket ~/run/metrics/deribit.sock

*   Trying /home/thraneh/run/metrics/deribit.sock:0...
* Connected to localhost (/home/thraneh/run/metrics/deribit.sock) port 80 (#0)
> GET /api/reference_data?exchange=deribit&symbol=BTC-PERPETUAL HTTP/1.1
> Host: localhost
> User-Agent: curl/7.81.0
> Accept: */*
>
* Mark bundle as not supporting multiuse
< HTTP/1.1 200 OK
< Server: roq-deribit/0.9.4
< Access-Control-Allow-Origin: *
< Cache-Control: no-store
< Date: Sun, 14 May 2023 05:50:19 GMT
< Content-Type: application/json
< Content-Length: 577
<
* Connection #0 to host localhost left intact
{"stream_id":4,"exchange":"deribit","symbol":"BTC-PERPETUAL","description":"future","security_type":"FUTURES","base_currency":"USD","quote_currency":"USD","margin_currency":null,"commission_currency":"BTC","tick_size":"0.5","multiplier":"10","min_notional":null,"min_trade_vol":"1","max_trade_vol":null,"trade_vol_step_size":"1","option_type":null,"strike_currency":null,"strike_price":null,"underlying":null,"time_zone":null,"issue_date":"2018-08-13","settlement_date":null,"expiry_datetime":"3000-01-01T08:00:00Z","expiry_datetime_utc":"3000-01-01T08:00:00Z","discard":false}

Market Status

GET /api/market_status

Fetch market status.

$ curl 'http://localhost/api/market_status?exchange=deribit&symbol=BTC-PERPETUAL' \
                  --verbose \
                  --write-out '\n' \
                  --unix-socket ~/run/metrics/deribit.sock

*   Trying /home/thraneh/run/metrics/deribit.sock:0...
* Connected to localhost (/home/thraneh/run/metrics/deribit.sock) port 80 (#0)
> GET /api/market_status?exchange=deribit&symbol=BTC-PERPETUAL HTTP/1.1
> Host: localhost
> User-Agent: curl/7.81.0
> Accept: */*
>
* Mark bundle as not supporting multiuse
< HTTP/1.1 200 OK
< Server: roq-deribit/0.9.4
< Access-Control-Allow-Origin: *
< Cache-Control: no-store
< Date: Sun, 14 May 2023 05:51:17 GMT
< Content-Type: application/json
< Content-Length: 85
<
* Connection #0 to host localhost left intact
{"stream_id":3,"exchange":"deribit","symbol":"BTC-PERPETUAL","trading_status":"OPEN"}

Top of Book

GET /api/top_of_book

Fetch top of book.

$ curl 'http://localhost/api/top_of_book?exchange=deribit&symbol=BTC-PERPETUAL' \
                  --verbose \
                  --write-out '\n' \
                  --unix-socket ~/run/metrics/deribit.sock

*   Trying /home/thraneh/run/metrics/deribit.sock:0...
* Connected to localhost (/home/thraneh/run/metrics/deribit.sock) port 80 (#0)
> GET /api/top_of_book?exchange=deribit&symbol=BTC-PERPETUAL HTTP/1.1
> Host: localhost
> User-Agent: curl/7.81.0
> Accept: */*
>
* Mark bundle as not supporting multiuse
< HTTP/1.1 200 OK
< Server: roq-deribit/0.9.4
< Access-Control-Allow-Origin: *
< Cache-Control: no-store
< Date: Sun, 14 May 2023 05:52:02 GMT
< Content-Type: application/json
< Content-Length: 258
<
* Connection #0 to host localhost left intact
{"stream_id":0,"exchange":"deribit","symbol":"BTC-PERPETUAL","layer":{"bid_price":"26850.5","bid_quantity":"657","ask_price":"26851.0","ask_quantity":"9999"},"update_type":"SNAPSHOT","exchange_time_utc":"2023-05-14T05:51:58.056000000Z","exchange_sequence":0}

Statistics

GET /api/statistics

Fetch statistics.

$ curl 'http://localhost/api/statistics?exchange=deribit&symbol=BTC-PERPETUAL' \
                  --verbose \
                  --write-out '\n' \
                  --unix-socket ~/run/metrics/deribit.sock

*   Trying /home/thraneh/run/metrics/deribit.sock:0...
* Connected to localhost (/home/thraneh/run/metrics/deribit.sock) port 80 (#0)
> GET /api/statistics?exchange=deribit&symbol=BTC-PERPETUAL HTTP/1.1
> Host: localhost
> User-Agent: curl/7.81.0
> Accept: */*
>
* Mark bundle as not supporting multiuse
< HTTP/1.1 200 OK
< Server: roq-deribit/0.9.4
< Access-Control-Allow-Origin: *
< Cache-Control: no-store
< Date: Sun, 14 May 2023 05:52:35 GMT
< Content-Type: application/json
< Content-Length: 1405
<
{"stream_id":4,"exchange":"deribit","symbol":"BTC-PERPETUAL","statistics":[{"type":"SETTLEMENT_PRICE","value":null,"begin_time_utc":null,"end_time_utc":null},{"type":"CLOSE_PRICE","value":null,"begin_time_utc":null,"end_time_utc":null},{"type":"OPEN_INTEREST","value":null,"begin_time_utc":null,"end_time_utc":null},{"type":"PRE_OPEN_INTEREST","value":"563764298","begin_time_utc":null,"end_time_utc":null},{"type":"PRE_SETTLEMENT_PRICE","value":"26847.6","begin_time_utc":null,"end_time_utc":null},{"type":"PRE_CLOSE_PRICE","value":null,"begin_time_utc":null,"end_time_utc":null},{"type":"HIGHEST_TRADED_PRICE","value":null,"begin_time_utc":null,"end_time_utc":null},{"type":"LOWEST_TRADED_PRICE","value":null,"begin_time_utc":null,"end_time_utc":null},{"type":"UPPER_LIMIT_PRICE","value":null,"begin_time_utc":null,"end_time_utc":null},{"type":"LOWER_LIMIT_PRICE","value":null,"begin_time_utc":null,"end_time_utc":null},{"type":"INDEX_VALUE","value":null,"begin_time_utc":null,"end_time_utc":null},{"type":"MARGIN_RATE","v* Connection #0 to host localhost left intact
alue":null,"begin_time_utc":null,"end_time_utc":null},{"type":"FUNDING_RATE","value":null,"begin_time_utc":null,"end_time_utc":null},{"type":"FUNDING_RATE_PREDICTION","value":null,"begin_time_utc":null,"end_time_utc":null},{"type":"TRADE_VOLUME","value":null,"begin_time_utc":null,"end_time_utc":null}],"update_type":"SNAPSHOT","exchange_time_utc":"2023-05-14T05:52:35.029000000Z"}

Parameters

Please refer to the Parameters design document.

Custom Metrics

GET /api/custom_metrics

Fetch custom metrics.

PUT /api/custom_metrics?user=<user>

Push custom metrics.

$ curl http://localhost/api/custom_metrics?user=trader \
      --verbose \
      --write-out '\n' \
      --unix-socket ~/run/metrics/deribit.sock \
      --request PUT \
      --header 'Content-Type: application/json' \
      --data '{"label":"foo","exchange":"deribit","symbol":"BTC-PERPETUAL","measurements":{"bar":1.23,"baz":456}}'

*   Trying /home/thraneh/run/metrics/deribit.sock:0...
* Connected to localhost (/home/thraneh/run/metrics/deribit.sock) port 80 (#0)
> PUT /api/custom_metrics?user=trader HTTP/1.1
> Host: localhost
> User-Agent: curl/7.81.0
> Accept: */*
> Content-Type: application/json
> Content-Length: 99
>
* Mark bundle as not supporting multiuse
< HTTP/1.1 200 OK
< Server: roq-deribit/0.9.4
< Access-Control-Allow-Origin: *
< Date: Fri, 19 May 2023 12:34:42 GMT
< Content-Length: 0
<
* Connection #0 to host localhost left intact
PUT /api/custom_metrics/<label>?user=<user>

Push custom metrics.

$ curl http://localhost/api/custom_metrics/foo?user=trader \
      --verbose \
      --write-out '\n' \
      --unix-socket ~/run/metrics/deribit.sock \
      --request PUT \
      --header 'Content-Type: application/json' \
      --data '{"exchange":"deribit","symbol":"BTC-PERPETUAL","measurements":{"bar":1.23,"baz":456}}'

*   Trying /home/thraneh/run/metrics/deribit.sock:0...
* Connected to localhost (/home/thraneh/run/metrics/deribit.sock) port 80 (#0)
> PUT /api/custom_metrics/foo?user=trader HTTP/1.1
> Host: localhost
> User-Agent: curl/7.81.0
> Accept: */*
> Content-Type: application/json
> Content-Length: 85
>
* Mark bundle as not supporting multiuse
< HTTP/1.1 200 OK
< Server: roq-deribit/0.9.4
< Access-Control-Allow-Origin: *
< Date: Fri, 19 May 2023 12:40:02 GMT
< Content-Length: 0
<
* Connection #0 to host localhost left intact

Custom Matrix

GET /api/custom_matrix

Fetch custom matrix.

PUT /api/custom_matrix?user=<user>

Push custom matrix.

$ curl http://localhost/api/custom_matrix?user=trader \
      --verbose \
      --write-out '\n' \
      --unix-socket ~/run/metrics/deribit.sock \
      --request PUT \
      --header 'Content-Type: application/json' \
      --data '{"label":"foo","data":[1,2.3,4.56],"rows":["a","bc"],"columns":["def123"],"version":123,"exchange":"deribit","symbol":"BTC-PERPETUAL"}'

*   Trying /home/thraneh/run/metrics/deribit.sock:0...
* Connected to localhost (/home/thraneh/run/metrics/deribit.sock) port 80 (#0)
> PUT /api/custom_matrix?user=trader HTTP/1.1
> Host: localhost
> User-Agent: curl/7.81.0
> Accept: */*
> Content-Type: application/json
> Content-Length: 134
>
* Mark bundle as not supporting multiuse
< HTTP/1.1 200 OK
< Server: roq-deribit/0.9.4
< Access-Control-Allow-Origin: *
< Date: Fri, 19 May 2023 12:37:32 GMT
< Content-Length: 0
<
* Connection #0 to host localhost left intact
PUT /api/custom_matrix/<label>?user=<user>

Push custom matrix.

$ curl http://localhost/api/custom_matrix/foo?user=trader \
      --verbose \
      --write-out '\n' \
      --unix-socket ~/run/metrics/deribit.sock \
      --request PUT \
      --header 'Content-Type: application/json' \
      --data '{"data":[1,2.3,4.56],"rows":["a","bc"],"columns":["def123"],"version":123,"exchange":"deribit","symbol":"BTC-PERPETUAL"}'

*   Trying /home/thraneh/run/metrics/deribit.sock:0...
* Connected to localhost (/home/thraneh/run/metrics/deribit.sock) port 80 (#0)
> PUT /api/custom_matrix/foo?user=trader HTTP/1.1
> Host: localhost
> User-Agent: curl/7.81.0
> Accept: */*
> Content-Type: application/json
> Content-Length: 120
>
* Mark bundle as not supporting multiuse
< HTTP/1.1 200 OK
< Server: roq-deribit/0.9.4
< Access-Control-Allow-Origin: *
< Date: Fri, 19 May 2023 12:41:06 GMT
< Content-Length: 0
<
* Connection #0 to host localhost left intact