This interface queues long running dynpricing CLI commands and exposes friendly documentation for each action.
All API endpoints require authentication with an API key.
💡 Tip: Log in to the admin panel to test endpoints without entering an API key.
Two authentication methods are supported:
Method 1: Authorization Header RECOMMENDED
Authorization: ApiKey YOUR_API_KEY_HERE
Example:
curl -H "Authorization: ApiKey sk_live_xxx..." \ https://dynpricingv3.test/api/external-data-bulk
Method 2: Query Parameter TESTING
?key=YOUR_API_KEY_HERE
Example (easy browser testing):
https://dynpricingv3.test/api/external-data?key=sk_live_xxx...
⚠️ Less secure (logged in URLs) - use for testing only
⚠️ Common Error: With header method, forgetting the ApiKey prefix results in 401 Unauthorized
Swagger/OpenAPI: https://admin.elpricing.com/api/swagger.json
Use the CLI helper to process queued jobs in order:
php go.php cron:list\nphp go.php cron:go
Queue logs are stored under var/api_queue/logs.
Queues go.php preparedata for an entire domain.
Interactive doc: https://admin.elpricing.com/api/prepare-data/domain?html=1
| Parameter | Type | Required | Description | Example |
|---|---|---|---|---|
| domain | string | yes | Domain name as configured in DynPricing. | profi-parfemy.cz |
curl -X POST https://admin.elpricing.com/api/prepare-data/domain
-H "Authorization: ApiKey YOUR_API_KEY"
-H "Content-Type: application/json"
-d '{"domain":"profi-parfemy.cz"}'Queues go.php preparedata for selected product IDs within a domain.
Interactive doc: https://admin.elpricing.com/api/prepare-data/domain-id?html=1
| Parameter | Type | Required | Description | Example |
|---|---|---|---|---|
| domain | string | yes | Domain name as configured in DynPricing. | profi-parfemy.cz |
| id | string | yes | Single product ID or comma separated list of IDs. | 667301,74500 |
| wait | boolean | no | Set to true to run immediately and include CLI output in the response. | true |
curl -X POST https://admin.elpricing.com/api/prepare-data/domain-id
-H "Authorization: ApiKey YOUR_API_KEY"
-H "Content-Type: application/json"
-d '{"domain":"profi-parfemy.cz","id":"667301","wait":true}'Queues go.php reprice for an entire domain.
Interactive doc: https://admin.elpricing.com/api/reprice/domain?html=1
| Parameter | Type | Required | Description | Example |
|---|---|---|---|---|
| domain | string | yes | Domain to reprice. | profi-parfemy.cz |
curl -X POST https://admin.elpricing.com/api/reprice/domain
-H "Authorization: ApiKey YOUR_API_KEY"
-H "Content-Type: application/json"
-d '{"domain":"profi-parfemy.cz"}'Queues go.php reprice for selected product IDs.
Interactive doc: https://admin.elpricing.com/api/reprice/domain-id?html=1
| Parameter | Type | Required | Description | Example |
|---|---|---|---|---|
| domain | string | yes | Domain to reprice. | profi-parfemy.cz |
| id | string | yes | Single product ID or comma separated list of IDs. | 667301 |
| strategy_id | string | no | Optional strategy row ID to limit the repricing run to a single strategy. | recYb7E8QiPbovU9d |
| wait | boolean | no | Set to true to run immediately and include CLI output in the response. | false |
curl -X POST https://admin.elpricing.com/api/reprice/domain-id
-H "Authorization: ApiKey YOUR_API_KEY"
-H "Content-Type: application/json"
-d '{"domain":"profi-parfemy.cz","id":"667301","strategy_id":"recYb7E8QiPbovU9d","wait":false}'Queues go.php feeds to refresh product feeds.
Interactive doc: https://admin.elpricing.com/api/tasks/feeds?html=1
curl -X POST https://admin.elpricing.com/api/tasks/feeds -H "Authorization: ApiKey YOUR_API_KEY"
Queues go.php plafeeds to update PLA feed data.
Interactive doc: https://admin.elpricing.com/api/tasks/plafeeds?html=1
curl -X POST https://admin.elpricing.com/api/tasks/plafeeds -H "Authorization: ApiKey YOUR_API_KEY"
Returns the latest repricing change stored in the changes table for the given product.
Interactive doc: https://admin.elpricing.com/api/logs/product/667301?domain=profi-parfemy.cz&format=json&html=1
| Path | Type | Required | Description | Example |
|---|---|---|---|---|
| productId | integer | yes | Internal DynPricing product identifier. | 900258 |
| Parameter | Type | Required | Description | Example |
|---|---|---|---|---|
| domain | string | yes | Domain where the repricing change occurred. | profi-parfemy.cz |
| format | string | no | Set to xml to receive XML output (default json). | json |
curl -H "Authorization: ApiKey YOUR_API_KEY" "https://admin.elpricing.com/api/logs/product/{productId}?domain=profi-parfemy.cz&format=json"Returns repricing change records for the given product across all domains.
Interactive doc: https://admin.elpricing.com/api/logs/product-global/667301?limit=50&html=1
| Path | Type | Required | Description | Example |
|---|---|---|---|---|
| productId | integer | yes | Internal DynPricing product identifier. | 667301 |
| Parameter | Type | Required | Description | Example |
|---|---|---|---|---|
| wh | string | no | Optional warehouse (`wh`) filter matching the changes table column. | main |
| limit | integer | no | Maximum number of records to return (default 50, max 500). | 50 |
| format | string | no | Set to xml to receive XML output (default json). | json |
curl -H "Authorization: ApiKey YOUR_API_KEY" "https://admin.elpricing.com/api/logs/product-global/{productId}?limit=50"Streams historical repricing results from BigQuery for the given product.
Interactive doc: https://admin.elpricing.com/api/logs/product-history/{productId}?html=1
| Path | Type | Required | Description | Example |
|---|---|---|---|---|
| productId | integer | yes | Internal DynPricing product identifier. | 734522 |
| Parameter | Type | Required | Description | Example |
|---|---|---|---|---|
| domain | string | no | Optional domain/project filter when querying BigQuery. | profi-parfemy.cz |
| limit | integer | no | Maximum number of records to return (default 20, max 100). | 20 |
| format | string | no | Set to xml to receive XML output (default json). | json |
curl -H "Authorization: ApiKey YOUR_API_KEY" "https://admin.elpricing.com/api/logs/product-history/{productId}?limit=20&format=json"Returns recent repricing logs for an entire project/domain without product filtering.
Interactive doc: https://admin.elpricing.com/api/logs/project?html=1
| Parameter | Type | Required | Description | Example |
|---|---|---|---|---|
| domain | string | yes | Required domain/project filter. | profi-parfemy.cz |
| maxage | integer | no | Maximum age in days (default 31). | 31 |
| limit | integer | no | Maximum number of records to return (default 1000). | 1000 |
curl -H "Authorization: ApiKey YOUR_API_KEY" "https://admin.elpricing.com/api/logs/project?domain=profi-parfemy.cz&maxage=31&limit=1000"
Returns historical repricing logs for an entire project/domain from BigQuery without product filtering.
Interactive doc: https://admin.elpricing.com/api/logs/project-history?html=1
| Parameter | Type | Required | Description | Example |
|---|---|---|---|---|
| domain | string | yes | Required domain/project filter. | profi-parfemy.cz |
| maxage | integer | no | Maximum age in days (default 31). | 31 |
| limit | integer | no | Maximum number of records to return (default 1000). | 1000 |
| format | string | no | Set to xml to receive XML output (default json). | json |
curl -H "Authorization: ApiKey YOUR_API_KEY" "https://admin.elpricing.com/api/logs/project-history?domain=profi-parfemy.cz&maxage=31&limit=1000&format=json"
🤖 Uses AI to explain pricing decisions in plain language for non-technical users.
Interactive doc: https://admin.elpricing.com/api/explain_pricing?html=1
| Parameter | Type | Required | Description | Example |
|---|---|---|---|---|
| prompt | string | yes | The prompt containing pricing data to explain. |
curl -X POST https://admin.elpricing.com/api/explain_pricing
-H "Authorization: ApiKey YOUR_API_KEY"
-H "Content-Type: application/json"
-d '{"prompt":"Explain why product X costs Y..."}'Manage external data for products. GET retrieves data with filtering. POST performs UPSERT using (dataid, name) as composite key: if record exists → UPDATE with new value, if not → INSERT new record. PUT updates by record ID.
Interactive doc: https://admin.elpricing.com/api/external-data?html=1
| Parameter | Type | Required | Description | Example |
|---|---|---|---|---|
| limit | integer | no | Maximum rows per page (default 100). | 50 |
| page | integer | no | 1-indexed page when limit is provided. | 1 |
| offset | integer | no | Explicit row offset. | 0 |
| dataid | string | no | Filter by product ID. Required for POST/PUT. | 24 |
| name | string | no | Filter by or specify data name. Required for POST/PUT. | competitor_price |
| val | string | no | Data value. Required for POST/PUT. | 299.90 |
| datum | string | no | Timestamp for the data (defaults to now for POST). | 2025-10-16 12:00:00 |
| id | integer | no | ID of specific record to update (PUT only). | 123 |
| sort | string | no | Sort column (id, datum, dataid, name). | datum |
| direction | string | no | Sort direction asc or desc. | desc |
curl -H "Authorization: ApiKey YOUR_API_KEY" "https://admin.elpricing.com/api/external-data"
Bulk upsert multiple external data records in a single API call. Each record is upserted (updated if exists, inserted if new) based on (dataid, name) composite key. Significantly faster than individual POST calls for batch operations.
Interactive doc: https://admin.elpricing.com/api/external-data-bulk?html=1
| Parameter | Type | Required | Description | Example |
|---|---|---|---|---|
| records | array | yes | Array of external data records. Each must have: dataid, name, val. Optional: datum (auto-filled if omitted). | [{"dataid":"24","name":"competitor_price","val":"299.90"},{"dataid":"25","name":"competitor_price","val":"349.90"}] |
curl -X POST https://admin.elpricing.com/api/external-data-bulk
-H "Authorization: ApiKey YOUR_API_KEY"
-H "Content-Type: application/json"
-d '{"records":[{"dataid":"24","name":"competitor_price","val":"299.90"},{"dataid":"25","name":"competitor_price","val":"349.90"},{"dataid":"26","name":"supplier_stock","val":"15"}]}'Get latest competition price data from external marketplaces. Returns simplified data structure with ID (dataid), STATUS, SHOP (domain), OLD_PRICE (price without shipping), CURRENCY, TIMESTAMP and URL. Excludes major marketplaces (Kaufland, Otto, Amazon, iDufte, eZebra) by default. Action (source) is REQUIRED.
Interactive doc: https://admin.elpricing.com/api/benydata?html=1
| Parameter | Type | Required | Description | Example |
|---|---|---|---|---|
| action | string | yes | Data source/marketplace (e.g., idealo, heureka, google). REQUIRED - no data dump without specifying source. | idealo |
| dataid | string | no | Product identifier (ZNZ ID) to filter by specific product. Optional - if omitted returns all products for given action. | 12324 |
| only | string | no | Comma-separated list of shop domains to INCLUDE (whitelist). Opposite of remove - returns ONLY these competitors. | parfum-zentrum.de,notino.de |
| remove | string | no | Comma-separated list of shop domains to exclude (blacklist). Defaults to: kaufland.de,otto.de,amazon.de,idufte,ezebra. Ignored if &only= is used. | kaufland.de,otto.de,amazon.de |
| limit | integer | no | Maximum number of records per page. Leave empty or set to 0 for all records (no limit). | 50 |
| page | integer | no | Page number for pagination (1-indexed). Use with limit parameter. | 1 |
curl -H "Authorization: ApiKey YOUR_API_KEY" "https://admin.elpricing.com/api/benydata?action=idealo"
List recent PLA feed uploads with their metadata.
Interactive doc: https://admin.elpricing.com/admin/plafeeds?html=1
| Parameter | Type | Required | Description | Example |
|---|---|---|---|---|
| limit | integer | no | Maximum number of records to return (default 50). | 20 |
| domain | string | no | Filter by domain. | profi-parfemy.cz |
| action | string | no | Filter by action/marketplace. | heureka |
curl -H "Authorization: ApiKey YOUR_API_KEY" "https://admin.elpricing.com/api/admin/plafeeds?limit=20&domain=profi-parfemy.cz"
Delete a specific PLA feed by ID.
Interactive doc: https://admin.elpricing.com/admin/plafeeds/{id}?html=1
| Path | Type | Required | Description | Example |
|---|---|---|---|---|
| id | integer | yes | The ID of the PLA feed to delete. | 34862 |
curl -X DELETE -H "Authorization: ApiKey YOUR_API_KEY" https://admin.elpricing.com/api/admin/plafeeds/{id}Process/import a PLA feed file (XLSX/CSV) into structured data.
Interactive doc: https://admin.elpricing.com/admin/plafeeds/{id}/process?html=1
| Path | Type | Required | Description | Example |
|---|---|---|---|---|
| id | integer | yes | The ID of the PLA feed to process. | 34863 |
curl -X POST https://admin.elpricing.com/api/admin/plafeeds/{id}/process
-H "Authorization: ApiKey YOUR_API_KEY"Download the original PLA feed file (XLSX/CSV).
Interactive doc: https://admin.elpricing.com/admin/plafeeds/{id}/download?html=1
| Path | Type | Required | Description | Example |
|---|---|---|---|---|
| id | integer | yes | The ID of the PLA feed to download. | 34863 |
curl -H "Authorization: ApiKey YOUR_API_KEY" "https://admin.elpricing.com/api/admin/plafeeds/{id}/download"🔓 PUBLIC ENDPOINT - No API key required. Comprehensive system health check for monitoring. Checks data freshness (live, live_prices, orders < 3h old) and API key error rate (< 20% in last hour). Returns 200 OK if all checks pass, 503 Service Unavailable if any check fails. Supports both JSON and XML output formats.
Interactive doc: https://admin.elpricing.com/api/status?html=1
| Parameter | Type | Required | Description | Example |
|---|---|---|---|---|
| format | string | no | Output format: json (default) or xml | json |
curl -H "Authorization: ApiKey YOUR_API_KEY" "https://admin.elpricing.com/api/status?format=json"
📦 Returns raw order items (line items) from the orders table with pagination and filtering. Each row represents a single product in an order.
Interactive doc: https://admin.elpricing.com/api/orders?html=1
| Parameter | Type | Required | Description | Example |
|---|---|---|---|---|
| domain | string | no | Filter by domain (e.g., profi-parfemy.cz, parfumsetmoi.fr). | profi-parfemy.cz |
| oid | string | no | Filter by order ID (e.g., PM4544521). | PM4544521 |
| product | integer | no | Filter by product ID. | 882725 |
| date_from | string | no | Start date for filtering (YYYY-MM-DD format). | 2025-01-01 |
| date_to | string | no | End date for filtering (YYYY-MM-DD format). | 2025-12-31 |
| cur | string | no | Filter by currency (e.g., EUR, CZK, PLN). | EUR |
| partner | string | no | Filter by partner code. | znz |
| limit | integer | no | Maximum number of records (default 100, max 1000). | 100 |
| page | integer | no | Page number for pagination (1-indexed). | 1 |
| sort | string | no | Sort column: datum, price, ks, product, domain. | datum |
| direction | string | no | Sort direction: asc or desc (default: desc). | desc |
curl -H "Authorization: ApiKey YOUR_API_KEY" "https://admin.elpricing.com/api/orders?domain=profi-parfemy.cz&limit=50"
📦 Returns all line items for a specific order ID.
Interactive doc: https://admin.elpricing.com/api/orders/detail/{oid}?html=1
| Path | Type | Required | Description | Example |
|---|---|---|---|---|
| oid | string | yes | Order ID (e.g., PM4544521). | PM4544521 |
curl -H "Authorization: ApiKey YOUR_API_KEY" "https://admin.elpricing.com/api/orders/detail/{oid}"📋 Returns order header records from the ordersmain table. Each row represents one complete order.
Interactive doc: https://admin.elpricing.com/api/ordersmain?html=1
| Parameter | Type | Required | Description | Example |
|---|---|---|---|---|
| domain | string | no | Filter by domain. | profi-parfemy.cz |
| oid | string | no | Filter by order ID. | PM4544521 |
| status | integer | no | Filter by order status (0, 1, 2, etc.). | 2 |
| source | string | no | Filter by payment source (e.g., WPJ_GoPay, WPJ_PayPal). | WPJ_GoPay |
| closed | string | no | Filter by closed status (Y/N). | N |
| date_from | string | no | Start date for filtering (YYYY-MM-DD). | 2025-01-01 |
| date_to | string | no | End date for filtering (YYYY-MM-DD). | 2025-12-31 |
| cur | string | no | Filter by currency. | EUR |
| limit | integer | no | Maximum records (default 100, max 1000). | 100 |
| page | integer | no | Page number (1-indexed). | 1 |
| sort | string | no | Sort column: datum, price, status, domain. | datum |
| direction | string | no | Sort direction: asc or desc. | desc |
curl -H "Authorization: ApiKey YOUR_API_KEY" "https://admin.elpricing.com/api/ordersmain?domain=profi-parfemy.cz&limit=50"
📋 Returns full order header with all line items.
Interactive doc: https://admin.elpricing.com/api/ordersmain/detail/{oid}?html=1
| Path | Type | Required | Description | Example |
|---|---|---|---|---|
| oid | string | yes | Order ID. | PM4544521 |
| Parameter | Type | Required | Description | Example |
|---|---|---|---|---|
| include_items | boolean | no | Include order line items (default: true). | true |
curl -H "Authorization: ApiKey YOUR_API_KEY" "https://admin.elpricing.com/api/ordersmain/detail/{oid}"📊 Returns aggregated statistics for orders with optional currency conversion to a unified currency.
Interactive doc: https://admin.elpricing.com/api/orders/stats?html=1
| Parameter | Type | Required | Description | Example |
|---|---|---|---|---|
| domain | string | no | Filter by domain (or leave empty for all domains). | profi-parfemy.cz |
| date_from | string | no | Start date (YYYY-MM-DD). Default: last 30 days. | 2025-01-01 |
| date_to | string | no | End date (YYYY-MM-DD). Default: today. | 2025-12-31 |
| convert_to | string | no | Convert all amounts to this currency (e.g., EUR, CZK). Uses CNB exchange rates. | EUR |
| group_by | string | no | Group results: day, week, month, domain, product, partner. | day |
curl -H "Authorization: ApiKey YOUR_API_KEY" "https://admin.elpricing.com/api/orders/stats?date_from=2025-01-01&convert_to=EUR&group_by=day"
📊 Returns order statistics grouped by domain with currency conversion.
Interactive doc: https://admin.elpricing.com/api/orders/stats/by-domain?html=1
| Parameter | Type | Required | Description | Example |
|---|---|---|---|---|
| date_from | string | no | Start date (YYYY-MM-DD). Default: last 30 days. | 2025-01-01 |
| date_to | string | no | End date (YYYY-MM-DD). | 2025-12-31 |
| convert_to | string | no | Convert all amounts to this currency. Default: EUR. | EUR |
curl -H "Authorization: ApiKey YOUR_API_KEY" "https://admin.elpricing.com/api/orders/stats/by-domain?date_from=2025-01-01&convert_to=EUR"
📊 Returns top-selling products with order statistics.
Interactive doc: https://admin.elpricing.com/api/orders/stats/by-product?html=1
| Parameter | Type | Required | Description | Example |
|---|---|---|---|---|
| domain | string | no | Filter by domain. | profi-parfemy.cz |
| date_from | string | no | Start date (YYYY-MM-DD). | 2025-01-01 |
| date_to | string | no | End date (YYYY-MM-DD). | 2025-12-31 |
| convert_to | string | no | Convert all amounts to this currency. | EUR |
| limit | integer | no | Number of top products to return (default 50). | 50 |
| sort | string | no | Sort by: quantity, revenue, margin, orders. | revenue |
curl -H "Authorization: ApiKey YOUR_API_KEY" "https://admin.elpricing.com/api/orders/stats/by-product?domain=profi-parfemy.cz&limit=20&sort=revenue"
💱 Returns list of all currencies present in orders with current exchange rates.
Interactive doc: https://admin.elpricing.com/api/orders/currencies?html=1
curl -H "Authorization: ApiKey YOUR_API_KEY" "https://admin.elpricing.com/api/orders/currencies"
🌐 Returns list of all domains with order data.
Interactive doc: https://admin.elpricing.com/api/orders/domains?html=1
curl -H "Authorization: ApiKey YOUR_API_KEY" "https://admin.elpricing.com/api/orders/domains"
List all landing pages from PLA feeds with filtering by action column.
Interactive doc: https://admin.elpricing.com/api/pla-feeds/landing-pages?html=1
| Parameter | Type | Required | Description | Example |
|---|---|---|---|---|
| limit | integer | no | Maximum number of results to return (default: 50). | 50 |
| page | integer | no | Page number for pagination (default: 1). | 1 |
| search | string | no | Search term for filtering results across domain, action, and url fields. | example.com |
| action | string | no | Filter results by specific action value (e.g., "create", "update", "delete"). | create |
| sort | string | no | Sort column (datum, domain, action, url). | datum |
| direction | string | no | Sort direction (asc or desc). | desc |
curl -H "Authorization: ApiKey YOUR_API_KEY" "https://admin.elpricing.com/api/pla-feeds/landing-pages?limit=50&page=1&sort=datum&direction=desc"
Returns the cached JSON payload for a product from pricestest.products_cache.
Interactive doc: https://admin.elpricing.com/api/data/product/{productId}?html=1
| Path | Type | Required | Description | Example |
|---|---|---|---|---|
| productId | string | yes | Internal DynPricing product identifier. | 900258 |
| Parameter | Type | Required | Description | Example |
|---|---|---|---|---|
| domain | string | yes | Domain that owns the cached product entry. | profi-parfemy.cz |
curl -H "Authorization: ApiKey YOUR_API_KEY" "https://admin.elpricing.com/api/data/product/{productId}?domain=profi-parfemy.cz"Returns count of active products in product_website table grouped by domain. Shows how many products are currently active per domain.
Interactive doc: https://admin.elpricing.com/api/overview/product-website?html=1
curl -H "Authorization: ApiKey YOUR_API_KEY" "https://admin.elpricing.com/api/overview/product-website"
Returns product_website records for a specific Abra product ID, showing all domains where the product is active along with timestamps.
Interactive doc: https://admin.elpricing.com/api/overview/product-website-by-id?html=1
| Parameter | Type | Required | Description | Example |
|---|---|---|---|---|
| id | string | yes | Abra product ID to look up. | 912016 |
curl -H "Authorization: ApiKey YOUR_API_KEY" "https://admin.elpricing.com/api/overview/product-website-by-id?id=912016"
Get RabbitMQ queue status including message count, connection status, and queue analysis.
Interactive doc: https://admin.elpricing.com/api/queue/status?html=1
curl -H "Authorization: ApiKey YOUR_API_KEY" "https://admin.elpricing.com/api/queue/status"
Process pending messages in the repricing queue.
Interactive doc: https://admin.elpricing.com/api/queue/process?html=1
| Parameter | Type | Required | Description | Example |
|---|---|---|---|---|
| limit | integer | no | Maximum number of messages to process (default: 10, max: 100). | 10 |
curl -X POST https://admin.elpricing.com/api/queue/process
-H "Authorization: ApiKey YOUR_API_KEY"
-H "Content-Type: application/json"
-d '{"limit":10}'📊 **GET**: Retrieve paginated marketplace records from pricestest.raw_js table. No mandatory fields - use optional query filters (domain, src, mark, dataid, search, sort, direction) to refine results. Returns competitive intelligence data for analysis and debugging. **POST**: Insert a new marketplace capture record. Requires 5 mandatory fields (domain, src, dataid, price, currency). All other fields are optional.
Interactive doc: https://admin.elpricing.com/api/external-data/marketplaces?html=1
| Parameter | Type | Required | Description | Example |
|---|---|---|---|---|
| limit | integer | no | Maximum number of rows to return per page (default 200). | 100 |
| page | integer | no | 1-indexed page when used together with limit. | 2 |
| offset | integer | no | Explicit row offset (overrides page). | 0 |
| search | string | no | Case-insensitive search across domain, source, LP ID, URL, and mark. | heureka |
| domain | string | no | Filter rows captured for a specific domain. | example-shop.cz |
| src | string | no | Filter by collection source (e.g. heureka, google). | heureka |
| mark | string | no | Filter by integration mark or label. | promo |
| dataid | integer | no | Exact numeric identifier from the raw data row. | 123456 |
| url | string | no | Filter rows whose URL contains the provided substring. | /product/123 |
| sort | string | no | Sort column (datum, domain, src, price, shipping). | datum |
| direction | string | no | Sort direction asc or desc. | desc |
| datum | string | no | Timestamp for POST/PUT payloads (defaults to current time when omitted). | 2025-09-26 10:30:00 |
| lpid | string | no | Marketplace LP identifier. Required when creating or updating a row. | 987654 |
| exiturl | string | no | Landing page the crawler exited to. Required for POST/PUT. | https://example-shop.cz/cart |
| lp | string | no | Logical landing page identifier (required for POST/PUT). | default |
| title | string | no | Captured product title (required for POST/PUT). | Test Product 250 ml |
| price | number | no | Captured price including currency (required for POST/PUT). | 199.9 |
| shipping | number | no | Shipping fee that accompanied the offer (required for POST/PUT). | 0 |
curl -H "Authorization: ApiKey YOUR_API_KEY" "https://admin.elpricing.com/api/external-data/marketplaces?limit=50&domain=example-shop.cz&src=heureka"
Bulk insert multiple marketplace capture records in a single API call. Accepts an array of marketplace records and inserts them all at once, significantly improving performance for large data imports. This endpoint processes each record with the same validation as the single POST endpoint but in batch mode. Ideal for crawler jobs, scheduled imports, or data migrations where hundreds or thousands of marketplace records need to be inserted efficiently.
Interactive doc: https://admin.elpricing.com/api/external-data/marketplaces-bulk?html=1
| Parameter | Type | Required | Description | Example |
|---|---|---|---|---|
| records | array | yes | Array of marketplace record objects. Each object must contain required fields: domain, src, dataid, price, currency. Optional: datum, lpid, url, exiturl, lp, title, shipping, mark, price_sale. | [{"domain":"shop1.cz","src":"heureka","dataid":100,"price":299,"currency":"CZK","url":"https://shop1.cz/product/100","price_sale":249},{"domain":"shop2.cz","src":"heureka","dataid":200,"price":499,"currency":"EUR","url":"https://shop2.cz/item/200"}] |
curl -X POST https://admin.elpricing.com/api/external-data/marketplaces-bulk
-H "Authorization: ApiKey YOUR_API_KEY"
-H "Content-Type: application/json"
-d '{"records":[{"domain":"shop1.cz","src":"heureka","dataid":100,"price":299,"currency":"CZK","url":"https://shop1.cz/product/100","price_sale":249},{"domain":"shop3.cz","src":"google","dataid":300,"price":199,"currency":"EUR","url":"https://shop3.cz/item/300"}]}'📊 **GET**: Retrieve a single marketplace record by ID (no mandatory fields). **PUT**: Update record with mandatory fields (domain, src, dataid, price, currency). **DELETE**: Remove the record.
Interactive doc: https://admin.elpricing.com/api/external-data/marketplaces/{id}?html=1
| Path | Type | Required | Description | Example |
|---|---|---|---|---|
| id | integer | yes | Numeric identifier from pricestest.raw_js. | 123456 |
| Parameter | Type | Required | Description | Example |
|---|---|---|---|---|
| datum | string | no | Timestamp for the capture. Required when updating. | 2025-09-26 10:30:00 |
| src | string | no | Data source identifier (required for PUT). | heureka |
| lpid | string | no | Marketplace list/product ID (required for PUT). | 987654 |
| url | string | no | Product detail URL (required for PUT). | https://example-shop.cz/product/123 |
| domain | string | no | Owning domain (required for PUT). | example-shop.cz |
| exiturl | string | no | Exit URL captured by the crawler. | https://example-shop.cz/cart |
| lp | string | no | Landing page identifier. | default |
| dataid | integer | no | Numeric identifier supplied by the marketplace. | 123456 |
| title | string | no | Captured product title. | Test Product 250 ml |
| price | number | no | Captured price value. | 199.9 |
| shipping | number | no | Captured shipping fee. | 0 |
| mark | string | no | Integration mark flag. | promo |
curl -H "Authorization: ApiKey YOUR_API_KEY" "https://admin.elpricing.com/api/external-data/marketplaces/{id}"List price captures by EAN or insert a new capture.
Interactive doc: https://admin.elpricing.com/api/external-data/priceean?html=1
| Parameter | Type | Required | Description | Example |
|---|---|---|---|---|
| limit | integer | no | Maximum number of rows per page (default 200). | 100 |
| page | integer | no | 1-indexed page when using limit. | 1 |
| offset | integer | no | Explicit offset. Overrides page when supplied. | 0 |
| search | string | no | Free-text search across domain, URL, EAN, and partner ID. | parfem |
| domain | string | no | Filter captures for a specific domain. | example-shop.cz |
| tag | string | no | Filter by tag value. | retail |
| ean | string | no | Filter by exact EAN. | 8592331234567 |
| instock | string | no | Availability flag captured from the source (required for POST/PUT). | in_stock |
| partnerid | string | no | Upstream partner identifier (required for POST/PUT). | SKU-123 |
| sort | string | no | Sort column (datum, recrawled, domain, tag, ean, price, price_full, confidence, instock). | datum |
| direction | string | no | Sort direction asc or desc. | desc |
| datum | string | no | Timestamp for the primary capture (auto-filled when omitted). | 2025-09-26 10:30:00 |
| recrawled | string | no | Timestamp of the latest recrawl (auto-filled when omitted). | 2025-09-26 11:00:00 |
| domainbase | string | no | Normalized domain base for grouping results. | example-shop.cz |
| confidence | number | no | Match confidence between 0 and 1 (required for POST/PUT). | 0.97 |
| price | number | no | Detected price (required for POST/PUT). | 249.9 |
| price_full | number | no | Detected full price before discounts (required for POST/PUT). | 279.9 |
| cur | string | no | ISO currency code (required for POST/PUT). | CZK |
| url | string | no | Origin URL of the capture (required for POST/PUT). | https://example-shop.cz/product/123 |
curl -H "Authorization: ApiKey YOUR_API_KEY" "https://admin.elpricing.com/api/external-data/priceean?limit=50&domain=example-shop.cz&tag=retail"
Fetch, update, or delete a price capture by numeric ID.
Interactive doc: https://admin.elpricing.com/api/external-data/priceean/{id}?html=1
| Path | Type | Required | Description | Example |
|---|---|---|---|---|
| id | integer | yes | Identifier from the pricestest.priceean table. | 987654 |
| Parameter | Type | Required | Description | Example |
|---|---|---|---|---|
| datum | string | no | Primary capture timestamp. | 2025-09-26 10:30:00 |
| recrawled | string | no | Timestamp of the recrawl. | 2025-09-26 11:00:00 |
| domain | string | no | Owning domain. | example-shop.cz |
| domainbase | string | no | Normalized domain base. | example-shop.cz |
| tag | string | no | Tag supplied during capture. | retail |
| ean | string | no | EAN that uniquely identifies the product. | 8592331234567 |
| confidence | number | no | Match confidence score. | 0.97 |
| price | number | no | Detected price value. | 249.9 |
| price_full | number | no | Detected full price before discounts. | 279.9 |
| cur | string | no | ISO currency code. | CZK |
| url | string | no | Source URL. | https://example-shop.cz/product/123 |
| instock | string | no | Availability flag. | in_stock |
| partnerid | string | no | Upstream partner identifier. | SKU-123 |
curl -H "Authorization: ApiKey YOUR_API_KEY" "https://admin.elpricing.com/api/external-data/priceean/{id}"List cached product data from pricestest.products_cache table.
Interactive doc: https://admin.elpricing.com/api/external-data/products-cache?html=1
| Parameter | Type | Required | Description | Example |
|---|---|---|---|---|
| limit | integer | no | Maximum number of rows per page (default 50). | 50 |
| page | integer | no | 1-indexed page when using limit. | 1 |
| offset | integer | no | Explicit offset. Overrides page when supplied. | 0 |
| domain | string | no | Filter cached products for a specific domain. | example-shop.cz |
| product_id | string | no | Filter by product ID (supports partial matching). | PROD123 |
| age_hours | integer | no | Show only cache entries newer than specified hours. | 24 |
| sort | string | no | Sort column (cache_date, domain, product_id). | cache_date |
| direction | string | no | Sort direction (asc, desc). | desc |
curl -H "Authorization: ApiKey YOUR_API_KEY" "https://admin.elpricing.com/api/external-data/products-cache?limit=20&domain=example-shop.cz&sort=cache_date&direction=desc"
List direct site captures or insert a new observation.
Interactive doc: https://admin.elpricing.com/api/external-data/direct-sites?html=1
| Parameter | Type | Required | Description | Example |
|---|---|---|---|---|
| limit | integer | no | Maximum rows per page (default 200). | 100 |
| page | integer | no | 1-indexed page when limit is provided. | 1 |
| offset | integer | no | Explicit row offset. | 0 |
| search | string | no | Filter by substring across domain, action, and URL. | restock |
| domain | string | no | Filter records for a specific domain. | example-shop.cz |
| action | string | no | Filter by recorded action. | restock |
| dataid | integer | no | Filter by numeric direct site identifier. | 3456 |
| url | string | no | Filter by substring in the URL. | /stock/notification |
| sort | string | no | Sort column (datum, domain, action, dataid). | datum |
| direction | string | no | Sort direction asc or desc. | desc |
| datum | string | no | Timestamp of the event (defaults to now when omitted). | 2025-09-26 12:00:00 |
curl -H "Authorization: ApiKey YOUR_API_KEY" "https://admin.elpricing.com/api/external-data/direct-sites?limit=50&domain=example-shop.cz&action=restock"
Fetch, update, or delete a direct site event by ID.
Interactive doc: https://admin.elpricing.com/api/external-data/direct-sites/{id}?html=1
| Path | Type | Required | Description | Example |
|---|---|---|---|---|
| id | integer | yes | Identifier from the pricestest.plalps table. | 3456 |
| Parameter | Type | Required | Description | Example |
|---|---|---|---|---|
| datum | string | no | Timestamp of the capture. | 2025-09-26 12:00:00 |
| domain | string | no | Owning domain. | example-shop.cz |
| action | string | no | Recorded action. | restock |
| dataid | integer | no | Numeric data identifier. | 3456 |
| url | string | no | Source URL. | https://example-shop.cz/stock/notification |
curl -H "Authorization: ApiKey YOUR_API_KEY" "https://admin.elpricing.com/api/external-data/direct-sites/{id}"Get complete product attributes catalog with product ID, name (nazev), and registry number (regcis) from product_attributes1 table. Includes external_data (e.g., elnino_id) merged directly into each product. Returns ~89,000 records.
Interactive doc: https://admin.elpricing.com/api/product-attributes?html=1
curl -H "Authorization: ApiKey YOUR_API_KEY" "https://admin.elpricing.com/api/product-attributes"
Lists all strategies and rules that evaluate a product for a domain, including inactive records.
Interactive doc: https://admin.elpricing.com/api/reprice/rules_for_product?html=1
| Parameter | Type | Required | Description | Example |
|---|---|---|---|---|
| domain | string | yes | Domain to evaluate. | profi-parfemy.cz |
| id | string | yes | Product ID to evaluate. | 900258 |
| include_inactive | boolean | no | Set to false to hide inactive strategies and rules (defaults to true). | true |
| preparedata | boolean | no | Set to true to refresh cache before loading data (ensures fresh strategy/rule names). | true |
curl -H "Authorization: ApiKey YOUR_API_KEY" "https://admin.elpricing.com/api/reprice/rules_for_product?domain=profi-parfemy.cz&id=900258"
Test a DSL rule with custom expression against a specific product without saving to database.
Interactive doc: https://admin.elpricing.com/api/test-dsl-rule?html=1
| Parameter | Type | Required | Description | Example |
|---|---|---|---|---|
| domain | string | yes | Domain to test against. | profi-parfemy.cz |
| product_id | integer | yes | Product ID to test the rule against. | 24 |
| dsl_expression | json | yes | JSON DSL expression to test. | {"rule": {"action": {"base_strategy": "cost_plus", "calculation": {"factor": 1.20}}}} |
| warehouse_id | string | no | Optional warehouse ID (defaults to first available warehouse). | 01101000 |
curl -X POST https://admin.elpricing.com/api/test-dsl-rule
-H "Authorization: ApiKey YOUR_API_KEY"
-H "Content-Type: application/json"
-d '{"domain":"profi-parfemy.cz","product_id":24,"dsl_expression":{"rule":{"action":{"base_strategy":"cost_plus","calculation":{"factor":1.2}}}}}'Universal repricing endpoint that accepts domain + strategy/rule/dsl and returns structured pricing data with execution trace.
Interactive doc: https://admin.elpricing.com/api/go_price?html=1
| Parameter | Type | Required | Description | Example |
|---|---|---|---|---|
| domain | string | yes | Domain to reprice (required). | profi-parfemy.cz |
| strategy_id | integer | no | Reprice all rules within this strategy. | 5 |
| rule_id | integer | no | Reprice specific rule (auto-detects strategy). | 42 |
| dsl | json | no | Direct DSL expression (requires product_id). | {"rule":{"action":{"base_strategy":"cost_plus","calculation":{"factor":1.20}}}} |
| product_id | string | no | Product ID to reprice (required when using DSL, optional otherwise). | 900258 |
| id | string | no | Alias for product_id. | 900258 |
curl -H "Authorization: ApiKey YOUR_API_KEY" "https://admin.elpricing.com/api/go_price?domain=profi-parfemy.cz&strategy_id=5&product_id=900258"
Engine V2 repricing endpoint with cached preparedata (24h TTL) and fresh DSL rules (never cached).
Interactive doc: https://admin.elpricing.com/api/go_price_v2?html=1
| Parameter | Type | Required | Description | Example |
|---|---|---|---|---|
| domain | string | yes | Domain to reprice (required). | parfumsetmoi.fr |
| product_id | string | yes | Product ID to reprice. | 23155 |
| strategy_id | integer | no | Strategy ID (uses domain default if not provided). | 19 |
| force | boolean | no | Force refresh of cached preparedata. | false |
| debug | boolean | no | Include debug information. | false |
curl -H "Authorization: ApiKey YOUR_API_KEY" "https://admin.elpricing.com/api/go_price_v2?domain=parfumsetmoi.fr&product_id=23155&strategy_id=19"
Simulates repricing using custom JSON data instead of database. Bypasses prepare_data entirely - you provide the product data directly and get the full repricing result with execution log.
Interactive doc: https://admin.elpricing.com/api/reprice_simulate?html=1
| Parameter | Type | Required | Description | Example |
|---|---|---|---|---|
| domain | string | yes | Domain name or project ID to use for strategy/rule lookup. | profi-parfemy.cz |
| data | json | yes | Complete product data in the same format as prepare_data output. Use dsl_data for DSL variables, basic_data for product info, and competition for competitor prices. | {"product_id":"900258","dsl_data":{"price_buy":450,"price_rrp":890,"current_price":699,"stock":15,"brand":"Calvin Klein","category":"parfemy","competition_count":3,"competition_min":620,"competition_max":750,"competition_avg":680},"basic_data":{"nazev_produktu":"CK One EDT 200ml","price_buy":450,"price_rrp":890},"competition":{"count":3,"products":[{"price":620,"shop":"parfemy.cz"},{"price":680,"shop":"notino.cz"},{"price":750,"shop":"elnino.cz"}]}} |
| strategy_id | integer | no | Optional: Test only specific strategy (default: all project strategies). | 5 |
| rule_id | integer | no | Optional: Test only specific rule (default: all matching rules). | 42 |
curl -X POST https://admin.elpricing.com/api/reprice_simulate
-H "Authorization: ApiKey YOUR_API_KEY"
-H "Content-Type: application/json"
-d '{"domain":"profi-parfemy.cz","data":{"product_id":"900258","dsl_data":{"price_buy":450,"price_rrp":890,"current_price":699,"stock":15,"brand":"Calvin Klein","category":"parfemy","warehouse_cnt":2,"competition_count":3,"competition_min":620,"competition_max":750,"competition_avg":680},"basic_data":{"nazev_produktu":"CK One EDT 200ml","price_buy":450,"price_rrp":890,"stock":15},"competition":{"count":3,"products":[{"price":620,"shop":"parfemy.cz"},{"price":680,"shop":"notino.cz"},{"price":750,"shop":"elnino.cz"}]}}}'Reprices a product using a text-based prompt OR direct DSL rules. Prompt is converted to DSL via N8N AI and cached. Returns pricing explanation and DSL validation results.
Interactive doc: https://admin.elpricing.com/api/reprice_direct?html=1
| Parameter | Type | Required | Description | Example |
|---|---|---|---|---|
| domain | string | yes | Domain name or project ID. | profi-parfemy.cz |
| data | json | yes | Complete product data in the same format as prepare_data output. | {"product_id":"900258","dsl_data":{"price_buy":450,"price_rrp":890,"current_price":699,"stock":15,"competition_count":3,"competition_min":620,"competition_max":750,"competition_avg":680}} |
| prompt | string | no | Text description of the pricing rule. Either prompt OR rules is required. | be cheapest on the market but maintain minimum 20% margin |
| rules | json | no | Direct DSL rules as JSON. Use this instead of prompt to skip AI generation. | ["max", ["-", ["var", "dsl.competition.min_price"], 1], ["*", ["var", "dsl.price_buy"], 1.2]] |
| force_regenerate | boolean | no | Set to true to bypass cache and regenerate DSL from prompt. | false |
curl -X POST https://admin.elpricing.com/api/reprice_direct
-H "Authorization: ApiKey YOUR_API_KEY"
-H "Content-Type: application/json"
-d '{"domain":"profi-parfemy.cz","prompt":"be cheapest on the market but maintain minimum 20% margin","data":{"product_id":"900258","dsl_data":{"price_buy":450,"price_rrp":890,"current_price":699,"stock":15,"competition_count":3,"competition_min":620,"competition_max":750,"competition_avg":680},"competition":{"count":3,"products":[{"price":620,"shop":"parfemy.cz"},{"price":680,"shop":"notino.cz"},{"price":750,"shop":"elnino.cz"}]}}}'Submit 100-10,000 products and get calculated prices in one call. Uses AI-generated DSL from text prompt OR direct rules. Returns JSON or CSV format with prices, DSL validation, and pricing explanations for all products.
Interactive doc: https://admin.elpricing.com/api/reprice-direct-bulk?html=1
| Parameter | Type | Required | Description | Example |
|---|---|---|---|---|
| domain | string | yes | Domain name or project ID. | profi-parfemy.cz |
| products | json | yes | Array of product data objects (100-10,000 items). Each product follows the same format as /reprice_direct data field. | [{"product_id":"P001","dsl_data":{"price_buy":100,"competition_min":150,"price_rrp":200}},{"product_id":"P002","dsl_data":{"price_buy":200,"competition_min":280,"price_rrp":400}}] |
| prompt | string | no | Text description of the pricing rule. Either prompt OR rules is required. | be cheapest on the market but maintain minimum 20% margin |
| rules | json | no | Direct DSL rules as JSON. Use this instead of prompt to skip AI generation. | ["max", ["-", ["var", "dsl.competition.min_price"], 1], ["*", ["var", "dsl.price_buy"], 1.2]] |
| format | string | no | Response format: "json" (default) or "csv" for downloadable file. | json |
| force_regenerate | boolean | no | Set to true to bypass DSL cache and regenerate from prompt. | false |
curl -X POST https://admin.elpricing.com/api/reprice-direct-bulk
-H "Authorization: ApiKey YOUR_API_KEY"
-H "Content-Type: application/json"
-d '{"domain":"profi-parfemy.cz","prompt":"be cheapest on the market but maintain minimum 20% margin","format":"json","products":[{"product_id":"P001","dsl_data":{"price_buy":100,"price_rrp":200,"current_price":180,"competition_count":3,"competition_min":150,"competition_avg":170}},{"product_id":"P002","dsl_data":{"price_buy":200,"price_rrp":400,"current_price":350,"competition_count":2,"competition_min":280,"competition_avg":320}},{"product_id":"P003","dsl_data":{"price_buy":50,"price_rrp":100,"current_price":89,"competition_count":5,"competition_min":75,"competition_avg":85}}]}'Trigger repricing for a single product and send to all pricing routes (same as CLI command). Supports both GET and POST methods.
Interactive doc: https://admin.elpricing.com/api/products/{productId}/reprice?html=1
| Path | Type | Required | Description | Example |
|---|---|---|---|---|
| productId | integer | yes | Product ID to reprice. | 24 |
| Parameter | Type | Required | Description | Example |
|---|---|---|---|---|
| domain | string | yes | Domain name as configured in DynPricing. | profi-parfemy.cz |
| force | boolean | no | Force cache refresh before repricing (default: false). | true |
| strategy_id | integer | no | Optional specific strategy ID to use. | 1 |
curl -X POST https://admin.elpricing.com/api/products/{productId}/reprice
-H "Authorization: ApiKey YOUR_API_KEY"
-H "Content-Type: application/json"
-d '{"domain":"profi-parfemy.cz","force":true}'Converts natural language pricing rule descriptions into structured DSL. For users who don't want to write DSL directly - simply describe what you want in plain text.
Interactive doc: https://admin.elpricing.com/admin/rules-builder.html
| Parameter | Type | Required | Description | Example |
|---|---|---|---|---|
| description | string | yes | Natural language description of the pricing rule you want to create. | Match cheapest competitor minus 5 CZK, but keep at least 20% margin, never below 500 CZK |
| use_ai | boolean | no | Whether to use AI for generation. Default: true. Set to false to use only pattern matching. | true |
| force_regenerate | boolean | no | Set to true to bypass cache and regenerate DSL. | false |
curl -X POST https://admin.elpricing.com/api/rules/build
-H "Authorization: ApiKey YOUR_API_KEY"
-H "Content-Type: application/json"
-d '{"description":"Match cheapest competitor minus 5 CZK, but keep at least 20% margin, never below 500 CZK"}'