Competitor Price Position Snapshot avatar

Competitor Price Position Snapshot

Pricing

from $17.50 / 1,000 product target checkeds

Go to Apify Store
Competitor Price Position Snapshot

Competitor Price Position Snapshot

Compare owned and competitor product pages for visible price position, sale badges, shipping text, ratings, availability, and offer presentation.

Pricing

from $17.50 / 1,000 product target checkeds

Rating

0.0

(0)

Developer

junipr

junipr

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

16 days ago

Last modified

Share

Compare competitor product/collection pages for visible price position, sale badges, shipping text, ratings, availability, and offer presentation against owned products.

What it does

Compares mapped public owned and competitor offers using visible or supplied prices, currency, sale, shipping, rating, and availability evidence.

The actor emits one row per owned-versus-competitor match. Every dataset row uses the declared dataset schema, includes source provenance and a scan timestamp, and is written only after every applicable pay-per-event charge is accepted.

Typical uses

  • Compare competitor product prices
  • Snapshot price position for mapped products
  • Export sale and shipping signals
  • Find pricing gaps against competitors
  • Build ecommerce price research sheet

Input

Use public HTTP(S) URLs or deterministic htmlInputs. URL fetching rejects localhost, loopback, link-local, and private-network destinations. allowedDomains can further constrain live fetches.

  • startUrls
  • sitemapUrls
  • htmlInputs
  • allowedDomains
  • maxPages
  • maxDepth
  • includeEvidence
  • includeRawSnapshots
  • requestDelayMs
  • timeoutMs
  • userAgentMode
  • ownedProductUrls
  • competitorProductUrls
  • productMatchMap
  • priceRecords
  • collectionUrls
  • priceRules
  • includeShippingSignals
  • maxProducts
  • maxCompetitors
  • maxPriceRecords
  • maxSnapshots
  • maxChargeUsd
  • includeReport

The safety caps named in maxProducts, maxCompetitors, maxPriceRecords, maxSnapshots, timeoutMs are enforced in addition to maxChargeUsd. A value of 0 for maxChargeUsd is a hard zero budget: the actor exits before the first paid operation.

Minimal deterministic example

{
"htmlInputs": [
{
"sourceUrl": "https://shop.example/public-page",
"html": "<html><head><title>Public page</title></head><body><h1>Public evidence</h1></body></html>"
}
],
"includeEvidence": true,
"includeReport": true,
"maxChargeUsd": 75
}

The prefilled input remains deliberately small so Apify automated quality runs finish quickly. For production use, replace the example source with public pages you are authorized to access.

Dataset output

  • sourceUrl
  • sourceType
  • pageTitle
  • recordType
  • recordName
  • issueCode
  • severity
  • evidenceSnippet
  • recommendation
  • canonicalUrl
  • httpStatus
  • scannedAt
  • matchGroupId
  • productName
  • competitorName
  • ownedUrl
  • competitorUrl
  • ownedPrice
  • competitorPrice
  • priceDifference
  • pricePosition
  • currency
  • saleSignal
  • shippingSignal
  • ratingSignal
  • availabilityComparison

Reports are also written to key-value storage:

  • competitor-price-position-snapshot-summary-report.md
  • competitor-price-position-snapshot-records.csv
  • competitor-price-position-snapshot-issues.json
  • competitor-price-position-snapshot-evidence-samples.json
  • competitor-price-position-snapshot-run-metadata.json

When includeRawSnapshots is true, bounded raw HTML snapshots are stored separately. Raw snapshots are off by default.

Pay-per-event pricing

Platform-usage pass-through is off. Prices are the locked fixed-inclusive values for this actor.

EventPriceMeaning
actor-start$0.08Actor Start
product-target-checked$0.0175Product Target Checked
competitor-price-record-checked$0.0175Competitor Price Record Checked
price-position-signal-detected$0.0345Price Position Signal Detected
executive-report-generated$0.85Executive Report Generated

Charging rules:

  • actor-start must be accepted before fetching or rendering begins.
  • Page/target events are deduplicated per source.
  • Record and finding events fire only when the corresponding output exists.
  • Report output is written only after the report event is accepted.
  • Partial charges and Apify charge-limit responses stop the run before additional paid output.
  • Store discounts are tracked as a separate Console configuration requirement; this source does not claim they are already applied.

Evidence and failure behavior

  • Price difference is competitor price minus owned price.
  • Missing sides and currency mismatches are explicit diagnostics.
  • The actor does not access private pricing, accounts, carts, or restricted data.

A fetch failure, browser failure, blocked page, missing record, or incomplete match produces a bounded diagnostic row when possible. It never invents a successful extraction. Evidence can be omitted with includeEvidence: false.

Local verification

pnpm --filter @junipr/competitor-price-position-snapshot build
pnpm --filter @junipr/competitor-price-position-snapshot test
pnpm --filter @junipr/competitor-price-position-snapshot smoke

The tests cover strong, weak, unavailable, comparison, and cap fixtures; schema equality; pricing metadata; accepted/partial/limited charges; zero budget; and report generation.

Limitations

  • Results reflect the public source at the scan time and may change later.
  • Site markup changes can require selector/parser maintenance.
  • The actor does not bypass authentication, CAPTCHAs, robots restrictions, or access controls.
  • Legal, tax, pricing, SEO, merchandising, and marketplace decisions remain the user's responsibility.