Below are the available REST API endpoints for Fig Markets REST API
Fig Markets REST API (1.0)
https://api.test.figmarkets.com/v1/
https://api.figmarkets.com/v1/
Return RFQs created after this time (unix timestamp in milliseconds)
Return RFQs created before this time (unix timestamp in milliseconds)
The cursor reference from the previous page of results, used to return the next page of results
Limit the number of results to return per page - default 100, max 1000
- Test API
https://api.test.figmarkets.com/v1/rfq
- Production API
https://api.figmarkets.com/v1/rfq
- curl
- JavaScript
- Go
- Java
- Python
curl -i -X GET \
https://api.test.figmarkets.com/v1/rfq \
-H 'Content-Type: application/json' \
-d '{}'Paginated list of RFQs
Array of results for the current page
Customer-provided identifier for the RFQ
Only returned if you are the taker of the RFQ
Current status of the RFQ
filledPartial indicates a trade against an RFQ with multiple settlement accounts where only some of the accounts settled successfully — see filledAmount and tradeAllocations for the settled share and the per-account outcomes.
When an RFQ is created a quote currency is provided which is used to determine the list of available quoteCurrencies for each settlementOption.
For example, if a BTC option RFQ is created with quoteCurrency: BTC, then the quoteCurrency for DBT will be BTC and the quoteCurrency for BULL will be USDC.
If it is created with quoteCurrency: USDC, then the quoteCurrency for DBT and BULL will be USDC.
This is because DBT supports both BTC and BTC_USDC options while BULL only supports BTC_USDC options.
When quoting please use the appropriate quote currency from the quoteCurrencies list that is relevant to the settlementOption chosen for the quote.
Lists for each settlement option the expected quote currency.
The keys are settlement option identifiers (e.g. DBT, BULL) and the values are the quote currency codes (e.g. BTC, USDC).
Trade amount in base currency units for options and quote currency units for futures
Direction of the trade (buy or sell)
Only returned if the RFQ has been traded and you are the maker or taker in the trade.
Price of the trade
Only returned if the RFQ has been traded and you are the maker or taker in the trade.
Amount traded in the RFQ's base currency (e.g. BTC)
Only returned if the RFQ has been traded and you are the maker or taker in the trade.
Timestamp when the trade was executed (unix timestamp in milliseconds)
Only returned if the RFQ has been traded and you are the maker or taker in the trade.
Unique identifier for the trade
Only returned if the RFQ has been traded and you are the maker or taker in the trade.
The amount of the trade that settled successfully, in the RFQ's base currency
For a filled RFQ this matches tradeAmount. For a filledPartial RFQ this is the portion of tradeAmount that settled across the successful settlement accounts.
Only returned if the RFQ has been traded and you are the maker or taker in the trade.
The settlement accounts for the RFQ, including each account's split percentage.
Only returned if you are the taker of the RFQ, when fetching a single RFQ by ID.
The per-account settlement outcomes for the trade.
Only returned if the RFQ has been traded and you are the taker of the RFQ, when fetching a single RFQ by ID.
A list of available settlement options allowed for the RFQ.
Currently BULL and DBT are supported.
{ "totalResults": 3, "cursor": 351, "results": [ { … } ] }
- Test API
https://api.test.figmarkets.com/v1/rfq/{id}
- Production API
https://api.figmarkets.com/v1/rfq/{id}
- curl
- JavaScript
- Go
- Java
- Python
curl -i -X GET \
'https://api.test.figmarkets.com/v1/rfq/{id}'RFQ details
Customer-provided identifier for the RFQ
Only returned if you are the taker of the RFQ
Current status of the RFQ
filledPartial indicates a trade against an RFQ with multiple settlement accounts where only some of the accounts settled successfully — see filledAmount and tradeAllocations for the settled share and the per-account outcomes.
When an RFQ is created a quote currency is provided which is used to determine the list of available quoteCurrencies for each settlementOption.
For example, if a BTC option RFQ is created with quoteCurrency: BTC, then the quoteCurrency for DBT will be BTC and the quoteCurrency for BULL will be USDC.
If it is created with quoteCurrency: USDC, then the quoteCurrency for DBT and BULL will be USDC.
This is because DBT supports both BTC and BTC_USDC options while BULL only supports BTC_USDC options.
When quoting please use the appropriate quote currency from the quoteCurrencies list that is relevant to the settlementOption chosen for the quote.
Lists for each settlement option the expected quote currency.
The keys are settlement option identifiers (e.g. DBT, BULL) and the values are the quote currency codes (e.g. BTC, USDC).
Trade amount in base currency units for options and quote currency units for futures
Direction of the trade (buy or sell)
Only returned if the RFQ has been traded and you are the maker or taker in the trade.
Price of the trade
Only returned if the RFQ has been traded and you are the maker or taker in the trade.
Amount traded in the RFQ's base currency (e.g. BTC)
Only returned if the RFQ has been traded and you are the maker or taker in the trade.
Timestamp when the trade was executed (unix timestamp in milliseconds)
Only returned if the RFQ has been traded and you are the maker or taker in the trade.
Unique identifier for the trade
Only returned if the RFQ has been traded and you are the maker or taker in the trade.
The amount of the trade that settled successfully, in the RFQ's base currency
For a filled RFQ this matches tradeAmount. For a filledPartial RFQ this is the portion of tradeAmount that settled across the successful settlement accounts.
Only returned if the RFQ has been traded and you are the maker or taker in the trade.
The settlement accounts for the RFQ, including each account's split percentage.
Only returned if you are the taker of the RFQ, when fetching a single RFQ by ID.
The per-account settlement outcomes for the trade.
Only returned if the RFQ has been traded and you are the taker of the RFQ, when fetching a single RFQ by ID.
A list of available settlement options allowed for the RFQ.
Currently BULL and DBT are supported.
{ "rfqId": 12345, "productId": 67890, "label": "MyRFQ-12345", "kind": "option", "strategy": "RR", "description": "20Aug25 4200/4300/4400 CFly 1:2:1 (Wings+)", "status": "open", "baseCurrency": "BTC", "quoteCurrency": "DBT", "quoteCurrencies": { "DBT": "BTC", "BULL": "USDC" }, "amount": 1.5, "anonymous": false, "role": "taker", "markPrice": 49500, "tradeDirection": "buy", "tradePrice": 0.02, "tradeAmount": 25, "tradeCreatedAt": 1756802862567, "tradeId": 12345, "filledAmount": 25, "legs": [ { … } ], "hedge": { "amount": 112534.56, "direction": "buy", "expiry": "29Aug25", "instrumentId": 12345, "instrumentName": "BTC-8AUG25-110000-C", "price": 115750.45 }, "settlementCredentials": [ { … } ], "tradeAllocations": [ { … } ], "settlementOptions": [ "BULL", "DBT" ], "quotes": [ { … } ], "trades": [ { … } ], "createdAt": 1756802862567, "expiresAt": 1753898238346000 }
Request
Create a new RFQ.
Settlement credentials can be provided either as a single account per settlement option (settlementCredentials) or split across multiple accounts per settlement option (settlementAccounts). When settlement is split across multiple accounts, each account's share of every leg must meet the venue's minimum block trade amount and each account must pass the venue's block trade simulation — otherwise the request is rejected.
RFQ creation request
Trade amount in base currency units for options and quote currency units for futures
A list of available settlement options allowed for the RFQ.
Currently BULL and DBT are supported.
For each of the provided settlementOptions, a corresponding exchangeCredentialsId must be provided.
The credentials must have read/write access for BlockRFQ and BlockTrade on the settlement venue.
This is the single-account format — to split settlement across multiple accounts on a venue, use settlementAccounts instead. If settlementAccounts is provided, this field is ignored.
For each of the provided settlementOptions, a list of settlement accounts to split the settlement of the trade across.
Each account specifies the credentialsId of the exchange credentials and the percentage of the trade to settle on that account. For each settlement option the percentages must total exactly 100, every percentage must be greater than 0, and the same credentials cannot appear more than once.
Each account's share of every leg must meet the venue's minimum block trade amount, and each account must pass the venue's block trade simulation — otherwise the RFQ creation is rejected.
When provided, this field takes precedence over settlementCredentials.
For each of the selected settlementOptions, a list of the Fig makers needs to be provided who will be recipients of the RFQ.
The list of available makers can be obtained from the /exchange/maker endpoint.
- Test API
https://api.test.figmarkets.com/v1/rfq/{id}
- Production API
https://api.figmarkets.com/v1/rfq/{id}
- curl
- JavaScript
- Go
- Java
- Python
curl -i -X POST \
'https://api.test.figmarkets.com/v1/rfq/{id}' \
-H 'Content-Type: application/json' \
-d '{
"baseCurrency": "BTC",
"amount": 1.5,
"anonymous": false,
"settlementOptions": [
"BULL",
"DBT"
],
"settlementCredentials": {
"DBT": 57,
"BULL": 65
},
"settlementAccounts": {
"DBT": [
{
"credentialsId": 57,
"percentage": 60
},
{
"credentialsId": 58,
"percentage": 40
}
],
"BULL": [
{
"credentialsId": 65,
"percentage": 100
}
]
},
"makers": {
"DBT": [
"SIS",
"TE2",
"TLY"
],
"BULL": [
"TLY"
]
},
"legs": [
{
"direction": "buy",
"instrumentName": "BTC-8AUG25-110000-C",
"ratio": 1.5,
"price": 0.08
}
],
"hedge": {
"direction": "buy",
"instrumentName": "BTC-8AUG25-110000-C",
"amount": 112534.56,
"price": 115750.45
}
}'{ "rfqId": 12345 }
- Test API
https://api.test.figmarkets.com/v1/rfq/{id}
- Production API
https://api.figmarkets.com/v1/rfq/{id}
- curl
- JavaScript
- Go
- Java
- Python
curl -i -X DELETE \
'https://api.test.figmarkets.com/v1/rfq/{id}'{ "rfqId": 12345 }
- Test API
https://api.test.figmarkets.com/v1/rfq/{id}/quote
- Production API
https://api.figmarkets.com/v1/rfq/{id}/quote
- curl
- JavaScript
- Go
- Java
- Python
curl -i -X GET \
'https://api.test.figmarkets.com/v1/rfq/{id}/quote'[ { "rfqId": 12345, "bids": [ … ], "asks": [ … ] } ]
- Test API
https://api.test.figmarkets.com/v1/rfq/cancel
- Production API
https://api.figmarkets.com/v1/rfq/cancel
- curl
- JavaScript
- Go
- Java
- Python
curl -i -X POST \
https://api.test.figmarkets.com/v1/rfq/cancel \
-H 'Content-Type: application/json' \
-d '{
"rfqId": 12345
}'{ "id": 123 }
Request
Accept a quote and trade the RFQ.
For RFQs created with settlement split across multiple accounts (settlementAccounts), one block trade is executed per settlement account and the per-account outcomes are returned in allocations. If some accounts settle successfully and others fail, the RFQ's status becomes filledPartial and the settled share is reported in the RFQ's filledAmount.
RFQ trade request
- Test API
https://api.test.figmarkets.com/v1/rfq/trade
- Production API
https://api.figmarkets.com/v1/rfq/trade
- curl
- JavaScript
- Go
- Java
- Python
curl -i -X POST \
https://api.test.figmarkets.com/v1/rfq/trade \
-H 'Content-Type: application/json' \
-d '{
"rfqQuoteId": 12345
}'Details of the completed trade
Unique identifier for the RFQ trade
Only returned if the RFQ has been traded and you are the maker or taker in the trade.
The per-account settlement outcomes for the trade.
One block trade is executed per settlement account in the RFQ's settlement splits. If some accounts settle and others fail, the RFQ's status becomes filledPartial and the failed allocations are reported here with a status of failed.
Only returned for RFQs created with settlement splits.
{ "rfqTradeId": 12345, "rfqId": 12345, "trades": [ { … } ], "allocations": [ { … } ] }
Start time - return Quotes created after this time (unix timestamp in milliseconds)
End time - return Quotes created before this time (unix timestamp in milliseconds)
The cursor reference from the previous page of results, used to return the next page of results
- Test API
https://api.test.figmarkets.com/v1/rfq/quotes
- Production API
https://api.figmarkets.com/v1/rfq/quotes
- curl
- JavaScript
- Go
- Java
- Python
curl -i -X GET \
https://api.test.figmarkets.com/v1/rfq/quotes \
-H 'Content-Type: application/json' \
-d '{}'List of quotes
Array of results for the current page
Price offered for the quote in the respective quote currency for the settlementOption as defined by the quoteCurrencies property for the RFQ.
The chosen settlement option for the quote.
Currently BULL and DBT are supported.
You can only send a value that matches one of the available settlementOptions for the RFQ.
The exchangeCredentialsId of the exchange credentials to use for the settlement of the trade for the chosen settlementOption.
The credentials must be for the same exchange defined in settlementOption.
Your credentials must have read/write access for BlockRFQ and BlockTrade on the settlement venue.
The quote currency for the quote, as determined by the chosen settlementOption and the RFQ's quoteCurrencies mapping.
This is the currency in which the quote price is denominated.
The breakdown of the quotes against each leg
Only displayed for quotes received via FIG directly. Any quotes from third party exchanges will not include the breakdown.
The hedge for the RFQ quote
Only displayed for quotes received via FIG directly. Any quotes from third party exchanges will not include the hedge.
[ { "totalResults": 3, "cursor": 351, "results": [ … ] } ]
Request
Create a new quote against an existing RFQ.
The RFQ must be in the open state and the leg and hedge information must be set and match that of the RFQ being quoted against.
You can use the Calculate leg prices endpoint to help you get the leg prices for your quote.
Quote update request
The chosen settlement option for the quote.
Currently BULL and DBT are supported.
You can only send a value that matches one of the available settlementOptions for the RFQ.
The exchangeCredentialsId of the exchange credentials to use for the settlement of the trade for the chosen settlementOption.
The credentials must be for the same exchange defined in settlementOption.
Your credentials must have read/write access for BlockRFQ and BlockTrade on the settlement venue.
Array of legs; the breakdown of the quote price across each of the RFQ's legs
- Test API
https://api.test.figmarkets.com/v1/rfq/quote
- Production API
https://api.figmarkets.com/v1/rfq/quote
- curl
- JavaScript
- Go
- Java
- Python
curl -i -X POST \
https://api.test.figmarkets.com/v1/rfq/quote \
-H 'Content-Type: application/json' \
-d '{
"rfqId": 12345,
"label": "Quote-1234",
"amount": 1.5,
"direction": "buy",
"settlementOption": "DBT",
"settlementCredentials": 57,
"legs": [
{
"instrumentName": "BTC-8AUG25-110000-C",
"price": 0.08
}
]
}'{ "rfqQuoteId": 12345 }
Quote update request. Either rfqQuoteId or label must be provided to identify the quote to update.
Array of legs; the breakdown of the quote price across each of the RFQ's legs
The exchangeCredentialsId of the exchange credentials to use for the settlement of the trade for the chosen settlementOption.
The credentials must be for the same exchange defined in settlementOption.
Your credentials must have read/write access for BlockRFQ and BlockTrade on the settlement venue.
- Test API
https://api.test.figmarkets.com/v1/rfq/quote
- Production API
https://api.figmarkets.com/v1/rfq/quote
- curl
- JavaScript
- Go
- Java
- Python
curl -i -X PUT \
https://api.test.figmarkets.com/v1/rfq/quote \
-H 'Content-Type: application/json' \
-d '{
"rfqQuoteId": 12345,
"label": "Quote-1234",
"amount": 1.5,
"legs": [
{
"instrumentName": "BTC-8AUG25-110000-C",
"price": 0.08
}
],
"settlementCredentials": 57,
"settlementOption": "DBT"
}'{ "rfqQuoteId": 12345, "rfqId": 12345, "label": "MyRFQ-12345", "direction": "buy", "price": 0.026 }
- Test API
https://api.test.figmarkets.com/v1/rfq/quote
- Production API
https://api.figmarkets.com/v1/rfq/quote
- curl
- JavaScript
- Go
- Java
- Python
curl -i -X DELETE \
https://api.test.figmarkets.com/v1/rfq/quote \
-H 'Content-Type: application/json' \
-d '{
"label": "MyRFQ-12345",
"rfqQuoteId": 12345
}'{ "message": "Quote deleted successfully" }
- Test API
https://api.test.figmarkets.com/v1/rfq/quote/cancel-all
- Production API
https://api.figmarkets.com/v1/rfq/quote/cancel-all
- curl
- JavaScript
- Go
- Java
- Python
curl -i -X POST \
https://api.test.figmarkets.com/v1/rfq/quote/cancel-all \
-H 'Content-Type: application/json' \
-d '{
"rfqId": 12345,
"baseCurrency": "BTC"
}'{ "message": "Open quotes have been cancelled", "cancelledCount": 3 }
Leg prices calculation request
The strategy legs to calculate the leg prices for
- Test API
https://api.test.figmarkets.com/v1/rfq/leg-prices
- Production API
https://api.figmarkets.com/v1/rfq/leg-prices
- curl
- JavaScript
- Go
- Java
- Python
curl -i -X POST \
https://api.test.figmarkets.com/v1/rfq/leg-prices \
-H 'Content-Type: application/json' \
-d '{
"rfqId": 12345,
"price": 0.026,
"legs": [
{
"direction": "buy",
"instrumentName": "BTC-8AUG25-110000-C",
"ratio": 1.5
}
]
}'{ "legs": [ { … } ] }