curl --request POST \
--url https://api.limitless.exchange/parlay/partner/positions/{id}/claim/confirm \
--header 'Content-Type: application/json' \
--header 'lmts-api-key: <api-key>' \
--header 'lmts-signature: <lmts-signature>' \
--header 'lmts-timestamp: <lmts-timestamp>' \
--data '
{
"onBehalfOf": 12345,
"txHash": "<string>"
}
'import requests
url = "https://api.limitless.exchange/parlay/partner/positions/{id}/claim/confirm"
payload = {
"onBehalfOf": 12345,
"txHash": "<string>"
}
headers = {
"lmts-timestamp": "<lmts-timestamp>",
"lmts-signature": "<lmts-signature>",
"lmts-api-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
'lmts-timestamp': '<lmts-timestamp>',
'lmts-signature': '<lmts-signature>',
'lmts-api-key': '<api-key>',
'Content-Type': 'application/json'
},
body: JSON.stringify({onBehalfOf: 12345, txHash: '<string>'})
};
fetch('https://api.limitless.exchange/parlay/partner/positions/{id}/claim/confirm', 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://api.limitless.exchange/parlay/partner/positions/{id}/claim/confirm",
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([
'onBehalfOf' => 12345,
'txHash' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"lmts-api-key: <api-key>",
"lmts-signature: <lmts-signature>",
"lmts-timestamp: <lmts-timestamp>"
],
]);
$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://api.limitless.exchange/parlay/partner/positions/{id}/claim/confirm"
payload := strings.NewReader("{\n \"onBehalfOf\": 12345,\n \"txHash\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("lmts-timestamp", "<lmts-timestamp>")
req.Header.Add("lmts-signature", "<lmts-signature>")
req.Header.Add("lmts-api-key", "<api-key>")
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://api.limitless.exchange/parlay/partner/positions/{id}/claim/confirm")
.header("lmts-timestamp", "<lmts-timestamp>")
.header("lmts-signature", "<lmts-signature>")
.header("lmts-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"onBehalfOf\": 12345,\n \"txHash\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.limitless.exchange/parlay/partner/positions/{id}/claim/confirm")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["lmts-timestamp"] = '<lmts-timestamp>'
request["lmts-signature"] = '<lmts-signature>'
request["lmts-api-key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"onBehalfOf\": 12345,\n \"txHash\": \"<string>\"\n}"
response = http.request(request)
puts response.read_bodyConfirm Partner Pack Claim
Recover a lost submission response with the mined factory redemption transaction. Verifies a successful receipt and matching token and recipient. No x-on-behalf-of header. Requires HMAC with trading and delegated_signing scopes. Never set x-on-behalf-of globally.
curl --request POST \
--url https://api.limitless.exchange/parlay/partner/positions/{id}/claim/confirm \
--header 'Content-Type: application/json' \
--header 'lmts-api-key: <api-key>' \
--header 'lmts-signature: <lmts-signature>' \
--header 'lmts-timestamp: <lmts-timestamp>' \
--data '
{
"onBehalfOf": 12345,
"txHash": "<string>"
}
'import requests
url = "https://api.limitless.exchange/parlay/partner/positions/{id}/claim/confirm"
payload = {
"onBehalfOf": 12345,
"txHash": "<string>"
}
headers = {
"lmts-timestamp": "<lmts-timestamp>",
"lmts-signature": "<lmts-signature>",
"lmts-api-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
'lmts-timestamp': '<lmts-timestamp>',
'lmts-signature': '<lmts-signature>',
'lmts-api-key': '<api-key>',
'Content-Type': 'application/json'
},
body: JSON.stringify({onBehalfOf: 12345, txHash: '<string>'})
};
fetch('https://api.limitless.exchange/parlay/partner/positions/{id}/claim/confirm', 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://api.limitless.exchange/parlay/partner/positions/{id}/claim/confirm",
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([
'onBehalfOf' => 12345,
'txHash' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"lmts-api-key: <api-key>",
"lmts-signature: <lmts-signature>",
"lmts-timestamp: <lmts-timestamp>"
],
]);
$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://api.limitless.exchange/parlay/partner/positions/{id}/claim/confirm"
payload := strings.NewReader("{\n \"onBehalfOf\": 12345,\n \"txHash\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("lmts-timestamp", "<lmts-timestamp>")
req.Header.Add("lmts-signature", "<lmts-signature>")
req.Header.Add("lmts-api-key", "<api-key>")
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://api.limitless.exchange/parlay/partner/positions/{id}/claim/confirm")
.header("lmts-timestamp", "<lmts-timestamp>")
.header("lmts-signature", "<lmts-signature>")
.header("lmts-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"onBehalfOf\": 12345,\n \"txHash\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.limitless.exchange/parlay/partner/positions/{id}/claim/confirm")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["lmts-timestamp"] = '<lmts-timestamp>'
request["lmts-signature"] = '<lmts-signature>'
request["lmts-api-key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"onBehalfOf\": 12345,\n \"txHash\": \"<string>\"\n}"
response = http.request(request)
puts response.read_bodytrading and delegated_signing. Put the managed owner in body field onBehalfOf; do not send x-on-behalf-of.
Use this recovery endpoint when a claim submission response was lost or reported PACK_SUBMISSION_UNKNOWN, and you have found the mined redemption transaction. The backend verifies its successful receipt and factory redemption event against the expected recipient and compound token.
Pass the factory redemption transaction hash in txHash. A buy hash, approval hash, or user operation hash cannot confirm the claim.
Successful confirmation returns status: "CLAIMED". The position’s settlement status remains WON, with claimTxHash recorded. This route shares the partner-owner limit of 10 requests per 10 seconds.Authorizations
Scoped API token with HMAC-SHA256 signing. Requires three headers: lmts-api-key (token ID), lmts-timestamp (ISO-8601), lmts-signature (Base64-encoded HMAC). See Authentication docs for details.
Headers
ISO-8601 HMAC signing timestamp.
Base64 HMAC-SHA256 signature. Sign the method, path including query, and exact body with the timestamp.
Path Parameters
Body
Response
Successful response
APPROVAL_PENDING, CLAIM_PENDING, CLAIMED Transaction hash for the current step. When CLAIMED, the confirmed redemption transaction.
Sponsored user operation identifier, not a mined transaction hash.