Compare a live site against the snapshot as Site A, at the snapshot’s width and check mode. Every stored page is paired by path onto targetUrl, or urls names the pairs; the job is priced at one captured page per pair it compares, half a live pair, with no discovery, and the free allowance applies as for POST /jobs; a Pro account’s key draws 1 captured page per pair from its allowance. The snapshot’s origin is never fetched, so it may be offline; the DNS guard runs on targetUrl and callbackUrl. The share token goes in Authorization: Bearer dcs_… when nothing pays, or in the X-DiffiCat-Share header beside a paying credential or key. Answers the POST /jobs shape plus snapshotId; the snapshot is unchanged.

post/snapshots/{id}/compare

Request

  • Base URL: https://app.difficat.com/api/v1
  • URL: https://app.difficat.com/api/v1/snapshots/{id}/compare
  • Auth: one of:
    • HTTP bearer
    • HTTP bearer
    • HTTP payment and API key in header X-DiffiCat-Share
    • HTTP bearer and API key in header X-DiffiCat-Share

Path parameters

idstring required

The snapshot id (snap-<uuid>).

Request body

targetUrlstring uri required

The live site, Site B.

thresholdnumber

Visual diff tolerance as a fraction from 0 (exact) to 1: 0.05 means 5%. The web app takes a percentage; the API does not.

maxPriceUsdnumber

Optional spend cap in USD. A job priced above it is refused before any challenge, so an auto-paying client is never asked for more.

dryRunboolean

Quote only: runs every check and the pricing, then answers the page count and exact amount. Nothing is charged, the free allowance is not used and no job starts; the same body without dryRun is priced from the retained result.

callbackUrlstring uri

Optional https URL (port 443) that receives one JSON POST when the job ends (jobId, status, summary, links; never the jobToken), a nudge to read the job. Public hosts only, no redirects followed, retried twice; delivery never affects the job.

Response

Dry run: the quote, with nothing charged and no job started

dryRuntrue required
pagesPricedinteger required

The page count the job would be charged for.

amountstring required

The exact amount the same body without dryRun is charged.

currency'USD' required
allowanceRemaininginteger

For a request with no credential and no prepaid key: the comparison pages the client address may still run free today, read without consuming any.

freeCoversboolean

For a request with no credential and no prepaid key: true when the same body sent now without dryRun would run free (the priced pages are within allowanceRemaining and the shared daily pool).

Changes

No recorded changes to this operation across all 1 revision of this API.