{
  "@context": {
    "@vocab": "https://difficat.com/schema#",
    "schema": "https://schema.org/",
    "xsd": "http://www.w3.org/2001/XMLSchema#",
    "dcterms": "http://purl.org/dc/terms/",
    "difficat": "https://difficat.com/schema#",
    "Error": "difficat:Error",
    "error": {
      "@id": "difficat:error",
      "@type": "xsd:string"
    },
    "BasicAuth": "difficat:BasicAuth",
    "username": {
      "@id": "difficat:username",
      "@type": "xsd:string"
    },
    "password": {
      "@id": "difficat:password",
      "@type": "xsd:string"
    },
    "Payment": "difficat:Payment",
    "amount": {
      "@id": "difficat:amount",
      "@type": "xsd:string"
    },
    "currency": {
      "@id": "difficat:currency",
      "@type": "xsd:string"
    },
    "rail": {
      "@id": "difficat:rail",
      "@type": "xsd:string"
    },
    "balance": {
      "@id": "difficat:balance",
      "@type": "xsd:string"
    },
    "pagesFromAllowance": {
      "@id": "difficat:pagesFromAllowance",
      "@type": "xsd:integer"
    },
    "allowanceRemaining": {
      "@id": "difficat:allowanceRemaining",
      "@type": "xsd:integer"
    },
    "NextSteps": "difficat:NextSteps",
    "prepaid": {
      "@id": "difficat:prepaid"
    },
    "pro": {
      "@id": "difficat:pro",
      "@type": "@id"
    },
    "wallet": {
      "@id": "difficat:wallet",
      "@type": "xsd:string"
    },
    "feedback": {
      "@id": "difficat:feedback"
    },
    "allowanceResetsAt": {
      "@id": "difficat:allowanceResetsAt",
      "@type": "xsd:dateTime"
    },
    "free": {
      "@id": "difficat:free",
      "@type": "xsd:string"
    },
    "Problem": "difficat:Problem",
    "type": {
      "@id": "difficat:type",
      "@type": "xsd:string"
    },
    "title": {
      "@id": "difficat:title",
      "@type": "xsd:string"
    },
    "status": {
      "@id": "difficat:status",
      "@type": "xsd:integer"
    },
    "detail": {
      "@id": "difficat:detail",
      "@type": "xsd:string"
    },
    "challengeId": {
      "@id": "difficat:challengeId",
      "@type": "xsd:string"
    },
    "nextSteps": {
      "@id": "difficat:nextSteps",
      "@type": "@id"
    },
    "PrepaidRefusal": "difficat:PrepaidRefusal",
    "topUp": {
      "@id": "difficat:topUp",
      "@type": "@id"
    },
    "KeyRefusal": "difficat:KeyRefusal",
    "FeedbackRequest": "difficat:FeedbackRequest",
    "topic": {
      "@id": "difficat:topic",
      "@type": "xsd:string"
    },
    "message": {
      "@id": "difficat:message",
      "@type": "xsd:string"
    },
    "relatedTool": {
      "@id": "difficat:relatedTool",
      "@type": "xsd:string"
    },
    "quotedAmount": {
      "@id": "difficat:quotedAmount",
      "@type": "xsd:string"
    },
    "wouldPayAt": {
      "@id": "difficat:wouldPayAt",
      "@type": "xsd:string"
    },
    "pages": {
      "@id": "difficat:pages",
      "@type": "xsd:integer"
    },
    "contact": {
      "@id": "difficat:contact",
      "@type": "xsd:string"
    },
    "BalanceResponse": "difficat:BalanceResponse",
    "keyId": {
      "@id": "difficat:keyId",
      "@type": "xsd:string"
    },
    "allowance": {
      "@id": "difficat:allowance"
    },
    "overage": {
      "@id": "difficat:overage"
    },
    "recent": {
      "@id": "difficat:recent",
      "@container": "@list"
    },
    "JobListResponse": "difficat:JobListResponse",
    "jobs": {
      "@id": "difficat:jobs",
      "@container": "@list"
    },
    "DiscoverRequest": "difficat:DiscoverRequest",
    "sourceUrl": {
      "@id": "difficat:sourceUrl",
      "@type": "@id"
    },
    "targetUrl": {
      "@id": "difficat:targetUrl",
      "@type": "@id"
    },
    "sitemapUrl": {
      "@id": "difficat:sitemapUrl",
      "@type": "@id"
    },
    "maxPages": {
      "@id": "difficat:maxPages",
      "@type": "xsd:integer"
    },
    "DiscoverResponse": "difficat:DiscoverResponse",
    "strategy": {
      "@id": "difficat:strategy",
      "@type": "xsd:string"
    },
    "truncated": {
      "@id": "difficat:truncated",
      "@type": "xsd:boolean"
    },
    "payment": {
      "@id": "difficat:payment",
      "@type": "@id"
    },
    "sample": {
      "@id": "difficat:sample",
      "@type": "xsd:boolean"
    },
    "VisualRules": "difficat:VisualRules",
    "masks": {
      "@id": "difficat:masks",
      "@container": "@list"
    },
    "freeze": {
      "@id": "difficat:freeze"
    },
    "ScreenshotRequest": "difficat:ScreenshotRequest",
    "url": {
      "@id": "difficat:url",
      "@type": "@id"
    },
    "auth": {
      "@id": "difficat:auth",
      "@type": "@id"
    },
    "viewportWidth": {
      "@id": "difficat:viewportWidth",
      "@type": "xsd:integer"
    },
    "visual": {
      "@id": "difficat:visual",
      "@type": "@id"
    },
    "ScreenshotResponse": "difficat:ScreenshotResponse",
    "jobId": {
      "@id": "difficat:jobId",
      "@type": "xsd:string"
    },
    "jobToken": {
      "@id": "difficat:jobToken",
      "@type": "xsd:string"
    },
    "filename": {
      "@id": "difficat:filename",
      "@type": "xsd:string"
    },
    "dimensions": {
      "@id": "difficat:dimensions"
    },
    "links": {
      "@id": "difficat:links"
    },
    "pagesCharged": {
      "@id": "difficat:pagesCharged",
      "@type": "xsd:integer"
    },
    "StartJobRequest": "difficat:StartJobRequest",
    "sourceAuth": {
      "@id": "difficat:sourceAuth",
      "@type": "@id"
    },
    "targetAuth": {
      "@id": "difficat:targetAuth",
      "@type": "@id"
    },
    "sourceLogin": {
      "@id": "difficat:sourceLogin",
      "@type": "xsd:string"
    },
    "targetLogin": {
      "@id": "difficat:targetLogin",
      "@type": "xsd:string"
    },
    "sourceCookie": {
      "@id": "difficat:sourceCookie",
      "@type": "xsd:string"
    },
    "targetCookie": {
      "@id": "difficat:targetCookie",
      "@type": "xsd:string"
    },
    "urls": {
      "@id": "difficat:urls",
      "@container": "@list"
    },
    "threshold": {
      "@id": "difficat:threshold",
      "@type": "xsd:decimal"
    },
    "checkMode": {
      "@id": "difficat:checkMode",
      "@type": "xsd:string"
    },
    "maxPriceUsd": {
      "@id": "difficat:maxPriceUsd",
      "@type": "xsd:decimal"
    },
    "dryRun": {
      "@id": "difficat:dryRun",
      "@type": "xsd:boolean"
    },
    "callbackUrl": {
      "@id": "difficat:callbackUrl",
      "@type": "@id"
    },
    "StartJobResponse": "difficat:StartJobResponse",
    "DryRunResponse": "difficat:DryRunResponse",
    "pagesPriced": {
      "@id": "difficat:pagesPriced",
      "@type": "xsd:integer"
    },
    "freeCovers": {
      "@id": "difficat:freeCovers",
      "@type": "xsd:boolean"
    },
    "Summary": "difficat:Summary",
    "totalPages": {
      "@id": "difficat:totalPages",
      "@type": "xsd:integer"
    },
    "totalDiscovered": {
      "@id": "difficat:totalDiscovered",
      "@type": "xsd:integer"
    },
    "passed": {
      "@id": "difficat:passed",
      "@type": "xsd:integer"
    },
    "failed": {
      "@id": "difficat:failed",
      "@type": "xsd:integer"
    },
    "duration": {
      "@id": "difficat:duration",
      "@type": "xsd:decimal"
    },
    "startedAt": {
      "@id": "difficat:startedAt",
      "@type": "xsd:dateTime"
    },
    "completedAt": {
      "@id": "difficat:completedAt",
      "@type": "xsd:dateTime"
    },
    "byType": {
      "@id": "difficat:byType"
    },
    "issuesBySeverity": {
      "@id": "difficat:issuesBySeverity"
    },
    "PageResult": "difficat:PageResult",
    "checks": {
      "@id": "difficat:checks"
    },
    "snapshots": {
      "@id": "difficat:snapshots"
    },
    "changes": {
      "@id": "difficat:changes",
      "@container": "@list"
    },
    "issues": {
      "@id": "difficat:issues",
      "@container": "@list"
    },
    "JobStatus": "difficat:JobStatus",
    "progress": {
      "@id": "difficat:progress"
    },
    "pagesReturned": {
      "@id": "difficat:pagesReturned",
      "@type": "xsd:integer"
    },
    "summary": {
      "@id": "difficat:summary",
      "@type": "@id"
    },
    "followUps": {
      "@id": "difficat:followUps",
      "@container": "@list"
    },
    "createdAt": {
      "@id": "difficat:createdAt",
      "@type": "xsd:integer"
    },
    "updatedAt": {
      "@id": "difficat:updatedAt",
      "@type": "xsd:integer"
    },
    "Report": "difficat:Report",
    "cancelled": {
      "@id": "difficat:cancelled",
      "@type": "xsd:boolean"
    },
    "results": {
      "@id": "difficat:results",
      "@container": "@list"
    },
    "total": {
      "@id": "difficat:total",
      "@type": "xsd:integer"
    },
    "nextOffset": {
      "@id": "difficat:nextOffset",
      "@type": "xsd:integer"
    },
    "text": {
      "@id": "difficat:text",
      "@type": "xsd:string"
    },
    "DigestEntry": "difficat:DigestEntry",
    "failedChecks": {
      "@id": "difficat:failedChecks",
      "@container": "@list"
    },
    "diffPercentage": {
      "@id": "difficat:diffPercentage",
      "@type": "xsd:decimal"
    },
    "regions": {
      "@id": "difficat:regions",
      "@container": "@list"
    },
    "regionCount": {
      "@id": "difficat:regionCount",
      "@type": "xsd:integer"
    },
    "fingerprints": {
      "@id": "difficat:fingerprints",
      "@container": "@list"
    },
    "flakyShare": {
      "@id": "difficat:flakyShare",
      "@type": "xsd:decimal"
    },
    "screenshots": {
      "@id": "difficat:screenshots"
    },
    "bodyOverlap": {
      "@id": "difficat:bodyOverlap",
      "@type": "xsd:decimal"
    },
    "blockedBy": {
      "@id": "difficat:blockedBy"
    },
    "certificate": {
      "@id": "difficat:certificate"
    },
    "reason": {
      "@id": "difficat:reason",
      "@type": "xsd:string"
    },
    "pairing": {
      "@id": "difficat:pairing",
      "@type": "xsd:string"
    },
    "Snapshot": "difficat:Snapshot",
    "id": {
      "@id": "difficat:id",
      "@type": "xsd:string"
    },
    "label": {
      "@id": "difficat:label",
      "@type": "xsd:string"
    },
    "origin": {
      "@id": "difficat:origin",
      "@type": "@id"
    },
    "pageCount": {
      "@id": "difficat:pageCount",
      "@type": "xsd:integer"
    },
    "errorPages": {
      "@id": "difficat:errorPages",
      "@type": "xsd:integer"
    },
    "via": {
      "@id": "difficat:via",
      "@type": "xsd:string"
    },
    "access": {
      "@id": "difficat:access",
      "@type": "xsd:string"
    },
    "SnapshotList": "difficat:SnapshotList",
    "SnapshotDetail": "difficat:SnapshotDetail",
    "snapshot": {
      "@id": "difficat:snapshot",
      "@type": "@id"
    },
    "compares": {
      "@id": "difficat:compares",
      "@container": "@list"
    },
    "sharedCompareCount": {
      "@id": "difficat:sharedCompareCount",
      "@type": "xsd:integer"
    },
    "SnapshotPage": "difficat:SnapshotPage",
    "path": {
      "@id": "difficat:path",
      "@type": "xsd:string"
    },
    "finalUrl": {
      "@id": "difficat:finalUrl",
      "@type": "xsd:string"
    },
    "content": {
      "@id": "difficat:content"
    },
    "screenshot": {
      "@id": "difficat:screenshot"
    },
    "SnapshotCompareRequest": "difficat:SnapshotCompareRequest",
    "StoredCompareRequest": "difficat:StoredCompareRequest",
    "pairs": {
      "@id": "difficat:pairs",
      "@container": "@list"
    },
    "snapshotId": {
      "@id": "difficat:snapshotId",
      "@type": "xsd:string"
    },
    "otherSnapshotId": {
      "@id": "difficat:otherSnapshotId",
      "@type": "xsd:string"
    },
    "SnapshotRef": "difficat:SnapshotRef",
    "n": {
      "@id": "difficat:n",
      "@type": "xsd:integer"
    },
    "SnapshotCompareResponse": "difficat:SnapshotCompareResponse",
    "compareId": {
      "@id": "difficat:compareId",
      "@type": "xsd:string"
    }
  },
  "@type": "schema:Dataset",
  "schema:name": "DiffiCat API JSON-LD context",
  "schema:description": "A JSON-LD @context for the objects DiffiCat's own API contract declares: one class per component schema, one property per declared field, typed from the contract. Derived by script (derive-json-ld.py, 2026-11-05) from openapi/difficat-com-openapi.yml.",
  "dcterms:created": "2026-11-05",
  "dcterms:source": [
    "openapi/difficat-com-openapi.yml"
  ]
}