Skip to content

Filters, sorting and pages

Find the items you need with filters and facets, sort them and page through the results.

/items returns the items of your datasets, a page at a time. Filters narrow them down; /facets tells you which filter values exist.

Filters

ParameterExampleMatches items …
dataset12of one of your datasets
site4of one website (ids from /facets)
categorycomputers-laptopsin this category or below it
qthinkpad x1with all these words, in any order, in the title, brand, codes or other values (parts of words count)
minPrice, maxPrice500, 1500within this price range (in the item's currency)
currencyEURin this currency
gtin0196802123456with this product code (the same product in every shop)
statusactiveactive (listed now, the default), removed or all
changedSince2026-10-01T00:00:00Zthat changed after this time

Filters combine: every one given must match.

Shell
curl -H "Authorization: Bearer $PRICANA_KEY" \
  "https://pricana.io/api/v1/items?category=computers-laptops&maxPrice=1000&sort=price"

Facets

/facets lists the websites, categories and currencies of your datasets with the number of items listed now, for filter menus:

Shell
curl -H "Authorization: Bearer $PRICANA_KEY" https://pricana.io/api/v1/facets

Categories are a tree (parentId); a parent's count includes its subcategories.

Sorting

sort takes price, -price (highest first), -lastChanged (the default: most recently changed first), -lastSeen, -firstSeen (newest listings first) or title. Items with the same value keep a stable order (by id), so paging never skips or repeats one while the data stays the same.

Pages

page counts from 0, size is 1 to 500 (default 50). The answer says how many there are in all:

JSON
{ "content": [ … ], "page": 0, "size": 50, "totalElements": 1804, "totalPages": 37 }

Pages are computed when you ask: if items change between two requests, a later page can shift. To read everything at once use an export; to follow changes use the change feed.

Removed items

By default you get the items listed now. status=removed gives you the ones a shop no longer lists (with removedAt), status=all both. Removed items stay readable as long as your plan's history reaches back.