curl --request GET \
--url https://{companyName}.api.joinluminous.com/external/api/v1/core/inventory-transactions/export \
--header 'Authorization: Bearer <token>'import requests
url = "https://{companyName}.api.joinluminous.com/external/api/v1/core/inventory-transactions/export"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://{companyName}.api.joinluminous.com/external/api/v1/core/inventory-transactions/export', 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/core/inventory-transactions/export",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://{companyName}.api.joinluminous.com/external/api/v1/core/inventory-transactions/export"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://{companyName}.api.joinluminous.com/external/api/v1/core/inventory-transactions/export")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://{companyName}.api.joinluminous.com/external/api/v1/core/inventory-transactions/export")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"data": [
{
"id": 123,
"item_id": 123,
"linked_type": "<string>",
"linked_id": 123,
"linked_line_item_id": 123,
"transaction_type": "<string>",
"date": "<string>",
"warehouse_id": 123,
"location_id": 123,
"stage_name": "<string>",
"product_sku": "<string>",
"product_name": "<string>",
"qty": 123,
"unit_cost": 123,
"total_cost": 123,
"qty_used": 123,
"qty_available": 123,
"is_stock_pull": true,
"is_stock_move": true,
"needs_cost_review": true,
"cost_basis": "<string>",
"tb_rfq_stock_qty_log_id": 123,
"updated_at": "<string>",
"cost_summary": {
"line_count": 123,
"product_line_total": 123,
"extra_cost_total": 123
}
}
],
"next_cursor": "<string>",
"has_more": true,
"meta": {
"rows": 123,
"total_count": 123
}
}{
"message": "<string>"
}{
"message": "<string>"
}{
"message": "<string>"
}{
"message": "<string>"
}Export Core inventory transactions
Bulk export of Core inventory ledger transactions using cursor (keyset) pagination, intended for incremental syncs into an external system.
The first page requires since (and, in date_range mode, until). Each response
returns a next_cursor; pass it back as cursor (with no since) to fetch the next page
until has_more is false.
Modes:
incremental(default) — walks anupdated_atwindow with a keyset on(updated_at, id).date_range— walks the transactiondatewindow with a keyset on(date, id); requiresuntilon the first page.
Availability: Returns 404 for tenants that do not have Luminous Core enabled.
curl --request GET \
--url https://{companyName}.api.joinluminous.com/external/api/v1/core/inventory-transactions/export \
--header 'Authorization: Bearer <token>'import requests
url = "https://{companyName}.api.joinluminous.com/external/api/v1/core/inventory-transactions/export"
headers = {"Authorization": "Bearer <token>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
fetch('https://{companyName}.api.joinluminous.com/external/api/v1/core/inventory-transactions/export', 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/core/inventory-transactions/export",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://{companyName}.api.joinluminous.com/external/api/v1/core/inventory-transactions/export"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("Authorization", "Bearer <token>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://{companyName}.api.joinluminous.com/external/api/v1/core/inventory-transactions/export")
.header("Authorization", "Bearer <token>")
.asString();require 'uri'
require 'net/http'
url = URI("https://{companyName}.api.joinluminous.com/external/api/v1/core/inventory-transactions/export")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["Authorization"] = 'Bearer <token>'
response = http.request(request)
puts response.read_body{
"data": [
{
"id": 123,
"item_id": 123,
"linked_type": "<string>",
"linked_id": 123,
"linked_line_item_id": 123,
"transaction_type": "<string>",
"date": "<string>",
"warehouse_id": 123,
"location_id": 123,
"stage_name": "<string>",
"product_sku": "<string>",
"product_name": "<string>",
"qty": 123,
"unit_cost": 123,
"total_cost": 123,
"qty_used": 123,
"qty_available": 123,
"is_stock_pull": true,
"is_stock_move": true,
"needs_cost_review": true,
"cost_basis": "<string>",
"tb_rfq_stock_qty_log_id": 123,
"updated_at": "<string>",
"cost_summary": {
"line_count": 123,
"product_line_total": 123,
"extra_cost_total": 123
}
}
],
"next_cursor": "<string>",
"has_more": true,
"meta": {
"rows": 123,
"total_count": 123
}
}{
"message": "<string>"
}{
"message": "<string>"
}{
"message": "<string>"
}{
"message": "<string>"
}Authorizations
Authenticate using a bearer token. To create a token, navigate to /settings/api-tokens and click Create API Token.
Query Parameters
Export windowing mode.
incremental, date_range Start of the window. Required on the first page; omit when passing cursor.
End of the window. Required on the first page when mode=date_range.
Opaque token from the previous response's next_cursor. Mutually exclusive with since.
Maximum rows per page.
1 <= x <= 1000