Skip to content
Price IntelligencePrice Intelligence home

Integration

Price monitoring API with webhooks on every plan

A price monitoring API is a REST interface for reading collected competitor prices, product matches, MAP violations and repricing proposals, and for writing products, competitor URLs and rule changes. Webhooks push the same events to your endpoint as they happen. API access and webhooks are included on every plan at no extra charge.

Start free trialOpen the live demo14 days, no credit card, cancel in one click.

The REST API reads everything the interface shows: products, matched competitor listings, price observations with capture timestamps, MAP violations with their evidence records, repricing proposals and change history. It writes products, competitor URLs, match confirmations, rule settings and approvals. Webhooks push the same events to your endpoint as they happen. API access and webhooks carry no surcharge on any plan.

What the price monitoring API is for

Three jobs, mostly. Getting price data into a warehouse so it can sit next to sales and margin. Getting your own catalogue in from a PIM or ERP that already owns it, without anyone maintaining a spreadsheet. And getting proposed price changes out into whatever system owns price at your company, which for many mid-market retailers is not the storefront.

The interface and the API read the same data through the same layer, so a number you pull at 4pm matches the dashboard at 4pm.

REST API — offers for one product

Request

curl https://api.priceintelligence.io/v1/products/NL-1084/offers \
  -H "Authorization: Bearer $PI_API_KEY"

Response

{
  "sku": "NL-1084",
  "gtin": "00910042852",
  "your_price": 199.00,
  "currency": "USD",
  "price_index": 101.4,
  "position": "above",
  "checked_at": "2026-07-24T06:12:04Z",
  "offers": [
    { "competitor": "Voltbay",    "price": 194.99, "in_stock": true,  "confidence": 0.99 },
    { "competitor": "Harborline", "price": 201.50, "in_stock": true,  "confidence": 0.97 },
    { "competitor": "PrimeDeck",  "price": 189.00, "in_stock": false, "confidence": 0.93 }
  ]
}

API access and webhooks are included on every plan. There is no percentage surcharge for calling your own data.

A live request and response against the demo tenant, showing the shape of a competitor observation.

What you can read

Readable resources and what teams do with them
ResourceWhat it returnsCommon use
ProductsYour catalogue with identifiers, cost, MAP, groups and the source that created each itemReconciling the monitored list against the PIM nightly
MatchesCompetitor listings attached to a product, each with confidence score and statusAuditing match quality, or exporting low-confidence items for review
ObservationsIndividual price captures with price, stock, promotion, source URL and capture timestampLoading price history into a warehouse for margin and elasticity work
ViolationsBelow-MAP detections with seller, gap in dollars and percent, and a link to the evidence recordFeeding an enforcement tracker or a legal workflow
Proposals and changesRepricing proposals, the constraint that bound each one, and full change historyPushing approved changes into an ERP that owns price
Source healthCoverage and freshness per source, with degradation statusAlerting your own monitoring when a source stops producing

Everything is filterable by product group, competitor, date range and status, so you can pull a delta rather than the whole catalogue every night.

# Illustrative. Read the competitor observations for one product.
curl https://api.priceintelligence.io/v1/products/prd_8f21/observations \
  -H "Authorization: Bearer pi_live_example_key" \
  -d limit=2 -G
{
  "object": "list",
  "data": [
    {
      "id": "obs_4d19",
      "product_id": "prd_8f21",
      "competitor": "Voltbay",
      "url": "https://example-retailer.test/p/12345",
      "price": 189.00,
      "currency": "USD",
      "in_stock": true,
      "match_confidence": 0.97,
      "captured_at": "2026-07-24T14:05:11Z"
    },
    {
      "id": "obs_4d20",
      "product_id": "prd_8f21",
      "competitor": "Harborline",
      "url": "https://example-retailer.test/p/98765",
      "price": 199.99,
      "currency": "USD",
      "in_stock": false,
      "match_confidence": 0.88,
      "captured_at": "2026-07-24T14:06:02Z"
    }
  ],
  "has_more": true,
  "next_cursor": "c3RhcnQ6NDA"
}

Identifiers, values and competitor names above are illustrative, from the fictional demo tenant. The reference documentation in your account describes every field.

Pagination

List responses are cursor-paginated. Each page carries a flag saying whether more results exist and a cursor for the next page, and you keep requesting until the flag is false. Cursors are stable against inserts, which offset pagination is not: on a dataset that grows while you are reading it, page-number paging silently skips and repeats rows. Every response also tells you where you stand against your rate limit, so a client can throttle itself.

