curl --request GET \
--url https://api.leneutre.trade/v1/opportunities/quotesconst options = {method: 'GET'};
fetch('https://api.leneutre.trade/v1/opportunities/quotes', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.leneutre.trade/v1/opportunities/quotes"
response = requests.get(url)
print(response.text){
"quotes": [
{
"long": "aster:ETHUSDT",
"short": "hyperliquid:ETH",
"state": "priced",
"quote": {
"grossApr": 4.3745,
"netApr": 2.2238,
"onMargin": null,
"atMaxLeverage": {
"leverage": {
"long": 20,
"short": 25
},
"marginUsd": 90,
"grossApr": 48.6058,
"netApr": 24.7084
},
"roundTripCostUsd": 1.77,
"entryGap": 0.00028,
"breakEvenHours": 354,
"confidence": "exact",
"missing": []
},
"costs": {
"longOpen": {
"midPrice": 2693.235,
"fillPrice": 2693.2421,
"feeUsd": 0.4,
"impactUsd": 0.0027,
"networkUsd": 0,
"feeSource": "base",
"basis": "book",
"confidence": "exact"
},
"longClose": {
"midPrice": 2693.235,
"fillPrice": 2693.2279,
"feeUsd": 0.4,
"impactUsd": 0.0027,
"networkUsd": 0,
"feeSource": "base",
"basis": "book",
"confidence": "exact"
},
"shortOpen": {
"midPrice": 2693.95,
"fillPrice": 2693.9921,
"feeUsd": 0.45,
"impactUsd": 0.0156,
"networkUsd": 0,
"feeSource": "base",
"basis": "book",
"confidence": "exact"
},
"shortClose": {
"midPrice": 2693.95,
"fillPrice": 2694.0079,
"feeUsd": 0.45,
"impactUsd": 0.0214,
"networkUsd": 0,
"feeSource": "base",
"basis": "book",
"confidence": "exact"
}
}
},
{
"long": "hyperliquid:BTC",
"short": "polymarket-perps:6",
"state": "pending"
},
{
"long": "aster:SOLUSDT",
"short": "polymarket-perps:9",
"state": "failed",
"error": "Polymarket Perps didn't send its book in time"
}
]
}{
"error": "<string>",
"detail": "<string>"
}{
"error": "<string>",
"detail": "<string>"
}Quote several pairs
Up to 20 pairs at the same size in one request, priced together: a leg two pairs share is read once. The answer comes as soon as every pair is priced, or at wait with what it has: a pair a slow venue holds back is pending, and asked again it comes from the same read. A request counts one quote a pair against a client’s allowance.
curl --request GET \
--url https://api.leneutre.trade/v1/opportunities/quotesconst options = {method: 'GET'};
fetch('https://api.leneutre.trade/v1/opportunities/quotes', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.leneutre.trade/v1/opportunities/quotes"
response = requests.get(url)
print(response.text){
"quotes": [
{
"long": "aster:ETHUSDT",
"short": "hyperliquid:ETH",
"state": "priced",
"quote": {
"grossApr": 4.3745,
"netApr": 2.2238,
"onMargin": null,
"atMaxLeverage": {
"leverage": {
"long": 20,
"short": 25
},
"marginUsd": 90,
"grossApr": 48.6058,
"netApr": 24.7084
},
"roundTripCostUsd": 1.77,
"entryGap": 0.00028,
"breakEvenHours": 354,
"confidence": "exact",
"missing": []
},
"costs": {
"longOpen": {
"midPrice": 2693.235,
"fillPrice": 2693.2421,
"feeUsd": 0.4,
"impactUsd": 0.0027,
"networkUsd": 0,
"feeSource": "base",
"basis": "book",
"confidence": "exact"
},
"longClose": {
"midPrice": 2693.235,
"fillPrice": 2693.2279,
"feeUsd": 0.4,
"impactUsd": 0.0027,
"networkUsd": 0,
"feeSource": "base",
"basis": "book",
"confidence": "exact"
},
"shortOpen": {
"midPrice": 2693.95,
"fillPrice": 2693.9921,
"feeUsd": 0.45,
"impactUsd": 0.0156,
"networkUsd": 0,
"feeSource": "base",
"basis": "book",
"confidence": "exact"
},
"shortClose": {
"midPrice": 2693.95,
"fillPrice": 2694.0079,
"feeUsd": 0.45,
"impactUsd": 0.0214,
"networkUsd": 0,
"feeSource": "base",
"basis": "book",
"confidence": "exact"
}
}
},
{
"long": "hyperliquid:BTC",
"short": "polymarket-perps:6",
"state": "pending"
},
{
"long": "aster:SOLUSDT",
"short": "polymarket-perps:9",
"state": "failed",
"error": "Polymarket Perps didn't send its book in time"
}
]
}{
"error": "<string>",
"detail": "<string>"
}{
"error": "<string>",
"detail": "<string>"
}Query Parameters
The pairs, comma-separated, each long>short with both legs as venue:market.
"aster:ETHUSDT>hyperliquid:ETH,hyperliquid:BTC>aster:BTCUSDT"
Notional per leg, in dollars.
x <= 1000000000Holding period, in days.
x <= 3650The leverage you want on each leg, capped per leg at the venue's maximum.
x <= 100010
How old a leg's costs served from memory may be, in seconds.
1 <= x <= 60How long the answer may wait for the pairs, in milliseconds.
0 <= x <= 6000Response
Each pair as far as it got within the wait, in the order asked.
Show child attributes
Show child attributes