curl --request POST \
--url https://api.collectpure.com/execution/sell/v1 \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"quoteId": "<string>",
"expectedTotal": 4503599627370495,
"selectedOptionalIds": [
"<string>"
],
"adjustListings": true,
"confirmListingMismatch": true
}
'import requests
url = "https://api.collectpure.com/execution/sell/v1"
payload = {
"quoteId": "<string>",
"expectedTotal": 4503599627370495,
"selectedOptionalIds": ["<string>"],
"adjustListings": True,
"confirmListingMismatch": True
}
headers = {
"x-api-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'x-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
quoteId: '<string>',
expectedTotal: 4503599627370495,
selectedOptionalIds: ['<string>'],
adjustListings: true,
confirmListingMismatch: true
})
};
fetch('https://api.collectpure.com/execution/sell/v1', 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.collectpure.com/execution/sell/v1",
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([
'quoteId' => '<string>',
'expectedTotal' => 4503599627370495,
'selectedOptionalIds' => [
'<string>'
],
'adjustListings' => true,
'confirmListingMismatch' => true
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"x-api-key: <api-key>"
],
]);
$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.collectpure.com/execution/sell/v1"
payload := strings.NewReader("{\n \"quoteId\": \"<string>\",\n \"expectedTotal\": 4503599627370495,\n \"selectedOptionalIds\": [\n \"<string>\"\n ],\n \"adjustListings\": true,\n \"confirmListingMismatch\": true\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-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.collectpure.com/execution/sell/v1")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"quoteId\": \"<string>\",\n \"expectedTotal\": 4503599627370495,\n \"selectedOptionalIds\": [\n \"<string>\"\n ],\n \"adjustListings\": true,\n \"confirmListingMismatch\": true\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.collectpure.com/execution/sell/v1")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-api-key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"quoteId\": \"<string>\",\n \"expectedTotal\": 4503599627370495,\n \"selectedOptionalIds\": [\n \"<string>\"\n ],\n \"adjustListings\": true,\n \"confirmListingMismatch\": true\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"data": {
"status": "complete",
"orderId": 123,
"items": [
{
"lineItemId": "<string>",
"productId": "<string>",
"variantId": "<string>",
"quantity": 123,
"price": 123,
"total": 123,
"success": true
}
],
"checkout": {
"lineItems": [
{
"id": "<string>",
"quantity": 123,
"price": 123,
"status": "<string>",
"disabled": true,
"error": "<string>",
"product": {
"sku": "<string>",
"title": "<string>"
},
"variant": {
"title": "<string>"
}
}
],
"fees": [
{
"id": "<string>",
"label": "<string>",
"amount": 123,
"rate": 123
}
],
"subtotal": 123,
"total": 123
}
}
}Execute a sell order
Deprecated: use the v2 endpoint POST /execution/v2/sell/quotes/:quoteId/execute instead. Execute a previously created sell quote. Validates the quote, creates sell orders, and initiates payout. The quote must not be expired.
Rate limit: 120 requests burst, 60 requests/minute sustained.
curl --request POST \
--url https://api.collectpure.com/execution/sell/v1 \
--header 'Content-Type: application/json' \
--header 'x-api-key: <api-key>' \
--data '
{
"quoteId": "<string>",
"expectedTotal": 4503599627370495,
"selectedOptionalIds": [
"<string>"
],
"adjustListings": true,
"confirmListingMismatch": true
}
'import requests
url = "https://api.collectpure.com/execution/sell/v1"
payload = {
"quoteId": "<string>",
"expectedTotal": 4503599627370495,
"selectedOptionalIds": ["<string>"],
"adjustListings": True,
"confirmListingMismatch": True
}
headers = {
"x-api-key": "<api-key>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'x-api-key': '<api-key>', 'Content-Type': 'application/json'},
body: JSON.stringify({
quoteId: '<string>',
expectedTotal: 4503599627370495,
selectedOptionalIds: ['<string>'],
adjustListings: true,
confirmListingMismatch: true
})
};
fetch('https://api.collectpure.com/execution/sell/v1', 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.collectpure.com/execution/sell/v1",
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([
'quoteId' => '<string>',
'expectedTotal' => 4503599627370495,
'selectedOptionalIds' => [
'<string>'
],
'adjustListings' => true,
'confirmListingMismatch' => true
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json",
"x-api-key: <api-key>"
],
]);
$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.collectpure.com/execution/sell/v1"
payload := strings.NewReader("{\n \"quoteId\": \"<string>\",\n \"expectedTotal\": 4503599627370495,\n \"selectedOptionalIds\": [\n \"<string>\"\n ],\n \"adjustListings\": true,\n \"confirmListingMismatch\": true\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("x-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.collectpure.com/execution/sell/v1")
.header("x-api-key", "<api-key>")
.header("Content-Type", "application/json")
.body("{\n \"quoteId\": \"<string>\",\n \"expectedTotal\": 4503599627370495,\n \"selectedOptionalIds\": [\n \"<string>\"\n ],\n \"adjustListings\": true,\n \"confirmListingMismatch\": true\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.collectpure.com/execution/sell/v1")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["x-api-key"] = '<api-key>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"quoteId\": \"<string>\",\n \"expectedTotal\": 4503599627370495,\n \"selectedOptionalIds\": [\n \"<string>\"\n ],\n \"adjustListings\": true,\n \"confirmListingMismatch\": true\n}"
response = http.request(request)
puts response.read_body{
"success": true,
"data": {
"status": "complete",
"orderId": 123,
"items": [
{
"lineItemId": "<string>",
"productId": "<string>",
"variantId": "<string>",
"quantity": 123,
"price": 123,
"total": 123,
"success": true
}
],
"checkout": {
"lineItems": [
{
"id": "<string>",
"quantity": 123,
"price": 123,
"status": "<string>",
"disabled": true,
"error": "<string>",
"product": {
"sku": "<string>",
"title": "<string>"
},
"variant": {
"title": "<string>"
}
}
],
"fees": [
{
"id": "<string>",
"label": "<string>",
"amount": 123,
"rate": 123
}
],
"subtotal": 123,
"total": 123
}
}
}Authorizations
API key for authentication
Body
The quote ID from /execution/sell/quote/v1
The total from the quote response, in cents. The order is rejected if the current total is less than this value (protects against payout decreases).
0 <= x <= 9007199254740991Optional IDs to confirm (e.g. instant payout). Must match the selections from the quote.
When true, decrements the seller's active listings for the same products during checkout
When true, skips the error when sell quantity is less than listed quantity
Was this page helpful?