{
  "@context": {
    "@vocab": "https://farpy.com/schema#",
    "schema": "https://schema.org/",
    "xsd": "http://www.w3.org/2001/XMLSchema#",
    "dcterms": "http://purl.org/dc/terms/",
    "farpy": "https://farpy.com/schema#",
    "Health": "farpy:Health",
    "ok": {
      "@id": "farpy:ok",
      "@type": "xsd:boolean"
    },
    "service": {
      "@id": "farpy:service",
      "@type": "xsd:string"
    },
    "ts": {
      "@id": "farpy:ts",
      "@type": "xsd:dateTime"
    },
    "Pricing": "farpy:Pricing",
    "contract": {
      "@id": "farpy:contract",
      "@type": "xsd:string"
    },
    "currency": {
      "@id": "farpy:currency",
      "@type": "xsd:string"
    },
    "model": {
      "@id": "farpy:model",
      "@type": "xsd:string"
    },
    "price_per_frame_cents": {
      "@id": "farpy:price_per_frame_cents",
      "@type": "xsd:integer"
    },
    "minimum_charge_cents": {
      "@id": "farpy:minimum_charge_cents",
      "@type": "xsd:integer"
    },
    "Capabilities": "farpy:Capabilities",
    "renderers": {
      "@id": "farpy:renderers",
      "@container": "@list"
    },
    "availability": {
      "@id": "farpy:availability"
    },
    "pricing": {
      "@id": "farpy:pricing"
    },
    "limits": {
      "@id": "farpy:limits"
    },
    "cancellation": {
      "@id": "farpy:cancellation"
    },
    "workflow": {
      "@id": "farpy:workflow",
      "@container": "@list"
    },
    "proof": {
      "@id": "farpy:proof"
    },
    "webhooks": {
      "@id": "farpy:webhooks"
    },
    "Limits": "farpy:Limits",
    "frame_count": {
      "@id": "farpy:frame_count"
    },
    "accepted_extensions": {
      "@id": "farpy:accepted_extensions",
      "@container": "@list"
    },
    "required_render_engine": {
      "@id": "farpy:required_render_engine",
      "@type": "xsd:string"
    },
    "render_backend": {
      "@id": "farpy:render_backend",
      "@type": "xsd:string"
    },
    "maximum_upload_size_bytes": {
      "@id": "farpy:maximum_upload_size_bytes",
      "@type": "xsd:integer"
    },
    "rate_limit": {
      "@id": "farpy:rate_limit"
    },
    "ApiKeyMetadata": "farpy:ApiKeyMetadata",
    "key_id": {
      "@id": "farpy:key_id",
      "@type": "xsd:string"
    },
    "name": {
      "@id": "farpy:name",
      "@type": "xsd:string"
    },
    "masked_prefix": {
      "@id": "farpy:masked_prefix",
      "@type": "xsd:string"
    },
    "created_at": {
      "@id": "farpy:created_at",
      "@type": "xsd:dateTime"
    },
    "last_used_at": {
      "@id": "farpy:last_used_at",
      "@type": "xsd:dateTime"
    },
    "revoked_at": {
      "@id": "farpy:revoked_at",
      "@type": "xsd:dateTime"
    },
    "ApiKeyList": "farpy:ApiKeyList",
    "keys": {
      "@id": "farpy:keys",
      "@container": "@list"
    },
    "ApiKeyCreateRequest": "farpy:ApiKeyCreateRequest",
    "ApiKeyCreated": "farpy:ApiKeyCreated",
    "key": {
      "@id": "farpy:key",
      "@type": "xsd:string"
    },
    "ApiKeyRevoked": "farpy:ApiKeyRevoked",
    "revoked": {
      "@id": "farpy:revoked",
      "@type": "xsd:boolean"
    },
    "RenderObject": "farpy:RenderObject",
    "webhook_configured": {
      "@id": "farpy:webhook_configured",
      "@type": "xsd:boolean"
    },
    "RenderUploadRequest": "farpy:RenderUploadRequest",
    "file": {
      "@id": "farpy:file",
      "@type": "xsd:string"
    },
    "webhook_url": {
      "@id": "farpy:webhook_url",
      "@type": "@id"
    },
    "webhook_secret": {
      "@id": "farpy:webhook_secret",
      "@type": "xsd:string"
    },
    "RenderProof": "farpy:RenderProof",
    "job_id": {
      "@id": "farpy:job_id",
      "@type": "xsd:string"
    },
    "receipt_url": {
      "@id": "farpy:receipt_url",
      "@type": "xsd:string"
    },
    "WorkspaceRenders": "farpy:WorkspaceRenders",
    "renders": {
      "@id": "farpy:renders",
      "@container": "@list"
    },
    "PreflightRequest": "farpy:PreflightRequest",
    "filename": {
      "@id": "farpy:filename",
      "@type": "xsd:string"
    },
    "renderer": {
      "@id": "farpy:renderer",
      "@type": "xsd:string"
    },
    "frame_start": {
      "@id": "farpy:frame_start",
      "@type": "xsd:integer"
    },
    "frame_end": {
      "@id": "farpy:frame_end",
      "@type": "xsd:integer"
    },
    "Error": "farpy:Error",
    "error": {
      "@id": "farpy:error"
    }
  },
  "@type": "schema:Dataset",
  "schema:name": "Farpy API JSON-LD context",
  "schema:description": "A JSON-LD @context for the objects Farpy'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-08) from openapi/farpy-com-openapi.json.",
  "dcterms:created": "2026-11-08",
  "dcterms:source": [
    "openapi/farpy-com-openapi.json"
  ]
}