Price Monitor
Price Monitor tracks your products' prices across internal price lists and competitor sites, and can automatically reprice your catalog against rules you define.
The API is split across three routers:
- Price lists —
GET/POST/PATCH/DELETE /api/v1/price-lists/…— channel-scoped internal price lists and their entries. - Per-product prices —
GET/POST /api/v1/products/{product_id}/prices/…— read and write price entries attached to a specific product. - Price Monitor —
GET/POST/PATCH/DELETE /api/v1/prices/…— global dashboard, monitored-product list, price checks, competitors, alerts, MAP enforcement, and repricing.
PATCH and DELETE on an individual price entry now live at /api/v1/prices/{price_id} (not under /products/{product_id}/prices/{price_id}). Use this global endpoint regardless of which product the price belongs to.
Price lists
List price lists
Returns configured price lists.
Query parameters
- Name
channel- Type
- string
- Description
Filter by sales channel identifier.
- Name
is_active- Type
- boolean
- Description
Filter by active status.
Request
curl "https://api.pixeepim.com/api/v1/price-lists/?channel=amazon_fr&is_active=true" \
-H "X-API-Key: {api_key}"
Response
[
{
"id": "pl-001",
"name": "Amazon FR — Q3 2026",
"channel": "amazon_fr",
"currency": "EUR",
"priority": 10,
"is_active": true,
"start_date": "2026-07-01T00:00:00Z",
"end_date": null
}
]
Create a price list
Creates a new price list.
Body parameters
- Name
name- Type
- string
- Description
Price list name.
- Name
channel- Type
- string
- Description
Sales channel identifier (e.g.
amazon_fr,default).
- Name
currency- Type
- string
- Description
ISO 4217 currency code (default:
EUR).
- Name
description- Type
- string
- Description
Optional description.
- Name
start_date- Type
- string
- Description
ISO 8601 start date.
- Name
end_date- Type
- string
- Description
ISO 8601 end date.
- Name
is_active- Type
- boolean
- Description
Default:
true.
- Name
priority- Type
- integer
- Description
Higher priority takes precedence when several lists match a channel (default:
0).
Request
curl -X POST https://api.pixeepim.com/api/v1/price-lists/ \
-H "X-API-Key: {api_key}" \
-H "Content-Type: application/json" \
-d '{
"name": "Amazon FR — Q3 2026",
"channel": "amazon_fr",
"currency": "EUR",
"priority": 10
}'
Response
{
"id": "pl-001",
"name": "Amazon FR — Q3 2026",
"channel": "amazon_fr",
"currency": "EUR",
"priority": 10,
"is_active": true,
"created_at": "2026-09-17T10:00:00Z"
}
Get a price list
Returns a single price list.
Path parameters
- Name
price_list_id- Type
- string
- Description
The price list ID.
Request
curl https://api.pixeepim.com/api/v1/price-lists/pl-001 \
-H "X-API-Key: {api_key}"
Update a price list
Updates a price list. All fields are optional.
Path parameters
- Name
price_list_id- Type
- string
- Description
The price list ID.
Body parameters
- Name
name- Type
- string
- Description
- Updated name.
- Name
channel- Type
- string
- Description
- Updated channel.
- Name
currency- Type
- string
- Description
- Updated currency.
- Name
description- Type
- string
- Description
- Updated description.
- Name
start_date- Type
- string
- Description
- Updated start date.
- Name
end_date- Type
- string
- Description
- Updated end date.
- Name
is_active- Type
- boolean
- Description
- Enable or disable the list.
- Name
priority- Type
- integer
- Description
- Updated priority.
Request
curl -X PATCH https://api.pixeepim.com/api/v1/price-lists/pl-001 \
-H "X-API-Key: {api_key}" \
-H "Content-Type: application/json" \
-d '{"priority": 20, "is_active": false}'
Delete a price list
Deletes a price list and its entries.
Path parameters
- Name
price_list_id- Type
- string
- Description
The price list ID.
Request
curl -X DELETE https://api.pixeepim.com/api/v1/price-lists/pl-001 \
-H "X-API-Key: {api_key}"
List entries
Returns the priced entries in a price list.
Path parameters
- Name
price_list_id- Type
- string
- Description
The price list ID.
Query parameters
- Name
product_id- Type
- string
- Description
Filter by product UUID.
- Name
offset- Type
- integer
- Description
Offset (default:
0).
- Name
limit- Type
- integer
- Description
Items per page (default:
50).
Request
curl "https://api.pixeepim.com/api/v1/price-lists/pl-001/entries?limit=50" \
-H "X-API-Key: {api_key}"
Response
[
{
"id": "ple-001",
"product_id": "550e8400-e29b-41d4-a716-446655440000",
"variant_id": null,
"price": 29.99,
"compare_at_price": 34.99,
"min_quantity": 1
}
]
Create an entry
Adds a priced entry for a product to the price list.
Path parameters
- Name
price_list_id- Type
- string
- Description
The price list ID.
Body parameters
- Name
product_id- Type
- string
- Description
The product UUID.
- Name
variant_id- Type
- string
- Description
Optional variant UUID.
- Name
price- Type
- number
- Description
Unit price.
- Name
compare_at_price- Type
- number
- Description
Compare-at / strikethrough price.
- Name
min_quantity- Type
- integer
- Description
Minimum quantity for tiered pricing (default:
1).
Request
curl -X POST https://api.pixeepim.com/api/v1/price-lists/pl-001/entries \
-H "X-API-Key: {api_key}" \
-H "Content-Type: application/json" \
-d '{
"product_id": "550e8400-e29b-41d4-a716-446655440000",
"price": 29.99,
"compare_at_price": 34.99
}'
Bulk create entries
Adds up to 500 entries to a price list in one call.
Path parameters
- Name
price_list_id- Type
- string
- Description
The price list ID.
Body parameters
- Name
entries- Type
- array
- Description
List of entries (max 500), each following the same schema as Create an entry.
Request
curl -X POST https://api.pixeepim.com/api/v1/price-lists/pl-001/entries/bulk \
-H "X-API-Key: {api_key}" \
-H "Content-Type: application/json" \
-d '{
"entries": [
{ "product_id": "550e8400-e29b-41d4-a716-446655440000", "price": 29.99 },
{ "product_id": "550e8400-e29b-41d4-a716-446655440001", "price": 15.50 }
]
}'
Update an entry
Updates a price list entry. All fields are optional.
Path parameters
- Name
price_list_id- Type
- string
- Description
The price list ID.
- Name
entry_id- Type
- string
- Description
The entry ID.
Body parameters
- Name
price- Type
- number
- Description
- Updated price.
- Name
compare_at_price- Type
- number
- Description
- Updated compare-at price.
- Name
min_quantity- Type
- integer
- Description
- Updated minimum quantity.
Request
curl -X PATCH https://api.pixeepim.com/api/v1/price-lists/pl-001/entries/ple-001 \
-H "X-API-Key: {api_key}" \
-H "Content-Type: application/json" \
-d '{"price": 27.99}'
Delete an entry
Removes an entry from a price list.
Path parameters
- Name
price_list_id- Type
- string
- Description
The price list ID.
- Name
entry_id- Type
- string
- Description
The entry ID.
Request
curl -X DELETE https://api.pixeepim.com/api/v1/price-lists/pl-001/entries/ple-001 \
-H "X-API-Key: {api_key}"
Get product prices from price lists
Returns the price a product resolves to across all applicable price lists, ranked by priority.
Path parameters
- Name
product_id- Type
- string
- Description
The product UUID.
Request
curl https://api.pixeepim.com/api/v1/price-lists/products/550e8400-e29b-41d4-a716-446655440000/prices \
-H "X-API-Key: {api_key}"
Per-product prices
Get product prices
Returns price entries (internal and competitor) associated with a product.
Path parameters
- Name
product_id- Type
- string
- Description
The product UUID.
Query parameters
- Name
active_only- Type
- boolean
- Description
Return only active price entries.
- Name
source- Type
- string
- Description
Filter by source identifier (e.g.
internal,amazon_fr).
- Name
price_type- Type
- string
- Description
Filter by price type.
Request
curl "https://api.pixeepim.com/api/v1/products/550e8400-e29b-41d4-a716-446655440000/prices?active_only=true" \
-H "X-API-Key: {api_key}"
Response
[
{
"id": "550e8400-e29b-41d4-a716-000000000001",
"source": "internal",
"price": 29.99,
"currency": "EUR",
"is_active": true,
"valid_until": null,
"created_at": "2026-01-01T00:00:00Z"
},
{
"id": "550e8400-e29b-41d4-a716-000000000002",
"source": "amazon_fr",
"price": 27.50,
"currency": "EUR",
"is_active": true,
"url": "https://amazon.fr/dp/B0123456789",
"created_at": "2026-09-10T00:00:00Z"
}
]
Add a competitor price
Manually records a competitor price entry for a product.
Path parameters
- Name
product_id- Type
- string
- Description
The product UUID.
Body parameters
- Name
source- Type
- string
- Description
Source identifier (e.g.
amazon_fr,fnac,cdiscount).
- Name
price- Type
- number
- Description
Competitor price.
- Name
currency- Type
- string
- Description
ISO 4217 currency code (default:
EUR).
- Name
url- Type
- string
- Description
Direct URL to the product on the competitor's site.
- Name
valid_until- Type
- string
- Description
ISO 8601 expiry datetime.
- Name
notes- Type
- string
- Description
Optional free-text notes.
Request
curl -X POST https://api.pixeepim.com/api/v1/products/550e8400-e29b-41d4-a716-446655440000/prices \
-H "X-API-Key: {api_key}" \
-H "Content-Type: application/json" \
-d '{
"source": "amazon_fr",
"price": 27.50,
"currency": "EUR",
"url": "https://amazon.fr/dp/B0123456789",
"notes": "Observé le 17 septembre 2026"
}'
Response
{
"id": "550e8400-e29b-41d4-a716-000000000003",
"source": "amazon_fr",
"price": 27.50,
"currency": "EUR",
"is_active": true,
"created_at": "2026-09-17T10:30:00Z"
}
Get best price
Returns the lowest active price across all sources for a product.
Path parameters
- Name
product_id- Type
- string
- Description
The product UUID.
Query parameters
- Name
exclude_sources- Type
- array
- Description
Source identifiers to exclude from the comparison.
Request
curl https://api.pixeepim.com/api/v1/products/550e8400-e29b-41d4-a716-446655440000/prices/best \
-H "X-API-Key: {api_key}"
Response
{
"product_id": "550e8400-e29b-41d4-a716-446655440000",
"best_price": 27.50,
"source": "amazon_fr",
"url": "https://amazon.fr/dp/B0123456789",
"valid_until": null
}
Get price history
Returns price history for a product.
Path parameters
- Name
product_id- Type
- string
- Description
The product UUID.
Query parameters
- Name
source- Type
- string
- Description
Filter by source identifier.
- Name
days- Type
- integer
- Description
Number of past days to include.
Request
curl "https://api.pixeepim.com/api/v1/products/550e8400-e29b-41d4-a716-446655440000/prices/history?days=30" \
-H "X-API-Key: {api_key}"
Get price statistics
Returns aggregated price statistics for a product across all sources.
Path parameters
- Name
product_id- Type
- string
- Description
The product UUID.
Request
curl https://api.pixeepim.com/api/v1/products/550e8400-e29b-41d4-a716-446655440000/prices/stats \
-H "X-API-Key: {api_key}"
Response
{
"product_id": "550e8400-e29b-41d4-a716-446655440000",
"lowest_price": 24.99,
"highest_price": 34.99,
"average_price": 29.50,
"sources_count": 3,
"sources": ["internal", "amazon_fr", "fnac"],
"last_updated": "2026-09-17T08:00:00Z"
}
Get price source analytics
Returns analytics on which sources contribute price observations, optionally scoped to a product.
Query parameters
- Name
product_id- Type
- string
- Description
Filter to a single product UUID.
- Name
days- Type
- integer
- Description
Number of past days to include.
Request
curl "https://api.pixeepim.com/api/v1/analytics/price-sources?days=30" \
-H "X-API-Key: {api_key}"
Get stock history
Returns the stock movement history for a product.
Path parameters
- Name
product_id- Type
- string
- Description
The product UUID.
Query parameters
- Name
date_from- Type
- string
- Description
ISO 8601 start datetime.
- Name
date_to- Type
- string
- Description
ISO 8601 end datetime.
- Name
movement_type- Type
- string
- Description
Filter by movement type.
- Name
page- Type
- integer
- Description
Page number (default:
1).
- Name
page_size- Type
- integer
- Description
Items per page.
Request
curl "https://api.pixeepim.com/api/v1/products/550e8400-e29b-41d4-a716-446655440000/stock/history?page=1" \
-H "X-API-Key: {api_key}"
Price Monitor
Update a price
Updates an existing price entry, regardless of which product it belongs to. This replaces the legacy per-product update route.
Path parameters
- Name
price_id- Type
- string
- Description
The price entry UUID.
Body parameters
- Name
price- Type
- number
- Description
New price amount.
- Name
is_active- Type
- boolean
- Description
Active status.
- Name
valid_until- Type
- string
- Description
Expiration date (ISO 8601).
- Name
notes- Type
- string
- Description
Update notes.
Request
curl -X PATCH https://api.pixeepim.com/api/v1/prices/550e8400-e29b-41d4-a716-000000000002 \
-H "X-API-Key: {api_key}" \
-H "Content-Type: application/json" \
-d '{"price": 26.99, "is_active": true}'
Delete a price
Deletes a price entry.
Path parameters
- Name
price_id- Type
- string
- Description
The price entry UUID.
Query parameters
- Name
soft_delete- Type
- boolean
- Description
Soft-delete (deactivate) instead of hard-deleting the row.
Request
curl -X DELETE "https://api.pixeepim.com/api/v1/prices/550e8400-e29b-41d4-a716-000000000002?soft_delete=true" \
-H "X-API-Key: {api_key}"
Ingest price observations
Injects price observations collected by an external source (the PixeeCrawl B2C scraper hub). Authenticated with a shared sync key rather than a user API key.
Headers
- Name
x-pixee-sync-key- Type
- string
- Description
Server-to-server sync key.
Body parameters
- Name
observations- Type
- array
- Description
Array of price observations. Each entry:
internal_sku— your product's SKU or EANcompetitor_name— source identifiercompetitor_url— URL where the price was foundprice_ttc— price including tax- Optional:
price_original,shipping_cost,stock_status,seller_name,promo_label
Request
curl -X POST https://api.pixeepim.com/api/v1/prices/observations \
-H "X-Pixee-Sync-Key: {sync_key}" \
-H "Content-Type: application/json" \
-d '{
"observations": [
{
"internal_sku": "REF-001",
"competitor_name": "amazon_fr",
"competitor_url": "https://amazon.fr/dp/B0123456789",
"price_ttc": 27.50,
"stock_status": "in_stock"
}
]
}'
Response
{ "accepted": 1, "rejected": 0, "errors": [] }
Export watchlist
Exports the list of products currently monitored, for consumption by the B2C scraper hub. Authenticated with the same shared sync key as Ingest price observations.
Query parameters
- Name
tier- Type
- string
- Description
Filter by monitoring tier.
- Name
limit- Type
- integer
- Description
Maximum number of products to return.
Headers
- Name
x-pixee-sync-key- Type
- string
- Description
Server-to-server sync key.
Request
curl "https://api.pixeepim.com/api/v1/prices/export-watchlist?tier=daily" \
-H "X-Pixee-Sync-Key: {sync_key}"
Dashboard
Returns a global pricing dashboard: summary stats, top movers, recent alerts, and source breakdown.
Request
curl https://api.pixeepim.com/api/v1/prices/dashboard \
-H "X-API-Key: {api_key}"
Response
{
"monitored_products": 320,
"active_alerts": 5,
"map_violations": 2,
"last_check_at": "2026-09-17T08:00:00Z",
"top_movers": []
}
List monitored products
Returns the list of products enrolled in Price Monitor.
Query parameters
- Name
tier- Type
- string
- Description
Filter by monitoring tier.
- Name
active_only- Type
- boolean
- Description
Return only active monitors (default:
true).
- Name
page- Type
- integer
- Description
Page number (default:
1).
- Name
page_size- Type
- integer
- Description
Items per page.
Request
curl "https://api.pixeepim.com/api/v1/prices/monitored?active_only=true" \
-H "X-API-Key: {api_key}"
Get monitor status
Returns the monitoring configuration and last-check status for a single product.
Path parameters
- Name
product_id- Type
- string
- Description
The product UUID.
Request
curl https://api.pixeepim.com/api/v1/prices/monitored/550e8400-e29b-41d4-a716-446655440000/status \
-H "X-API-Key: {api_key}"
Update monitor config
Updates the monitoring settings for a product.
Path parameters
- Name
product_id- Type
- string
- Description
The product UUID.
Body parameters
- Name
tier- Type
- string
- Description
Monitoring frequency tier.
- Name
is_active- Type
- boolean
- Description
Enable or disable monitoring for this product.
Request
curl -X PATCH https://api.pixeepim.com/api/v1/prices/monitored/550e8400-e29b-41d4-a716-446655440000 \
-H "X-API-Key: {api_key}" \
-H "Content-Type: application/json" \
-d '{"is_active": true, "tier": "tier1_high"}'
Bulk enable monitoring
Enrolls multiple products in Price Monitor in a single call.
Body parameters
- Name
product_ids- Type
- array
- Description
List of product UUIDs to enroll.
- Name
tier- Type
- string
- Description
Monitoring tier (default:
tier3_standard).
Request
curl -X POST https://api.pixeepim.com/api/v1/prices/monitored/bulk \
-H "X-API-Key: {api_key}" \
-H "Content-Type: application/json" \
-d '{
"product_ids": [
"550e8400-e29b-41d4-a716-446655440000",
"550e8400-e29b-41d4-a716-446655440001"
],
"tier": "tier3_standard"
}'
Bulk check prices
Triggers a batch price check for multiple monitored products, filtered by tier.
Query parameters
- Name
tier- Type
- string
- Description
Only check products on this tier.
- Name
limit- Type
- integer
- Description
Maximum number of products to check in this run.
Request
curl -X POST "https://api.pixeepim.com/api/v1/prices/check/bulk?tier=tier1_high&limit=100" \
-H "X-API-Key: {api_key}"
Check a product price
Triggers an immediate price check for a single product across all configured sources.
Path parameters
- Name
product_id- Type
- string
- Description
The product UUID.
Request
curl -X POST https://api.pixeepim.com/api/v1/prices/check/550e8400-e29b-41d4-a716-446655440000 \
-H "X-API-Key: {api_key}"
Price history (monitor)
Returns the full price-check history collected by Price Monitor for a product, across all competitors.
Path parameters
- Name
product_id- Type
- string
- Description
The product UUID.
Query parameters
- Name
days- Type
- integer
- Description
Number of past days to include (default:
30).
Request
curl "https://api.pixeepim.com/api/v1/prices/history/550e8400-e29b-41d4-a716-446655440000?days=30" \
-H "X-API-Key: {api_key}"
Price history (unified)
Returns internal and competitor price history merged into a single timeline, suited for charting.
Path parameters
- Name
product_id- Type
- string
- Description
The product UUID.
Query parameters
- Name
window_days- Type
- integer
- Description
Number of past days to include.
Request
curl "https://api.pixeepim.com/api/v1/prices/history/550e8400-e29b-41d4-a716-446655440000/unified?window_days=90" \
-H "X-API-Key: {api_key}"
Validation queue
Returns competitor matches awaiting manual validation (low-confidence product/competitor pairings).
Query parameters
- Name
page- Type
- integer
- Description
Page number (default:
1).
- Name
page_size- Type
- integer
- Description
Items per page.
Request
curl "https://api.pixeepim.com/api/v1/prices/validation?page=1" \
-H "X-API-Key: {api_key}"
Validate a match
Confirms, rejects, or skips a pending product/competitor match.
Path parameters
- Name
item_id- Type
- string
- Description
The validation queue item ID.
Body parameters
- Name
action- Type
- string
- Description
confirm,reject, orskip.
Request
curl -X POST https://api.pixeepim.com/api/v1/prices/validation/vq-001 \
-H "X-API-Key: {api_key}" \
-H "Content-Type: application/json" \
-d '{"action": "confirm"}'
Competitors
List competitors
Returns configured competitor sources.
Query parameters
- Name
is_active- Type
- boolean
- Description
Filter by active status.
- Name
page- Type
- integer
- Description
Page number (default:
1).
- Name
page_size- Type
- integer
- Description
Items per page.
Request
curl "https://api.pixeepim.com/api/v1/prices/competitors?is_active=true" \
-H "X-API-Key: {api_key}"
Create a competitor
Adds a new competitor source.
Body parameters
- Name
code- Type
- string
- Description
Unique identifier (e.g.
cdiscount,fnac).
- Name
name- Type
- string
- Description
Display name.
- Name
base_url- Type
- string
- Description
Root URL of the competitor's site.
Request
curl -X POST https://api.pixeepim.com/api/v1/prices/competitors \
-H "X-API-Key: {api_key}" \
-H "Content-Type: application/json" \
-d '{"code": "cdiscount", "name": "Cdiscount", "base_url": "https://www.cdiscount.com"}'
Update a competitor
Updates a competitor source.
Path parameters
- Name
competitor_id- Type
- string
- Description
The competitor ID.
Body parameters
- Name
name- Type
- string
- Description
- Updated display name.
- Name
base_url- Type
- string
- Description
- Updated root URL.
- Name
is_active- Type
- boolean
- Description
- Enable or disable the competitor source.
Request
curl -X PATCH https://api.pixeepim.com/api/v1/prices/competitors/comp-002 \
-H "X-API-Key: {api_key}" \
-H "Content-Type: application/json" \
-d '{"is_active": false}'
Delete a competitor
Removes a competitor source. Existing price observations are retained.
Path parameters
- Name
competitor_id- Type
- string
- Description
The competitor ID.
Request
curl -X DELETE https://api.pixeepim.com/api/v1/prices/competitors/comp-002 \
-H "X-API-Key: {api_key}"
Blacklist a competitor
Blacklists a competitor so its observations stop feeding alerts, MAP checks, and repricing.
Body parameters
- Name
competitor_id- Type
- string
- Description
The competitor ID.
- Name
reason- Type
- string
- Description
Optional free-text reason.
Request
curl -X POST https://api.pixeepim.com/api/v1/prices/competitors/blacklist \
-H "X-API-Key: {api_key}" \
-H "Content-Type: application/json" \
-d '{"competitor_id": "comp-002", "reason": "Prix non fiables (marketplace tiers)"}'
Remove from blacklist
Removes a competitor from the blacklist.
Path parameters
- Name
competitor_id- Type
- string
- Description
The competitor ID.
Request
curl -X DELETE https://api.pixeepim.com/api/v1/prices/competitors/blacklist/comp-002 \
-H "X-API-Key: {api_key}"
Alerts
List alerts
Returns configured price alerts.
Query parameters
- Name
product_id- Type
- string
- Description
Filter by product UUID.
- Name
alert_type- Type
- string
- Description
Filter by type:
above,below, orchange_pct.
- Name
is_active- Type
- boolean
- Description
Return only active alerts.
- Name
page- Type
- integer
- Description
Page number (default:
1).
- Name
page_size- Type
- integer
- Description
Items per page.
Request
curl "https://api.pixeepim.com/api/v1/prices/alerts?is_active=true" \
-H "X-API-Key: {api_key}"
Create an alert
Creates a new price alert for a product.
Body parameters
- Name
product_id- Type
- string
- Description
The product UUID to monitor.
- Name
alert_type- Type
- string
- Description
above— fires when any competitor price exceeds the threshold.below— fires when a competitor undercuts.change_pct— fires when the price changes by more than the threshold percentage.
- Name
threshold- Type
- number
- Description
Price value (for
above/below) or percentage (forchange_pct).
- Name
channels- Type
- array
- Description
Notification channels:
in_app,webhook,email(default:["in_app"]).
- Name
cooldown_minutes- Type
- integer
- Description
Minimum minutes between repeated notifications (default:
60).
Request
curl -X POST https://api.pixeepim.com/api/v1/prices/alerts \
-H "X-API-Key: {api_key}" \
-H "Content-Type: application/json" \
-d '{
"product_id": "550e8400-e29b-41d4-a716-446655440000",
"alert_type": "below",
"threshold": 25.00,
"channels": ["in_app", "webhook"],
"cooldown_minutes": 60
}'
Triggered alerts
Returns recent alert trigger events, ordered by most recent first.
Request
curl https://api.pixeepim.com/api/v1/prices/alerts/triggered \
-H "X-API-Key: {api_key}"
Update an alert
Updates an existing price alert.
Path parameters
- Name
alert_id- Type
- string
- Description
The alert ID.
Body parameters
- Name
alert_type- Type
- string
- Description
- Updated alert type.
- Name
threshold- Type
- number
- Description
- New threshold value.
- Name
channels- Type
- array
- Description
- Updated notification channels.
- Name
is_active- Type
- boolean
- Description
- Enable or disable the alert.
- Name
cooldown_minutes- Type
- integer
- Description
- Updated cooldown in minutes.
Request
curl -X PATCH https://api.pixeepim.com/api/v1/prices/alerts/alert-001 \
-H "X-API-Key: {api_key}" \
-H "Content-Type: application/json" \
-d '{"threshold": 24.00, "is_active": true}'
Delete an alert
Deletes a price alert.
Path parameters
- Name
alert_id- Type
- string
- Description
The alert ID.
Request
curl -X DELETE https://api.pixeepim.com/api/v1/prices/alerts/alert-001 \
-H "X-API-Key: {api_key}"
Alert history
Returns the trigger history for a single alert.
Path parameters
- Name
alert_id- Type
- string
- Description
The alert ID.
Request
curl https://api.pixeepim.com/api/v1/prices/alerts/alert-001/history \
-H "X-API-Key: {api_key}"
MAP enforcement
MAP violations
Returns products whose competitor prices fall below their configured Minimum Advertised Price (MAP).
Query parameters
- Name
product_id- Type
- string
- Description
Filter by product UUID.
- Name
competitor_id- Type
- string
- Description
Filter by competitor ID.
- Name
page- Type
- integer
- Description
Page number (default:
1).
- Name
page_size- Type
- integer
- Description
Items per page.
Request
curl https://api.pixeepim.com/api/v1/prices/map/violations \
-H "X-API-Key: {api_key}"
MAP stats
Returns aggregated MAP compliance statistics across the catalog.
Request
curl https://api.pixeepim.com/api/v1/prices/map/stats \
-H "X-API-Key: {api_key}"
Response
{
"total_with_map": 150,
"violations": 2,
"compliance_rate": 98.7,
"avg_violation_gap": -3.20
}
Export MAP violations
Exports the current MAP violations list as a downloadable report.
Request
curl https://api.pixeepim.com/api/v1/prices/map/export \
-H "X-API-Key: {api_key}"
Set MAP price
Sets or updates the Minimum Advertised Price for a product.
Path parameters
- Name
product_id- Type
- string
- Description
The product UUID.
Body parameters
- Name
map_price- Type
- number
- Description
The minimum advertised price to enforce.
Request
curl -X PATCH https://api.pixeepim.com/api/v1/prices/map/550e8400-e29b-41d4-a716-446655440000 \
-H "X-API-Key: {api_key}" \
-H "Content-Type: application/json" \
-d '{"map_price": 25.00}'
Bulk set MAP prices
Sets MAP prices for multiple products in a single call.
Body parameters
- Name
items- Type
- array
- Description
List of
{ "product_id": "...", "map_price": ... }objects.
Request
curl -X POST https://api.pixeepim.com/api/v1/prices/map/bulk \
-H "X-API-Key: {api_key}" \
-H "Content-Type: application/json" \
-d '{
"items": [
{ "product_id": "550e8400-e29b-41d4-a716-446655440000", "map_price": 25.00 },
{ "product_id": "550e8400-e29b-41d4-a716-446655440001", "map_price": 12.50 }
]
}'
Repricing
Repricing rules automatically adjust product prices based on conditions (competitor price, margin, stock, category, supplier). Rules are simulated before being applied, and every automated change is logged and revertible.
List repricing rules
Returns configured repricing rules, ordered by priority.
Query parameters
- Name
active_only- Type
- boolean
- Description
Return only active rules.
- Name
page- Type
- integer
- Description
Page number (default:
1).
- Name
page_size- Type
- integer
- Description
Items per page.
Request
curl "https://api.pixeepim.com/api/v1/prices/repricing/rules?active_only=true" \
-H "X-API-Key: {api_key}"
Create a repricing rule
Creates a new repricing rule.
Body parameters
- Name
name- Type
- string
- Description
Rule name.
- Name
description- Type
- string
- Description
Optional description.
- Name
is_active- Type
- boolean
- Description
Default:
true.
- Name
priority- Type
- integer
- Description
Higher priority rules are evaluated first (default:
0).
- Name
conditions- Type
- array
- Description
List of condition objects the rule matches against (e.g. competitor price, stock, category).
- Name
action_type- Type
- string
- Description
How to compute the new price (e.g.
match_lowest,undercut_by_amount,undercut_by_percent).
- Name
action_value- Type
- number
- Description
Numeric parameter for
action_type(e.g. undercut amount or percentage).
- Name
action_config- Type
- object
- Description
Additional action configuration.
- Name
min_price- Type
- number
- Description
Floor — the rule never prices below this value.
- Name
max_price- Type
- number
- Description
Ceiling — the rule never prices above this value.
- Name
min_margin_percent- Type
- number
- Description
Minimum margin the rule must preserve.
- Name
channel- Type
- string
- Description
Restrict the rule to a sales channel.
- Name
supplier_ids- Type
- array
- Description
Restrict the rule to specific suppliers.
- Name
category_ids- Type
- array
- Description
Restrict the rule to specific categories.
- Name
product_ids- Type
- array
- Description
Restrict the rule to specific products.
Request
curl -X POST https://api.pixeepim.com/api/v1/prices/repricing/rules \
-H "X-API-Key: {api_key}" \
-H "Content-Type: application/json" \
-d '{
"name": "Undercut Amazon by 2%",
"is_active": true,
"priority": 10,
"conditions": [{ "field": "competitor_source", "operator": "eq", "value": "amazon_fr" }],
"action_type": "undercut_by_percent",
"action_value": 2,
"min_margin_percent": 15
}'
Update a repricing rule
Updates a repricing rule. All fields are optional, following the same schema as Create a repricing rule.
Path parameters
- Name
rule_id- Type
- string
- Description
The rule ID.
Request
curl -X PATCH https://api.pixeepim.com/api/v1/prices/repricing/rules/rule-001 \
-H "X-API-Key: {api_key}" \
-H "Content-Type: application/json" \
-d '{"is_active": false}'
Delete a repricing rule
Deletes a repricing rule.
Path parameters
- Name
rule_id- Type
- string
- Description
The rule ID.
Request
curl -X DELETE https://api.pixeepim.com/api/v1/prices/repricing/rules/rule-001 \
-H "X-API-Key: {api_key}"
Simulate a repricing rule
Runs the rule against the current catalog without applying any price change, and returns what would happen.
Path parameters
- Name
rule_id- Type
- string
- Description
The rule ID.
Query parameters
- Name
limit- Type
- integer
- Description
Maximum number of matched products to include in the preview.
Request
curl -X POST "https://api.pixeepim.com/api/v1/prices/repricing/rules/rule-001/simulate?limit=50" \
-H "X-API-Key: {api_key}"
Simulate revenue impact
Estimates the revenue and margin impact of a rule using historical sales data.
Path parameters
- Name
rule_id- Type
- string
- Description
The rule ID.
Query parameters
- Name
days- Type
- integer
- Description
Historical window in days used for the estimate.
Request
curl -X POST "https://api.pixeepim.com/api/v1/prices/repricing/rules/rule-001/simulate-revenue?days=30" \
-H "X-API-Key: {api_key}"
Repricing history
Returns a log of past automated price changes.
Query parameters
- Name
product_id- Type
- string
- Description
Filter by product UUID.
- Name
rule_id- Type
- string
- Description
Filter by rule ID.
- Name
page- Type
- integer
- Description
Page number (default:
1).
- Name
page_size- Type
- integer
- Description
Items per page.
Request
curl "https://api.pixeepim.com/api/v1/prices/repricing/history?rule_id=rule-001" \
-H "X-API-Key: {api_key}"
Revert a repricing run
Reverts a single automated price change back to its previous value.
Path parameters
- Name
history_id- Type
- string
- Description
The repricing history entry ID.
Request
curl -X POST https://api.pixeepim.com/api/v1/prices/repricing/history/rh-001/revert \
-H "X-API-Key: {api_key}"
Manual repricing run
Manually triggers a repricing pass across all active rules, outside the normal schedule.
Query parameters
- Name
limit- Type
- integer
- Description
Maximum number of products to process in this run.
Request
curl -X POST "https://api.pixeepim.com/api/v1/prices/repricing/run?limit=500" \
-H "X-API-Key: {api_key}"
Repricing stats
Returns aggregated repricing activity: rules fired, prices changed, and average impact.
Request
curl https://api.pixeepim.com/api/v1/prices/repricing/stats \
-H "X-API-Key: {api_key}"