curl --request GET \
--url https://test.deribit.com/api/v2/private/get_mmp_status \
--header 'Content-Type: application/json' \
--data '
{
"jsonrpc": "2.0",
"id": 7851,
"method": "private/get_mmp_status",
"params": {
"index_name": "btc_usd",
"mmp_group": "MassQuoteBot7"
}
}
'import requests
url = "https://test.deribit.com/api/v2/private/get_mmp_status"
payload = {
"jsonrpc": "2.0",
"id": 7851,
"method": "private/get_mmp_status",
"params": {
"index_name": "btc_usd",
"mmp_group": "MassQuoteBot7"
}
}
headers = {"Content-Type": "application/json"}
response = requests.get(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'GET',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
jsonrpc: '2.0',
id: 7851,
method: 'private/get_mmp_status',
params: {index_name: 'btc_usd', mmp_group: 'MassQuoteBot7'}
})
};
fetch('https://test.deribit.com/api/v2/private/get_mmp_status', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://test.deribit.com/api/v2/private/get_mmp_status",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_POSTFIELDS => json_encode([
'jsonrpc' => '2.0',
'id' => 7851,
'method' => 'private/get_mmp_status',
'params' => [
'index_name' => 'btc_usd',
'mmp_group' => 'MassQuoteBot7'
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://test.deribit.com/api/v2/private/get_mmp_status"
payload := strings.NewReader("{\n \"jsonrpc\": \"2.0\",\n \"id\": 7851,\n \"method\": \"private/get_mmp_status\",\n \"params\": {\n \"index_name\": \"btc_usd\",\n \"mmp_group\": \"MassQuoteBot7\"\n }\n}")
req, _ := http.NewRequest("GET", url, payload)
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://test.deribit.com/api/v2/private/get_mmp_status")
.header("Content-Type", "application/json")
.body("{\n \"jsonrpc\": \"2.0\",\n \"id\": 7851,\n \"method\": \"private/get_mmp_status\",\n \"params\": {\n \"index_name\": \"btc_usd\",\n \"mmp_group\": \"MassQuoteBot7\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://test.deribit.com/api/v2/private/get_mmp_status")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"jsonrpc\": \"2.0\",\n \"id\": 7851,\n \"method\": \"private/get_mmp_status\",\n \"params\": {\n \"index_name\": \"btc_usd\",\n \"mmp_group\": \"MassQuoteBot7\"\n }\n}"
response = http.request(request)
puts response.read_body{
"jsonrpc": "2.0",
"id": 7851,
"result": [
{
"index_name": "btc_usd",
"frozen_until": 1744275841861,
"mmp_group": "MassQuoteBot7"
}
]
}private/get_mmp_status
Retrieves Market Maker Protection (MMP) status for a triggered index or MMP group. Returns the live MMP state including whether MMP is enabled or triggered, remaining frozen time (if triggered), whether quoting is currently allowed, and any active freeze conditions.
If the index_name parameter is not provided, a list of all triggered MMP statuses is returned. This method lets you track whether protection is active and when quoting will resume.
For Mass Quotes, specify the mmp_group parameter to check status for a specific MMP group. Set block_rfq to true to retrieve MMP status for Block RFQ (requires block_rfq:read scope).
๐ Related Article: Market Maker Protection API Configuration
Scope: trade:read or block_rfq:read (when block_rfq = true)
curl --request GET \
--url https://test.deribit.com/api/v2/private/get_mmp_status \
--header 'Content-Type: application/json' \
--data '
{
"jsonrpc": "2.0",
"id": 7851,
"method": "private/get_mmp_status",
"params": {
"index_name": "btc_usd",
"mmp_group": "MassQuoteBot7"
}
}
'import requests
url = "https://test.deribit.com/api/v2/private/get_mmp_status"
payload = {
"jsonrpc": "2.0",
"id": 7851,
"method": "private/get_mmp_status",
"params": {
"index_name": "btc_usd",
"mmp_group": "MassQuoteBot7"
}
}
headers = {"Content-Type": "application/json"}
response = requests.get(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'GET',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
jsonrpc: '2.0',
id: 7851,
method: 'private/get_mmp_status',
params: {index_name: 'btc_usd', mmp_group: 'MassQuoteBot7'}
})
};
fetch('https://test.deribit.com/api/v2/private/get_mmp_status', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://test.deribit.com/api/v2/private/get_mmp_status",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_POSTFIELDS => json_encode([
'jsonrpc' => '2.0',
'id' => 7851,
'method' => 'private/get_mmp_status',
'params' => [
'index_name' => 'btc_usd',
'mmp_group' => 'MassQuoteBot7'
]
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://test.deribit.com/api/v2/private/get_mmp_status"
payload := strings.NewReader("{\n \"jsonrpc\": \"2.0\",\n \"id\": 7851,\n \"method\": \"private/get_mmp_status\",\n \"params\": {\n \"index_name\": \"btc_usd\",\n \"mmp_group\": \"MassQuoteBot7\"\n }\n}")
req, _ := http.NewRequest("GET", url, payload)
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://test.deribit.com/api/v2/private/get_mmp_status")
.header("Content-Type", "application/json")
.body("{\n \"jsonrpc\": \"2.0\",\n \"id\": 7851,\n \"method\": \"private/get_mmp_status\",\n \"params\": {\n \"index_name\": \"btc_usd\",\n \"mmp_group\": \"MassQuoteBot7\"\n }\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://test.deribit.com/api/v2/private/get_mmp_status")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"jsonrpc\": \"2.0\",\n \"id\": 7851,\n \"method\": \"private/get_mmp_status\",\n \"params\": {\n \"index_name\": \"btc_usd\",\n \"mmp_group\": \"MassQuoteBot7\"\n }\n}"
response = http.request(request)
puts response.read_body{
"jsonrpc": "2.0",
"id": 7851,
"result": [
{
"index_name": "btc_usd",
"frozen_until": 1744275841861,
"mmp_group": "MassQuoteBot7"
}
]
}Query Parameters
Index identifier of derivative instrument on the platform
btc_usd, eth_usd, btc_usdc, eth_usdc, ada_usdc, algo_usdc, avax_usdc, bch_usdc, bnb_usdc, doge_usdc, dot_usdc, hype_usdc, link_usdc, ltc_usdc, near_usdc, paxg_usdc, shib_usdc, sol_usdc, ton_usdc, trx_usdc, trump_usdc, uni_usdc, xrp_usdc, usde_usdc, buidl_usdc, btcdvol_usdc, ethdvol_usdc, btc_usdt, eth_usdt, all Specifies the MMP group for which the status is being retrieved. The index_name must be specified before using this parameter.
Leaving mmp_group empty (passing "" or omitting it) targets the orders MMP group, the default group used for regular orders with the mmp flag set. This is not an error or an incomplete request.
๐ Related Article: Mass Quotes Specifications
"MassQuoteBot7"
If true, retrieves MMP status for Block RFQ. When set, requires block_rfq scope instead of trade scope. Block RFQ MMP status is completely separate from normal order/quote MMP status.
Response
Success response
The JSON-RPC version (2.0)
2.0 Hide child attributes
Hide child attributes
Index identifier, matches (base) cryptocurrency with quote currency
btc_usd, eth_usd, ada_usdc, algo_usdc, avax_usdc, bch_usdc, bnb_usdc, btc_usdc, btcdvol_usdc, buidl_usdc, doge_usdc, dot_usdc, eurr_usdc, eth_usdc, ethdvol_usdc, hype_usdc, link_usdc, ltc_usdc, near_usdc, paxg_usdc, shib_usdc, sol_usdc, steth_usdc, ton_usdc, trump_usdc, trx_usdc, uni_usdc, usde_usdc, usyc_usdc, xrp_usdc, btc_usdt, eth_usdt, eurr_usdt, sol_usdt, steth_usdt, usdc_usdt, usde_usdt, btc_eurr, btc_usde, btc_usyc, eth_btc, eth_eurr, eth_usde, eth_usyc, steth_eth, paxg_btc, drbfix-btc_usdc, drbfix-eth_usdc Timestamp (milliseconds since the UNIX epoch) until the user will be frozen - 0 means that the user is frozen until manual reset.
Triggered mmp group, this parameter is optional (appears only for Mass Quote orders trigger)
"MassQuoteBot7"
If true, indicates that the MMP status is for Block RFQ. Block RFQ MMP status is completely separate from normal order/quote MMP status.
false
The id that was sent in the request
Was this page helpful?