Appearance
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
| Name | In | Type | Required | Description |
|---|---|---|---|---|
page | query | integer | Page number Default 1. Min 1. | |
size | query | integer | Items per page Default 100. Min 1. Max 1000. | |
language_code | query | string | null | Filter by language code |
Responses
| Status | Description | Body |
|---|---|---|
200 | Successful Response | ProductListResponse |
404 | Resource not found | ErrorResponse |
422 | Validation Error | HTTPValidationError |
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
| Name | In | Type | Required | Description |
|---|---|---|---|---|
product_number | path | string | yes | Product item number |
language_code | path | string | yes | Product language code |
Responses
| Status | Description | Body |
|---|---|---|
200 | Successful Response | Product |
404 | Resource not found | ErrorResponse |
422 | Validation Error | HTTPValidationError |
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
| Name | In | Type | Required | Description |
|---|---|---|---|---|
product_number | path | string | yes | Product item number |
language_code | path | string | yes | Product language code |
Request body — application/json
Fields accepted when creating or updating a product.
| Field | Type | Required | Description |
|---|---|---|---|
description | string | yes | Product description |
remark | string | null | Additional remarks about the product | |
created_at | string | When this product was created in AIOTIC Format: date-time. |
Responses
| Status | Description | Body |
|---|---|---|
202 | Successful Response | Product |
404 | Resource not found | ErrorResponse |
422 | Validation Error | HTTPValidationError |
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
| Name | In | Type | Required | Description |
|---|---|---|---|---|
product_number | path | string | yes | Product item number |
language_code | path | string | yes | Product language code |
Responses
| Status | Description | Body |
|---|---|---|
204 | Successful Response | — |
404 | Resource not found | ErrorResponse |
422 | Validation Error | HTTPValidationError |
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")