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