Download OpenAPI specification:Download
This is the API powering Omnia 2.0 and Pricemonitor, containing operations which can also be used directly by customers from their own systems.
The Omnia 2.0 API is RESTful and provides access to the backend of Omnia 2.0 and Pricemonitor. It is used to manage products, offers, contracts and more.
The Omnia 2.0 API (also known as the Pricemonitor API) gives access to the superpowers behind the Omnia Retail platform.
The Omnia 2.0 app and the Pricemonitor app are the main consumers of this API, but we also have endpoints available to customers to integrate the API directly with their own systems.
These are common API operations for customers to integrate Omnia with their own systems:
Use this operation to retrieve the newest offers in the market for products for a given time range. It supports returning paged results. We recommend to retrieve with a page size of at most 1,000 products.
Use this operation to retrieve the price recommendations for all products for a specified timerange. It supports returning paged results.
Use this operation to retrieve products via a query. It supports returning paged results. We recommend to retrieve with a page size of 10,000 products.
Use this operation to upload your product assortment in JSON format. We recommend that you provide your product data in multiple parts via sequential requests to this endpoint. After providing all data, you need to delete the old data via this operation by specifying a timestamp just before your import.
If you cannot use the JSON format, as a fallback, we support uploading your product assortment to our system in CSV format via this operation.
Use this operation to provide external offers for your products to our system.
API endpoints can potentially return a lot of items. Returning all data as one response to one request can overload the server, the database or the client. Returning all items may even be unnecessary when the client is only interested in the top N entries. So API operations that could return a lot of data support pagination. The pagination approach used in the latest version of API operations is described here.
Operations that support pagination:
limit
parameter defines the maximum number of items returned per page.start
parameter defines which page is returned.data
object within the response.There are no subsequent matching items if the number of items in a response is smaller than the requested limit
.
limit
parameterThis parameter defines how many items are returned at most in a singe response. This is also called the page size.
The API documentation states the range that is allowed to be specified by the client.
start
parameterThis parameter defines from which item in the total result set this request wants data to be returned. It basically defines what page should be returned. The index of the first item is 0. If the value of start
is beyond the number of matching items, an empty data
array is returned in the response.
Pagination itself only works when the entries have a stable sorting. This is the responsibility of the API.
To request items with a page size of 1000, these are the pagination parameter values to be used for subsequent requests
request # | start | limit |
---|---|---|
1st | 0 | 1000 |
2nd | 1000 | 1000 |
3rd | 2000 | 1000 |
... |
So the values for each subsequent request can be calculated by start = previous start + limit
. All the other parameters of the API request must keep the same value to get stable sorting for a stable total result set.
A response looks like this:
{
"data": [
<item 1>,
<item 2>,
...
]
}
The client must compare the number of items in the data
array with the used limit
parameter. If they are equal there is likely a next page. If the number of items returned is less than the page size, there is no next page.
Note: In rare cases there is no next page even though the response has no less than a page size of items. E.g. when there are 2000 total items and using a page size of 1000. Here the client will make a request with
start=1000
andlimit=1000
. The response for this 2nd page request will have 1000 items. Then the client can't know in advance if there are further pages and it has to make an additional request. This third page request will return an empty array.
There are two authentication methods supported:
We have two options: Either you provide the products as JSON or as CSV. The product import via JSON is recommended.
Notes:
The preferred way to import products via API is via JSON.
This operation adds products to our system using upsert (insert or update). It needs to be used in conjunction with a timestamp-based product deletion operation.
The delete makes sure that old products, which are not part of your assortment anymore, are dropped from the system.
Typical usage pattern:
In order to provide products to our system you can send a CSV file via this operation. This endpoint deactivates all current products and activates the ones which are provided via CSV.
This creates a "task" at our side. Tasks are processed asynchronously. Typically, a big product import with 500K products takes 5-10 minutes. The mentioned endpoint returns a task id and a url where you can check the task state. Possible task states are: pending, executing, failed and succeeded. The last two states are representing a completed task. The task itself contains more details about how many products could get imported, which ones failed plus a preview failure list.
When the product import successfully completed then the previously imported products have been deleted and only the ones which you have provided via CSV file are active in our system.
Use this operation to retrieve products via a query you specify in the request. It supports returning paged results. We recommend to retrieve with a page size of up to 10,000 products.
Use the query operation and just omit the query filter in the request. Results are paginated. A page size of at most 10,000 is recommended.
Our system uses internal product ids that are distinct from your products ids. These internal product ids are sometimes referred to as pricemonitor product ids.
Often API operations require internal product ids to be specified. So you may need to map your product id onto our internal product id.
There are two options:
Gets all products for a contract. Does not support pagination.
No response was specified
[- {
- "tags": [
- {
- "key": "string",
- "value": "string"
}
], - "gtin": 0,
- "maxPriceBoundary": 0,
- "minPriceBoundary": 0,
- "name": "string",
- "productId": "string",
- "referencePrice": 0
}
]
This operation is used to import products into the system from JSON formatted data:
Products that are already present will be updated and new products will be added. Identification of the products is done based on the identifying attributes, which need to be provided via the request body.
Note:
This endpoint should be used in conjunction with: DELETE /api/v3/vendor/contracts/{contractId}/products.
Procedure:
1. Add your products in bulks with multiple requests via this endpoint.
2. Send a DELETE request to /api/v3/vendor/contracts/{contractId}/products
and set the parameter updatedMax to a date which is older or equal to your first request from step 1.
The body contains the products which should be added
The response provides sorted import results in respective to the order of the provided products.
Unable to add products because of invalid request data
{- "products": [
- {
- "tags": [
- {
- "key": "string",
- "value": "string"
}
], - "customerProductId": "string",
- "gtin": 12345678910123,
- "minPriceBoundary": 12.34,
- "maxPriceBoundary": 56.78,
- "name": "string",
- "referencePrice": 19.99
}
], - "version": "2",
- "identifyingAttributes": [
- "customerProductId"
]
}
{- "data": [
- {
- "data": {
- "productId": "string"
}, - "errors": [
- {
- "code": "string",
- "message": "string"
}
]
}
]
}
This operation is used to import products into the system from CSV formatted data.
This process is represented by a task, which is processed asynchronously.
In the response you will receive a url which is used to check the status of the import process.
When the process is done all products in csv file from the request body will be in the pricemonitor.
Products that were already present before have been updated and new products have been added.
Warning: All products that were in the pricemonitor before but are not present in the new import will be deleted.
Identification of the products is done based on the identifying attributes (see parameter: patagona-product-identifying-attributes)
Note: It is recommended to use the JSON variant to add products as it works synchronously and more efficient.
CSV file containing the products. Note: The CSV file should be encoded in UTF-8.
The field data.url in the returned object allows to check the status of the import process. It will point to the endpoint GET /api/2/v/contracts/{contractId}/tasks/{taskId}.
The field data.id is the task id corresponding to the product import.
{- "data": {
- "id": "string",
- "url": "string"
}
}
Delete all products or delete products by a last updated timestamp and/or a tag.
Note: Avoid any product import requests concurrently with DELETE requests to prevent potential issues.
Returns the number of deleted products.
Tags specified for deleting products are specified partially (either tagKey or tagValue is provided).
{- "data": {
- "deleted": 0
}
}
Returns a list of ExtendedTags for the given product.
Given product does not exist.
{- "data": [
- {
- "booleanValue": true,
- "doubleValue": 0,
- "integerValue": 0,
- "label": "string",
- "stringValue": "string"
}
]
}
Monitoring status of the queried products
{- "data": [
- {
- "productId": 0,
- "statusOnDomain": [
- {
- "domain": "string",
- "startedAt": "2019-08-24T14:15:22Z",
- "completedAt": "2019-08-24T14:15:22Z",
- "outcome": {
- "successful": true,
- "outcome": "string"
}
}
]
}
]
}
This endpoint returns all price recommendations for one product within a given time range.
A list of price recommendations
E.g. when the time range spans more than 48h.
{- "data": [
- {
- "oldPrice": 0,
- "deliveryCosts": 0,
- "timestamp": "2019-08-24T14:15:22Z",
- "oldDeliveryCosts": 0,
- "tags": [
- {
- "doubleValue": 0,
- "integerValue": 0,
- "label": "string",
- "stringValue": "string",
- "booleanValue": true
}
], - "price": 0,
- "oldPosition": 0,
- "gtin": 0,
- "relativePriceChangePercentage": 0,
- "newPosition": 0,
- "customerProductId": "string",
- "originalMaxPriceBoundary": 0,
- "relevantDomain": "string",
- "originalMinPriceBoundary": 0,
- "currency": "string",
- "productId": "string",
- "originalTags": [
- {
- "doubleValue": 0,
- "integerValue": 0,
- "label": "string",
- "stringValue": "string",
- "booleanValue": true
}
]
}
]
}
This endpoint can be used for querying either all products or certain products by the 'customerProductId' or 'productId'.
The body contains the products query.
Currently, it supports only product queries for two attributes:
Returns a list of found products.
{- "pagination": {
- "start": 0,
- "limit": 0
}, - "filter": {
- "regex": {
- "field": "string",
- "pattern": "string"
}, - "in": {
- "field": "string",
- "query": { }
}, - "or": [
- { }
], - "const": true,
- "not": { },
- "oneOf": {
- "field": "string",
- "values": [
- "string"
]
}, - "lt": {
- "field": "string",
- "value": "string"
}, - "gt": {
- "field": "string",
- "value": "string"
}, - "eq": {
- "field": "string",
- "value": "string"
}, - "and": [
- { }
]
}, - "includeTags": true
}
{- "data": [
- {
- "name": "string",
- "tags": [
- {
- "doubleValue": 0,
- "integerValue": 0,
- "label": "string",
- "stringValue": "string",
- "booleanValue": true
}
], - "minPriceBoundary": 0,
- "gtin": 0,
- "customerProductId": "string",
- "id": "string",
- "maxPriceBoundary": 0,
- "referencePrice": 0
}
]
}
Provides latest Amazon Buy Box statistics, i.e., whether a
List of Amazon Buybox statistics per product
Returned if:
{- "data": [
- {
- "productId": 0,
- "isInPrimeBuybox": true,
- "isInNonPrimeBuybox": true
}
]
}
Note:
- Internally the system calculates a price recommendation for every domain
- As aggregation the system then provides the cheapest price recommendation
Within the price recommendations we are providing a field called
relevantDomain
. This field contains from which domain the price recommendation originates.
You can get all price recommendations via this operation.
It's a paginated endpoint, so you have to request multiple pages. See pagination. Recommended page size is 1000.
It's important that you define a timerange (by providing startTime
and endTime
parameters) in order to guarantee a stable pagination. This endpoint returns the most recent price recommendations per product and domain: This means that price recommendations from older price calculation runs within the provided timerange are ignored.
Gets all price recommendations for a contract for the specified timerange. Only the newest price recommendations are returned in case of multiple price recommendations per product
A paginated list of price recommendations is returned for the specified timerange. Only the newest price recommendations are returned in case of multiple price recommendations per product.
{- "data": [
- {
- "oldPrice": 0,
- "deliveryCosts": 0,
- "timestamp": "2019-08-24T14:15:22Z",
- "oldDeliveryCosts": 0,
- "tags": [
- {
- "doubleValue": 0,
- "integerValue": 0,
- "label": "string",
- "stringValue": "string",
- "booleanValue": true
}
], - "price": 0,
- "oldPosition": 0,
- "gtin": 0,
- "relativePriceChangePercentage": 0,
- "newPosition": 0,
- "customerProductId": "string",
- "originalMaxPriceBoundary": 0,
- "relevantDomain": "string",
- "originalMinPriceBoundary": 0,
- "currency": "string",
- "productId": "string",
- "originalTags": [
- {
- "doubleValue": 0,
- "integerValue": 0,
- "label": "string",
- "stringValue": "string",
- "booleanValue": true
}
]
}
], - "meta": {
- "nextUrl": "string",
- "totalSize": 0,
- "start": 0,
- "limit": 0
}
}
This endpoint returns all price recommendations for one product within a given time range.
A list of price recommendations
E.g. when the time range spans more than 48h.
{- "data": [
- {
- "oldPrice": 0,
- "deliveryCosts": 0,
- "timestamp": "2019-08-24T14:15:22Z",
- "oldDeliveryCosts": 0,
- "tags": [
- {
- "doubleValue": 0,
- "integerValue": 0,
- "label": "string",
- "stringValue": "string",
- "booleanValue": true
}
], - "price": 0,
- "oldPosition": 0,
- "gtin": 0,
- "relativePriceChangePercentage": 0,
- "newPosition": 0,
- "customerProductId": "string",
- "originalMaxPriceBoundary": 0,
- "relevantDomain": "string",
- "originalMinPriceBoundary": 0,
- "currency": "string",
- "productId": "string",
- "originalTags": [
- {
- "doubleValue": 0,
- "integerValue": 0,
- "label": "string",
- "stringValue": "string",
- "booleanValue": true
}
]
}
]
}
Use this operation to provide external offers for your products to our system. This operation to add offers in bulk can be used instead of the monitoring by our system of domains for external offers.
This operation needs the internal product ids in our system. See how to determine internal product ids.
Here is an example of a JSON body to provide one offer for one product via API.
[{
"productId": "67784570",
"creationDate": "2024-06-11T00:15:07.099Z",
"domain": "google.de",
"offers": [{
"vendorName": "amazon.de",
"vendorDomainId": 1,
"url": "https://www.amazon.de/-/en/dp/013142467X/",
"price": 58.84,
"deliveryCosts": 9.95,
"currency": "EUR",
"id": "636354d0-c865-4c56-84b3-bd9172e826aa",
"productName": "Test item",
"attributes": [{
"key": "size",
"value": "L"
}],
"maxDeliveryHours": 48,
"minDeliveryHours": 12,
"retrievalDate": "2024-06-11T10:50:45.659Z",
"availability": true
}]
}]
Use this operation to get all offers for a contract. It's a paginated endpoint, so you have to scroll through all offers.
It's important that you define a timerange (by providing startDate
and endDate
parameters) in order to guarantee a stable pagination.
This endpoint returns the most recent offers per product and domain: This means that offers from older monitoring runs within the provided timerange are ignored.
For continuously getting market data we recommend the following usage pattern:
Get the offers for the last 15 minutes with a time offset of 15 minutes.
Runtime Timestamp | startDate | endDate |
---|---|---|
12:00 | 11:30 | 11:45 |
12:15 | 11:45 | 12:00 |
12:30 | 12:00 | 12:15 |
… |
Note: The time offset is important since offers are not immediately visible via the API. Sometimes there is a slight delay in offer storing.
Returns the newest offers for a given time range.
A list of products with their corresponding offers.
Returned in case of invalid time range or a limit greater than 10000.
{- "data": [
- {
- "product": {
- "name": "string",
- "tags": [
- {
- "key": "string",
- "value": "string"
}
], - "minPriceBoundary": 0,
- "gtin": 0,
- "customerProductId": "string",
- "id": "string",
- "maxPriceBoundary": 0,
- "referencePrice": 0
}, - "offers": [
- {
- "positionByTotalPrice": 0,
- "deliveryCosts": 0,
- "maxDeliveryTime": 0,
- "url": "string",
- "vendorDomainId": "string",
- "domain": "string",
- "price": 0,
- "minDeliveryTime": 0,
- "gtin": 0,
- "positionByUnitPrice": 0,
- "availability": true,
- "attributes": [
- {
- "name": "string",
- "value": "string"
}
], - "vendorName": "string",
- "retrievalDate": "2019-08-24T14:15:22Z",
- "creationDate": "2019-08-24T14:15:22Z",
- "productName": "string",
- "currency": "string",
- "productId": "string",
- "ignored": true
}
]
}
]
}
Supports complex queries for offers.
The request body specifies which offers will be searched for.
Warning: It's highly recommended to not use this endpoint since it is error-prone due to complex query structure!
Supported are queries with three different types of filters:
left
side being a StringValueProvider
with the attributeName
value "productId"right
side being a StringConstantValueProvider
with the value
being the actual pricemonitor product ID to filter offers forcomparison
being a StringEquality
left
side being a NumberValueProvider
with the attributeName
value "ignoredBy"right
side being a NumberConstantValueProvider
with the value
being the numeric contract id to filter offers forcomparison
being a NumberEquality
left
side being a StringValueProvider
with the attributeName
value "reseller_name"right
side being a StringConstantValueProvider
with the value
being the actual vendor name to filter offers forcomparison
being a StringEquality
Note: This endpoint will only return the newest offers for each product for a given time range.
Returns either an Error or a list of ApiOffers matching the given filter.
Returned in case of unparsable request JSON or unsupported filter/sorting.
{- "filter": { },
- "pagination": {
- "limit": 100,
- "start": 0
}, - "range": {
- "end": "2018-04-06T13:46:13Z",
- "start": "2018-04-04T13:46:13Z"
}, - "sort": {
- "metric": "TotalPrice",
- "order": "asc"
}
}
{- "data": [
- {
- "positionByTotalPrice": 0,
- "deliveryCosts": 0,
- "maxDeliveryTime": 0,
- "url": "string",
- "vendorDomainId": "string",
- "domain": "string",
- "price": 0,
- "minDeliveryTime": 0,
- "gtin": 0,
- "positionByUnitPrice": 0,
- "availability": true,
- "attributes": [
- {
- "name": "string",
- "value": "string"
}
], - "vendorName": "string",
- "retrievalDate": "2019-08-24T14:15:22Z",
- "creationDate": "2019-08-24T14:15:22Z",
- "productName": "string",
- "currency": "string",
- "productId": "string",
- "ignored": true
}
]
}
This endpoint can be used to query offer statistics (e.g. offer count, average price) grouped by product. Only the most recent market data is considered per product and domain.
The request body may include an optional products query. If omitted, all products are queried. Currently, product queries can be performed on two attributes:
Pagination is supported with a maximum limit of 10,000. For optimized performance:
Pagination operates based on the provided products query. This is particularly useful when querying a set of customerProductId's. For chunked requests over a set of ids, it's straightforward to specify up to 10,000 customerProductId's in the query with pagination set at start: 0, limit: 10,000. The allowed query pattern is structured as follows:
json { "pagination": { "start": ${start}, "limit": ${limit} }, "range": { "start": ${start}, "end": ${end} }, "filter": { "oneOf": { "field": "customerProductId", "values": [${customerProductIds as a list of strings}] } } }
required | object (com.patagona.pricemonitor.share.api.Pagination) Specifies the pagination details such as the start index and the number of records to fetch (limit). At maximum it's allowed to query 10,000 records. |
required | object (com.patagona.pricemonitor.share.api.ZonedTimeRange) Defines the time range for which offer statistics are queried. Note: The maximum time span between the start and end should not exceed 48 hours. |
object (com.patagona.pricemonitor.share.api.OneOfProductsQuery) An optional parameter to further filter the data based on product criteria. |
Returns a list of offer statistics per product. When a product has no market data then no offer statistics are returned for that product.
A 400
error is returned under the following conditions:
{- "pagination": {
- "start": 0,
- "limit": 10
}, - "range": {
- "start": "2023-10-17T08:00:00Z",
- "end": "2023-10-19T08:00:00Z"
}, - "filter": {
- "oneOf": {
- "field": "customerProductId",
- "values": [
- "1",
- "2",
- "3",
- "4",
- "5",
- "6",
- "7",
- "8",
- "9",
- "10"
]
}
}
}
{- "data": [
- {
- "productId": "string",
- "offerCount": 0,
- "stats": {
- "unitPriceStats": {
- "min": 0,
- "avg": 0,
- "max": 0
}, - "totalPriceStats": {
- "min": 0,
- "avg": 0,
- "max": 0
}, - "domainStats": [
- {
- "domain": "string",
- "competitorOfferCount": 0
}
]
}
}
]
}
This endpoint can be used to provide external offers to Pricemonitor. It's a bulk endpoint which accepts an array of individual POST offers requests each based on a "snapshot" - a unique combination of product, domain, and timestamp for a list of offers. Please note the following consistency checks performed before offers are stored:
List of individual POST offers requests which should be added in bulk.
The server understood and processed the request. Offers were processed, but not necessarily stored successfully. The 'data' field in the response body contains a detailed report of the operation outcome for each individual POST offers requests. Each item in the 'data' array is either a 'data' object with value true (indicating successful storage), or an ApiErrorResponse (indicating a storage failure).
The server could not understand the request due to invalid syntax. For example, a required field might be missing in the request body.
[- {
- "productId": "string",
- "creationDate": "2019-08-24T14:15:22Z",
- "domain": "string",
- "offers": [
- {
- "deliveryCosts": 0,
- "url": "string",
- "vendorDomainId": "string",
- "price": 0,
- "availability": true,
- "attributes": [
- {
- "key": "string",
- "value": "string"
}
], - "vendorName": "string",
- "retrievalDate": "2019-08-24T14:15:22Z",
- "id": "string",
- "productName": "string",
- "currency": "string",
- "minDeliveryHours": 0,
- "maxDeliveryHours": 0
}
]
}
]
{- "data": [
- {
- "data": true
}, - {
- "errors": [
- {
- "code": "string",
- "message": "string"
}
]
}
]
}
Feeds can contain offer-related information such as price recommendations. They can be configured to match individual demands.
No response was specified
[- {
- "contractId": "string",
- "csvDecimalSeparator": "string",
- "csvSeparator": "string",
- "deltaUrl": "string",
- "fields": [
- {
- "default": "string",
- "label": "string",
- "name": "string"
}
], - "format": "string",
- "id": "string",
- "lastAccessed": "2019-08-24T14:15:22Z",
- "lastDeletion": "2019-08-24T14:15:22Z",
- "name": "string",
- "url": "string",
- "version": 0
}
]
A feed can contain offer-related information such as price recommendations. Feeds can be configured to match individual demands.
No response was specified
Not found
{- "contractId": "string",
- "csvDecimalSeparator": "string",
- "csvSeparator": "string",
- "deltaUrl": "string",
- "fields": [
- {
- "default": "string",
- "label": "string",
- "name": "string"
}
], - "format": "string",
- "id": "string",
- "lastAccessed": "2019-08-24T14:15:22Z",
- "lastDeletion": "2019-08-24T14:15:22Z",
- "name": "string",
- "url": "string",
- "version": 0
}
Dismiss already fetched feed-entries, so they will not be part of future responses.
No response was specified
Not found
{- "contractId": "string",
- "csvDecimalSeparator": "string",
- "csvSeparator": "string",
- "deltaUrl": "string",
- "fields": [
- {
- "default": "string",
- "label": "string",
- "name": "string"
}
], - "format": "string",
- "id": "string",
- "lastAccessed": "2019-08-24T14:15:22Z",
- "lastDeletion": "2019-08-24T14:15:22Z",
- "name": "string",
- "url": "string",
- "version": 0
}
In contrast of normal feeds, feed-deltas return only results, that are new since the last (DELETE-)request.
No response was specified
Not found
{- "contractId": "string",
- "csvDecimalSeparator": "string",
- "csvSeparator": "string",
- "deltaUrl": "string",
- "fields": [
- {
- "default": "string",
- "label": "string",
- "name": "string"
}
], - "format": "string",
- "id": "string",
- "lastAccessed": "2019-08-24T14:15:22Z",
- "lastDeletion": "2019-08-24T14:15:22Z",
- "name": "string",
- "url": "string",
- "version": 0
}
Lets you download a file, containing all the data of the feed.
No response was specified
Not found
{- "contractId": "string",
- "csvDecimalSeparator": "string",
- "csvSeparator": "string",
- "deltaUrl": "string",
- "fields": [
- {
- "default": "string",
- "label": "string",
- "name": "string"
}
], - "format": "string",
- "id": "string",
- "lastAccessed": "2019-08-24T14:15:22Z",
- "lastDeletion": "2019-08-24T14:15:22Z",
- "name": "string",
- "url": "string",
- "version": 0
}
Operations to store log messages in our system.
You could integrate this API in your own system and publish the integration logs to our system so that Omnia Retail could analyze them.
Stores log messages in the platform. This endpoint aims to improve the API integration process.
The logs have been stored successfully.
{- "version": "1",
- "messages": [
- {
- "message": "Some useful message",
- "severity": "info",
- "component": "shopware or magento",
- "source": "some.domain.name",
- "contractId": "qbcxvb"
}
]
}
Allows users without a company to create a new company.
The company's name
Information about the created company.
The company name may not be empty.
User already belongs to a company.
The company could not be created.
"string"
{- "data": {
- "id": 0,
- "name": "string"
}
}
Get all contracts for the given company.
No response was specified
{- "data": [
- {
- "active": true,
- "companyName": "string",
- "contractId": "string",
- "contractName": "string",
- "contractType": "string",
- "expirationDate": "2019-08-24T14:15:22Z"
}
]
}
Add a contract for the given company.
Contract to be added
No response was specified
Unable to add contract for company ID
{- "contractType": "string",
- "contractName": "string",
- "expirationDate": "2019-08-24T14:15:22Z"
}
{- "data": {
- "active": true,
- "companyName": "string",
- "contractId": "string",
- "contractName": "string",
- "contractType": "string",
- "expirationDate": "2019-08-24T14:15:22Z"
}
}
Successfully added orders
Unable to add orders
{- "orders": [
- {
- "shippingCosts": 0,
- "orderId": "string",
- "items": [
- {
- "itemId": "string",
- "unitPrice": 0,
- "quantity": 0,
- "taxPercentage": 0
}
], - "totalPrice": 0,
- "productMappings": [
- {
- "source": "string",
- "target": "string"
}
], - "origin": "string",
- "creationDate": "2019-08-24T14:15:22Z",
- "currency": "string",
- "referrer": "string"
}
], - "version": "string"
}
{- "data": [
- {
- "data": {
- "orders": [
- {
- "shippingCosts": 0,
- "orderId": "string",
- "items": [
- {
- "itemId": null,
- "unitPrice": null,
- "quantity": null,
- "taxPercentage": null
}
], - "totalPrice": 0,
- "productMappings": [
- {
- "source": null,
- "target": null
}
], - "origin": "string",
- "creationDate": "2019-08-24T14:15:22Z",
- "currency": "string",
- "referrer": "string"
}
], - "version": "string"
}, - "errors": [
- {
- "code": "string",
- "message": "string"
}
]
}
]
}
Saves orders in bulk. If an orderId was already used by this contract this order and all it's order-items will be overwritten.
version
of the request body must be "3"orderId
orders.items.itemId
fields should correspond to a customerProductId
of a product definition inside
the contractThe response provides the ids of the successfully imported orders
Unable to add orders because of invalid request data
{- "orders": [
- {
- "shippingCosts": 5.9,
- "orderId": "2023-11_customer-a_001",
- "items": [
- {
- "unitPrice": 6.02,
- "itemId": "itemId",
- "quantity": 1,
- "taxPercentage": 19
}
], - "totalPrice": 11.92,
- "origin": "Amazon.de",
- "creationDate": "2023-11-23T11:20:21.034+01:00",
- "currency": "EUR"
}
], - "version": "3"
}
{- "data": {
- "ids": [
- "OrderId-1",
- "OrderId-2"
]
}
}
Returns all orders for a given contract.
This is a generated entry and needs to be described.
{ }
This endpoint can be used to query order statistics grouped by product.
The request body may include an optional products query. If omitted, all products are queried. Currently, product queries can be performed on two attributes:
Pagination is supported with a maximum limit of 10,000. For optimized performance:
Pagination operates based on the provided products query. For chunked requests over a set of ids, it's straightforward to specify up to 10,000 customerProductId's in the query with pagination set at start: 0, limit: 10,000.
The allowed query pattern is structured as follows:
{
"pagination": {
"start": ${start},
"limit": ${limit}
},
"range": {
"start": ${start},
"end": ${end}
},
"filter": {
"oneOf": {
"field": "customerProductId",
"values": [${customerProductIds as a list of strings}]
}
}
}
required | object (com.patagona.pricemonitor.share.api.Pagination) Specifies the pagination details such as the start index and the number of records to fetch (limit). At maximum it's allowed to query 10,000 records. |
required | object (com.patagona.pricemonitor.share.api.ZonedTimeRange) Defines the time range for which order statistics are queried. Note: The maximum time span between the start and end should not exceed 30 days. |
object (com.patagona.pricemonitor.share.api.OneOfProductsQuery) An optional parameter to further filter the data based on product criteria. |
Returns a list of order statistics per product. When a product has no sold items then no order statistics are returned for that product.
A 400
error is returned under the following conditions:
{- "pagination": {
- "start": 0,
- "limit": 10
}, - "range": {
- "start": "2023-11-01T08:00:00Z",
- "end": "2023-11-15T08:00:00Z"
}, - "filter": {
- "oneOf": {
- "field": "customerProductId",
- "values": [
- "1",
- "2",
- "3",
- "4",
- "5",
- "6",
- "7",
- "8",
- "9",
- "10"
]
}
}
}
{- "data": [
- {
- "productId": "string",
- "itemId": "string",
- "numberOfSoldItems": 0
}
]
}
This endpoint can be used to delete customer orders by an order query
The request body should contain a list of order queries. Each query should contain an order id and creation date.
The allowed query pattern is structured as follows:
{
"orders": [
{
"orderId": ${orderId},
"creationDate": ${creationDate}
}
]
}
required | Array of objects (com.patagona.pricemonitor.share.api.DeleteOrderQueryV3) List of order queries, each query should include an order id and its corresponding creation date |
Returns the number of orders that have been deleted successfully
A 400
error is returned under the following conditions:
{- "orders": [
- {
- "orderId": "123",
- "creationDate": "2023-11-01T08:00:00Z"
}
]
}
{- "data": {
- "deleted": 0
}
}
Operations to manage the settings of contracts. Only a limited number of these operations are available to customers directly.
You can register HTTP(S) callbacks in Omnia 2.0, which function as webhooks. Callbacks are triggered at the contract level when specific events occur within the system.
Please note that multiple parties can register callbacks, so when modifying callbacks, you must ensure that you do not overwrite or delete callbacks registered by other parties. We strongly recommend including a unique name for each callback to help you identify them later.
Callbacks are executed asynchronously as tasks within our system. To monitor the execution of these callbacks, you can track the corresponding tasks with the task type backend.tasks.pricemonitor.callback.
For added security, you can register a token with your callback and/or whitelist our IP range to ensure secure communication.
Retrieve all callbacks for the given contract.
Returns a list of all configured callbacks for certain events. These callbacks are executed once the respective event has been successfully completed.
Contract settings for this contract don't exist yet.
{- "pricemonitorCompleted": [
- {
- "method": "string",
- "name": "string",
- "bodyTemplate": "string",
- "url": "string",
- "headers": {
- "property1": "string",
- "property2": "string"
}
}
]
}
Create or update callbacks for the given contract. This is used to upsert (insert or update) all callbacks at once. Keep in mind that callbacks can be used by multiple parties (Omnia internal, Omnia Plugins, Users). It's strongly recommended to provide your callbacks with a unique name to easily identify them later. To update a single callback, you must also provide all other callbacks to ensure no callbacks from other parties are lost. To delete all callbacks, you can provide an empty list.
The request body should contain a list of callbacks to be stored.
required | Array of objects (com.patagona.pricemonitor.share.api.Callback) A list of callbacks that are triggered when the "Pricemonitor Completed" event occurs, which means: |
Returns the callbacks that have been successfully stored.
Contract settings for this contract don't exist yet
{- "pricemonitorCompleted": [
- {
- "method": "string",
- "name": "string",
- "bodyTemplate": "string",
- "url": "string",
- "headers": {
- "property1": "string",
- "property2": "string"
}
}
]
}
{- "pricemonitorCompleted": [
- {
- "method": "string",
- "name": "string",
- "bodyTemplate": "string",
- "url": "string",
- "headers": {
- "property1": "string",
- "property2": "string"
}
}
]
}
Operations to view and manage the tasks running in the platform. Customers can only view tasks.
Tasks are asynchronously handled jobs in our system, like price calculation or monitoring jobs.
You can use this operation to find tasks for a contract.
A use case for the find tasks operation is to get the most recent completed price calculation task to see if it was successful or failed. And if it failed, what the failures were.
If you want to find the most recent completed price calculation task you need the following query parameters:
limit=1
includeFailures=true
taskTypeFilter=backend.tasks.pricemonitor.offers.preprocessing
taskState=succeeded,failed // this only returns completed tasks. Currently running tasks are ignored
Optional: You might want to adjust the queried timerange and specify minCreationDate
and maxCreationDate
. By default all tasks ever are queried.
It can happen that there no price calculation has been run yet, then an empty list of tasks is returned.
Apart from that these are the possible task states:
Task state | Description |
---|---|
succeeded | At least for one product a price calculation has been calculated |
failed | Either all price calculations for every product failed OR the whole price calculation process failed due to an unexpected error |
If there are price calculation failures on a product level, you find the dedicated failures in the failures array of the task. Be aware: at most 1000 failures are returned.
If you want to have statistics for how many products a price has been calculated and how many price calculations failed on product level, then please take a look at the result.operations.<successful/failed/total>
fields in the response.
When a task completely fails then the response also provides a failureCode
that is of interest.
{
"state":"succeeded",
"data":{
"startTimestamp":"2023-05-08T14:40:00.213Z"
},
"result":{
"operations":{
"successful":28444,
"failed":0,
"total":28444
}
},
"contractId":"gj8qu6",
"failures":[
],
"creationDate":"2023-05-08T15:41:46.545Z",
"taskType":"backend.tasks.pricemonitor.offers.preprocessing",
"finishDate":"2023-05-08T15:44:58.853Z",
"userId":2156,
"startDate":"2023-05-08T15:41:46.555Z",
"taskId":"gj8qu6:1e318eee-3217-4ee7-a380-c6312935dcd1"
}
{
"state":"succeeded",
"data":{
"startTimestamp":"2023-05-07T10:05:00.230Z"
},
"result":{
"operations":{
"successful":2737,
"failed":24,
"total":2761
}
},
"contractId":"f8kfq5",
"failures":[
{
"messageId":"ProcessingFailure",
"attributes":{
"productId":"57282163",
"exceptionMessage":"Can't modify min price to 21.6 since it violates the current boundary PriceBoundary(24.00,24.00)"
}
},
{
"messageId":"ProcessingFailure",
"attributes":{
"productId":"57316814",
"exceptionMessage":"Can't modify min price to 35.1 since it violates the current boundary PriceBoundary(35.15,39.00)"
}
},
{
"messageId":"ProcessingFailure",
"attributes":{
"productId":"57282223",
"exceptionMessage":"Can't modify min price to 35.1 since it violates the current boundary PriceBoundary(35.15,39.00)"
}
},
{
"messageId":"ProcessingFailure",
"attributes":{
"productId":"57282324",
"exceptionMessage":"Can't modify min price to 31.5 since it violates the current boundary PriceBoundary(32.18,35.00)"
}
},
{
"messageId":"ProcessingFailure",
"attributes":{
"productId":"57282861",
"exceptionMessage":"Can't modify min price to 35.1 since it violates the current boundary PriceBoundary(35.15,39.00)"
}
},
{
"messageId":"ProcessingFailure",
"attributes":{
"productId":"57282118",
"exceptionMessage":"Can't modify min price to 26.1 since it violates the current boundary PriceBoundary(27.73,29.00)"
}
},
{
"messageId":"ProcessingFailure",
"attributes":{
"productId":"57282152",
"exceptionMessage":"Can't modify min price to 35.1 since it violates the current boundary PriceBoundary(35.15,39.00)"
}
},
{
"messageId":"ProcessingFailure",
"attributes":{
"productId":"57316468",
"exceptionMessage":"Can't modify min price to 521.1 since it violates the current boundary PriceBoundary(529.00,579.00)"
}
},
{
"messageId":"ProcessingFailure",
"attributes":{
"productId":"57282300",
"exceptionMessage":"Can't modify min price to 4769.1 since it violates the current boundary PriceBoundary(4916.84,5299.00)"
}
},
{
"messageId":"ProcessingFailure",
"attributes":{
"productId":"57317261",
"exceptionMessage":"Can't modify min price to 125.10000000000001 since it violates the current boundary PriceBoundary(129.00,139.00)"
}
},
{
"messageId":"ProcessingFailure",
"attributes":{
"productId":"57282345",
"exceptionMessage":"Can't modify min price to 1205.1000000000001 since it violates the current boundary PriceBoundary(1299.00,1339.00)"
}
},
{
"messageId":"ProcessingFailure",
"attributes":{
"productId":"57282464",
"exceptionMessage":"Can't modify min price to 152.1 since it violates the current boundary PriceBoundary(162.84,169.00)"
}
},
{
"messageId":"ProcessingFailure",
"attributes":{
"productId":"57282168",
"exceptionMessage":"Can't modify min price to 836.1 since it violates the current boundary PriceBoundary(899.00,929.00)"
}
},
{
"messageId":"ProcessingFailure",
"attributes":{
"productId":"57282165",
"exceptionMessage":"Can't modify min price to 1205.1000000000001 since it violates the current boundary PriceBoundary(1299.00,1339.00)"
}
},
{
"messageId":"ProcessingFailure",
"attributes":{
"productId":"57282895",
"exceptionMessage":"Can't modify min price to 1205.1000000000001 since it violates the current boundary PriceBoundary(1299.00,1339.00)"
}
},
{
"messageId":"ProcessingFailure",
"attributes":{
"productId":"57282307",
"exceptionMessage":"Can't modify min price to 1205.1000000000001 since it violates the current boundary PriceBoundary(1299.00,1339.00)"
}
},
{
"messageId":"ProcessingFailure",
"attributes":{
"productId":"57282002",
"exceptionMessage":"Can't modify min price to 332.1 since it violates the current boundary PriceBoundary(349.00,369.00)"
}
},
{
"messageId":"ProcessingFailure",
"attributes":{
"productId":"57282399",
"exceptionMessage":"Can't modify min price to 1025.1000000000001 since it violates the current boundary PriceBoundary(1099.00,1139.00)"
}
},
{
"messageId":"ProcessingFailure",
"attributes":{
"productId":"57282374",
"exceptionMessage":"Can't modify min price to 1025.1000000000001 since it violates the current boundary PriceBoundary(1099.00,1139.00)"
}
},
{
"messageId":"ProcessingFailure",
"attributes":{
"productId":"57282694",
"exceptionMessage":"Can't modify min price to 836.1 since it violates the current boundary PriceBoundary(899.00,929.00)"
}
},
{
"messageId":"ProcessingFailure",
"attributes":{
"productId":"57282155",
"exceptionMessage":"Can't modify min price to 836.1 since it violates the current boundary PriceBoundary(899.00,929.00)"
}
},
{
"messageId":"ProcessingFailure",
"attributes":{
"productId":"57282271",
"exceptionMessage":"Can't modify min price to 836.1 since it violates the current boundary PriceBoundary(899.00,929.00)"
}
},
{
"messageId":"ProcessingFailure",
"attributes":{
"productId":"57282087",
"exceptionMessage":"Can't modify min price to 1025.1000000000001 since it violates the current boundary PriceBoundary(1099.00,1139.00)"
}
},
{
"messageId":"ProcessingFailure",
"attributes":{
"productId":"57282489",
"exceptionMessage":"Can't modify min price to 1025.1000000000001 since it violates the current boundary PriceBoundary(1099.00,1139.00)"
}
}
],
"creationDate":"2023-05-09T10:05:00.230Z",
"taskType":"backend.tasks.pricemonitor.offers.preprocessing",
"finishDate":"2023-05-09T10:05:20.095Z",
"userId":2156,
"startDate":"2023-05-09T10:05:00.238Z",
"taskId":"f8kfq5:44680e2e-2458-4a64-b8a4-edfd5fb2517f"
}
{
"state":"failed",
"data":{
"startTimestamp":"2023-05-09T04:00:02.974Z"
},
"result":{
"operations":{
"successful":0,
"failed":93,
"total":93
}
},
"failureCode":"user.preprocessing.strategy.failure",
"contractId":"tujamm",
"failures":[
{
"messageId":"ProcessingFailure",
"attributes":{
"productId":"88673055",
"exceptionMessage":"Can't modify max price to 0.0 since it violates the current boundary PriceBoundary(358.6128,1000000.00)"
}
},
{
"messageId":"ProcessingFailure",
"attributes":{
"productId":"68328105",
"exceptionMessage":"Can't modify max price to 15.6975 since it violates the current boundary PriceBoundary(15.743,2701.87)"
}
},
{
"messageId":"ProcessingFailure",
"attributes":{
"productId":"68328438",
"exceptionMessage":"Can't modify max price to 62.947500000000005 since it violates the current boundary PriceBoundary(68.614,2701.87)"
}
},
{
"messageId":"ProcessingFailure",
"attributes":{
"productId":"68328838",
"exceptionMessage":"Can't modify max price to 9.397499999999999 since it violates the current boundary PriceBoundary(11.793600000000001,2701.87)"
}
},
{
"messageId":"ProcessingFailure",
"attributes":{
"productId":"67356778",
"exceptionMessage":"Can't modify max price to 555.45 since it violates the current boundary PriceBoundary(667.3758,1049.0)"
}
},
{
"messageId":"ProcessingFailure",
"attributes":{
"productId":"78763642",
"exceptionMessage":"Can't modify max price to 335.9475 since it violates the current boundary PriceBoundary(402.94800000000004,2701.87)"
}
},
{
"messageId":"ProcessingFailure",
"attributes":{
"productId":"67356961",
"exceptionMessage":"Can't modify max price to 1154.9895000000001 since it violates the current boundary PriceBoundary(1340.1752000000001,2199.0)"
}
},
{
"messageId":"ProcessingFailure",
"attributes":{
"productId":"68329414",
"exceptionMessage":"Can't modify max price to 12.5475 since it violates the current boundary PriceBoundary(17.654,2701.87)"
}
},
{
"messageId":"ProcessingFailure",
"attributes":{
"productId":"78763669",
"exceptionMessage":"Can't modify max price to 10.4475 since it violates the current boundary PriceBoundary(15.2152,2701.87)"
}
},
{
"messageId":"ProcessingFailure",
"attributes":{
"productId":"68328448",
"exceptionMessage":"Can't modify max price to 98.64750000000001 since it violates the current boundary PriceBoundary(102.284,2701.87)"
}
},
{
"messageId":"ProcessingFailure",
"attributes":{
"productId":"68756226",
"exceptionMessage":"Can't modify max price to 131.19750000000002 since it violates the current boundary PriceBoundary(152.3158,2701.87)"
}
},
{
"messageId":"ProcessingFailure",
"attributes":{
"productId":"68328748",
"exceptionMessage":"Can't modify max price to 4.1475 since it violates the current boundary PriceBoundary(4.2042,2701.87)"
}
},
{
"messageId":"ProcessingFailure",
"attributes":{
"productId":"87832326",
"exceptionMessage":"Can't modify max price to 12.5475 since it violates the current boundary PriceBoundary(16.1252,2701.87)"
}
},
{
"messageId":"ProcessingFailure",
"attributes":{
"productId":"68329058",
"exceptionMessage":"Can't modify max price to 2.0475 since it violates the current boundary PriceBoundary(2.0566,2701.87)"
}
},
{
"messageId":"ProcessingFailure",
"attributes":{
"productId":"68328749",
"exceptionMessage":"Can't modify max price to 8.3475 since it violates the current boundary PriceBoundary(12.1394,2701.87)"
}
},
{
"messageId":"ProcessingFailure",
"attributes":{
"productId":"68329108",
"exceptionMessage":"Can't modify max price to 46.14750000000001 since it violates the current boundary PriceBoundary(47.502,2701.87)"
}
},
{
"messageId":"ProcessingFailure",
"attributes":{
"productId":"67356678",
"exceptionMessage":"Can't modify max price to 418.95000000000005 since it violates the current boundary PriceBoundary(508.5262000000001,789.99)"
}
},
{
"messageId":"ProcessingFailure",
"attributes":{
"productId":"79044179",
"exceptionMessage":"Can't modify max price to 16.7475 since it violates the current boundary PriceBoundary(19.747,2701.87)"
}
},
{
"messageId":"ProcessingFailure",
"attributes":{
"productId":"68328597",
"exceptionMessage":"Can't modify max price to 125.9475 since it violates the current boundary PriceBoundary(130.13,2701.87)"
}
},
{
"messageId":"ProcessingFailure",
"attributes":{
"productId":"78763724",
"exceptionMessage":"Can't modify max price to 12.600000000000001 since it violates the current boundary PriceBoundary(14.7056,2701.87)"
}
},
{
"messageId":"ProcessingFailure",
"attributes":{
"productId":"68328344",
"exceptionMessage":"Can't modify max price to 62.947500000000005 since it violates the current boundary PriceBoundary(63.7,2701.87)"
}
},
{
"messageId":"ProcessingFailure",
"attributes":{
"productId":"78762366",
"exceptionMessage":"Can't modify max price to 1101.45 since it violates the current boundary PriceBoundary(1397.4142,1649.0)"
}
},
{
"messageId":"ProcessingFailure",
"attributes":{
"productId":"84641852",
"exceptionMessage":"Can't modify max price to 31.4475 since it violates the current boundary PriceBoundary(39.13,2701.87)"
}
},
{
"messageId":"ProcessingFailure",
"attributes":{
"productId":"78763514",
"exceptionMessage":"Can't modify max price to 272.9475 since it violates the current boundary PriceBoundary(292.929,2701.87)"
}
},
{
"messageId":"ProcessingFailure",
"attributes":{
"productId":"78762367",
"exceptionMessage":"Can't modify max price to 99.75 since it violates the current boundary PriceBoundary(103.77640000000001,139.99)"
}
},
{
"messageId":"ProcessingFailure",
"attributes":{
"productId":"68327996",
"exceptionMessage":"Can't modify max price to 68.1975 since it violates the current boundary PriceBoundary(71.8354,2701.87)"
}
},
{
"messageId":"ProcessingFailure",
"attributes":{
"productId":"68373053",
"exceptionMessage":"Can't modify max price to 19.8975 since it violates the current boundary PriceBoundary(20.4932,2701.87)"
}
},
{
"messageId":"ProcessingFailure",
"attributes":{
"productId":"68865365",
"exceptionMessage":"Can't modify max price to 488.25 since it violates the current boundary PriceBoundary(560.7420000000001,869.99)"
}
},
{
"messageId":"ProcessingFailure",
"attributes":{
"productId":"68328261",
"exceptionMessage":"Can't modify max price to 57.697500000000005 since it violates the current boundary PriceBoundary(75.69380000000001,2701.87)"
}
},
{
"messageId":"ProcessingFailure",
"attributes":{
"productId":"68373051",
"exceptionMessage":"Can't modify max price to 2.0475 since it violates the current boundary PriceBoundary(3.6946,2701.87)"
}
},
{
"messageId":"ProcessingFailure",
"attributes":{
"productId":"78762370",
"exceptionMessage":"Can't modify max price to 2623.9500000000003 since it violates the current boundary PriceBoundary(3310.7984,3799.0)"
}
},
{
"messageId":"ProcessingFailure",
"attributes":{
"productId":"78764192",
"exceptionMessage":"Can't modify min price to 0.0 since it violates the current boundary PriceBoundary(0.01,1000000.00)"
}
},
{
"messageId":"ProcessingFailure",
"attributes":{
"productId":"67356770",
"exceptionMessage":"Can't modify max price to 523.95 since it violates the current boundary PriceBoundary(606.2420000000001,949.99)"
}
},
{
"messageId":"ProcessingFailure",
"attributes":{
"productId":"68566764",
"exceptionMessage":"Can't modify max price to 3.0975 since it violates the current boundary PriceBoundary(3.5126,2701.87)"
}
},
{
"messageId":"ProcessingFailure",
"attributes":{
"productId":"82558573",
"exceptionMessage":"Can't modify max price to 13.5975 since it violates the current boundary PriceBoundary(22.677200000000003,2701.87)"
}
},
{
"messageId":"ProcessingFailure",
"attributes":{
"productId":"71348897",
"exceptionMessage":"Can't modify max price to 110.25 since it violates the current boundary PriceBoundary(130.40300000000002,159.99)"
}
},
{
"messageId":"ProcessingFailure",
"attributes":{
"productId":"67356779",
"exceptionMessage":"Can't modify max price to 523.95 since it violates the current boundary PriceBoundary(597.324,929.99)"
}
},
{
"messageId":"ProcessingFailure",
"attributes":{
"productId":"78763130",
"exceptionMessage":"Can't modify max price to 262.4475 since it violates the current boundary PriceBoundary(297.479,2701.87)"
}
},
{
"messageId":"ProcessingFailure",
"attributes":{
"productId":"68328608",
"exceptionMessage":"Can't modify max price to 15.6975 since it violates the current boundary PriceBoundary(18.436600000000002,2701.87)"
}
},
{
"messageId":"ProcessingFailure",
"attributes":{
"productId":"67356767",
"exceptionMessage":"Can't modify max price to 450.45000000000005 since it violates the current boundary PriceBoundary(484.66600000000005,759.99)"
}
},
{
"messageId":"ProcessingFailure",
"attributes":{
"productId":"68328114",
"exceptionMessage":"Can't modify max price to 62.947500000000005 since it violates the current boundary PriceBoundary(65.52,2701.87)"
}
},
{
"messageId":"ProcessingFailure",
"attributes":{
"productId":"88113739",
"exceptionMessage":"Can't modify max price to 2.0475 since it violates the current boundary PriceBoundary(26.499200000000002,2701.87)"
}
},
{
"messageId":"ProcessingFailure",
"attributes":{
"productId":"82891765",
"exceptionMessage":"Can't modify max price to 104.9475 since it violates the current boundary PriceBoundary(164.10940000000002,2701.87)"
}
},
{
"messageId":"ProcessingFailure",
"attributes":{
"productId":"67356775",
"exceptionMessage":"Can't modify max price to 498.75 since it violates the current boundary PriceBoundary(570.9522,889.99)"
}
},
{
"messageId":"ProcessingFailure",
"attributes":{
"productId":"67357075",
"exceptionMessage":"Can't modify max price to 82.95 since it violates the current boundary PriceBoundary(100.71880000000002,119.99)"
}
},
{
"messageId":"ProcessingFailure",
"attributes":{
"productId":"68328424",
"exceptionMessage":"Can't modify max price to 141.6975 since it violates the current boundary PriceBoundary(202.02,2701.87)"
}
},
{
"messageId":"ProcessingFailure",
"attributes":{
"productId":"67356784",
"exceptionMessage":"Can't modify max price to 119.7 since it violates the current boundary PriceBoundary(144.01659999999998,169.99)"
}
},
{
"messageId":"ProcessingFailure",
"attributes":{
"productId":"78763163",
"exceptionMessage":"Can't modify max price to 57.697500000000005 since it violates the current boundary PriceBoundary(58.80420000000001,2701.87)"
}
},
{
"messageId":"ProcessingFailure",
"attributes":{
"productId":"78763355",
"exceptionMessage":"Can't modify max price to 15.6975 since it violates the current boundary PriceBoundary(16.616600000000002,2701.87)"
}
},
{
"messageId":"ProcessingFailure",
"attributes":{
"productId":"78762365",
"exceptionMessage":"Can't modify max price to 681.45 since it violates the current boundary PriceBoundary(883.2278000000001,989.99)"
}
},
{
"messageId":"ProcessingFailure",
"attributes":{
"productId":"79044161",
"exceptionMessage":"Can't modify max price to 9.397499999999999 since it violates the current boundary PriceBoundary(2682.6800000000003,2701.87)"
}
},
{
"messageId":"ProcessingFailure",
"attributes":{
"productId":"79809361",
"exceptionMessage":"Can't modify max price to 16.7475 since it violates the current boundary PriceBoundary(21.2394,2701.87)"
}
},
{
"messageId":"ProcessingFailure",
"attributes":{
"productId":"67356786",
"exceptionMessage":"Can't modify max price to 488.25 since it violates the current boundary PriceBoundary(560.7420000000001,879.99)"
}
},
{
"messageId":"ProcessingFailure",
"attributes":{
"productId":"68329134",
"exceptionMessage":"Can't modify max price to 16.7475 since it violates the current boundary PriceBoundary(32.123,2701.87)"
}
},
{
"messageId":"ProcessingFailure",
"attributes":{
"productId":"68328205",
"exceptionMessage":"Can't modify max price to 102.84750000000001 since it violates the current boundary PriceBoundary(119.70139999999999,2701.87)"
}
},
{
"messageId":"ProcessingFailure",
"attributes":{
"productId":"78763330",
"exceptionMessage":"Can't modify max price to 5.197500000000001 since it violates the current boundary PriceBoundary(8.5722,2701.87)"
}
},
{
"messageId":"ProcessingFailure",
"attributes":{
"productId":"78763539",
"exceptionMessage":"Can't modify max price to 125.9475 since it violates the current boundary PriceBoundary(133.2968,2701.87)"
}
},
{
"messageId":"ProcessingFailure",
"attributes":{
"productId":"78763512",
"exceptionMessage":"Can't modify max price to 24.0975 since it violates the current boundary PriceBoundary(31.668,2701.87)"
}
},
{
"messageId":"ProcessingFailure",
"attributes":{
"productId":"68328857",
"exceptionMessage":"Can't modify max price to 31.4475 since it violates the current boundary PriceBoundary(37.1826,2701.87)"
}
},
{
"messageId":"ProcessingFailure",
"attributes":{
"productId":"78762372",
"exceptionMessage":"Can't modify max price to 114.45 since it violates the current boundary PriceBoundary(145.16320000000002,169.99)"
}
},
{
"messageId":"ProcessingFailure",
"attributes":{
"productId":"68328455",
"exceptionMessage":"Can't modify max price to 136.4475 since it violates the current boundary PriceBoundary(192.37400000000002,2701.87)"
}
},
{
"messageId":"ProcessingFailure",
"attributes":{
"productId":"68647965",
"exceptionMessage":"Can't modify max price to 26.1975 since it violates the current boundary PriceBoundary(27.937,2701.87)"
}
},
{
"messageId":"ProcessingFailure",
"attributes":{
"productId":"67356782",
"exceptionMessage":"Can't modify max price to 376.95 since it violates the current boundary PriceBoundary(397.54260000000005,619.99)"
}
},
{
"messageId":"ProcessingFailure",
"attributes":{
"productId":"79431469",
"exceptionMessage":"Can't modify max price to 15.6975 since it violates the current boundary PriceBoundary(31.8136,2701.87)"
}
},
{
"messageId":"ProcessingFailure",
"attributes":{
"productId":"78763460",
"exceptionMessage":"Can't modify max price to 38.79750000000001 since it violates the current boundary PriceBoundary(134.64360000000002,2701.87)"
}
},
{
"messageId":"ProcessingFailure",
"attributes":{
"productId":"78763601",
"exceptionMessage":"Can't modify max price to 29.3475 since it violates the current boundary PriceBoundary(29.9936,2701.87)"
}
},
{
"messageId":"ProcessingFailure",
"attributes":{
"productId":"67356833",
"exceptionMessage":"Can't modify max price to 523.95 since it violates the current boundary PriceBoundary(617.9264,959.99)"
}
},
{
"messageId":"ProcessingFailure",
"attributes":{
"productId":"68044131",
"exceptionMessage":"Can't modify max price to 292.95 since it violates the current boundary PriceBoundary(364.6734,419.99)"
}
},
{
"messageId":"ProcessingFailure",
"attributes":{
"productId":"74301166",
"exceptionMessage":"Can't modify max price to 166.95000000000002 since it violates the current boundary PriceBoundary(221.40300000000002,9999.0)"
}
},
{
"messageId":"ProcessingFailure",
"attributes":{
"productId":"68329019",
"exceptionMessage":"Can't modify max price to 6.2475000000000005 since it violates the current boundary PriceBoundary(12.776399999999999,2701.87)"
}
},
{
"messageId":"ProcessingFailure",
"attributes":{
"productId":"67356722",
"exceptionMessage":"Can't modify max price to 866.25 since it violates the current boundary PriceBoundary(1092.8736000000001,1249.0)"
}
},
{
"messageId":"ProcessingFailure",
"attributes":{
"productId":"78764189",
"exceptionMessage":"Can't modify max price to 52.447500000000005 since it violates the current boundary PriceBoundary(56.27440000000001,2701.87)"
}
},
{
"messageId":"ProcessingFailure",
"attributes":{
"productId":"78764000",
"exceptionMessage":"Can't modify max price to 2.0475 since it violates the current boundary PriceBoundary(5.6602,2701.87)"
}
},
{
"messageId":"ProcessingFailure",
"attributes":{
"productId":"67356768",
"exceptionMessage":"Can't modify max price to 488.25 since it violates the current boundary PriceBoundary(560.924,879.99)"
}
},
{
"messageId":"ProcessingFailure",
"attributes":{
"productId":"68329149",
"exceptionMessage":"Can't modify max price to 20.9475 since it violates the current boundary PriceBoundary(23.0958,2701.87)"
}
},
{
"messageId":"ProcessingFailure",
"attributes":{
"productId":"82278909",
"exceptionMessage":"Can't modify max price to 69.2475 since it violates the current boundary PriceBoundary(114.66000000000001,2701.87)"
}
},
{
"messageId":"ProcessingFailure",
"attributes":{
"productId":"68647966",
"exceptionMessage":"Can't modify max price to 26.1975 since it violates the current boundary PriceBoundary(27.937,2701.87)"
}
},
{
"messageId":"ProcessingFailure",
"attributes":{
"productId":"78763897",
"exceptionMessage":"Can't modify max price to 16.7475 since it violates the current boundary PriceBoundary(17.1444,2701.87)"
}
},
{
"messageId":"ProcessingFailure",
"attributes":{
"productId":"75351547",
"exceptionMessage":"Can't modify max price to 109.2 since it violates the current boundary PriceBoundary(128.856,239.99)"
}
},
{
"messageId":"ProcessingFailure",
"attributes":{
"productId":"78763641",
"exceptionMessage":"Can't modify max price to 52.447500000000005 since it violates the current boundary PriceBoundary(60.06,2701.87)"
}
},
{
"messageId":"ProcessingFailure",
"attributes":{
"productId":"68328459",
"exceptionMessage":"Can't modify max price to 36.697500000000005 since it violates the current boundary PriceBoundary(45.427200000000006,2701.87)"
}
},
{
"messageId":"ProcessingFailure",
"attributes":{
"productId":"68328752",
"exceptionMessage":"Can't modify max price to 20.9475 since it violates the current boundary PriceBoundary(22.8592,2701.87)"
}
},
{
"messageId":"ProcessingFailure",
"attributes":{
"productId":"78763678",
"exceptionMessage":"Can't modify max price to 204.6975 since it violates the current boundary PriceBoundary(278.46000000000004,2701.87)"
}
},
{
"messageId":"ProcessingFailure",
"attributes":{
"productId":"74301169",
"exceptionMessage":"Can't modify max price to 261.45 since it violates the current boundary PriceBoundary(327.63640000000004,389.99)"
}
},
{
"messageId":"ProcessingFailure",
"attributes":{
"productId":"68329012",
"exceptionMessage":"Can't modify max price to 20.9475 since it violates the current boundary PriceBoundary(23.605400000000003,2701.87)"
}
},
{
"messageId":"ProcessingFailure",
"attributes":{
"productId":"78763855",
"exceptionMessage":"Can't modify max price to 13.5975 since it violates the current boundary PriceBoundary(17.672200000000004,2701.87)"
}
},
{
"messageId":"ProcessingFailure",
"attributes":{
"productId":"81749897",
"exceptionMessage":"Can't modify max price to 292.95 since it violates the current boundary PriceBoundary(326.5262,529.99)"
}
},
{
"messageId":"ProcessingFailure",
"attributes":{
"productId":"67357159",
"exceptionMessage":"Can't modify max price to 156.45000000000002 since it violates the current boundary PriceBoundary(225.8074,229.99)"
}
},
{
"messageId":"ProcessingFailure",
"attributes":{
"productId":"67356769",
"exceptionMessage":"Can't modify max price to 603.75 since it violates the current boundary PriceBoundary(692.3462000000001,1089.0)"
}
},
{
"messageId":"ProcessingFailure",
"attributes":{
"productId":"68329423",
"exceptionMessage":"Can't modify max price to 10.4475 since it violates the current boundary PriceBoundary(10.92,2701.87)"
}
},
{
"messageId":"ProcessingFailure",
"attributes":{
"productId":"68327990",
"exceptionMessage":"Can't modify max price to 146.9475 since it violates the current boundary PriceBoundary(148.3664,2701.87)"
}
},
{
"messageId":"ProcessingFailure",
"attributes":{
"productId":"67356697",
"exceptionMessage":"Can't modify max price to 1395.45 since it violates the current boundary PriceBoundary(1826.7340000000002,1999.0)"
}
},
{
"messageId":"ProcessingFailure",
"attributes":{
"productId":"87832348",
"exceptionMessage":"Can't modify max price to 10.4475 since it violates the current boundary PriceBoundary(15.834,2701.87)"
}
}
],
"creationDate":"2023-05-09T04:00:53.558Z",
"taskType":"backend.tasks.pricemonitor.offers.preprocessing",
"finishDate":"2023-05-09T04:00:59.213Z",
"userId":2156,
"startDate":"2023-05-09T04:00:54.677Z",
"taskId":"tujamm:49329f97-62ff-4c65-89af-062432e82095"
}
{
"state":"failed",
"data":{
"startTimestamp":"2023-05-09T08:00:01.217Z"
},
"failureCode":"pricemonitor.uncategorized.failure",
"contractId":"97j8f7",
"failures":[
{
"messageId":"backend.tasks.pricemonitor.offers.preprocessing.unknownFailure",
"attributes":{
"error":"backend.tasks.pricemonitor.offers.preprocessing.unknownFailure",
"exception":"scala.MatchError",
"exceptionMessage":"null"
}
}
],
"creationDate":"2023-05-09T09:09:18.888Z",
"taskType":"backend.tasks.pricemonitor.offers.preprocessing",
"finishDate":"2023-05-09T09:09:19.010Z",
"userId":2156,
"startDate":"2023-05-09T09:09:18.898Z",
"taskId":"97j8f7:9a026a7a-5195-4cc4-b6b5-ceeb8cb431fa"
}
The search can be narrowed down by providing the IDs of the tasks, separated by comma
No response was specified
[- {
- "contractId": "string",
- "creationDate": "2019-08-24T14:15:22Z",
- "data": [
- "string"
], - "failures": [
- {
- "attributes": {
- "property1": { },
- "property2": { }
}, - "messageId": "string"
}
], - "finishDate": "2019-08-24T14:15:22Z",
- "parentId": "string",
- "startDate": "2019-08-24T14:15:22Z",
- "state": "string",
- "taskId": "string",
- "taskType": "string"
}
]
Finds a task with the specified id for the given contract.
No response was specified
Not found
{- "contractId": "string",
- "creationDate": "2019-08-24T14:15:22Z",
- "data": [
- "string"
], - "failures": [
- {
- "attributes": {
- "property1": { },
- "property2": { }
}, - "messageId": "string"
}
], - "finishDate": "2019-08-24T14:15:22Z",
- "parentId": "string",
- "startDate": "2019-08-24T14:15:22Z",
- "state": "string",
- "taskId": "string",
- "taskType": "string"
}
Get a list of metadata of all strategy versions for a contract.
List of metadata of all strategy versions
{- "data": {
- "history": [
- {
- "documentVersion": 0,
- "documentVersionMessage": "string",
- "version": "string",
- "updateDate": "2019-08-24T14:15:22Z",
- "updatedBy": "string"
}
]
}
}
Operations to view all supported domains.
A domain is an external datasource or website that contains information about offers for products for sale. Information like product characteristics and sales characterics like price, stock level and delivery times and costs.
This endpoint provides all domains which are supported by our system. Along with other attributes we are providing the corresponding possible offer sources. Only domains which include the offer source DEFAULT_MONITORING are supported out-of-the-box by our monitoring pipeline.
A list of domains
{- "data": {
- "domains": [
- {
- "domain": "string",
- "domainId": 0,
- "offerSources": [
- "string"
], - "name": "string"
}
]
}
}
Return the plugin registration for the given contract.
Returns a plugin registration for given contract.
Given plugin registration does not exist.
{- "data": {
- "pluginId": "string",
- "shopSystem": "string",
- "metricsUrl": "string"
}
}
Create and/or update the plugin registration for given contract.
Plugin registration for given contract stored successfully.
{- "pluginId": "string",
- "shopSystem": "string",
- "metricsUrl": "string",
- "version": "1"
}
{- "data": { }
}