curl --request POST \
--url https://{companyName}.api.joinluminous.com/external/api/v1/products/{productId}/push \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"destination_integration_account_id": 123,
"update_existing_variants": true,
"debug": false
}
'import requests
url = "https://{companyName}.api.joinluminous.com/external/api/v1/products/{productId}/push"
payload = {
"destination_integration_account_id": 123,
"update_existing_variants": True,
"debug": False
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
destination_integration_account_id: 123,
update_existing_variants: true,
debug: false
})
};
fetch('https://{companyName}.api.joinluminous.com/external/api/v1/products/{productId}/push', 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://{companyName}.api.joinluminous.com/external/api/v1/products/{productId}/push",
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([
'destination_integration_account_id' => 123,
'update_existing_variants' => true,
'debug' => false
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"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://{companyName}.api.joinluminous.com/external/api/v1/products/{productId}/push"
payload := strings.NewReader("{\n \"destination_integration_account_id\": 123,\n \"update_existing_variants\": true,\n \"debug\": false\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
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://{companyName}.api.joinluminous.com/external/api/v1/products/{productId}/push")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"destination_integration_account_id\": 123,\n \"update_existing_variants\": true,\n \"debug\": false\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://{companyName}.api.joinluminous.com/external/api/v1/products/{productId}/push")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"destination_integration_account_id\": 123,\n \"update_existing_variants\": true,\n \"debug\": false\n}"
response = http.request(request)
puts response.read_body{
"data": {
"success": true,
"message": "<string>",
"data": {},
"debug": {}
}
}{
"message": "<string>"
}{
"data": {
"success": true,
"message": "<string>"
}
}Push a product to an OMS/WMS integration
Pushes a single Luminous product (RFQ) to a destination OMS/WMS integration account — for example creating or updating the matching product/variant in a connected TrackStar-backed system.
Set debug to true to enable request tracing; the response then includes a debug object with the
outbound HTTP requests made to the third party (the same pattern as the External fulfillment-order push).
Returns 200 when the push succeeds and 422 when it fails; inspect data.success and data.message
for the outcome in both cases.
curl --request POST \
--url https://{companyName}.api.joinluminous.com/external/api/v1/products/{productId}/push \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"destination_integration_account_id": 123,
"update_existing_variants": true,
"debug": false
}
'import requests
url = "https://{companyName}.api.joinluminous.com/external/api/v1/products/{productId}/push"
payload = {
"destination_integration_account_id": 123,
"update_existing_variants": True,
"debug": False
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
destination_integration_account_id: 123,
update_existing_variants: true,
debug: false
})
};
fetch('https://{companyName}.api.joinluminous.com/external/api/v1/products/{productId}/push', 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://{companyName}.api.joinluminous.com/external/api/v1/products/{productId}/push",
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([
'destination_integration_account_id' => 123,
'update_existing_variants' => true,
'debug' => false
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"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://{companyName}.api.joinluminous.com/external/api/v1/products/{productId}/push"
payload := strings.NewReader("{\n \"destination_integration_account_id\": 123,\n \"update_existing_variants\": true,\n \"debug\": false\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
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://{companyName}.api.joinluminous.com/external/api/v1/products/{productId}/push")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"destination_integration_account_id\": 123,\n \"update_existing_variants\": true,\n \"debug\": false\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://{companyName}.api.joinluminous.com/external/api/v1/products/{productId}/push")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"destination_integration_account_id\": 123,\n \"update_existing_variants\": true,\n \"debug\": false\n}"
response = http.request(request)
puts response.read_body{
"data": {
"success": true,
"message": "<string>",
"data": {},
"debug": {}
}
}{
"message": "<string>"
}{
"data": {
"success": true,
"message": "<string>"
}
}Authorizations
Authenticate using a bearer token. To create a token, navigate to /settings/api-tokens and click Create API Token.
Path Parameters
Luminous product (RFQ) ID to push.
Body
ID of the destination integration account to push the product to.
When true (the default), variants (child SKUs) that are already linked to the destination
integration are re-synced on push, so product-level changes propagate to existing mappings.
Set to false to only create newly added variants and leave already-mapped variants untouched
(the push then reports success without updating existing variants).
When true, enables request tracing and returns a debug object in the response.
Response
Push completed
Show child attributes
Show child attributes