{
  "@context": {
    "@vocab": "https://keenable.ai/schema#",
    "schema": "https://schema.org/",
    "xsd": "http://www.w3.org/2001/XMLSchema#",
    "dcterms": "http://purl.org/dc/terms/",
    "keenable": "https://keenable.ai/schema#",
    "ApiError": "keenable:ApiError",
    "error": {
      "@id": "keenable:error",
      "@type": "xsd:string"
    },
    "message": {
      "@id": "keenable:message",
      "@type": "xsd:string"
    },
    "details": {
      "@id": "keenable:details"
    },
    "SearchMode": "keenable:SearchMode",
    "SearchRequest": "keenable:SearchRequest",
    "query": {
      "@id": "keenable:query",
      "@type": "xsd:string"
    },
    "mode": {
      "@id": "keenable:mode",
      "@type": "@id"
    },
    "acquired_after": {
      "@id": "keenable:acquired_after",
      "@type": "xsd:string"
    },
    "acquired_before": {
      "@id": "keenable:acquired_before",
      "@type": "xsd:string"
    },
    "published_after": {
      "@id": "keenable:published_after",
      "@type": "xsd:string"
    },
    "published_before": {
      "@id": "keenable:published_before",
      "@type": "xsd:string"
    },
    "site": {
      "@id": "keenable:site",
      "@type": "xsd:string"
    },
    "query_time": {
      "@id": "keenable:query_time",
      "@type": "xsd:string"
    },
    "snippet_max_length": {
      "@id": "keenable:snippet_max_length",
      "@type": "xsd:integer"
    },
    "max_results": {
      "@id": "keenable:max_results",
      "@type": "xsd:integer"
    },
    "SearchResponse": "keenable:SearchResponse",
    "results": {
      "@id": "keenable:results",
      "@container": "@list"
    },
    "SearchResult": "keenable:SearchResult",
    "title": {
      "@id": "keenable:title",
      "@type": "xsd:string"
    },
    "url": {
      "@id": "keenable:url",
      "@type": "xsd:string"
    },
    "description": {
      "@id": "keenable:description",
      "@type": "xsd:string"
    },
    "snippet": {
      "@id": "keenable:snippet",
      "@type": "xsd:string"
    },
    "published_at": {
      "@id": "keenable:published_at",
      "@type": "xsd:string"
    },
    "acquired_at": {
      "@id": "keenable:acquired_at",
      "@type": "xsd:string"
    },
    "FetchResponse": "keenable:FetchResponse",
    "content": {
      "@id": "keenable:content",
      "@type": "xsd:string"
    },
    "author": {
      "@id": "keenable:author",
      "@type": "xsd:string"
    }
  },
  "@type": "schema:Dataset",
  "schema:name": "Keenable API JSON-LD context",
  "schema:description": "A JSON-LD @context for the objects Keenable'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-24) from openapi/keenable-openapi.json.",
  "dcterms:created": "2026-10-24",
  "dcterms:source": [
    "openapi/keenable-openapi.json"
  ]
}