Skip to content

Products

API reference

Your article catalog — the list of valid article numbers. Composite key item_number + language_code. Accepts the sync key.

List products

GET/product/listintegration or sync key

List all products with pagination.

Parameters

NameInTypeRequiredDescription
pagequeryintegerPage number Default 1. Min 1.
sizequeryintegerItems per page Default 100. Min 1. Max 1000.
language_codequerystring | nullFilter by language code

Responses

StatusDescriptionBody
200Successful ResponseProductListResponse
404Resource not foundErrorResponse
422Validation ErrorHTTPValidationError
bash
curl -X GET "https://acme.aiotic.ai/product/list?page=1&size=100&language_code=<language_code>" -H "X-API-Key: $AIOTIC_API_KEY"
python
for p in client.products.iter_all(language_code="nl"): ...

Get a product

GET/product/{product_number}/{language_code}integration or sync key

Get a specific product by its primary key.

Parameters

NameInTypeRequiredDescription
product_numberpathstringyesProduct item number
language_codepathstringyesProduct language code

Responses

StatusDescriptionBody
200Successful ResponseProduct
404Resource not foundErrorResponse
422Validation ErrorHTTPValidationError
bash
curl -X GET "https://acme.aiotic.ai/product/<product_number>/<language_code>" -H "X-API-Key: $AIOTIC_API_KEY"
python
client.products.get("PROD-001", "nl")

Create or update a product (upsert)

PUT/product/{product_number}/{language_code}integration or sync key

Idempotent upsert keyed on your article number and a language code (nl, de, en, …). Create one record per language if your catalog is multilingual. The product table is AIOTIC's list of valid article numbers: an order line whose article is not in it is flagged for review instead of being sent. Keep it complete.

Parameters

NameInTypeRequiredDescription
product_numberpathstringyesProduct item number
language_codepathstringyesProduct language code

Request bodyapplication/json

Fields accepted when creating or updating a product.

FieldTypeRequiredDescription
descriptionstringyesProduct description
remarkstring | nullAdditional remarks about the product
created_atstringWhen this product was created in AIOTIC Format: date-time.

Responses

StatusDescriptionBody
202Successful ResponseProduct
404Resource not foundErrorResponse
422Validation ErrorHTTPValidationError
bash
curl -X PUT "https://acme.aiotic.ai/product/<product_number>/<language_code>" -H "X-API-Key: $AIOTIC_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"description":"string","remark":"string","created_at":"2026-03-14T10:30:00Z"}'
python
client.products.upsert("PROD-001", "nl", {"description": "LED Driver 48V 100W"})
engine.apply(ChangeEvent.product_upsert("PROD-001", "nl", description="LED Driver 48V 100W"))

Delete a product

DELETE/product/{product_number}/{language_code}integration or sync key

Delete a product.

Parameters

NameInTypeRequiredDescription
product_numberpathstringyesProduct item number
language_codepathstringyesProduct language code

Responses

StatusDescriptionBody
204Successful Response
404Resource not foundErrorResponse
422Validation ErrorHTTPValidationError
bash
curl -X DELETE "https://acme.aiotic.ai/product/<product_number>/<language_code>" -H "X-API-Key: $AIOTIC_API_KEY"
python
client.products.delete("PROD-001", "nl")

Documentation revision 3 · Published 8 September 2026 · commit 6862d5e. Verified against AIOTIC API v1.0.0. AIOTIC is a product of DevOps Company.