> ## Documentation Index
> Fetch the complete documentation index at: https://developer.lulacommerce.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Upload JSON file for item ingestion

> This endpoint takes a JSON file and updates your inventory for the store. We upload the JSON file containing the inventory items and the store gets updated with the items.

All items will be validated using our validation rules. Only items that pass all rules will be inserted.

<Accordion title="Validation rules">
  <ResponseField name="name" type="string" required>
    Product name. Example: "Coca Cola Classic"
  </ResponseField>

  <ResponseField name="category" type="string" required>
    Product category. Example: "Soda"

    <Warning>If an invalid category is sent, it will be automatically set to "Others"</Warning>

    <Accordion title="Valid Categories">
      * Alcohol
      * Baby
      * Bakery
      * Bath & Beauty
      * Beer
      * Beverages
      * Breakfast
      * Candy
      * Chicken
      * Cleaning
      * Coffee
      * Deli Items
      * Energy Drinks & Electrolytes
      * Featured Favorites
      * Fresh Food
      * Frozen
      * Grocery
      * Health
      * Household
      * Ice Cream
      * Juice and Tea
      * Medicine
      * Milk
      * Original crust pizza
      * Others
      * Personal Care
      * Pet Care
      * Pizza
      * Prepared Foods
      * Quick Meals
      * Sandwiches
      * Seltzer
      * Sides
      * Single Beer
      * Snacks
      * Soda
      * Thin crust pizza
      * Water
      * Wine
      * Wing Bites
      * Wings
      * Hot Foods
      * Automotive
      * Fountain
      * Tobacco
    </Accordion>
  </ResponseField>

  <ResponseField name="size" type="string" required>
    Product size. Example: "12 oz"

    <Tip>If product doesn't contain a size, the text "NA" can be used instead</Tip>
  </ResponseField>

  <ResponseField name="quantity" type="number" required>
    Product quantity in Store's inventory. Example: 99

    <Warning>Minimum allowed quantity: 0</Warning>
    <Tip>Send `0` to mark this product as Out of Stock</Tip>
  </ResponseField>

  <ResponseField name="price" type="number" required>
    Product price in cents. Example: 265

    <Warning>Minimum allowed price: 0. Maximum allowed price: 34999</Warning>
  </ResponseField>

  <ResponseField name="external_id" type="string" required>
    Product identification in your internal system. Example: "1234\_5678"

    <Note>If a product with same External ID already exists in your Store, it will be updated</Note>
  </ResponseField>

  <ResponseField name="upc" type="string">
    Product UPC. Example: "49000012521"
  </ResponseField>

  <ResponseField name="image_url" type="string">
    Product image URL. Example: "[https://go-upc.s3.amazonaws.com/images/68916944.jpeg](https://go-upc.s3.amazonaws.com/images/68916944.jpeg)"

    <Tip>We prefer images with size 1600x900</Tip>
  </ResponseField>

  <ResponseField name="location" type="string">
    Product location. Example: "Counter"
  </ResponseField>

  <ResponseField name="description" type="string">
    Product description. Example: "Soda. Pop. Soft drink. Sparkling beverage. Whatever you call it, nothing compares to the refreshing, crisp taste of Coca-Cola Original Taste"

    <Warning>Maximum allowed description length: 350 characters</Warning>
  </ResponseField>

  <ResponseField name="brand" type="string">
    Product brand. Example: "Coca Cola"
  </ResponseField>

  <ResponseField name="unit_count" type="string">
    Product unit count. Example: "12 Pack"
  </ResponseField>

  <ResponseField name="active" type="boolean" default={true}>
    Product status

    <Warning>If set to `false`, the product will be considered removed from your Store</Warning>
  </ResponseField>
</Accordion>

### Body

<ParamField body="file" type="file" required />

<ParamField query="store_id" type="string" required />

### Response

<Snippet file="job-response.mdx" />