What you can write

  • Products. Create and update monitored items with identifiers, cost, MAP and group membership. This is how a PIM or ERP stays the source of truth without anyone exporting a file.
  • Competitor URLs. Attach a specific listing to a product when you already know where it lives and would rather not wait for discovery.
  • Match decisions. Confirm or reject a candidate match. Corrections written through the API feed back into matching exactly as they do in the interface.
  • MAP prices. Update MAP by SKU with effective dates, which matters because a violation is only meaningful against the MAP in force on the capture date.
  • Rule settings and approvals. Adjust guardrails, and approve or reject repricing proposals, so an approval workflow can live in your own tooling.

Webhooks

Polling for price changes is wasteful when most products do not move on most days. Webhooks deliver an event when something actually happens, with the full payload rather than a bare identifier you then have to fetch. Events cover price changes above your threshold, stock changes, MAP violations detected and resolved, matches needing review, repricing proposals, failed store pushes and source degradation.

Deliveries are signed so your endpoint can verify they came from us, retried with backoff when your endpoint is unavailable, and recorded in a delivery log you can inspect and replay. That last part matters during an incident: if your receiver was down for an hour, you replay the hour rather than reconciling by hand. Alerts to people rather than to systems go through email or Slack instead.

Getting started

  1. 1

    Create a key

    In your account settings, create an API key, choose read-only or read-write, and give it a name you will recognise later. The secret is shown once. Keys can be rotated or revoked individually.

  2. 2

    Read one product

    Fetch a single product and its observations before writing any loop. It tells you the field names, the timestamp format and the currency handling in about a minute.

  3. 3

    Page through a delta

    Pull observations filtered by a date range, following the cursor until the flag says there are no more. This is the pattern for a nightly warehouse load.

  4. 4

    Register a webhook endpoint

    Add your URL, select the events you want, and verify the signature on receipt. Send a test event before you subscribe to anything noisy.

  5. 5

    Write back

    Only when you need it. Most integrations read for weeks before anything writes, and a read-only key removes the chance of an accident.

What the API does not do

  • It does not expose raw HTML from any source page. You get validated, structured observations with source URLs and timestamps.
  • It does not offer prices for products you are not monitoring. It reads your tenant, not a market-wide database.
  • It does not push prices to Amazon or any marketplace, as explained on the Amazon integration page.
  • It does not bypass plan limits. Refresh rate governs how often new observations exist, so polling faster than your refresh returns the same data.
  • It does not cost extra. There is no API tier, no per-call charge and no developer add-on.

That last line is the position, not a promotion. Capability is never the upsell: pricing charges for products and refresh rate, and every plan includes the API, webhooks, CSV over SFTP and every connection listed on integrations.

Get a key and pull real data

Create a read-only key, page through observations against your own catalogue, and see the shape of the data before you build anything. Fourteen days free, no credit card.

Frequently asked questions

What can I do with the price monitoring API?

Read products, matches, price observations with capture timestamps, MAP violations, repricing proposals, change history and source health. Write products, competitor URLs, match confirmations, MAP prices, rule settings and approvals. Everything the interface shows is readable, because both read the same data through the same layer.

Does API access cost extra?

No. The REST API and webhooks are included on all four plans, starting at 99 dollars per month. There is no API tier, no per-call charge and no developer add-on. Plans differ only by how many products you monitor and how often prices refresh, which is the only thing that changes what the API can return.

How does pagination work?

List responses are cursor-paginated. Each page returns a flag indicating whether more results exist plus a cursor for the next page, and you keep requesting until the flag is false. Cursors stay stable when new records are inserted mid-read, which is why offset pagination is not offered: it skips and repeats rows on growing datasets.

Which webhook events are available?

Price changes above your threshold, stock changes, MAP violations detected and resolved, matches needing review, repricing proposals created, failed store pushes and source degradation. Payloads are complete rather than bare identifiers, deliveries are signed for verification, and failed deliveries are retried with backoff and logged for replay.

Can I use the API instead of connecting my store?

Yes. Many teams whose PIM or ERP owns the catalogue push products in through the API and pull proposed changes back out, never connecting a storefront at all. Scheduled CSV over SFTP does the same job for teams who prefer files. Both produce the same matching, monitoring and change history.

How often should I poll for new prices?

No faster than your refresh rate, because new observations only exist after a collection run. On daily refresh, a single nightly delta pull is enough. Above that, webhooks are the better pattern: you get the event when it happens rather than asking repeatedly whether anything changed.

Is there a read-only key?

Yes, and it is the right default. Keys are created read-only or read-write and can be rotated or revoked individually. A read-only key cannot change a price, a rule or a MAP value, which makes it safe to give to an analytics job or a contractor building a dashboard.

Start monitoring in the next ten minutes

Connect your store, match your catalogue and get your first competitor comparison in the same session.

14 days, no credit card, cancel in one click.