bissl-at · Schema

DishesAnswer

Company

Properties

Name Type Description
attribution string
corrected stringnull The words put right when they found nothing as typed: "schnitzel" for "schnitzl".
cuisine stringnull
diet object The filters in effect, asked for or taken from the words.
free_of stringnull
note stringnull Why there is nothing, or less than asked for, when there is a reason to say.
places array Each with its best matches, at most 5.
recommended boolean Nothing was asked for, so these are dishes popular at this time of day.
searched stringnull The words searched for, once a diet, allergens or a cuisine among them were taken as filters ("vegan curry" searches "curry" with diet vegan); null for none.
total_dishes integer
total_places integer Places and dishes found, of which `places` holds `limit` from `offset` on. A search reads at most 500 places - the nearest `lat`, `lon`, else the middle of `bbox`, else the most complete listings - an
View JSON Schema on GitHub

JSON Schema

bissl-at-dishes-answer-schema.json Raw ↑
{
  "$schema": "https://json-schema.org/draft/2020-12/schema",
  "$id": "https://artifacts.apis.io/bissl-at/json-schema/bissl-at-dishes-answer-schema.json",
  "title": "DishesAnswer",
  "x-generated": "2026-11-02",
  "x-method": "derived",
  "x-generator": "derive-json-schema.py",
  "x-source": "openapi/bissl-at-openapi.json#/components/schemas/DishesAnswer",
  "properties": {
    "attribution": {
      "type": "string"
    },
    "corrected": {
      "description": "The words put right when they found nothing as typed: \"schnitzel\" for \"schnitzl\".",
      "type": [
        "string",
        "null"
      ]
    },
    "cuisine": {
      "type": [
        "string",
        "null"
      ]
    },
    "diet": {
      "anyOf": [
        {
          "$ref": "#/$defs/ApiDiet"
        },
        {
          "enum": [
            null
          ],
          "nullable": true
        }
      ],
      "description": "The filters in effect, asked for or taken from the words."
    },
    "free_of": {
      "type": [
        "string",
        "null"
      ]
    },
    "note": {
      "description": "Why there is nothing, or less than asked for, when there is a reason to say.",
      "type": [
        "string",
        "null"
      ]
    },
    "places": {
      "description": "Each with its best matches, at most 5.",
      "items": {
        "$ref": "#/$defs/PlaceDishes"
      },
      "type": "array"
    },
    "recommended": {
      "description": "Nothing was asked for, so these are dishes popular at this time of day.",
      "type": "boolean"
    },
    "searched": {
      "description": "The words searched for, once a diet, allergens or a cuisine among them were taken as\nfilters (\"vegan curry\" searches \"curry\" with diet vegan); null for none.",
      "type": [
        "string",
        "null"
      ]
    },
    "total_dishes": {
      "format": "int64",
      "type": "integer"
    },
    "total_places": {
      "description": "Places and dishes found, of which `places` holds `limit` from `offset` on. A search\nreads at most 500 places - the nearest `lat`, `lon`, else the middle of `bbox`, else\nthe most complete listings - and counts the dish where those have it; when fewer than\n30 do, it reads the 500 nearest (or most complete) that have it instead. So these\nare at most 500, `sort=price` is the cheapest of them, and paging ends there.",
      "format": "int64",
      "type": "integer"
    }
  },
  "required": [
    "searched",
    "corrected",
    "diet",
    "free_of",
    "cuisine",
    "recommended",
    "total_places",
    "total_dishes",
    "places",
    "note",
    "attribution"
  ],
  "type": "object",
  "$defs": {
    "ApiDiet": {
      "description": "A diet as a menu marks a dish, or the dish's name says it.",
      "oneOf": [
        {
          "enum": [
            "vegan"
          ],
          "type": "string"
        },
        {
          "description": "Vegetarian, vegan dishes included.",
          "enum": [
            "vegetarian"
          ],
          "type": "string"
        }
      ]
    },
    "Dish": {
      "description": "A dish or drink on a menu, the same in every answer.",
      "properties": {
        "allergens": {
          "description": "The allergen letters its menu lists, by the Austrian codes (A gluten, B\ncrustaceans, C egg, D fish, E peanuts, F soy, G milk, H nuts, L celery, M mustard,\nN sesame, O sulphites, P lupin, R molluscs); null when the menu lists none for it,\nwhich is no promise it has none.",
          "type": [
            "string",
            "null"
          ]
        },
        "checked_on": {
          "description": "The day its menu was last read from the venue's website.",
          "format": "date",
          "type": [
            "string",
            "null"
          ]
        },
        "description": {
          "type": "string"
        },
        "diet": {
          "anyOf": [
            {
              "$ref": "#/$defs/ApiDiet"
            },
            {
              "enum": [
                null
              ],
              "nullable": true
            }
          ],
          "description": "Vegan or vegetarian as the menu marks it or its name says; null when neither."
        },
        "id": {
          "description": "bissl's id of the dish on its menu.",
          "format": "int64",
          "type": "integer"
        },
        "name": {
          "type": "string"
        },
        "prices": {
          "description": "One per size or variant; none when the menu gives no price.",
          "items": {
            "$ref": "#/$defs/Price"
          },
          "type": "array"
        },
        "served_on": {
          "description": "The day a lunch dish is served on; null for what the place always serves.",
          "format": "date",
          "type": [
            "string",
            "null"
          ]
        },
        "url": {
          "description": "The venue's bissl page with this dish marked.",
          "type": "string"
        }
      },
      "required": [
        "id",
        "name",
        "description",
        "prices",
        "diet",
        "allergens",
        "served_on",
        "checked_on",
        "url"
      ],
      "type": "object"
    },
    "Place": {
      "description": "A place to eat or drink, the same in every answer.",
      "properties": {
        "address": {
          "description": "Street, house number, postcode and town; null when bissl has none.",
          "type": [
            "string",
            "null"
          ]
        },
        "area": {
          "description": "Its district or town, to say where it is: \"7. Neubau\", \"Mödling\"; null outside every\ntown bissl knows. No filter takes it.",
          "type": [
            "string",
            "null"
          ]
        },
        "cuisines": {
          "description": "Its cuisines as OpenStreetMap names them: austrian, italian, pizza, vietnamese...",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "distance_m": {
          "description": "Metres from the point asked about (`lat`, `lon`), when one was given.",
          "format": "int64",
          "type": [
            "integer",
            "null"
          ]
        },
        "kind": {
          "description": "Its kind as OpenStreetMap tags it: restaurant, fast_food, cafe, bar, pub,\nbiergarten, ice_cream, food_court, bakery or pastry.",
          "type": "string"
        },
        "lat": {
          "format": "double",
          "type": "number"
        },
        "lon": {
          "format": "double",
          "type": "number"
        },
        "name": {
          "type": "string"
        },
        "open_now": {
          "description": "Open right now by its opening hours (Vienna's time); null when bissl can't read them.",
          "type": [
            "boolean",
            "null"
          ]
        },
        "part_of": {
          "description": "The larger place it is part of, as its own website names it - the hotel, castle or\nclub its restaurant or bar is in: \"Das Schloss an der Eisenstrasse\". Null for none.",
          "type": [
            "string",
            "null"
          ]
        },
        "price_level": {
          "description": "\"€\" to \"€€€€\" from its menu's prices, against places of its kind - a restaurant's\nmains, a café's coffee and cake, a bar's cocktails; null while bissl doesn't know.",
          "type": [
            "string",
            "null"
          ]
        },
        "slug": {
          "description": "bissl's name for the place: what `/v1/venues/{slug}` and `get_venue` take.",
          "type": "string"
        },
        "url": {
          "description": "Its page on bissl, with every menu: link to it.",
          "type": "string"
        }
      },
      "required": [
        "slug",
        "name",
        "part_of",
        "kind",
        "cuisines",
        "address",
        "area",
        "lat",
        "lon",
        "open_now",
        "distance_m",
        "price_level",
        "url"
      ],
      "type": "object"
    },
    "PlaceDishes": {
      "description": "A place and its dishes in an answer: the dishes a search found there, or its lunch.",
      "properties": {
        "dishes": {
          "description": "In the answer's order.",
          "items": {
            "$ref": "#/$defs/Dish"
          },
          "type": "array"
        },
        "more_dishes": {
          "description": "More of them there, on its page.",
          "format": "int64",
          "type": "integer"
        },
        "place": {
          "$ref": "#/$defs/Place"
        },
        "served": {
          "description": "When its lunch is served, as its menu says: \"11:00–14:30\". Lunch only; null otherwise.",
          "type": [
            "string",
            "null"
          ]
        }
      },
      "required": [
        "place",
        "served",
        "dishes",
        "more_dishes"
      ],
      "type": "object"
    },
    "Price": {
      "description": "A price of a dish: one per size or variant.",
      "properties": {
        "note": {
          "description": "What it is for, when the menu says: a size or a variant (\"0,5 l\", \"klein\").",
          "type": "string"
        },
        "price": {
          "description": "As the venue page writes it: \"12,90 €\".",
          "type": [
            "string",
            "null"
          ]
        },
        "price_cents": {
          "description": "In euro cents; null when the menu names a size without a price.",
          "format": "int64",
          "type": [
            "integer",
            "null"
          ]
        }
      },
      "required": [
        "price_cents",
        "price",
        "note"
      ],
      "type": "object"
    }
  }
}

Work with this as data

Every JSON Schema here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for schemas

4 MCP tools reach this
  • find_json_schemasBrowse and filter every JSON Schema in the catalog.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This JSON Schema
curl "https://apis.io/api/v1/json-schemas/bissl-at-dishes-answer"
All schemas
curl "https://apis.io/api/v1/json-schemas?limit=25"

Calls without X-API-Key need no key. Calls with it need a paid plan — get a key.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.