Skip to main content
POST
/
api
/
knowledge
/
products
Create or upsert a product
curl --request POST \
  --url https://{tenant}.app.big-panda.ai/api/knowledge/products \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "title": "<string>",
  "language": "<string>",
  "external_id": "<string>",
  "description": "<string>",
  "short_description": "<string>",
  "sku": "<string>",
  "gtin": "<string>",
  "brand": "<string>",
  "category": "<string>",
  "attributes": {},
  "properties": {},
  "price_current": 123,
  "price_msrp": 123,
  "price_special": 123,
  "price_on_request": false,
  "currency": "EUR",
  "image_url": "<string>",
  "additional_images": [
    "<string>"
  ],
  "product_url": "<string>",
  "availability": "<string>",
  "rating_average": 2.5,
  "rating_count": 0,
  "parent_external_id": "<string>",
  "is_variant": false,
  "is_parent": false,
  "similarity_text": "<string>",
  "search_keywords": [
    "<string>"
  ],
  "embedding_text_description": "<string>",
  "embedding_text_properties": "<string>",
  "embedding_text_attributes": "<string>",
  "sync_hash": "<string>"
}
'
{
  "id": "<string>",
  "tenant_id": "<string>",
  "site_id": "<string>",
  "external_id": "<string>",
  "title": "<string>",
  "description": "<string>",
  "short_description": "<string>",
  "sku": "<string>",
  "gtin": "<string>",
  "brand": "<string>",
  "category": "<string>",
  "attributes": {},
  "properties": {},
  "price_current": "<string>",
  "price_msrp": "<string>",
  "price_special": "<string>",
  "price_on_request": true,
  "currency": "<string>",
  "image_url": "<string>",
  "additional_images": [
    "<unknown>"
  ],
  "product_url": "<string>",
  "availability": "<string>",
  "rating_average": "<string>",
  "rating_count": 123,
  "language": "<string>",
  "translation_group_id": "<string>",
  "parent_product_id": "<string>",
  "is_variant": true,
  "is_parent": true,
  "source": "<string>",
  "sync_hash": "<string>",
  "last_synced_at": "2023-11-07T05:31:56Z",
  "created_at": "2023-11-07T05:31:56Z",
  "updated_at": "2023-11-07T05:31:56Z",
  "search_keywords": [
    "<string>"
  ],
  "has_similarity_anchor": false
}

Documentation Index

Fetch the complete documentation index at: https://docs.big-panda.ai/llms.txt

Use this file to discover all available pages before exploring further.

Authorizations

Authorization
string
header
required

API-Token aus dem Big-Panda-Admin-UI unter Einstellungen → API-Keys. Header: Authorization: Bearer <token>.

Query Parameters

site_id
string
required

Site to push the product to (UUID or slug)

Body

application/json

Payload for creating/upserting a product.

If external_id is provided and already exists for this site, the product is updated (upsert). Otherwise a new product is created.

Embedding texts are optional — if provided, they are used directly for embedding generation. If omitted, the system generates them from title + description/properties/attributes.

title
string
required
Minimum string length: 1
language
string
required
Required string length: 2 - 5
external_id
string | null
Maximum string length: 200
description
string | null
short_description
string | null
sku
string | null
Maximum string length: 100
gtin
string | null

GTIN/EAN barcode

Maximum string length: 50
brand
string | null
Maximum string length: 200
category
string | null
attributes
Attributes · object
properties
Properties · object
price_current
price_msrp
price_special
price_on_request
boolean
default:false
currency
string
default:EUR
Maximum string length: 3
image_url
string | null
additional_images
string[]
product_url
string | null
availability
string | null
Maximum string length: 50
rating_average
Required range: 0 <= x <= 5
rating_count
integer
default:0
Required range: x >= 0
parent_external_id
string | null

external_id of the parent product (for variants)

is_variant
boolean
default:false

True for concrete variants (children of a parent).

is_parent
boolean
default:false

True for abstract parent/master products that have variant children. Excluded from search when the tenant runs with variant_strategy=children_only.

similarity_text
string | null

Anchor text for the centroid_similar.py 'find related' path. Connector typically composes this from a small, stable set of attributes (e.g. perfume: 'Duft + Saison').

search_keywords
string[]

Alternative spellings / synonyms / JTL-Suchbegriffe. Boosts BM25-matches without affecting semantic search.

embedding_text_description
string | null

Pre-assembled text for description embedding. If omitted, generated from title + description.

embedding_text_properties
string | null

Pre-assembled text for properties embedding. If omitted, generated from title + properties.

embedding_text_attributes
string | null

Pre-assembled text for attributes embedding. If omitted, generated from title + attributes.

sync_hash
string | null

Hash of the source data. If unchanged from last sync, skip re-embedding.

Maximum string length: 64

Response

Successful Response

Product data returned in API responses.

id
string
required
tenant_id
string
required
site_id
string
required
external_id
string | null
required
title
string
required
description
string | null
required
short_description
string | null
required
sku
string | null
required
gtin
string | null
required
brand
string | null
required
category
string | null
required
attributes
Attributes · object
required
properties
Properties · object
required
price_current
string | null
required
Pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d*$
price_msrp
string | null
required
Pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d*$
price_special
string | null
required
Pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d*$
price_on_request
boolean
required
currency
string
required
image_url
string | null
required
additional_images
any[]
required
product_url
string | null
required
availability
string | null
required
rating_average
string | null
required
Pattern: ^(?!^[-+.]*$)[+-]?0*\d*\.?\d*$
rating_count
integer
required
language
string
required
translation_group_id
string | null
required
parent_product_id
string | null
required
is_variant
boolean
required
is_parent
boolean
required
source
string
required
sync_hash
string | null
required
last_synced_at
string<date-time> | null
required
created_at
string<date-time>
required
updated_at
string<date-time>
required
search_keywords
string[]
has_similarity_anchor
boolean
default:false