Logo
lupa-ikonica
lupa-ikonica

API Dokumentacija

Sve što trebate da integrirate Pricing API u svoju aplikaciju — autentikacija, endpointi, šeme i primeri.

Pricing API dokumentacija — endpointi, šeme i primeri

Autentifikacija

Pricing API koristi API ključeve za autentikaciju. Svaki HTTP zahtev mora da sadrži vaš ključ u X-Api-Key headeru.

Header
X-Api-Key: pk_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxx

API ključ generišete u Developer portalu. Plain vrednost ključa vidljiva je samo jednom pri generisanju — čuvajte je na sigurnom mestu.

Važno: Nikada ne ugrađujte API ključ direktno u frontend/mobilni kod. Koristite backend proxy koji dodaje header pri prosleđivanju zahteva ka Pricing API-ju.

Base URL

Svi endpointi su relativni na sledeći base URL:

https://pricing.rs/api/public/v1

API koristi HTTPS. HTTP zahtevi se automatski odbijaju. Sve vreme u responsu je UTC.

GET /productsFree

Pretraga i listanje proizvoda. Vraca paginiranu listu proizvoda sa najnovijim cenama.

Query parametri

ParametarTipOpis
termstringTekst pretrage (naziv, brend, barkod)
categoryIdintFiltriranje po ID kategorije
retailerIdintFiltriranje po ID prodavnice
pageintStranica (0-based, default: 0)
perPageintStavki po stranici (max 100, default: 20)

Response — PublicProductPriceDTO

JSON response
{
  "total": 42,
  "page": 0,
  "perPage": 20,
  "data": [
    {
      "id": 1234,
      "name": "Mleko 3.2% 1L",
      "barcode": "8600001234567",
      "unit": "l",
      "brandName": "Imlek",
      "categoryName": "Mlečni proizvodi",
      "imageUrl": "https://cdn.pricing.rs/products/1234.jpg",
      "prices": [
        {
          "retailerId": 5,
          "retailerName": "Idea",
          "price": 139.99,
          "currency": "RSD",
          "offerStart": "2025-01-01T00:00:00Z",
          "offerEnd": "2025-12-31T23:59:59Z"
        }
      ],
      "lowestPrice": 129.99,
      "highestPrice": 149.99,
      "updatedAt": "2025-06-17T00:00:00Z"
    }
  ]
}

cURL primer

cURL
curl -s "https://pricing.rs/api/public/v1/products?term=mleko&page=0&perPage=5" \
  -H "X-Api-Key: pk_live_xxxx"

GET /products/{id}/pricesFree

Vraća detalje jednog proizvoda sa kompletnom istorijom cena po svim prodavnicama.

Path parametri

ParametarTipOpis
idintID proizvoda

Query parametri

ParametarTipOpis
daysintBroj dana istorije (default: 30, max: 365)

Response

JSON response
{
  "id": 1234,
  "name": "Mleko 3.2% 1L",
  "barcode": "8600001234567",
  "unit": "l",
  "brandName": "Imlek",
  "categoryName": "Mlečni proizvodi",
  "imageUrl": "https://cdn.pricing.rs/products/1234.jpg",
  "priceHistory": [
    {
      "retailerId": 5,
      "retailerName": "Idea",
      "day": "2025-06-17",
      "price": 139.99,
      "currency": "RSD"
    }
  ]
}

cURL primer

cURL
curl -s "https://pricing.rs/api/public/v1/products/1234/prices?days=30" \
  -H "X-Api-Key: pk_live_xxxx"

POST /optimizeDeveloper+

Optimizacioni endpoint — prima listu proizvoda i opcionalnu lokaciju korisnika, vraća koja kombinacija prodavnica daje najnižu ukupnu cenu korpe.

Request body

JSON body
{
  "items": [
    { "productId": 1234, "quantity": 2 },
    { "productId": 5678, "quantity": 1 }
  ],
  "latitude": 44.8176,
  "longitude": 20.4569,
  "radiusKm": 5.0
}

Response — PublicOptimizationResultDTO

JSON response
{
  "totalPrice": 459.97,
  "currency": "RSD",
  "retailerCount": 2,
  "retailers": [
    {
      "retailerId": 5,
      "retailerName": "Idea",
      "storeName": "Idea Novi Beograd",
      "storeAddress": "Jurija Gagarina 16",
      "distanceKm": 1.2,
      "subtotal": 279.98,
      "items": [
        {
          "productId": 1234,
          "productName": "Mleko 3.2% 1L",
          "quantity": 2,
          "unitPrice": 139.99,
          "lineTotal": 279.98
        }
      ]
    }
  ],
  "savings": 42.50,
  "singleStoreBestPrice": 502.47,
  "calculatedAt": "2025-06-17T12:00:00Z"
}

Endpoint je dostupan samo za Developer i Business planove. Free plan dobija 403 Forbidden sa kodom API_ERROR_008.

cURL primer

cURL
curl -s -X POST "https://pricing.rs/api/public/v1/optimize" \
  -H "X-Api-Key: pk_live_xxxx" \
  -H "Content-Type: application/json" \
  -d '{"items":[{"productId":1234,"quantity":2}],"latitude":44.82,"longitude":20.46}'

GET /meta/quotaFree

Vraća informacije o trenutnoj potrošnji kvote za API ključ koji se koristi u zahtevu.

Response

JSON response
{
  "planSlug": "developer",
  "planName": "Developer",
  "dailyQuota": 10000,
  "todayUsed": 342,
  "todayRemaining": 9658,
  "monthlyQuota": null,
  "monthUsed": 8421,
  "resetAtUtc": "2025-06-18T00:00:00Z",
  "allowsOptimizationEngine": true
}

cURL primer

cURL
curl -s "https://pricing.rs/api/public/v1/meta/quota" \
  -H "X-Api-Key: pk_live_xxxx"

Kvote po planu

Dnevna kvota se resetuje svake ponoći (UTC). Kada je prekoračena, API vraća 429 do resetovanja.

PlanZahteva / danRate limit / minAPI ključevi/optimizeCena
Free100101Besplatno
Developer10.000603€29 / mes
Business100.00030010€199 / mes

Greške

API koristi standardne HTTP status kodove. Telo svake greške sadrži code i message polje.

Primer error response
HTTP/1.1 429 Too Many Requests
{
  "code": "API_ERROR_005",
  "message": "Dnevna kvota je prekoračena. Resetuje se 2025-06-18T00:00:00Z."
}
HTTP statusKodOpis
401API_ERROR_001API ključ nedostaje ili nije validan
401API_ERROR_002API ključ je opozvan (revoked)
403API_ERROR_003Nalog je suspendovan
429API_ERROR_005Dnevna kvota prekoračena
429API_ERROR_006Rate limit — previše zahteva u minuti
403API_ERROR_008Endpoint nije dostupan za vaš plan
404API_ERROR_009Resurs nije pronađen
400API_ERROR_010Nevalidan request body
500API_ERROR_011Interna greška servera

Spremni da počnete? Generišite besplatni API ključ za par sekundi.

Otvorite Developer portal