Products
Endpoints for managing the product catalog.
List products
GET /api/shops/{shopId}/products
Headers
X-Shop-API-Key: YOUR_API_KEY
Query params
| Param | Type | Description |
|---|---|---|
page | number | Page number (default: 0) |
size | number | Products per page (default: 20) |
sort | string | Sort field |
Response
{
"content": [
{
"id": "prod_123",
"externalId": "SKU-001",
"name": "Example Product",
"price": 99.99,
"inStock": true,
"createdAt": "2024-01-15T10:00:00Z"
}
],
"page": 0,
"size": 20,
"totalElements": 150,
"totalPages": 8
}
Sync products
POST /api/shops/{shopId}/products/sync
Sync products (create or update).
Headers
X-Shop-API-Key: YOUR_API_KEY
Content-Type: application/json
Request body
[
{
"externalId": "SKU-001",
"name": "Nike Air Max Shoes",
"description": "Classic running shoes",
"price": 129.99,
"salePrice": 99.99,
"currency": "USD",
"url": "https://store.com/nike-air-max",
"imageUrl": "https://store.com/images/nike.jpg",
"categories": ["sports", "shoes"],
"brand": "Nike",
"tags": ["running", "casual"],
"inStock": true,
"stockQuantity": 25
}
]
Fields
| Field | Type | Required | Description |
|---|---|---|---|
externalId | string | Yes | Unique ID in your system |
name | string | Yes | Product name |
price | number | Yes | Current price |
url | string | Yes | Product URL |
description | string | No | Description |
salePrice | number | No | Sale price |
currency | string | No | Currency code (default: USD) |
imageUrl | string | No | Image URL |
categories | string[] | No | Categories |
brand | string | No | Brand |
tags | string[] | No | Tags/labels |
inStock | boolean | No | Availability (default: true) |
stockQuantity | number | No | Stock quantity |
Response
{
"synced": 10,
"created": 3,
"updated": 7,
"failed": 0,
"errors": []
}
Delete product
DELETE /api/shops/{shopId}/products/{productId}
Headers
X-Shop-API-Key: YOUR_API_KEY
Response
{
"deleted": true
}
Example: Batch sync
curl -X POST https://api.neuroon.ai/api/shops/shop_123/products/sync \
-H "X-Shop-API-Key: sk_live_abc123" \
-H "Content-Type: application/json" \
-d '[
{
"externalId": "SKU-001",
"name": "Product 1",
"price": 49.99,
"url": "https://store.com/product-1"
},
{
"externalId": "SKU-002",
"name": "Product 2",
"price": 79.99,
"url": "https://store.com/product-2"
}
]'
Limits
- Maximum 100 products per sync request
- For large catalogs, use multiple requests
- Respect the rate limits