Get Earn Withdrawal Queue
curl --request POST \
--url https://tars.loopscale.com/v1/markets/earn/vaults/queue \
--header 'Content-Type: application/json' \
--data '
{
"address": "<string>",
"includeClosed": true,
"page": 1,
"pageSize": 1,
"sortDirection": 1,
"vaultAddresses": [
"<string>"
],
"wallet": "<string>"
}
'import requests
url = "https://tars.loopscale.com/v1/markets/earn/vaults/queue"
payload = {
"address": "<string>",
"includeClosed": True,
"page": 1,
"pageSize": 1,
"sortDirection": 1,
"vaultAddresses": ["<string>"],
"wallet": "<string>"
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
address: '<string>',
includeClosed: true,
page: 1,
pageSize: 1,
sortDirection: 1,
vaultAddresses: ['<string>'],
wallet: '<string>'
})
};
fetch('https://tars.loopscale.com/v1/markets/earn/vaults/queue', 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://tars.loopscale.com/v1/markets/earn/vaults/queue",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'address' => '<string>',
'includeClosed' => true,
'page' => 1,
'pageSize' => 1,
'sortDirection' => 1,
'vaultAddresses' => [
'<string>'
],
'wallet' => '<string>'
]),
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://tars.loopscale.com/v1/markets/earn/vaults/queue"
payload := strings.NewReader("{\n \"address\": \"<string>\",\n \"includeClosed\": true,\n \"page\": 1,\n \"pageSize\": 1,\n \"sortDirection\": 1,\n \"vaultAddresses\": [\n \"<string>\"\n ],\n \"wallet\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", 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.post("https://tars.loopscale.com/v1/markets/earn/vaults/queue")
.header("Content-Type", "application/json")
.body("{\n \"address\": \"<string>\",\n \"includeClosed\": true,\n \"page\": 1,\n \"pageSize\": 1,\n \"sortDirection\": 1,\n \"vaultAddresses\": [\n \"<string>\"\n ],\n \"wallet\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://tars.loopscale.com/v1/markets/earn/vaults/queue")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"address\": \"<string>\",\n \"includeClosed\": true,\n \"page\": 1,\n \"pageSize\": 1,\n \"sortDirection\": 1,\n \"vaultAddresses\": [\n \"<string>\"\n ],\n \"wallet\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"depthShares": "<string>",
"fulfilledUnclaimedShares": "<string>",
"openRequests": [
{
"earnVaultAddress": "<string>",
"onChainRequestAddr": "<string>",
"requestedAt": "<string>",
"sharesClaimed": "<string>",
"sharesFilled": "<string>",
"sharesRequested": "<string>",
"status": 1,
"userWallet": "<string>",
"cancelledAt": "<string>",
"fulfilledAt": "<string>"
}
],
"pageInfo": {
"page": 1,
"pageSize": 1,
"totalItems": 1,
"totalPages": 1
}
}{
"error": {
"code": 400,
"message": "Request could not be processed."
}
}{
"error": {
"code": 400,
"message": "Request could not be processed."
}
}Earn Vaults
Get Earn Withdrawal Queue
Returns open withdrawal requests, filterable by vault (address or vaultAddresses) and wallet, with queue depth in shares. Set includeClosed to also return claimed and cancelled requests. sortDirection is 0 ascending, 1 descending.
POST
/
markets
/
earn
/
vaults
/
queue
Get Earn Withdrawal Queue
curl --request POST \
--url https://tars.loopscale.com/v1/markets/earn/vaults/queue \
--header 'Content-Type: application/json' \
--data '
{
"address": "<string>",
"includeClosed": true,
"page": 1,
"pageSize": 1,
"sortDirection": 1,
"vaultAddresses": [
"<string>"
],
"wallet": "<string>"
}
'import requests
url = "https://tars.loopscale.com/v1/markets/earn/vaults/queue"
payload = {
"address": "<string>",
"includeClosed": True,
"page": 1,
"pageSize": 1,
"sortDirection": 1,
"vaultAddresses": ["<string>"],
"wallet": "<string>"
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
address: '<string>',
includeClosed: true,
page: 1,
pageSize: 1,
sortDirection: 1,
vaultAddresses: ['<string>'],
wallet: '<string>'
})
};
fetch('https://tars.loopscale.com/v1/markets/earn/vaults/queue', 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://tars.loopscale.com/v1/markets/earn/vaults/queue",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'address' => '<string>',
'includeClosed' => true,
'page' => 1,
'pageSize' => 1,
'sortDirection' => 1,
'vaultAddresses' => [
'<string>'
],
'wallet' => '<string>'
]),
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://tars.loopscale.com/v1/markets/earn/vaults/queue"
payload := strings.NewReader("{\n \"address\": \"<string>\",\n \"includeClosed\": true,\n \"page\": 1,\n \"pageSize\": 1,\n \"sortDirection\": 1,\n \"vaultAddresses\": [\n \"<string>\"\n ],\n \"wallet\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", 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.post("https://tars.loopscale.com/v1/markets/earn/vaults/queue")
.header("Content-Type", "application/json")
.body("{\n \"address\": \"<string>\",\n \"includeClosed\": true,\n \"page\": 1,\n \"pageSize\": 1,\n \"sortDirection\": 1,\n \"vaultAddresses\": [\n \"<string>\"\n ],\n \"wallet\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://tars.loopscale.com/v1/markets/earn/vaults/queue")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"address\": \"<string>\",\n \"includeClosed\": true,\n \"page\": 1,\n \"pageSize\": 1,\n \"sortDirection\": 1,\n \"vaultAddresses\": [\n \"<string>\"\n ],\n \"wallet\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"depthShares": "<string>",
"fulfilledUnclaimedShares": "<string>",
"openRequests": [
{
"earnVaultAddress": "<string>",
"onChainRequestAddr": "<string>",
"requestedAt": "<string>",
"sharesClaimed": "<string>",
"sharesFilled": "<string>",
"sharesRequested": "<string>",
"status": 1,
"userWallet": "<string>",
"cancelledAt": "<string>",
"fulfilledAt": "<string>"
}
],
"pageInfo": {
"page": 1,
"pageSize": 1,
"totalItems": 1,
"totalPages": 1
}
}{
"error": {
"code": 400,
"message": "Request could not be processed."
}
}{
"error": {
"code": 400,
"message": "Request could not be processed."
}
}Body
application/json
Response
Paged withdrawal requests plus queue depth
Open withdrawal requests in the vault's queue.
Show child attributes
Show child attributes
Pagination envelope shared across paginated listing endpoints
(/loans/info, /strategy/infos, /loop/info/v2, /lending_vaults/user/v2).
totalItems / totalPages are filter-scoped, not page-scoped.
Show child attributes
Show child attributes