Send Inventory Advice (Brand)
curl --request POST \
--url https://api.retailreadyai.com/api/v1/inventory/brand \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"items": [
{
"sku": "PILLOW-01",
"available_quantity": 120
},
{
"sku": "PILLOW-02",
"available_quantity": 0,
"status": "DISCONTINUED"
}
]
}
'import requests
url = "https://api.retailreadyai.com/api/v1/inventory/brand"
payload = { "items": [
{
"sku": "PILLOW-01",
"available_quantity": 120
},
{
"sku": "PILLOW-02",
"available_quantity": 0,
"status": "DISCONTINUED"
}
] }
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({
items: [
{sku: 'PILLOW-01', available_quantity: 120},
{sku: 'PILLOW-02', available_quantity: 0, status: 'DISCONTINUED'}
]
})
};
fetch('https://api.retailreadyai.com/api/v1/inventory/brand', 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.retailreadyai.com/api/v1/inventory/brand",
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([
'items' => [
[
'sku' => 'PILLOW-01',
'available_quantity' => 120
],
[
'sku' => 'PILLOW-02',
'available_quantity' => 0,
'status' => 'DISCONTINUED'
]
]
]),
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://api.retailreadyai.com/api/v1/inventory/brand"
payload := strings.NewReader("{\n \"items\": [\n {\n \"sku\": \"PILLOW-01\",\n \"available_quantity\": 120\n },\n {\n \"sku\": \"PILLOW-02\",\n \"available_quantity\": 0,\n \"status\": \"DISCONTINUED\"\n }\n ]\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://api.retailreadyai.com/api/v1/inventory/brand")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"items\": [\n {\n \"sku\": \"PILLOW-01\",\n \"available_quantity\": 120\n },\n {\n \"sku\": \"PILLOW-02\",\n \"available_quantity\": 0,\n \"status\": \"DISCONTINUED\"\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.retailreadyai.com/api/v1/inventory/brand")
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 \"items\": [\n {\n \"sku\": \"PILLOW-01\",\n \"available_quantity\": 120\n },\n {\n \"sku\": \"PILLOW-02\",\n \"available_quantity\": 0,\n \"status\": \"DISCONTINUED\"\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"message": "Inventory advice sent successfully",
"data": {
"results": [
{
"organization_id": "8a47e0d6-4f12-4a9e-9c6a-2d3f9e0b8a01",
"retailer_id": "7eab3720-1944-4b01-aea6-972492f017e5",
"retailer_name": "Target",
"brand_name": "Acme Outdoor",
"organization_name": "Acme Holdings",
"success": true,
"error": null,
"failed_skus": null
},
{
"organization_id": "5d92aa31-7b6e-4d52-b0c8-1e44f7c2b9d2",
"retailer_id": "7eab3720-1944-4b01-aea6-972492f017e5",
"retailer_name": "Target",
"brand_name": "Acme Apparel",
"organization_name": "Acme Apparel Co",
"success": true,
"error": null,
"failed_skus": null
}
],
"summary": {
"total": 2,
"succeeded": 2,
"failed": 0
}
}
}Inventory
Send Inventory Advice (Brand)
Sends on-hand inventory for your brand across every organization it works with. The brand comes from your credentials, so the URL has no IDs. The response has one result per connection.
POST
/
api
/
v1
/
inventory
/
brand
Send Inventory Advice (Brand)
curl --request POST \
--url https://api.retailreadyai.com/api/v1/inventory/brand \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"items": [
{
"sku": "PILLOW-01",
"available_quantity": 120
},
{
"sku": "PILLOW-02",
"available_quantity": 0,
"status": "DISCONTINUED"
}
]
}
'import requests
url = "https://api.retailreadyai.com/api/v1/inventory/brand"
payload = { "items": [
{
"sku": "PILLOW-01",
"available_quantity": 120
},
{
"sku": "PILLOW-02",
"available_quantity": 0,
"status": "DISCONTINUED"
}
] }
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({
items: [
{sku: 'PILLOW-01', available_quantity: 120},
{sku: 'PILLOW-02', available_quantity: 0, status: 'DISCONTINUED'}
]
})
};
fetch('https://api.retailreadyai.com/api/v1/inventory/brand', 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.retailreadyai.com/api/v1/inventory/brand",
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([
'items' => [
[
'sku' => 'PILLOW-01',
'available_quantity' => 120
],
[
'sku' => 'PILLOW-02',
'available_quantity' => 0,
'status' => 'DISCONTINUED'
]
]
]),
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://api.retailreadyai.com/api/v1/inventory/brand"
payload := strings.NewReader("{\n \"items\": [\n {\n \"sku\": \"PILLOW-01\",\n \"available_quantity\": 120\n },\n {\n \"sku\": \"PILLOW-02\",\n \"available_quantity\": 0,\n \"status\": \"DISCONTINUED\"\n }\n ]\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://api.retailreadyai.com/api/v1/inventory/brand")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"items\": [\n {\n \"sku\": \"PILLOW-01\",\n \"available_quantity\": 120\n },\n {\n \"sku\": \"PILLOW-02\",\n \"available_quantity\": 0,\n \"status\": \"DISCONTINUED\"\n }\n ]\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.retailreadyai.com/api/v1/inventory/brand")
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 \"items\": [\n {\n \"sku\": \"PILLOW-01\",\n \"available_quantity\": 120\n },\n {\n \"sku\": \"PILLOW-02\",\n \"available_quantity\": 0,\n \"status\": \"DISCONTINUED\"\n }\n ]\n}"
response = http.request(request)
puts response.read_body{
"message": "Inventory advice sent successfully",
"data": {
"results": [
{
"organization_id": "8a47e0d6-4f12-4a9e-9c6a-2d3f9e0b8a01",
"retailer_id": "7eab3720-1944-4b01-aea6-972492f017e5",
"retailer_name": "Target",
"brand_name": "Acme Outdoor",
"organization_name": "Acme Holdings",
"success": true,
"error": null,
"failed_skus": null
},
{
"organization_id": "5d92aa31-7b6e-4d52-b0c8-1e44f7c2b9d2",
"retailer_id": "7eab3720-1944-4b01-aea6-972492f017e5",
"retailer_name": "Target",
"brand_name": "Acme Apparel",
"organization_name": "Acme Apparel Co",
"success": true,
"error": null,
"failed_skus": null
}
],
"summary": {
"total": 2,
"succeeded": 2,
"failed": 0
}
}
}Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Body
application/json
A complete snapshot of on-hand inventory for this brand. Include every SKU you stock, any SKU you omit will not appear on the documents sent to retailers. Required field, between 1 and 1000 entries per request, and SKUs must be unique within the request.
Required array length:
1 - 1000 elementsShow child attributes
Show child attributes

