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 |
JSON Schema
{
"$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.
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.