Endpoints
Base URL
https://market.rheo.seAll endpoints require x-api-key authentication. See Authentication.
PUT /integration/v1/items/:external_id
Create or update an item. This endpoint is idempotent — calling it with the same external_id a second time updates the existing item rather than creating a duplicate.
Parameters
| Name | In | Type | Required | Description |
|---|---|---|---|---|
external_id | path | string | Yes | Your internal item ID. Max 255 characters. |
Request body
{ "title": "Volvo XC90 bromsok fram vänster", "description": "Testad och fungerande. Skick B.", "price": 950, "shippingCost": 149, "weightKg": 3.2, "currency": "SEK", "imageUrls": [ "https://your-cdn.example.com/parts/12345/1.jpg" ], "domain": { "domain": "automotive_part", "oemCode": "31400452", "manufacturer": "Volvo", "compatibleModels": ["XC90", "XC90 II"], "donorVehicleYear": 2018, "conditionGrade": "B" }, "autoPublishTradera": true, "useAiEnhancement": false}| Field | Type | Required | Description |
|---|---|---|---|
title | string | Yes | Item title. Max 255 characters. |
description | string | No | Plain text description. |
price | number | Yes | Starting price in SEK. Minimum 1. |
shippingCost | number | Yes | Flat shipping cost in SEK. Use 0 for free shipping. |
weightKg | number | No | Item weight. Used for shipping calculations. |
currency | string | No | Defaults to SEK. |
imageUrls | string[] | Yes | HTTPS URLs to item images. Max 10. Images are downloaded and hosted by Rheo. Also accepted as images or image_urls. |
domain | object | No | Domain-specific attributes. See Field Reference. |
autoPublishTradera | boolean | No | If true, automatically publishes a Tradera auction when images are ready. Only applied when creating a new item. Updates to existing items do not trigger a new Tradera listing. Default: false. |
useAiEnhancement | boolean | No | If true, runs the item through Rheo’s AI to improve title and description. Default: false. |
Response
{ "success": true, "itemId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "message": "Item is being processed in the background."}202 Accepted — the item is queued. For new items, image download and Tradera publishing complete within ~30 seconds. For updates to existing items, the response arrives immediately and the message field reflects whether it was a create or update. Use GET to poll status or configure a webhook for push notification.
GET /integration/v1/items/:external_id
Returns the current status of an item.
Response
{ "externalId": "ERP_PART_12345", "rheoItemId": "3fa85f64-5717-4562-b3fc-2c963f66afa6", "rheoStatus": "active", "traderaStatus": "active", "traderaAdId": "398271634", "traderaAdUrl": "https://www.tradera.com/item/398271634", "price": 950}| Field | Description |
|---|---|
rheoStatus | draft, active, sold, not_listed, or archived |
traderaStatus | active, sold, ended, pending_sync, or sync_error |
traderaAdId | Tradera’s internal ad ID. null if not yet published. |
traderaAdUrl | Direct link to the live ad. null if not yet published or if traderaAdId starts with pending. |
PATCH /integration/v1/items/:external_id/price
Updates the price of an active item. The database is updated immediately and a background job propagates the change to Tradera.
Request body
{ "price": 795 }| Field | Type | Required | Description |
|---|---|---|---|
price | number | Yes | New price in SEK. Minimum 1. |
Response: 202 Accepted
PATCH /integration/v1/items/:external_id/status
Updates item status. Use this to de-list an item (e.g. sold in your own store) or mark it as sold.
Request body
{ "status": "not_listed" }| Value | Effect |
|---|---|
not_listed | Removes the Tradera auction and de-lists from Rheo. |
sold | Marks as sold in Rheo and removes the Tradera auction. |
Response: 202 Accepted
DELETE /integration/v1/items/:external_id
Removes an item. If the item has an active Tradera auction, the auction is taken down first.
Items linked to an in-progress Rheo order are archived rather than deleted (to preserve the order record).
Response: 202 Accepted
For API key management, webhook settings, and the delivery log, see the Management API reference. Those endpoints require JWT authentication (partner dashboard session) rather than an API key.