POST /api/v3/inventory-items¶
Summary¶
POST /inventory-items
Description¶
Create a new inventory item
Note that your application requires the Inventory Builder Application Capability in order to create inventory items. This Capability is enabled in the Capabilities section of your Application
Tags: inventory-items
Parameters¶
Header Parameters¶
| Name | Type | Required | Description | Example |
|---|---|---|---|---|
Authorization |
string |
✓ Yes | Bearer {AuthToken} |
|
Content-Type |
string |
✓ Yes | multipart/form-data |
|
Accept |
string |
✓ Yes | application/json |
|
AppIdV3 |
string |
✓ Yes | LCUID-LAP-********-****-****-****-************ |
Request Body¶
Required: Yes
Content Type: multipart/form-data¶
Schema¶
Type: object
Required fields: account_lcuid, title, inventory_item_class
Properties:
account_lcuid(string) (required): lcuid of the account this item belongs to.title(string) (required): The title of the inventory item.inventory_item_class(string) (required): The inventory item class (Immutable) See Inventory Item Classes.unique_id(string): A vendor supplied unique id that you can use to reference this item This is Immutable.description(string): Description of the item.new_used(integer): Whether or not you classify this item as new or used ( 1 = new, 0 = used).price(number): The price of the item.price_modifier(string): The price modifier of the item See Inventory Item Price Modifiers.year(integer): Year this item was made.make(string): Make or Manufacturer of this item.model(string): Model of this item.sub_model(string): Sub Model of this item.external_link(string): External website URI that points to this item. Must be a valid URL.inventory_attributes(object): A set of custom, vendor supplied key/value pairs to store additional data about this item.image_asset_urls(object): An array of image asset urls to associate with this item These will be turned into image_assets after they are processed Use these urls if you do not have a binary image to upload If you have a binary image, use image_assets which accepts files Note: To use image_asset_urls your inventory_item_class must support primary images And must support building creatives from templates At this time, most classes support this feature, with the notable exception of CreativeInventoryItemClass To add images to CreativeInventoryItemClass items, use creative_urls Example ["https://www.yourcompany.com/image1.jpg","https://www.yourcompany.com/image2.jpg"].image_assets(array): Must be an image.- Array items:
string creative_urls(object): An array of creative asset urls to associate with this item These will be turned into creatives after they are processed Use these urls if you do not have a binary image to upload If you have a binary image, use creatives which accepts files Note - To use creative_urls, your inventory_item_class must support creatives At this time, on CreativeInventoryItemClass supports creatives Example ["https://www.yourcompany.com/image1.jpg","https://www.yourcompany.com/image2.jpg"].creatives(array): Must be an image.- Array items:
string
Responses¶
Response: 200¶
Description: Sample Response
Content Type: application/json¶
Schema¶
Type: object
Properties:
success(boolean)inventory_item(object) Type:object
Properties:
unique_id(string)title(string)description(string)new_used(integer)year(integer)make(string)model(string)sub_model(string)price(number)price_original(number)price_modifier(string)external_link(string)status(integer)item_class(string)creative_state(integer)lcuid(string)created_at(string)updated_at(string)has_price_override(boolean)price_upstream(string)-
account(object) Type:objectProperties:
name(string)lcuid(string)
-
creatives(array) image_assets(array)-
application(object) Type:objectProperties:
name(string)application_class_description(string)lcuid(string)
-
options(object) Type:objectProperties:
best_creative_image_photo_url(string)first_play_at(string)primary_image_background_removed_public_url(string)primary_image_public_url(string)
-
attributes(object) Type:objectProperties:
color(string)size(string)
-
data_source(string) campaign_settings(string)
Example Response¶
{
"success": true,
"inventory_item": {
"unique_id": "1234567890",
"title": "Test Inventory Item",
"description": "This is a test inventory item",
"new_used": 0,
"year": 0,
"make": null,
"model": null,
"sub_model": null,
"price": 1054.23,
"price_original": 1054.23,
"price_modifier": null,
"external_link": null,
"status": 1,
"item_class": "App\\LuCore\\InventoryItems\\AutomotiveInventoryItemClass",
"creative_state": 0,
"lcuid": "LCUID-LI-c8046397-dd0e-418d-9834-ace9f605cf91",
"created_at": "2026-01-07T00:15:17.000000Z",
"updated_at": "2026-01-07T00:15:17.000000Z",
"has_price_override": false,
"price_upstream": null,
"account": {
"name": "Blue River Real Estate",
"lcuid": "LCUID-LA-582b0706-9b4c-4fa4-bbdc-1d619b203416"
},
"creatives": [],
"image_assets": [],
"application": {
"name": "Unit Test Application - 2b0seDoX6p",
"application_class_description": "",
"lcuid": "LCUID-LAP-5e39fc97-7938-407a-9e73-fbf075e8b113"
},
"options": {
"best_creative_image_photo_url": null,
"first_play_at": null,
"primary_image_background_removed_public_url": null,
"primary_image_public_url": null
},
"attributes": {
"color": "red",
"size": "large"
},
"data_source": null,
"campaign_settings": null
}
}
Example Implementations¶
Bash (cURL)¶
curl --request POST \
"https://api.lucit.app/api/v3/inventory-items" \
--header "Authorization: Bearer {AuthToken}" \
--header "Content-Type: multipart/form-data" \
--header "Accept: application/json" \
--header "AppIdV3: LCUID-LAP-********-****-****-****-************" \
--form "account_lcuid=LCUID-LA-989f75f4-8cdd-4e09-a93b-0478660da53a" \
--form "title=My Inventory Item" \
--form "inventory_item_class=\App\LuCore\InventoryItems\AutomotiveInventoryItemClass" \
--form "unique_id=123456" \
--form "description=Temporibus fugit est illo maiores cupiditate." \
--form "new_used=1" \
--form "price=100" \
--form "price_modifier=obo" \
--form "year=2019" \
--form "make=Ford or Samsung" \
--form "model=F150 or Galaxy S10" \
--form "sub_model=XLT or 128GB" \
--form "external_link=https://www.yourcompany.com/product/1234546" \
--form "image_assets[]=@/tmp/phpxlMxCM" \
--form "creatives[]=@/tmp/phpefC6pN"
JavaScript (Fetch API)¶
const url = new URL(
"https://api.lucit.app/api/v3/inventory-items"
);
const headers = {
"Authorization": "Bearer {AuthToken}",
"Content-Type": "multipart/form-data",
"Accept": "application/json",
"AppIdV3": "LCUID-LAP-********-****-****-****-************",
};
const body = new FormData();
body.append('account_lcuid', 'LCUID-LA-989f75f4-8cdd-4e09-a93b-0478660da53a');
body.append('title', 'My Inventory Item');
body.append('inventory_item_class', '\App\LuCore\InventoryItems\AutomotiveInventoryItemClass');
body.append('unique_id', '123456');
body.append('description', 'Temporibus fugit est illo maiores cupiditate.');
body.append('new_used', '1');
body.append('price', '100');
body.append('price_modifier', 'obo');
body.append('year', '2019');
body.append('make', 'Ford or Samsung');
body.append('model', 'F150 or Galaxy S10');
body.append('sub_model', 'XLT or 128GB');
body.append('external_link', 'https://www.yourcompany.com/product/1234546');
body.append('image_assets[]', document.querySelector('input[name="image_assets[]"]').files[0]);
body.append('creatives[]', document.querySelector('input[name="creatives[]"]').files[0]);
fetch(url, {
method: "POST",
headers,
body,
}).then(response => response.json());
PHP (Guzzle)¶
$client = new \GuzzleHttp\Client();
$response = $client->post(
'https://api.lucit.app/api/v3/inventory-items',
[
'headers' => [
'Authorization' => 'Bearer {AuthToken}',
'Content-Type' => 'multipart/form-data',
'Accept' => 'application/json',
'AppIdV3' => 'LCUID-LAP-********-****-****-****-************',
],
'multipart' => [
[
'name' => 'account_lcuid',
'contents' => 'LCUID-LA-989f75f4-8cdd-4e09-a93b-0478660da53a'
],
[
'name' => 'title',
'contents' => 'My Inventory Item'
],
[
'name' => 'inventory_item_class',
'contents' => '\App\LuCore\InventoryItems\AutomotiveInventoryItemClass'
],
[
'name' => 'unique_id',
'contents' => '123456'
],
[
'name' => 'description',
'contents' => 'Temporibus fugit est illo maiores cupiditate.'
],
[
'name' => 'new_used',
'contents' => '1'
],
[
'name' => 'price',
'contents' => '100'
],
[
'name' => 'price_modifier',
'contents' => 'obo'
],
[
'name' => 'year',
'contents' => '2019'
],
[
'name' => 'make',
'contents' => 'Ford or Samsung'
],
[
'name' => 'model',
'contents' => 'F150 or Galaxy S10'
],
[
'name' => 'sub_model',
'contents' => 'XLT or 128GB'
],
[
'name' => 'external_link',
'contents' => 'https://www.yourcompany.com/product/1234546'
],
[
'name' => 'image_assets[]',
'contents' => fopen('/tmp/phpxlMxCM', 'r')
],
[
'name' => 'creatives[]',
'contents' => fopen('/tmp/phpefC6pN', 'r')
],
],
]
);
$body = $response->getBody();
print_r(json_decode((string) $body));
Python (Requests)¶
import requests
import json
url = 'https://api.lucit.app/api/v3/inventory-items'
files = {
'image_assets[]': open('/tmp/phpxlMxCM', 'rb'),
'creatives[]': open('/tmp/phpefC6pN', 'rb')
}
payload = {
"account_lcuid": "LCUID-LA-989f75f4-8cdd-4e09-a93b-0478660da53a",
"title": "My Inventory Item",
"inventory_item_class": "\\App\\LuCore\\InventoryItems\\AutomotiveInventoryItemClass",
"unique_id": "123456",
"description": "Temporibus fugit est illo maiores cupiditate.",
"new_used": 1,
"price": 100,
"price_modifier": "obo",
"year": 2019,
"make": "Ford or Samsung",
"model": "F150 or Galaxy S10",
"sub_model": "XLT or 128GB",
"external_link": "https:\/\/www.yourcompany.com\/product\/1234546"
}
headers = {
'Authorization': 'Bearer {AuthToken}',
'Content-Type': 'multipart/form-data',
'Accept': 'application/json',
'AppIdV3': 'LCUID-LAP-********-****-****-****-************'
}
response = requests.request('POST', url, headers=headers, files=files, data=payload)
response.json()
Example Responses¶
200 Response¶
{
"success": true,
"inventory_item": {
"unique_id": "1234567890",
"title": "Test Inventory Item",
"description": "This is a test inventory item",
"new_used": 0,
"year": 0,
"make": null,
"model": null,
"sub_model": null,
"price": 1054.23,
"price_original": 1054.23,
"price_modifier": null,
"external_link": null,
"status": 1,
"item_class": "App\\LuCore\\InventoryItems\\AutomotiveInventoryItemClass",
"creative_state": 0,
"lcuid": "LCUID-LI-c8046397-dd0e-418d-9834-ace9f605cf91",
"created_at": "2026-01-07T00:15:17.000000Z",
"updated_at": "2026-01-07T00:15:17.000000Z",
"has_price_override": false,
"price_upstream": null,
"account": {
"name": "Blue River Real Estate",
"lcuid": "LCUID-LA-582b0706-9b4c-4fa4-bbdc-1d619b203416"
},
"creatives": [],
"image_assets": [],
"application": {
"name": "Unit Test Application - 2b0seDoX6p",
"application_class_description": "",
"lcuid": "LCUID-LAP-5e39fc97-7938-407a-9e73-fbf075e8b113"
},
"options": {
"best_creative_image_photo_url": null,
"first_play_at": null,
"primary_image_background_removed_public_url": null,
"primary_image_public_url": null
},
"attributes": {
"color": "red",
"size": "large"
},
"data_source": null,
"campaign_settings": null
}
}