{
  "@context": {
    "@vocab": "https://receptapi.se/schema#",
    "schema": "https://schema.org/",
    "xsd": "http://www.w3.org/2001/XMLSchema#",
    "dcterms": "http://purl.org/dc/terms/",
    "receptapi": "https://receptapi.se/schema#",
    "Allergen": "receptapi:Allergen",
    "Meta": "receptapi:Meta",
    "attribution": {
      "@id": "receptapi:attribution",
      "@type": "xsd:string"
    },
    "source": {
      "@id": "receptapi:source"
    },
    "total": {
      "@id": "receptapi:total",
      "@type": "xsd:integer"
    },
    "limit": {
      "@id": "receptapi:limit",
      "@type": "xsd:integer"
    },
    "offset": {
      "@id": "receptapi:offset",
      "@type": "xsd:integer"
    },
    "tier": {
      "@id": "receptapi:tier",
      "@type": "xsd:string"
    },
    "Error": "receptapi:Error",
    "error": {
      "@id": "receptapi:error",
      "@type": "xsd:string"
    },
    "meta": {
      "@id": "receptapi:meta",
      "@type": "@id"
    },
    "RecipeListItem": "receptapi:RecipeListItem",
    "slug": {
      "@id": "receptapi:slug",
      "@type": "xsd:string"
    },
    "title": {
      "@id": "receptapi:title",
      "@type": "xsd:string"
    },
    "description": {
      "@id": "receptapi:description",
      "@type": "xsd:string"
    },
    "servings": {
      "@id": "receptapi:servings",
      "@type": "xsd:integer"
    },
    "total_minutes": {
      "@id": "receptapi:total_minutes",
      "@type": "xsd:integer"
    },
    "difficulty": {
      "@id": "receptapi:difficulty",
      "@type": "xsd:string"
    },
    "category": {
      "@id": "receptapi:category",
      "@type": "xsd:string"
    },
    "cuisine": {
      "@id": "receptapi:cuisine",
      "@type": "xsd:string"
    },
    "tags": {
      "@id": "receptapi:tags",
      "@container": "@list"
    },
    "image_url": {
      "@id": "receptapi:image_url",
      "@type": "xsd:string"
    },
    "url": {
      "@id": "receptapi:url",
      "@type": "@id"
    },
    "api_url": {
      "@id": "receptapi:api_url",
      "@type": "@id"
    },
    "updated_at": {
      "@id": "receptapi:updated_at",
      "@type": "xsd:dateTime"
    },
    "Ingredient": "receptapi:Ingredient",
    "name_sv": {
      "@id": "receptapi:name_sv",
      "@type": "xsd:string"
    },
    "allergens": {
      "@id": "receptapi:allergens",
      "@container": "@list"
    },
    "default_unit": {
      "@id": "receptapi:default_unit",
      "@type": "xsd:string"
    },
    "density_g_per_dl": {
      "@id": "receptapi:density_g_per_dl",
      "@type": "xsd:decimal"
    },
    "livsmedelsverket_id": {
      "@id": "receptapi:livsmedelsverket_id",
      "@type": "xsd:string"
    },
    "aliases": {
      "@id": "receptapi:aliases",
      "@container": "@list"
    },
    "recipe_count": {
      "@id": "receptapi:recipe_count",
      "@type": "xsd:integer"
    }
  },
  "@type": "schema:Dataset",
  "schema:name": "ReceptAPI API JSON-LD context",
  "schema:description": "A JSON-LD @context for the objects ReceptAPI'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/receptapi-openapi.json.",
  "dcterms:created": "2026-11-08",
  "dcterms:source": [
    "openapi/receptapi-openapi.json"
  ]
}