Quick Start
1. Sign up at preppino.com/pricing and subscribe to the Ultra plan.
2. Go to your Dashboard → API Docs and create an API key.
3. Use the API key in the Authorization header:
Authorization: Bearer pk_live_your_api_key_here
Authentication
All API requests require a valid API key sent as a Bearer token. API keys are available on the Ultra plan (49€/month).
curl -H "Authorization: Bearer pk_live_abc123..." \ https://preppino.com/api/v1/products
Endpoints
/api/v1/productsReturns a paginated list of your products.
Query Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
| page | number | 1 | Page number |
| limit | number | 20 | Items per page (max 100) |
| search | string | - | Search by SKU, FNSKU, ASIN or product name |
Example
curl -H "Authorization: Bearer pk_live_abc123..." \ "https://preppino.com/api/v1/products?page=1&limit=20&search=poster"
Response
{
"products": [
{
"id": "550e8400-e29b-41d4-a716-446655440000",
"sku": "ART-10001",
"fnsku": "X00ABC1001",
"asin": "B09XYZABC1",
"productName": "Premium Poster A3",
"condition": "NewItem",
"price": "14.99",
"marketplace": "DE",
"available": 250,
"createdAt": "2026-01-15T10:30:00.000Z",
"updatedAt": "2026-02-10T14:20:00.000Z"
}
],
"total": 1,
"page": 1,
"limit": 20
}/api/v1/productsCreate or update products in batch. Uses upsert: existing products (matched by SKU + Marketplace) are updated, new ones are created. Maximum 100 products per request.
Request Body
{
"products": [
{
"sku": "ART-10001", // required
"productName": "Premium Poster A3", // required
"fnsku": "X00ABC1001", // optional
"asin": "B09XYZABC1", // optional
"ean": "4012345678901", // optional
"upc": "", // optional
"mpn": "HP-BL-A3-001", // optional
"brand": "Druckhaus Mayer", // optional
"condition": "NewItem", // optional
"price": "14.99", // optional (string)
"marketplace": "DE", // optional, default "DE"
"available": 250, // optional (integer)
"color": "", // optional
"size": "", // optional
"weight": "0.35", // optional
"category": "Poster", // optional
"notes": "", // optional
"manufacturers": ["Druckhaus Mayer"], // optional
"suppliers": ["Papiergroßhandel Schmidt"] // optional
}
]
}Example
curl -X POST https://preppino.com/api/v1/products \
-H "Authorization: Bearer pk_live_abc123..." \
-H "Content-Type: application/json" \
-d '{
"products": [
{
"sku": "ART-10001",
"productName": "Premium Poster A3",
"fnsku": "X00ABC1001",
"asin": "B09XYZABC1",
"price": "14.99",
"marketplace": "DE",
"available": 250,
"manufacturers": ["Druckhaus Mayer"]
}
]
}'Response
{
"success": true,
"created": 1,
"updated": 0,
"errors": [],
"products": [
{
"id": "550e8400-e29b-41d4-a716-446655440000",
"sku": "ART-10001",
"action": "created"
}
]
}/api/v1/labelsReturns label settings for your products. Optionally filter by product ID.
Query Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
| productId | uuid | - | Filter by product ID (optional) |
Example
curl -H "Authorization: Bearer pk_live_abc123..." \ "https://preppino.com/api/v1/labels?productId=550e8400-e29b-41d4-a716-446655440000"
/api/v1/partnersReturns your partners (manufacturers and suppliers) with product counts.
Query Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
| type | string | - | Filter: "manufacturer" or "supplier" (optional) |
Example
curl -H "Authorization: Bearer pk_live_abc123..." \ "https://preppino.com/api/v1/partners?type=supplier"
Response
{
"partners": [
{
"id": "...",
"name": "Druckhaus Mayer",
"type": "manufacturer",
"notes": null,
"productCount": 12,
"createdAt": "2026-02-15T10:00:00.000Z"
}
]
}/api/v1/prep-centersReturns your connected prep centers (Dienstleister). Only active connections are returned.
Example
curl -H "Authorization: Bearer pk_live_abc123..." \ "https://preppino.com/api/v1/prep-centers"
Response
{
"prepCenters": [
{
"id": "...",
"prepCenterId": "550e...",
"displayName": "FBA Prep Berlin",
"prepCenterName": "Berlin Prep GmbH",
"prepCenterEmail": "info@berlinprep.de",
"canGenerateSkuLabels": true,
"canGeneratePackageLabels": true,
"invitedAt": "2026-01-10T08:00:00.000Z"
}
]
}/api/v1/ordersReturns your prep orders with items. Supports status and prep center filters.
Query Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
| status | string | - | "open", "in_progress", or "done" (optional) |
| prepCenterId | uuid | - | Filter by prep center (optional) |
Example
curl -H "Authorization: Bearer pk_live_abc123..." \ "https://preppino.com/api/v1/orders?status=open"
/api/v1/ordersCreate a new prep order. Items can reference products by productId or sku.
Request Body
{
"prepCenterId": "550e8400-...", // required (from GET /api/v1/prep-centers)
"items": [
{
"sku": "ART-10001", // either sku or productId required
"quantity": 50, // required
"needsProductLabel": true, // optional
"needsShippingLabel": false, // optional
"notes": "Handle with care" // optional
}
],
"orderNumber": "ORD-2026-042", // optional
"notes": "Rush order", // optional
"shippingAddress": "Lager 3, Berlin", // optional
"warehouseNumber": "WH-003", // optional
"dueDate": "2026-03-01" // optional
}Example
curl -X POST https://preppino.com/api/v1/orders \
-H "Authorization: Bearer pk_live_abc123..." \
-H "Content-Type: application/json" \
-d '{
"prepCenterId": "550e8400-e29b-41d4-a716-446655440000",
"items": [
{ "sku": "ART-10001", "quantity": 50, "needsProductLabel": true },
{ "sku": "ART-10002", "quantity": 100 }
],
"notes": "Priority shipment"
}'Response
{
"success": true,
"errors": [],
"order": {
"id": "...",
"orderNumber": "ORD-2026-042",
"status": "open",
"prepCenterId": "550e...",
"items": [
{ "id": "...", "productId": "...", "quantity": 50, "needsProductLabel": true, "needsShippingLabel": false }
]
}
}Rate Limits
All API endpoints share a rate limit of 100 requests per minute per API key.
When the limit is exceeded, the API responds with 429 Too Many Requests. Check the response headers:
X-RateLimit-Remaining– remaining requests in current windowRetry-After– seconds until the limit resets
Error Codes
| Status | Meaning |
|---|---|
| 200 | Success |
| 400 | Invalid request body or parameters |
| 401 | Missing or invalid API key |
| 429 | Rate limit exceeded |
| 500 | Internal server error |
AI Assistant Integration
This API is designed to work seamlessly with AI assistants like Claude, ChatGPT, and others. Common use cases:
- Import product lists from spreadsheets or other systems
- Batch-create products from natural language descriptions
- Create prep orders: "Send 50x ART-10001 to my prep center"
- Check order status: "Show me all open orders"
- Manage partners and suppliers programmatically
- Sync inventory data from external sources
Simply provide your API key to your AI assistant and describe what you want to do. The assistant can look up your products, partners, and prep centers, then create orders or import products automatically.
Ready to get started?
API access is included in the Ultra plan. Create your API key in the dashboard.