{
  "@context": {
    "@vocab": "https://snaplab.dev/schema#",
    "schema": "https://schema.org/",
    "xsd": "http://www.w3.org/2001/XMLSchema#",
    "dcterms": "http://purl.org/dc/terms/",
    "snaplab": "https://snaplab.dev/schema#",
    "RenderOptions": "snaplab:RenderOptions",
    "url": {
      "@id": "snaplab:url",
      "@type": "@id"
    },
    "html": {
      "@id": "snaplab:html",
      "@type": "xsd:string"
    },
    "template": {
      "@id": "snaplab:template",
      "@type": "xsd:string"
    },
    "data": {
      "@id": "snaplab:data"
    },
    "css": {
      "@id": "snaplab:css",
      "@type": "xsd:string"
    },
    "googleFonts": {
      "@id": "snaplab:googleFonts",
      "@type": "xsd:string"
    },
    "format": {
      "@id": "snaplab:format",
      "@type": "xsd:string"
    },
    "viewport": {
      "@id": "snaplab:viewport",
      "@type": "xsd:string"
    },
    "width": {
      "@id": "snaplab:width",
      "@type": "xsd:integer"
    },
    "height": {
      "@id": "snaplab:height",
      "@type": "xsd:integer"
    },
    "deviceScaleFactor": {
      "@id": "snaplab:deviceScaleFactor",
      "@type": "xsd:decimal"
    },
    "mobile": {
      "@id": "snaplab:mobile",
      "@type": "xsd:boolean"
    },
    "fullPage": {
      "@id": "snaplab:fullPage",
      "@type": "xsd:boolean"
    },
    "selector": {
      "@id": "snaplab:selector",
      "@type": "xsd:string"
    },
    "quality": {
      "@id": "snaplab:quality",
      "@type": "xsd:integer"
    },
    "waitUntil": {
      "@id": "snaplab:waitUntil",
      "@type": "xsd:string"
    },
    "waitForSelector": {
      "@id": "snaplab:waitForSelector",
      "@type": "xsd:string"
    },
    "delayMs": {
      "@id": "snaplab:delayMs",
      "@type": "xsd:integer"
    },
    "scrollY": {
      "@id": "snaplab:scrollY",
      "@type": "xsd:integer"
    },
    "hideSelectors": {
      "@id": "snaplab:hideSelectors",
      "@container": "@list"
    },
    "darkMode": {
      "@id": "snaplab:darkMode"
    },
    "dismissBanners": {
      "@id": "snaplab:dismissBanners",
      "@type": "xsd:boolean"
    },
    "blockAds": {
      "@id": "snaplab:blockAds",
      "@type": "xsd:boolean"
    },
    "customCss": {
      "@id": "snaplab:customCss",
      "@type": "xsd:string"
    },
    "customJs": {
      "@id": "snaplab:customJs",
      "@type": "xsd:string"
    },
    "cookies": {
      "@id": "snaplab:cookies",
      "@container": "@list"
    },
    "headers": {
      "@id": "snaplab:headers"
    },
    "basicAuth": {
      "@id": "snaplab:basicAuth"
    },
    "pdf": {
      "@id": "snaplab:pdf"
    },
    "filename": {
      "@id": "snaplab:filename",
      "@type": "xsd:string"
    },
    "cache": {
      "@id": "snaplab:cache",
      "@type": "xsd:boolean"
    },
    "responseType": {
      "@id": "snaplab:responseType",
      "@type": "xsd:string"
    },
    "ImageOptions": "snaplab:ImageOptions",
    "HostedRender": "snaplab:HostedRender",
    "id": {
      "@id": "snaplab:id",
      "@type": "xsd:string"
    },
    "bytes": {
      "@id": "snaplab:bytes",
      "@type": "xsd:integer"
    },
    "cacheHit": {
      "@id": "snaplab:cacheHit",
      "@type": "xsd:boolean"
    },
    "durationMs": {
      "@id": "snaplab:durationMs",
      "@type": "xsd:integer"
    },
    "Capture": "snaplab:Capture",
    "userId": {
      "@id": "snaplab:userId",
      "@type": "xsd:string"
    },
    "apiKeyId": {
      "@id": "snaplab:apiKeyId",
      "@type": "xsd:string"
    },
    "title": {
      "@id": "snaplab:title",
      "@type": "xsd:string"
    },
    "status": {
      "@id": "snaplab:status",
      "@type": "xsd:string"
    },
    "fileKey": {
      "@id": "snaplab:fileKey",
      "@type": "xsd:string"
    },
    "fileSize": {
      "@id": "snaplab:fileSize",
      "@type": "xsd:integer"
    },
    "fingerprint": {
      "@id": "snaplab:fingerprint",
      "@type": "xsd:string"
    },
    "error": {
      "@id": "snaplab:error",
      "@type": "xsd:string"
    },
    "createdAt": {
      "@id": "snaplab:createdAt",
      "@type": "xsd:dateTime"
    },
    "completedAt": {
      "@id": "snaplab:completedAt",
      "@type": "xsd:dateTime"
    },
    "webhook": {
      "@id": "snaplab:webhook",
      "@type": "@id"
    },
    "ApiKey": "snaplab:ApiKey",
    "name": {
      "@id": "snaplab:name",
      "@type": "xsd:string"
    },
    "prefix": {
      "@id": "snaplab:prefix",
      "@type": "xsd:string"
    },
    "lastUsedAt": {
      "@id": "snaplab:lastUsedAt",
      "@type": "xsd:dateTime"
    },
    "revokedAt": {
      "@id": "snaplab:revokedAt",
      "@type": "xsd:dateTime"
    },
    "Error": "snaplab:Error",
    "code": {
      "@id": "snaplab:code",
      "@type": "xsd:string"
    },
    "retryable": {
      "@id": "snaplab:retryable",
      "@type": "xsd:boolean"
    },
    "issues": {
      "@id": "snaplab:issues",
      "@container": "@list"
    },
    "upgradeUrl": {
      "@id": "snaplab:upgradeUrl",
      "@type": "xsd:string"
    },
    "CaptureRequest": "snaplab:CaptureRequest",
    "webhookUrl": {
      "@id": "snaplab:webhookUrl",
      "@type": "@id"
    },
    "webhookSecret": {
      "@id": "snaplab:webhookSecret",
      "@type": "xsd:string"
    },
    "WebhookDelivery": "snaplab:WebhookDelivery",
    "attempt": {
      "@id": "snaplab:attempt",
      "@type": "xsd:integer"
    },
    "lastStatusCode": {
      "@id": "snaplab:lastStatusCode",
      "@type": "xsd:integer"
    },
    "updatedAt": {
      "@id": "snaplab:updatedAt",
      "@type": "xsd:dateTime"
    },
    "CaptureWebhook": "snaplab:CaptureWebhook",
    "deliveries": {
      "@id": "snaplab:deliveries",
      "@container": "@list"
    },
    "WebhookPayload": "snaplab:WebhookPayload",
    "event": {
      "@id": "snaplab:event",
      "@type": "xsd:string"
    },
    "capture": {
      "@id": "snaplab:capture"
    },
    "hostedUrl": {
      "@id": "snaplab:hostedUrl",
      "@type": "@id"
    }
  },
  "@type": "schema:Dataset",
  "schema:name": "snaplab-dev API JSON-LD context",
  "schema:description": "A JSON-LD @context for the objects snaplab-dev'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-10-31) from openapi/snaplab-dev-openapi.json.",
  "dcterms:created": "2026-10-31",
  "dcterms:source": [
    "openapi/snaplab-dev-openapi.json"
  ]
}