Skip to main content
PrizeSkout
API ReferenceGuidesChangelog
Competitor Prices
GET

List competitor prices

GET/v1/competitors/prices

Returns the latest competitor prices for each tracked SKU, including your own price for context.

Requires scope:competitors.readHow to authenticate

Query parameters

Field
Type
Required
Description
category
string
optional
Filter by category (Electronics, Grocery, etc.)
e.g. Electronics
channel
string
optional
Filter by channel: online, in-store, or both.
e.g. online
competitor
string
optional
Filter to a single competitor key.
e.g. carrefour
limit
integer
optional
Page size, 1-100. Defaults to 25.
e.g. 25
cursor
string
optional
Pagination cursor returned by the previous page.

Responses

200Prices returned
{
  "data": [
    {
      "id": "px_3f9c2",
      "product": "Sony WH-1000XM5",
      "category": "Electronics",
      "channel": "online",
      "your_price": 1199,
      "currency": "QAR",
      "competitors": {
        "carrefour": {
          "price": 1149,
          "observed_at": "2026-04-23T10:14:00Z"
        },
        "amazon": {
          "price": 1179,
          "observed_at": "2026-04-23T10:09:00Z"
        },
        "noon": {
          "price": 1199,
          "observed_at": "2026-04-23T10:11:00Z"
        }
      },
      "signal": "undercut"
    }
  ],
  "page": {
    "has_more": false,
    "next_cursor": null
  }
}

Important notes

  • Prices are refreshed every 6 hours by default. Trigger an immediate scrape with POST /v1/competitors/scrape.
  • The `signal` field is one of: aligned, undercut, premium, missing.

Errors

401unauthorizedMissing or invalid API key.
403forbiddenYour key is missing the required scope for this endpoint.
404not_foundThe requested resource does not exist or is not visible to your account.
422validation_failedOne or more fields failed validation. The response includes per-field errors.
429rate_limitedYou have exceeded the per-minute request quota. Retry after the Retry-After header.
500internal_errorUnexpected server error. Safe to retry with the same request id.
Mint a test key in Dashboard → API Keys. Test mode never touches real account data.
Request
curl -X GET "https://api.prizeskout.com/v1/competitors/prices" \
  -H "Authorization: Bearer sk_test_YOUR_KEY"
Response
200
{
  "data": [
    {
      "id": "px_3f9c2",
      "product": "Sony WH-1000XM5",
      "category": "Electronics",
      "channel": "online",
      "your_price": 1199,
      "currency": "QAR",
      "competitors": {
        "carrefour": {
          "price": 1149,
          "observed_at": "2026-04-23T10:14:00Z"
        },
        "amazon": {
          "price": 1179,
          "observed_at": "2026-04-23T10:09:00Z"
        },
        "noon": {
          "price": 1199,
          "observed_at": "2026-04-23T10:11:00Z"
        }
      },
      "signal": "undercut"
    }
  ],
  "page": {
    "has_more": false,
    "next_cursor": null
  }
}