PriceTrack API
Interfacing with the PriceTrack REST & XML API
The PriceTrack REST & XML API enables developers to easily interact with the PriceTrack Web Services via third-party applications. Requests are made to the API using standard GET and POST commands and the API returns its results in XML or JSON depending on the Accept header you provide in your request (Accept: application/xml for XML requests, Accept: application/json for JSON requests). API returns XML response as default for any other Accept headers.
Examples
For the examples in this section we’re using the command line utility cURL. This should provide a good platform to familiarize yourself with the API before integrating it into your application using the programming language of your choice.
Authentication
The REST API uses token query string parameter over SSL for each request. To authenticate, simply accompany each request with your PriceTrack Token.
You can find the API Key by browsing to the Company page from the Panel. If you don't have a PriceTrack Token, a free one can be created here.
Getting Your Account Information
GETThis command uses a GET request to fetch information about your account.
| Parameter | Description | Required | Default |
|---|---|---|---|
| token | API token (query parameter) | Yes | - |
| pageIndex | Pagination index (query parameter) | No | 0 |
curl -i -H "Accept: application/json" -X GET https://api.pricetrack.eu/v1/account?token={YOUR_TOKEN}
curl -i -H "Accept: application/xml" -X GET https://api.pricetrack.eu/v1/account?token={YOUR_TOKEN}
{
"Status": 200,
"Message": "Operation successful",
"Quote": {
"Max": 20000,
"Remaining": 19984
},
"Page": {
"PageIndex": 0,
"Pages": 1,
"Records": 1,
"HasMore": false
},
"Errors": null,
"Data": {
"Id": "6de0ca53-3f73-44ee-a8be-1e7d9f7b0f19",
"Name": "Acme Retail",
"Country": "TR",
"Subscription": "Professional",
"SubscriptionExpires": "2026-12-31T23:59:59+03:00",
"Members": [
{
"Id": "d8c5db41-6b58-4f5e-9c9f-ea3f6dc282bb",
"Firstname": "Jane",
"Lastname": "Doe",
"Email": "j***@acme.example",
"Role": "Manager"
},
{
"Id": "e0f7ab2f-551c-48eb-9a13-9614f4ddc98a",
"Firstname": "John",
"Lastname": "Doe",
"Email": "j***@acme.example",
"Role": "User"
}
]
}
}
<?xml version="1.0" encoding="UTF-8"?>
<ApiResponse xmlns="http://schemas.datacontract.org/2004/07/PriceTrack.Web.Api.Models" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
<Data i:type="Company">
<Country>TR</Country>
<Id>6de0ca53-3f73-44ee-a8be-1e7d9f7b0f19</Id>
<Members>
<Member>
<Email>j***@acme.example</Email>
<Firstname>Jane</Firstname>
<Id>d8c5db41-6b58-4f5e-9c9f-ea3f6dc282bb</Id>
<Lastname>Doe</Lastname>
<Role>Manager</Role>
</Member>
<Member>
<Email>j***@acme.example</Email>
<Firstname>John</Firstname>
<Id>e0f7ab2f-551c-48eb-9a13-9614f4ddc98a</Id>
<Lastname>Doe</Lastname>
<Role>User</Role>
</Member>
</Members>
<Name>Acme Retail</Name>
<Subscription>Professional</Subscription>
<SubscriptionExpires>2026-12-31T23:59:59+03:00</SubscriptionExpires>
</Data>
<Errors i:nil="true" />
<Message>Operation successful</Message>
<Page>
<HasMore>false</HasMore>
<PageIndex>0</PageIndex>
<Pages>1</Pages>
<Records>1</Records>
</Page>
<Quote>
<Max>20000</Max>
<Remaining>19984</Remaining>
</Quote>
<Status>200</Status>
</ApiResponse>
Alerts
GETThis command uses a GET request to fetch information about your alerts.
| Parameter | Description | Required | Default |
|---|---|---|---|
| token | API token (query parameter) | Yes | - |
| pageIndex | Pagination index (query parameter) | No | 0 |
curl -i -H "Accept: application/json" -X GET https://api.pricetrack.eu/v1/alerts?token={YOUR_TOKEN}
curl -i -H "Accept: application/xml" -X GET https://api.pricetrack.eu/v1/alerts?token={YOUR_TOKEN}
{
"Status": 200,
"Message": "Operation successful",
"Quote": {
"Max": 20000,
"Remaining": 19983
},
"Page": {
"PageIndex": 0,
"Pages": 1,
"Records": 2,
"HasMore": false
},
"Errors": null,
"Data": [
{
"Id": "9b7e3538-66f8-4a7f-b1a2-4ba87fc0dd90",
"Name": "Price Drop Alert",
"Message": "3 products have prices below your target.",
"Status": "Open",
"Priority": "High",
"AffectedProducts": 3,
"Finished": null,
"Started": "2026-04-03T09:00:00+03:00"
},
{
"Id": "1eb8c0af-608e-4d0c-9a87-352ce406f8b1",
"Name": "Stock Out Alert",
"Message": "1 competitor listing is out of stock.",
"Status": "Closed",
"Priority": "Medium",
"AffectedProducts": 1,
"Finished": "2026-04-02T18:10:00+03:00",
"Started": "2026-04-02T16:42:00+03:00"
}
]
}
<?xml version="1.0" encoding="UTF-8"?>
<ApiResponse xmlns="http://schemas.datacontract.org/2004/07/PriceTrack.Web.Api.Models" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
<Data i:type="ArrayOfAlert">
<Alert>
<AffectedProducts>3</AffectedProducts>
<Finished i:nil="true" />
<Id>9b7e3538-66f8-4a7f-b1a2-4ba87fc0dd90</Id>
<Message>3 products have prices below your target.</Message>
<Name>Price Drop Alert</Name>
<Priority>High</Priority>
<Started>2026-04-03T09:00:00+03:00</Started>
<Status>Open</Status>
</Alert>
<Alert>
<AffectedProducts>1</AffectedProducts>
<Finished>2026-04-02T18:10:00+03:00</Finished>
<Id>1eb8c0af-608e-4d0c-9a87-352ce406f8b1</Id>
<Message>1 competitor listing is out of stock.</Message>
<Name>Stock Out Alert</Name>
<Priority>Medium</Priority>
<Started>2026-04-02T16:42:00+03:00</Started>
<Status>Closed</Status>
</Alert>
</Data>
<Errors i:nil="true" />
<Message>Operation successful</Message>
<Page>
<HasMore>false</HasMore>
<PageIndex>0</PageIndex>
<Pages>1</Pages>
<Records>2</Records>
</Page>
<Quote>
<Max>20000</Max>
<Remaining>19983</Remaining>
</Quote>
<Status>200</Status>
</ApiResponse>
Brand Management
GETThis command uses a GET request to fetch your brands.
| Parameter | Description | Required | Default |
|---|---|---|---|
| token | API token (query parameter) | Yes | - |
| pageIndex | Pagination index (query parameter) | No | 0 |
curl -i -H "Accept: application/json" -X GET "https://api.pricetrack.eu/v1/brands?token={YOUR_TOKEN}&pageIndex=0"
curl -i -H "Accept: application/xml" -X GET "https://api.pricetrack.eu/v1/brands?token={YOUR_TOKEN}&pageIndex=0"
{
"Status": 200,
"Message": "Operation successful",
"Quote": {
"Max": 20000,
"Remaining": 19982
},
"Page": {
"PageIndex": 0,
"Pages": 1,
"Records": 2,
"HasMore": false
},
"Errors": null,
"Data": [
{
"Id": "499e8152-e009-4759-aac8-4dbabd66129d",
"Name": "A Brand",
"Code": "a-brand"
},
{
"Id": "5550b585-68ef-4c71-8284-aa4a5336e172",
"Name": "B Brand",
"Code": "b-brand"
}
]
}
<?xml version="1.0" encoding="UTF-8"?>
<ApiResponse xmlns="http://schemas.datacontract.org/2004/07/PriceTrack.Web.Api.Models" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
<Data i:type="ArrayOfBrand">
<Brand>
<Code>a-brand</Code>
<Id>499e8152-e009-4759-aac8-4dbabd66129d</Id>
<Name>A Brand</Name>
</Brand>
<Brand>
<Code>b-brand</Code>
<Id>5550b585-68ef-4c71-8284-aa4a5336e172</Id>
<Name>B Brand</Name>
</Brand>
</Data>
<Errors i:nil="true" />
<Message>Operation successful</Message>
<Page>
<HasMore>false</HasMore>
<PageIndex>0</PageIndex>
<Pages>1</Pages>
<Records>2</Records>
</Page>
<Quote>
<Max>20000</Max>
<Remaining>19982</Remaining>
</Quote>
<Status>200</Status>
</ApiResponse>
Create A New Brand
POSTNew brands can be created with a POST command to /v1/brands/add path by given parameters below.
| Parameter | Description | Required |
|---|---|---|
| token | API token (query parameter) | Yes |
| Name | Name of the brand | Yes |
| Code | Code of the brand (custom identifier) | No |
- For XML requests, keep nodes in a consistent order to avoid parsing issues.
curl -i -H "Accept: application/json" -H "Content-Type: application/json" -X POST -d '{ "Name": "Test", "Code": "test-brand" }' https://api.pricetrack.eu/v1/brands/add?token={YOUR_TOKEN}
curl -i -H "Accept: application/xml" -H "Content-Type: text/xml" -X POST -d "<?xml version=\"1.0\" encoding=\"utf-8\"?><Brand xmlns:i=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns=\"http://schemas.datacontract.org/2004/07/PriceTrack.Web.Api.Models\"><Code>test-brand</Code><Name>Test</Name></Brand>" https://api.pricetrack.eu/v1/brands/add?token={YOUR_TOKEN}
{
"Status": 200,
"Message": "Operation successful",
"Quote": {
"Max": 20000,
"Remaining": 19999
},
"Page": null,
"Errors": null,
"Data": {
"Id": "6a6cfa19-3fe9-4c0a-b342-b71fe6106dfc",
"Name": "Test",
"Code": "test-brand"
}
}
<?xml version="1.0" encoding="UTF-8"?>
<ApiResponse xmlns="http://schemas.datacontract.org/2004/07/PriceTrack.Web.Api.Models" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
<Data i:type="Brand">
<Code>test-brand</Code>
<Id>cd832087-9fc9-44c4-8270-a8e871fa1973</Id>
<Name>Test</Name>
</Data>
<Errors i:nil="true" />
<Message>Operation successful</Message>
<Page i:nil="true" />
<Quote>
<Max>20000</Max>
<Remaining>19979</Remaining>
</Quote>
<Status>200</Status>
</ApiResponse>
List Categories
GETFetch information about your categories.
| Parameter | Description | Required | Default |
|---|---|---|---|
| token | API token (query parameter) | Yes | - |
| pageIndex | Pagination index (query parameter) | No | 0 |
curl -i -H "Accept: application/json" -X GET https://api.pricetrack.eu/v1/categories?token={YOUR_TOKEN}
curl -i -H "Accept: application/xml" -X GET https://api.pricetrack.eu/v1/categories?token={YOUR_TOKEN}
{
"Status": 200,
"Message": "Operation successful",
"Quote": {
"Max": 20000,
"Remaining": 19983
},
"Page": {
"PageIndex": 0,
"Pages": 1,
"Records": 2,
"HasMore": false
},
"Errors": null,
"Data": [
{
"Id": "499e8152-e009-4759-aac8-4dbabd66129d",
"Name": "A Category",
"Code": "a-category"
},
{
"Id": "5550b585-68ef-4c71-8284-aa4a5336e172",
"Name": "B Category",
"Code": "b-category"
}
]
}
<?xml version="1.0" encoding="UTF-8"?>
<ApiResponse xmlns="http://schemas.datacontract.org/2004/07/PriceTrack.Web.Api.Models" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
<Data i:type="ArrayOfCategory">
<Category>
<Code>a-category</Code>
<Id>499e8152-e009-4759-aac8-4dbabd66129d</Id>
<Name>A Category</Name>
</Category>
<Category>
<Code>b-category</Code>
<Id>5550b585-68ef-4c71-8284-aa4a5336e172</Id>
<Name>B Category</Name>
</Category>
</Data>
<Errors i:nil="true" />
<Message>Operation successful</Message>
<Page>
<HasMore>false</HasMore>
<PageIndex>0</PageIndex>
<Pages>1</Pages>
<Records>2</Records>
</Page>
<Quote>
<Max>20000</Max>
<Remaining>19983</Remaining>
</Quote>
<Status>200</Status>
</ApiResponse>
Create A New Category
POSTNew categories can be created with a POST command to /v1/categories/add path.
| Parameter | Description | Required |
|---|---|---|
| token | API token (query parameter) | Yes |
| Name | Name of the category | Yes |
| Code | Code of the category (custom identifier) | No |
- For XML requests, keep nodes in a consistent order to avoid parsing issues.
curl -i -H "Accept: application/json" -H "Content-Type: application/json" -X POST -d '{ "Name": "Test", "Code": "test-category" }' https://api.pricetrack.eu/v1/categories/add?token={YOUR_TOKEN}
curl -i -H "Accept: application/xml" -H "Content-Type: text/xml" -X POST -d "<?xml version=\"1.0\" encoding=\"utf-8\"?><Category xmlns:i=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns=\"http://schemas.datacontract.org/2004/07/PriceTrack.Web.Api.Models\"><Code>test-category</Code><Name>Test</Name></Category>" https://api.pricetrack.eu/v1/categories/add?token={YOUR_TOKEN}
{
"Status": 200,
"Message": "Operation successful",
"Quote": {
"Max": 20000,
"Remaining": 19999
},
"Page": null,
"Errors": null,
"Data": {
"Id": "6a6cfa19-3fe9-4c0a-b342-b71fe6106dfc",
"Name": "Test",
"Code": "test-category"
}
}
<?xml version="1.0" encoding="UTF-8"?>
<ApiResponse xmlns="http://schemas.datacontract.org/2004/07/PriceTrack.Web.Api.Models" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
<Data i:type="Category">
<Code>test-category</Code>
<Id>cd832087-9fc9-44c4-8270-a8e871fa1973</Id>
<Name>Test</Name>
</Data>
<Errors i:nil="true" />
<Message>Operation successful</Message>
<Page i:nil="true" />
<Quote>
<Max>20000</Max>
<Remaining>19979</Remaining>
</Quote>
<Status>200</Status>
</ApiResponse>
Product Management
This section describes how to create products, list existing inventory, and add competitors.
Create A New Product
POSTCreate new products via /v1/products/create path.
| Parameter | Description | Required | Default |
|---|---|---|---|
| token | API token (query parameter) | Yes | - |
| Url | Product page URL (used as primary identity fallback) | Yes | - |
| Name | Name of the product | No | - |
| ProductCode | Code of the product (recommended unique business identifier) | No | - |
| Barcode | Barcode of the product (recommended when available) | No | - |
| Price | Price of the product (use English decimal format. Ex: 123.45) | No | 0 |
- Url is required. Requests without URL return HTTP 400.
- Use stable identifiers such as Barcode, ProductCode, and Url to prevent duplicate records.
- For XML payloads, keep node order consistent for better compatibility.
curl -i -H "Accept: application/json" -H "Content-Type: application/json" -X POST -d '{ "Name": "Test Product", "Price": 123.45, "ProductCode": "TEST-123", "Barcode": "8690000000001", "Url": "https://shop.example.com/products/test-123" }' https://api.pricetrack.eu/v1/products/create?token={YOUR_TOKEN}
curl -i -H "Accept: application/xml" -H "Content-Type: text/xml" -X POST -d "<?xml version=\"1.0\" encoding=\"utf-8\"?><Product xmlns:i=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns=\"http://schemas.datacontract.org/2004/07/PriceTrack.Web.Api.Models\"><Barcode>8690000000001</Barcode><Name>Test Product</Name><Price>123.45</Price><ProductCode>TEST-123</ProductCode><Url>https://shop.example.com/products/test-123</Url></Product>" https://api.pricetrack.eu/v1/products/create?token={YOUR_TOKEN}
{
"Status": 200,
"Message": "Operation successful",
"Quote": {
"Max": 20000,
"Remaining": 19999
},
"Page": null,
"Errors": null,
"Data": {
"Id": "a53695d6-717e-42ec-801e-3b13be89ce80",
"Attributes": {},
"Name": "Test Product",
"ProductCode": "TEST-123",
"Barcode": "8690000000001",
"Url": "https://shop.example.com/products/test-123",
"Price": 123.45,
"MinPrice": 0,
"AvgPrice": 0,
"MaxPrice": 0,
"Brands": [],
"Categories": [],
"Tags": [],
"Competitors": []
}
}
<?xml version="1.0" encoding="UTF-8"?>
<ApiResponse xmlns="http://schemas.datacontract.org/2004/07/PriceTrack.Web.Api.Models" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
<Data i:type="Product">
<Attributes xmlns:d4p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays" />
<AvgPrice>0</AvgPrice>
<Barcode>8690000000001</Barcode>
<Brands xmlns:d4p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays" />
<Categories xmlns:d4p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays" />
<Competitors />
<Id>a53695d6-717e-42ec-801e-3b13be89ce80</Id>
<MaxPrice>0</MaxPrice>
<MinPrice>0</MinPrice>
<Name>Test Product</Name>
<Price>123.45</Price>
<ProductCode>TEST-123</ProductCode>
<Tags xmlns:d4p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays" />
<Url>https://shop.example.com/products/test-123</Url>
</Data>
<Errors i:nil="true" />
<Message>Operation successful</Message>
<Page i:nil="true" />
<Quote>
<Max>20000</Max>
<Remaining>19979</Remaining>
</Quote>
<Status>200</Status>
</ApiResponse>
List Products
GET| Parameter | Description | Required | Default |
|---|---|---|---|
| token | API token (query parameter) | Yes | - |
| pageIndex | Pagination index (query parameter) | No | 0 |
curl -i -H "Accept: application/json" -X GET "https://api.pricetrack.eu/v1/products?token={YOUR_TOKEN}&pageIndex=0"
curl -i -H "Accept: application/xml" -X GET "https://api.pricetrack.eu/v1/products?token={YOUR_TOKEN}&pageIndex=0"
{
"Status": 200,
"Message": "Operation successful",
"Quote": {
"Max": 20000,
"Remaining": 19984
},
"Page": {
"PageIndex": 0,
"Pages": 3,
"Records": 245,
"HasMore": true
},
"Errors": null,
"Data": [
{
"Id": "a53695d6-717e-42ec-801e-3b13be89ce80",
"Attributes": {
"Color": "Black",
"Storage": "128 GB"
},
"Name": "Apple iPhone 14 128 GB",
"ProductCode": "IP14-128-BLK",
"Barcode": "194253408123",
"Url": "https://shop.example.com/apple-iphone-14-128gb",
"Price": 43999.0,
"MinPrice": 42999.0,
"AvgPrice": 43849.5,
"MaxPrice": 44999.0,
"Brands": [
"Apple"
],
"Categories": [
"Telefon"
],
"Tags": [],
"Competitors": [
{
"ProductName": "Apple iPhone 14 128 GB",
"Site": "competitor.example.com",
"SiteGuid": "7d39db78-2aaf-4ea2-bbc6-9f9d23f5f7a0",
"Merchant": null,
"Price": 43890.0,
"OldPrice": 44249.0,
"Currency": "TRY",
"FreeShipping": false,
"IsMarketplace": false,
"Url": "https://competitor.example.com/p/iphone-14-128",
"ImageUrl": null,
"Stock": null,
"ShippingDays": null,
"Reviews": null,
"Updated": "2026-04-03T10:25:00+03:00",
"FoundByTheSearchAlgorithm": null,
"Status": "OnSale"
}
]
}
]
}
<?xml version="1.0" encoding="UTF-8"?>
<ApiResponse xmlns="http://schemas.datacontract.org/2004/07/PriceTrack.Web.Api.Models" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
<Data i:type="ArrayOfProduct">
<Product>
<Attributes xmlns:d4p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
<d4p1:KeyValueOfstringstring>
<d4p1:Key>Color</d4p1:Key>
<d4p1:Value>Black</d4p1:Value>
</d4p1:KeyValueOfstringstring>
</Attributes>
<AvgPrice>43849.5</AvgPrice>
<Barcode>194253408123</Barcode>
<Brands xmlns:d4p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
<d4p1:string>Apple</d4p1:string>
</Brands>
<Categories xmlns:d4p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
<d4p1:string>Telefon</d4p1:string>
</Categories>
<Competitors>
<Competitor>
<Currency>TRY</Currency>
<FoundByTheSearchAlgorithm i:nil="true" />
<FreeShipping>false</FreeShipping>
<ImageUrl i:nil="true" />
<IsMarketplace>false</IsMarketplace>
<Merchant i:nil="true" />
<OldPrice>44249</OldPrice>
<Price>43890</Price>
<ProductName>Apple iPhone 14 128 GB</ProductName>
<Reviews i:nil="true" />
<ShippingDays i:nil="true" />
<Site>competitor.example.com</Site>
<SiteGuid>7d39db78-2aaf-4ea2-bbc6-9f9d23f5f7a0</SiteGuid>
<Status>OnSale</Status>
<Stock i:nil="true" />
<Updated>2026-04-03T10:25:00+03:00</Updated>
<Url>https://competitor.example.com/p/iphone-14-128</Url>
</Competitor>
</Competitors>
<Id>a53695d6-717e-42ec-801e-3b13be89ce80</Id>
<MaxPrice>44999</MaxPrice>
<MinPrice>42999</MinPrice>
<Name>Apple iPhone 14 128 GB</Name>
<Price>43999</Price>
<ProductCode>IP14-128-BLK</ProductCode>
<Tags xmlns:d4p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays" />
<Url>https://shop.example.com/apple-iphone-14-128gb</Url>
</Product>
</Data>
<Errors i:nil="true" />
<Message>Operation successful</Message>
<Page>
<HasMore>true</HasMore>
<PageIndex>0</PageIndex>
<Pages>3</Pages>
<Records>245</Records>
</Page>
<Quote>
<Max>20000</Max>
<Remaining>19984</Remaining>
</Quote>
<Status>200</Status>
</ApiResponse>
Product Autocomplete
GET| Parameter | Description | Required | Default |
|---|---|---|---|
| token | API token (query parameter) | Yes | - |
| searchTerm | Search text matched against product name | Yes | - |
| pageIndex | Pagination index (query parameter) | No | 0 |
| pageSize | Records per page | No | 100 |
curl -i -H "Accept: application/json" -X GET "https://api.pricetrack.eu/v1/products/autocomplete?token={YOUR_TOKEN}&searchTerm=iphone&pageIndex=0&pageSize=20"
curl -i -H "Accept: application/xml" -X GET "https://api.pricetrack.eu/v1/products/autocomplete?token={YOUR_TOKEN}&searchTerm=iphone&pageIndex=0&pageSize=20"
{
"Status": 200,
"Message": "Operation successful",
"Quote": {
"Max": 20000,
"Remaining": 19977
},
"Page": {
"PageIndex": 0,
"Pages": 1,
"Records": 2,
"HasMore": false
},
"Errors": null,
"Data": [
{
"Name": "Apple iPhone 14 128 GB",
"ProductCode": "IP14-128-BLK",
"Url": "https://shop.example.com/apple-iphone-14-128gb",
"ImageUrl": "https://cdn.example.com/images/ip14-128.jpg",
"Price": 43999.0,
"Brand": "Apple",
"Category": "Telefon"
},
{
"Name": "Apple iPhone 14 256 GB",
"ProductCode": "IP14-256-BLK",
"Url": "https://shop.example.com/apple-iphone-14-256gb",
"ImageUrl": null,
"Price": 47999.0,
"Brand": "Apple",
"Category": "Telefon"
}
]
}
<?xml version="1.0" encoding="UTF-8"?>
<ApiResponse xmlns="http://schemas.datacontract.org/2004/07/PriceTrack.Web.Api.Models" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
<Data i:type="ArrayOfAutoComplete">
<AutoComplete>
<Brand>Apple</Brand>
<Category>Telefon</Category>
<ImageUrl>https://cdn.example.com/images/ip14-128.jpg</ImageUrl>
<Name>Apple iPhone 14 128 GB</Name>
<Price>43999</Price>
<ProductCode>IP14-128-BLK</ProductCode>
<Url>https://shop.example.com/apple-iphone-14-128gb</Url>
</AutoComplete>
<AutoComplete>
<Brand>Apple</Brand>
<Category>Telefon</Category>
<ImageUrl i:nil="true" />
<Name>Apple iPhone 14 256 GB</Name>
<Price>47999</Price>
<ProductCode>IP14-256-BLK</ProductCode>
<Url>https://shop.example.com/apple-iphone-14-256gb</Url>
</AutoComplete>
</Data>
<Errors i:nil="true" />
<Message>Operation successful</Message>
<Page>
<HasMore>false</HasMore>
<PageIndex>0</PageIndex>
<Pages>1</Pages>
<Records>2</Records>
</Page>
<Quote>
<Max>20000</Max>
<Remaining>19977</Remaining>
</Quote>
<Status>200</Status>
</ApiResponse>
Get Product By Id
GET| Parameter | Description | Required |
|---|---|---|
| id | Product GUID (path parameter) | Yes |
| token | API token (query parameter) | Yes |
curl -i -H "Accept: application/json" -X GET "https://api.pricetrack.eu/v1/products/a53695d6-717e-42ec-801e-3b13be89ce80?token={YOUR_TOKEN}"
curl -i -H "Accept: application/xml" -X GET "https://api.pricetrack.eu/v1/products/a53695d6-717e-42ec-801e-3b13be89ce80?token={YOUR_TOKEN}"
{
"Status": 200,
"Message": "Operation successful",
"Quote": {
"Max": 20000,
"Remaining": 19976
},
"Page": null,
"Errors": null,
"Data": {
"Id": "a53695d6-717e-42ec-801e-3b13be89ce80",
"Attributes": {},
"Name": "Apple iPhone 14 128 GB",
"ProductCode": "IP14-128-BLK",
"Barcode": "194253408123",
"Url": "https://shop.example.com/apple-iphone-14-128gb",
"Price": 43999.0,
"MinPrice": 0.0,
"AvgPrice": 0.0,
"MaxPrice": 0.0,
"Brands": [
"Apple"
],
"Categories": [
"Telefon"
],
"Tags": [],
"Competitors": []
}
}
<?xml version="1.0" encoding="UTF-8"?>
<ApiResponse xmlns="http://schemas.datacontract.org/2004/07/PriceTrack.Web.Api.Models" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
<Data i:type="Product">
<Attributes xmlns:d4p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays" />
<AvgPrice>0</AvgPrice>
<Barcode>194253408123</Barcode>
<Brands xmlns:d4p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
<d4p1:string>Apple</d4p1:string>
</Brands>
<Categories xmlns:d4p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
<d4p1:string>Telefon</d4p1:string>
</Categories>
<Competitors />
<Id>a53695d6-717e-42ec-801e-3b13be89ce80</Id>
<MaxPrice>0</MaxPrice>
<MinPrice>0</MinPrice>
<Name>Apple iPhone 14 128 GB</Name>
<Price>43999</Price>
<ProductCode>IP14-128-BLK</ProductCode>
<Tags xmlns:d4p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays" />
<Url>https://shop.example.com/apple-iphone-14-128gb</Url>
</Data>
<Errors i:nil="true" />
<Message>Operation successful</Message>
<Page i:nil="true" />
<Quote>
<Max>20000</Max>
<Remaining>19976</Remaining>
</Quote>
<Status>200</Status>
</ApiResponse>
Update Product
POST| Parameter | Description | Required |
|---|---|---|
| Barcode / ProductCode / Url | At least one identity field is required in request body for lookup. | Yes |
| Name | Updated product name (request body) | No |
| Price | Updated product price (request body) | No |
| token | API token (query parameter) | Yes |
curl -i -H "Accept: application/json" -H "Content-Type: application/json" -X POST -d '{ "ProductCode": "TEST-123", "Name": "Test Product Updated", "Price": 129.99 }' https://api.pricetrack.eu/v1/products/update?token={YOUR_TOKEN}
curl -i -H "Accept: application/xml" -H "Content-Type: text/xml" -X POST -d "<?xml version=\"1.0\" encoding=\"utf-8\"?><Product xmlns:i=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns=\"http://schemas.datacontract.org/2004/07/PriceTrack.Web.Api.Models\"><Name>Test Product Updated</Name><Price>129.99</Price><ProductCode>TEST-123</ProductCode></Product>" https://api.pricetrack.eu/v1/products/update?token={YOUR_TOKEN}
{
"Status": 200,
"Message": "Operation successful",
"Quote": {
"Max": 20000,
"Remaining": 19975
},
"Page": null,
"Errors": null,
"Data": {
"Id": "a53695d6-717e-42ec-801e-3b13be89ce80",
"Attributes": {},
"Name": "Test Product Updated",
"ProductCode": "TEST-123",
"Barcode": "8690000000001",
"Url": "https://shop.example.com/products/test-123",
"Price": 129.99,
"MinPrice": 0.0,
"AvgPrice": 0.0,
"MaxPrice": 0.0,
"Brands": [],
"Categories": [],
"Tags": [],
"Competitors": []
}
}
<?xml version="1.0" encoding="UTF-8"?>
<ApiResponse xmlns="http://schemas.datacontract.org/2004/07/PriceTrack.Web.Api.Models" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
<Data i:type="Product">
<Attributes xmlns:d4p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays" />
<AvgPrice>0</AvgPrice>
<Barcode>8690000000001</Barcode>
<Brands xmlns:d4p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays" />
<Categories xmlns:d4p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays" />
<Competitors />
<Id>a53695d6-717e-42ec-801e-3b13be89ce80</Id>
<MaxPrice>0</MaxPrice>
<MinPrice>0</MinPrice>
<Name>Test Product Updated</Name>
<Price>129.99</Price>
<ProductCode>TEST-123</ProductCode>
<Tags xmlns:d4p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays" />
<Url>https://shop.example.com/products/test-123</Url>
</Data>
<Errors i:nil="true" />
<Message>Operation successful</Message>
<Page i:nil="true" />
<Quote>
<Max>20000</Max>
<Remaining>19975</Remaining>
</Quote>
<Status>200</Status>
</ApiResponse>
Add Product Competitors
POST| Parameter | Description | Required |
|---|---|---|
| token | API token (query parameter) | Yes |
| Barcode / ProductCode / Url | At least one must be provided in request body for product lookup. | Yes |
| Competitors[] | Competitor list in request body. Each item should include Url. |
Yes |
curl -i -H "Accept: application/json" -H "Content-Type: application/json" -X POST -d '{ "ProductCode": "TEST-123", "Competitors": [{ "Url": "https://competitor.example.com/p/test-123", "Price": 139.90, "Currency": "TRY", "Status": "OnSale" }] }' https://api.pricetrack.eu/v1/products/competitors/add?token={YOUR_TOKEN}
curl -i -H "Accept: application/xml" -H "Content-Type: text/xml" -X POST -d "<?xml version=\"1.0\" encoding=\"utf-8\"?><Product xmlns:i=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns=\"http://schemas.datacontract.org/2004/07/PriceTrack.Web.Api.Models\"><ProductCode>TEST-123</ProductCode><Competitors><Competitor><Url>https://competitor.example.com/p/test-123</Url><Price>139.90</Price><Currency>TRY</Currency><Status>OnSale</Status></Competitor></Competitors></Product>" https://api.pricetrack.eu/v1/products/competitors/add?token={YOUR_TOKEN}
{
"Status": 200,
"Message": "Operation successful",
"Quote": {
"Max": 20000,
"Remaining": 19980
},
"Page": null,
"Errors": null,
"Data": {
"Id": "a53695d6-717e-42ec-801e-3b13be89ce80",
"Attributes": {},
"Name": "Test Product",
"ProductCode": "TEST-123",
"Barcode": "8690000000001",
"Url": "https://shop.example.com/products/test-123",
"Price": 123.45,
"MinPrice": 119.90,
"AvgPrice": 121.68,
"MaxPrice": 124.90,
"Brands": [],
"Categories": [],
"Tags": [],
"Competitors": [
{
"ProductName": "Test Product",
"Site": "",
"SiteGuid": "00000000-0000-0000-0000-000000000000",
"Merchant": null,
"Price": 0.0,
"OldPrice": null,
"Currency": "TRY",
"FreeShipping": false,
"IsMarketplace": false,
"Url": "https://competitor.example.com/p/test-123",
"ImageUrl": null,
"Stock": null,
"ShippingDays": null,
"Reviews": null,
"Updated": "2026-04-03T11:30:00+03:00",
"FoundByTheSearchAlgorithm": null,
"Status": "OnSale"
}
]
}
}
<?xml version="1.0" encoding="UTF-8"?>
<ApiResponse xmlns="http://schemas.datacontract.org/2004/07/PriceTrack.Web.Api.Models" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
<Data i:type="Product">
<Attributes xmlns:d4p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays" />
<AvgPrice>121.68</AvgPrice>
<Barcode>8690000000001</Barcode>
<Brands xmlns:d4p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays" />
<Categories xmlns:d4p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays" />
<Competitors>
<Competitor>
<Currency>TRY</Currency>
<FoundByTheSearchAlgorithm i:nil="true" />
<FreeShipping>false</FreeShipping>
<ImageUrl i:nil="true" />
<IsMarketplace>false</IsMarketplace>
<Merchant i:nil="true" />
<OldPrice i:nil="true" />
<Price>0</Price>
<ProductName>Test Product</ProductName>
<Reviews i:nil="true" />
<ShippingDays i:nil="true" />
<Site></Site>
<SiteGuid>00000000-0000-0000-0000-000000000000</SiteGuid>
<Status>OnSale</Status>
<Stock i:nil="true" />
<Updated>2026-04-03T11:30:00+03:00</Updated>
<Url>https://competitor.example.com/p/test-123</Url>
</Competitor>
</Competitors>
<Id>a53695d6-717e-42ec-801e-3b13be89ce80</Id>
<MaxPrice>0</MaxPrice>
<MinPrice>0</MinPrice>
<Name>Test Product</Name>
<Price>123.45</Price>
<ProductCode>TEST-123</ProductCode>
<Tags xmlns:d4p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays" />
<Url>https://shop.example.com/products/test-123</Url>
</Data>
<Errors i:nil="true" />
<Message>Operation successful</Message>
<Page i:nil="true" />
<Quote>
<Max>20000</Max>
<Remaining>19980</Remaining>
</Quote>
<Status>200</Status>
</ApiResponse>
Add Potential Competitors
POST| Parameter | Description | Required |
|---|---|---|
| token | API token (query parameter) | Yes |
| Barcode / ProductCode / Url | At least one must be provided in request body for product lookup. | Yes |
| Competitors[] | Potential competitor list in request body. Each item should include Url. |
Yes |
curl -i -H "Accept: application/json" -H "Content-Type: application/json" -X POST -d '{ "ProductCode": "TEST-123", "Competitors": [{ "Url": "https://marketplace.example.com/p/test-123", "Price": 135.50, "Currency": "TRY", "Status": "OnSale" }] }' https://api.pricetrack.eu/v1/products/potential-competitors/add?token={YOUR_TOKEN}
curl -i -H "Accept: application/xml" -H "Content-Type: text/xml" -X POST -d "<?xml version=\"1.0\" encoding=\"utf-8\"?><Product xmlns:i=\"http://www.w3.org/2001/XMLSchema-instance\" xmlns=\"http://schemas.datacontract.org/2004/07/PriceTrack.Web.Api.Models\"><ProductCode>TEST-123</ProductCode><Competitors><Competitor><Url>https://marketplace.example.com/p/test-123</Url><Price>135.50</Price><Currency>TRY</Currency><Status>OnSale</Status></Competitor></Competitors></Product>" https://api.pricetrack.eu/v1/products/potential-competitors/add?token={YOUR_TOKEN}
{
"Status": 200,
"Message": "Operation successful",
"Quote": {
"Max": 20000,
"Remaining": 19979
},
"Page": null,
"Errors": null,
"Data": {
"Id": "a53695d6-717e-42ec-801e-3b13be89ce80",
"Attributes": {},
"Name": "Test Product",
"ProductCode": "TEST-123",
"Barcode": "8690000000001",
"Url": "https://shop.example.com/products/test-123",
"Price": 123.45,
"MinPrice": 0,
"AvgPrice": 0,
"MaxPrice": 0,
"Brands": [],
"Categories": [],
"Tags": [],
"Competitors": [
{
"ProductName": "Test Product",
"Site": "",
"SiteGuid": "00000000-0000-0000-0000-000000000000",
"Merchant": null,
"Price": 0.0,
"OldPrice": null,
"Currency": "TRY",
"FreeShipping": false,
"IsMarketplace": false,
"Url": "https://marketplace.example.com/p/test-123",
"ImageUrl": null,
"Stock": null,
"ShippingDays": null,
"Reviews": null,
"Updated": "2026-04-03T11:35:00+03:00",
"FoundByTheSearchAlgorithm": null,
"Status": "OnSale"
}
]
}
}
<?xml version="1.0" encoding="UTF-8"?>
<ApiResponse xmlns="http://schemas.datacontract.org/2004/07/PriceTrack.Web.Api.Models" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
<Data i:type="Product">
<Attributes xmlns:d4p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays" />
<AvgPrice>0</AvgPrice>
<Barcode>8690000000001</Barcode>
<Brands xmlns:d4p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays" />
<Categories xmlns:d4p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays" />
<Competitors>
<Competitor>
<Currency>TRY</Currency>
<FoundByTheSearchAlgorithm i:nil="true" />
<FreeShipping>false</FreeShipping>
<ImageUrl i:nil="true" />
<IsMarketplace>false</IsMarketplace>
<Merchant i:nil="true" />
<OldPrice i:nil="true" />
<Price>0</Price>
<ProductName>Test Product</ProductName>
<Reviews i:nil="true" />
<ShippingDays i:nil="true" />
<Site></Site>
<SiteGuid>00000000-0000-0000-0000-000000000000</SiteGuid>
<Status>OnSale</Status>
<Stock i:nil="true" />
<Updated>2026-04-03T11:35:00+03:00</Updated>
<Url>https://marketplace.example.com/p/test-123</Url>
</Competitor>
</Competitors>
<Id>a53695d6-717e-42ec-801e-3b13be89ce80</Id>
<MaxPrice>0</MaxPrice>
<MinPrice>0</MinPrice>
<Name>Test Product</Name>
<Price>123.45</Price>
<ProductCode>TEST-123</ProductCode>
<Tags xmlns:d4p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays" />
<Url>https://shop.example.com/products/test-123</Url>
</Data>
<Errors i:nil="true" />
<Message>Operation successful</Message>
<Page i:nil="true" />
<Quote>
<Max>20000</Max>
<Remaining>19979</Remaining>
</Quote>
<Status>200</Status>
</ApiResponse>
Advanced Product List
GET| Parameter | Description | Required | Default |
|---|---|---|---|
| token | API token (query parameter) | Yes | - |
| pageIndex | Pagination index (query parameter) | No | 0 |
| pageSize | Records per page (query parameter, min 1 max 100) | No | 20 |
| date | Date filter for competitor snapshot (query parameter) | No | - |
| brandIds | Brand GUID list separated by comma, space, or semicolon (query parameter) | No | - |
| excludeMe | Exclude your own site from competitor list (query parameter) | No | false |
curl -i -H "Accept: application/json" -X GET "https://api.pricetrack.eu/v1/products/list?token={YOUR_TOKEN}&pageIndex=0&pageSize=20&brandIds=8bcf9b9e-7f06-4d6f-a02a-ec8d68a6a45d,0f83a67a-8121-4c82-99d5-fb514e6417d4&excludeMe=true&date=2026-03-01"
curl -i -H "Accept: application/xml" -X GET "https://api.pricetrack.eu/v1/products/list?token={YOUR_TOKEN}&pageIndex=0&pageSize=20&brandIds=8bcf9b9e-7f06-4d6f-a02a-ec8d68a6a45d,0f83a67a-8121-4c82-99d5-fb514e6417d4&excludeMe=true&date=2026-03-01"
{
"Status": 200,
"Message": "Operation successful",
"Quote": {
"Max": 20000,
"Remaining": 19978
},
"Page": {
"PageIndex": 0,
"Pages": 7,
"Records": 134,
"HasMore": true
},
"Errors": null,
"Data": [
{
"Id": "8b7ce3d9-3bc7-45dd-b7be-9f3471e5e44e",
"Attributes": {},
"Name": "Samsung Galaxy S24 256 GB",
"ProductCode": "SGS24-256",
"Barcode": "8806095291182",
"Url": "https://shop.example.com/samsung-galaxy-s24-256gb",
"Price": 41999.0,
"MinPrice": 40499.0,
"AvgPrice": 41249.0,
"MaxPrice": 41999.0,
"Brands": [
"Samsung"
],
"Categories": [
"Telefon"
],
"Tags": [],
"Competitors": [
{
"ProductName": "Samsung Galaxy S24 256 GB",
"Site": "rakip1.example.com",
"SiteGuid": "4b2fd767-cf66-4c2e-a975-03b4dd82cf97",
"Merchant": null,
"Price": 40499.0,
"OldPrice": 40999.0,
"Currency": "TRY",
"FreeShipping": true,
"IsMarketplace": false,
"Url": "https://rakip1.example.com/s24-256",
"ImageUrl": null,
"Stock": 12,
"ShippingDays": 1,
"Reviews": null,
"Updated": "2026-03-01T10:05:00+03:00",
"FoundByTheSearchAlgorithm": null,
"Status": "OnSale"
},
{
"ProductName": "Samsung Galaxy S24 256 GB",
"Site": "rakip2.example.com",
"SiteGuid": "5d86f15b-dc0b-4480-a69e-2ab2ba17c3b4",
"Merchant": null,
"Price": 41999.0,
"OldPrice": null,
"Currency": "TRY",
"FreeShipping": false,
"IsMarketplace": false,
"Url": "https://rakip2.example.com/s24-256",
"ImageUrl": null,
"Stock": 3,
"ShippingDays": 2,
"Reviews": null,
"Updated": "2026-03-01T09:55:00+03:00",
"FoundByTheSearchAlgorithm": null,
"Status": "OnSale"
}
]
}
]
}
<?xml version="1.0" encoding="UTF-8"?>
<ApiResponse xmlns="http://schemas.datacontract.org/2004/07/PriceTrack.Web.Api.Models" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
<Data i:type="ArrayOfProduct">
<Product>
<Attributes xmlns:d4p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays" />
<AvgPrice>41249</AvgPrice>
<Barcode>8806095291182</Barcode>
<Brands xmlns:d4p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
<d4p1:string>Samsung</d4p1:string>
</Brands>
<Categories xmlns:d4p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays">
<d4p1:string>Telefon</d4p1:string>
</Categories>
<Competitors>
<Competitor>
<Currency>TRY</Currency>
<FoundByTheSearchAlgorithm i:nil="true" />
<FreeShipping>true</FreeShipping>
<ImageUrl i:nil="true" />
<IsMarketplace>false</IsMarketplace>
<Merchant i:nil="true" />
<OldPrice>40999</OldPrice>
<Price>40499</Price>
<ProductName>Samsung Galaxy S24 256 GB</ProductName>
<Reviews i:nil="true" />
<ShippingDays>1</ShippingDays>
<Site>rakip1.example.com</Site>
<SiteGuid>4b2fd767-cf66-4c2e-a975-03b4dd82cf97</SiteGuid>
<Status>OnSale</Status>
<Stock>12</Stock>
<Updated>2026-03-01T10:05:00+03:00</Updated>
<Url>https://rakip1.example.com/s24-256</Url>
</Competitor>
</Competitors>
<Id>8b7ce3d9-3bc7-45dd-b7be-9f3471e5e44e</Id>
<MaxPrice>41999</MaxPrice>
<MinPrice>40499</MinPrice>
<Name>Samsung Galaxy S24 256 GB</Name>
<Price>41999</Price>
<ProductCode>SGS24-256</ProductCode>
<Tags xmlns:d4p1="http://schemas.microsoft.com/2003/10/Serialization/Arrays" />
<Url>https://shop.example.com/samsung-galaxy-s24-256gb</Url>
</Product>
</Data>
<Errors i:nil="true" />
<Message>Operation successful</Message>
<Page>
<HasMore>true</HasMore>
<PageIndex>0</PageIndex>
<Pages>7</Pages>
<Records>134</Records>
</Page>
<Quote>
<Max>20000</Max>
<Remaining>19978</Remaining>
</Quote>
<Status>200</Status>
</ApiResponse>
Error Handling
If the HTTP response code is not 200 then an error has occurred. Often times, in addition to an HTTP error, the server will return error details in the response body.
HTTP/1.1 401 Unauthorized
{
"Status": 401,
"Message": "Company not found by given token!",
"Quote": null,
"Page": null,
"Errors": [
{
"Title": "Company not found by given token!",
"Status": 401,
"Details": "Please check the specified token is valid.",
"Url": null
}
],
"Data": null
}
<?xml version="1.0" encoding="UTF-8"?>
<ApiResponse xmlns="http://schemas.datacontract.org/2004/07/PriceTrack.Web.Api.Models" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
<Data i:nil="true" />
<Errors>
<Error>
<Details>Please check the specified token is valid.</Details>
<Status>401</Status>
<Title>Company not found by given token!</Title>
<Url i:nil="true" />
</Error>
</Errors>
<Message>Company not found by given token!</Message>
<Page i:nil="true" />
<Quote i:nil="true" />
<Status>401</Status>
</ApiResponse>
API Throttle
To ensure a consistent quality of service PriceTrack may block users making a large number of requests over a short period of time or exceeding daily API Quota Limit. If it is reached the server will return a 429 Too Many Requests response with an error message of "API Quota Exceeded" in the standard XML/JSON error format. Developers should anticipate this error and handle accordingly.