{"id":"vinmonopolet","name":"Vinmonopolet","description":"Products, product details and stock from the undocumented endpoint behind vinmonopolet.no, plus store details and opening hours from the official API.","documentation":"https://api.vinmonopolet.no/","operations":[{"name":"search_products","description":"Search the Vinmonopolet product catalogue. Signature: search_products(query: string, optional, default None; category: string, optional, default None; country: string, optional, default None; store_id: string, optional, default None; sort: string, optional, default 'relevance'; limit: integer, items, optional, default 20; offset: integer, items, optional, default 0).","signature":"search_products(query: string, optional, default None; category: string, optional, default None; country: string, optional, default None; store_id: string, optional, default None; sort: string, optional, default 'relevance'; limit: integer, items, optional, default 20; offset: integer, items, optional, default 0)","parameters":[{"name":"query","type":"string","schema":{"anyOf":[{"type":"string"},{"type":"null"}]},"required":false,"default":null,"description":"Free-text search (product name, producer, ...). Omit to search by facets only.","unit":null,"display_type":"string"},{"name":"category","type":"string","schema":{"anyOf":[{"type":"string"},{"type":"null"}]},"required":false,"default":null,"description":"Main category facet, e.g. \"R\u00f8dvin\", \"Brennevin\", \"Aromatisert vin\" (case-insensitive; spaces become underscores).","unit":null,"display_type":"string"},{"name":"country","type":"string","schema":{"anyOf":[{"type":"string"},{"type":"null"}]},"required":false,"default":null,"description":"Main country facet, e.g. \"Italia\", \"Norge\".","unit":null,"display_type":"string"},{"name":"store_id","type":"string","schema":{"anyOf":[{"type":"string"},{"type":"null"}]},"required":false,"default":null,"description":"Only products available in this store (digits only).","unit":null,"display_type":"string"},{"name":"sort","type":"string","schema":{"type":"string"},"required":false,"default":"relevance","description":"One of relevance, name-asc, name-desc, price-asc, price-desc, alcohol-asc, alcohol-desc (default relevance).","unit":null,"display_type":"string"},{"name":"limit","type":"integer","schema":{"type":"integer"},"required":false,"default":20,"description":"Max products on the one page fetched, 1-50 (default 20). Unit: items.","unit":"items","display_type":"integer"},{"name":"offset","type":"integer","schema":{"type":"integer","minimum":0,"default":0},"display_type":"integer","required":false,"default":0,"description":"Number of list items to skip before returning the page.","unit":"items"}],"json_get_url_template":"https://allemannsdata.com/wiki/api/v1/kilder/vinmonopolet/search_products?query={query}&category={category}&country={country}&store_id={store_id}&sort=relevance&limit=20&offset=0","output_fields":["query","sort","total","returned","products","products[].product_id","products[].name","products[].price_nok","products[].volume_cl","products[].alcohol_pct","products[].category","products[].sub_category","products[].country","products[].district","products[].product_selection","products[].buyable","products[].store_availability","products[].url"],"output_fields_truncated":false,"canonical_field_aliases":{"name":["products[].name"]},"description_language":"en","documentation":"Search the Vinmonopolet product catalogue.\n\nProduct search comes from the JSON API behind vinmonopolet.no, which is\nundocumented and may change without notice. Prices are in NOK including VAT.\n\nArgs:\n    query: Free-text search (product name, producer, ...). Omit to search\n        by facets only.\n    category: Main category facet, e.g. \"R\u00f8dvin\", \"Brennevin\",\n        \"Aromatisert vin\" (case-insensitive; spaces become underscores).\n    country: Main country facet, e.g. \"Italia\", \"Norge\".\n    store_id: Only products available in this store (digits only).\n    sort: One of relevance, name-asc, name-desc, price-asc, price-desc,\n        alcohol-asc, alcohol-desc (default relevance).\n    limit: Max products on the one page fetched, 1-50 (default 20).\n\nReturns `query`, `sort`, `total` (all matches upstream, not just this\npage), `returned` and `products`. Each product has product_id, name,\nprice_nok, volume_cl, alcohol_pct, category, sub_category, country,\ndistrict, product_selection, buyable, store_availability and url.\n\nSignature: search_products(query: string, optional, default None; category: string, optional, default None; country: string, optional, default None; store_id: string, optional, default None; sort: string, optional, default 'relevance'; limit: integer, items, optional, default 20; offset: integer, items, optional, default 0).","documentation_language":"en","wiki_get_endpoint":"https://allemannsdata.com/wiki/kilder/vinmonopolet/search_products/","wiki_get_url_template":"https://allemannsdata.com/wiki/kilder/vinmonopolet/search_products/?query={query}&category={category}&country={country}&store_id={store_id}&sort=relevance&limit=20&offset=0","json_endpoint":"https://allemannsdata.com/wiki/api/v1/kilder/vinmonopolet/search_products","response_schema":{"type":"object","properties":{"query":{"type":"string"},"sort":{"type":"string"},"total":{"type":"integer"},"returned":{"type":"integer"},"products":{"type":"array","items":{"type":"object","properties":{"product_id":{"type":["string","null"]},"name":{"type":["string","null"]},"price_nok":{"type":["number","null"]},"volume_cl":{"type":["number","null"]},"alcohol_pct":{"type":["number","null"]},"category":{"type":["string","null"]},"sub_category":{"type":["string","null"]},"country":{"type":["string","null"]},"district":{"type":["string","null"]},"product_selection":{"type":["string","null"]},"buyable":{"type":["boolean","null"]},"store_availability":{"type":["string","null"]},"url":{"type":["string","null"],"format":"uri"}},"additionalProperties":false}}},"additionalProperties":false,"required":["query","sort","total","returned","products"]},"response_schema_status":{"status":"declared","codegen_safe":true,"description":"Maintained response contract."},"entity_projection":{"status":"intentionally_none","entity_types":[],"description":"No stable cross-source entity projection is defined for this operation; entities is intentionally empty."},"response_schema_url":"https://allemannsdata.com/wiki/api/v1/kilder/vinmonopolet/search_products/schema","endpoint":"https://allemannsdata.com/wiki/api/v1/kilder/vinmonopolet/search_products","get_url_template":"https://allemannsdata.com/wiki/api/v1/kilder/vinmonopolet/search_products?query={query}&category={category}&country={country}&store_id={store_id}&sort=relevance&limit=20&offset=0","response_example":{"source":"vinmonopolet","operation":"search_products","parameters":{"query":"example value","category":"example value","country":"example value","store_id":"example-id","sort":"relevance","limit":20},"data":{"query":"example value","sort":"example value","total":1,"returned":1,"products":[{"product_id":"example-id","name":"Example","price_nok":1.0,"volume_cl":1.0,"alcohol_pct":1.0,"category":"example value","sub_category":"example value","country":"example value","district":"example value","product_selection":"example value","buyable":true,"store_availability":"example value","url":"https://example.invalid/resource"}]},"entities":[],"_meta":{"retrieved_at":"2026-01-15T12:00:00Z","language":"en","content_languages":["en"],"sources":[{"id":"vinmonopolet","name":"Vinmonopolet","description":"Products, product details and stock from the undocumented endpoint behind vinmonopolet.no, plus store details and opening hours from the official API.","cache_ttl_seconds":3600,"documentation":"https://api.vinmonopolet.no/"}]},"_provenance":{"data":{"source":"vinmonopolet","source_api":"https://allemannsdata.com/wiki/api/v1/kilder/vinmonopolet"},"entities":{"source":"vinmonopolet","source_api":"https://allemannsdata.com/wiki/api/v1/kilder/vinmonopolet","derived_from":"#/data","description":"Normalized projection of data."}},"_links":{"self":"https://allemannsdata.com/wiki/api/v1/kilder/vinmonopolet/search_products","source":"https://allemannsdata.com/wiki/api/v1/kilder/vinmonopolet","wiki":"https://allemannsdata.com/wiki/kilder/vinmonopolet/search_products/","feedback":"https://allemannsdata.com/wiki/api/v1/feedback"}}},{"name":"get_product","description":"Full details for one Vinmonopolet product. Signature: get_product(product_id: string, required; limit: integer, items, optional, default 25; offset: integer, items, optional, default 0).","signature":"get_product(product_id: string, required; limit: integer, items, optional, default 25; offset: integer, items, optional, default 0)","parameters":[{"name":"product_id","type":"string","schema":{"type":"string"},"required":true,"default":null,"description":"The product code (digits only), e.g. \"1206702\".","unit":null,"display_type":"string"},{"name":"limit","type":"integer","schema":{"type":"integer","minimum":1,"maximum":100,"default":25},"display_type":"integer","required":false,"default":25,"description":"Maximum list items returned by the gateway (default 25, maximum 100).","unit":"items"},{"name":"offset","type":"integer","schema":{"type":"integer","minimum":0,"default":0},"display_type":"integer","required":false,"default":0,"description":"Number of list items to skip before returning the page.","unit":"items"}],"json_get_url_template":"https://allemannsdata.com/wiki/api/v1/kilder/vinmonopolet/get_product?product_id={product_id}&limit=25&offset=0","output_fields":["product_id","name","price_nok","litre_price_nok","volume_cl","alcohol_pct","sugar","category","sub_category","sub_sub_category","country","district","sub_district","producer","wholesaler","distributor","color","smell","taste","method","ingredients","good_for","characteristics","characteristics[].name","characteristics[].value","package_type","cork","product_selection","status","buyable"],"output_fields_truncated":true,"canonical_field_aliases":{"name":["name","characteristics[].name"]},"description_language":"en","documentation":"Full details for one Vinmonopolet product.\n\nProduct details come from the JSON API behind vinmonopolet.no, which is\nundocumented and may change without notice. Prices are in NOK including VAT.\n\nArgs:\n    product_id: The product code (digits only), e.g. \"1206702\".\n\nReturns one dict with product_id, name, price_nok, litre_price_nok,\nvolume_cl, alcohol_pct, sugar, category, sub_category, sub_sub_category,\ncountry, district, sub_district, producer, wholesaler, distributor, color,\nsmell, taste, method, ingredients, good_for (list of food pairings),\ncharacteristics (list of {\"name\", \"value\"}), package_type, cork,\nproduct_selection, status, buyable, age_limit, eco, fair_trade,\ngluten_free, kosher and url. Keys without a value are omitted.\n\nSignature: get_product(product_id: string, required; limit: integer, items, optional, default 25; offset: integer, items, optional, default 0).","documentation_language":"en","wiki_get_endpoint":"https://allemannsdata.com/wiki/kilder/vinmonopolet/get_product/","wiki_get_url_template":"https://allemannsdata.com/wiki/kilder/vinmonopolet/get_product/?product_id={product_id}&limit=25&offset=0","json_endpoint":"https://allemannsdata.com/wiki/api/v1/kilder/vinmonopolet/get_product","response_schema":{"type":"object","properties":{"product_id":{"type":["string","null"]},"name":{"type":["string","null"]},"price_nok":{"type":["number","null"]},"litre_price_nok":{"type":["number","null"]},"volume_cl":{"type":["number","null"]},"alcohol_pct":{"type":["number","null"]},"sugar":{"type":["string","null"]},"category":{"type":["string","null"]},"sub_category":{"type":["string","null"]},"sub_sub_category":{"type":["string","null"]},"country":{"type":["string","null"]},"district":{"type":["string","null"]},"sub_district":{"type":["string","null"]},"producer":{"type":["string","null"]},"wholesaler":{"type":["string","null"]},"distributor":{"type":["string","null"]},"color":{"type":["string","null"]},"smell":{"type":["string","null"]},"taste":{"type":["string","null"]},"method":{"type":["string","null"]},"ingredients":{"type":["string","null"]},"good_for":{"type":"array","items":{"type":"string"}},"characteristics":{"type":"array","items":{"type":"object","properties":{"name":{"type":["string","null"]},"value":{"type":["integer","string"]}},"additionalProperties":false}},"package_type":{"type":["string","null"]},"cork":{"type":["string","null"]},"product_selection":{"type":["string","null"]},"status":{"type":["string","null"]},"buyable":{"type":["boolean","null"]},"age_limit":{"type":["integer","null"]},"eco":{"type":["boolean","null"]},"fair_trade":{"type":["boolean","null"]},"gluten_free":{"type":["boolean","null"]},"kosher":{"type":["boolean","null"]},"url":{"type":["string","null"],"format":"uri"}},"additionalProperties":false},"response_schema_status":{"status":"declared","codegen_safe":true,"description":"Maintained response contract."},"entity_projection":{"status":"intentionally_none","entity_types":[],"description":"No stable cross-source entity projection is defined for this operation; entities is intentionally empty."},"response_schema_url":"https://allemannsdata.com/wiki/api/v1/kilder/vinmonopolet/get_product/schema","endpoint":"https://allemannsdata.com/wiki/api/v1/kilder/vinmonopolet/get_product","get_url_template":"https://allemannsdata.com/wiki/api/v1/kilder/vinmonopolet/get_product?product_id={product_id}&limit=25&offset=0","response_example":{"source":"vinmonopolet","operation":"get_product","parameters":{"product_id":"example-id"},"data":{"product_id":"example-id","name":"Example","price_nok":1.0,"litre_price_nok":1.0,"volume_cl":1.0,"alcohol_pct":1.0,"sugar":"example value","category":"example value","sub_category":"example value","sub_sub_category":"example value","country":"example value","district":"example value","sub_district":"example value","producer":"example value","wholesaler":"example value","distributor":"example value","color":"example value","smell":"example value","taste":"example value","method":"example value","ingredients":"example value","good_for":["example value"],"characteristics":[{"name":"Example","value":1}],"package_type":"example value","cork":"example value","product_selection":"example value","status":"example value","buyable":true,"age_limit":1,"eco":true,"fair_trade":true,"gluten_free":true,"kosher":true,"url":"https://example.invalid/resource"},"entities":[],"_meta":{"retrieved_at":"2026-01-15T12:00:00Z","language":"en","content_languages":["en"],"sources":[{"id":"vinmonopolet","name":"Vinmonopolet","description":"Products, product details and stock from the undocumented endpoint behind vinmonopolet.no, plus store details and opening hours from the official API.","cache_ttl_seconds":3600,"documentation":"https://api.vinmonopolet.no/"}]},"_provenance":{"data":{"source":"vinmonopolet","source_api":"https://allemannsdata.com/wiki/api/v1/kilder/vinmonopolet"},"entities":{"source":"vinmonopolet","source_api":"https://allemannsdata.com/wiki/api/v1/kilder/vinmonopolet","derived_from":"#/data","description":"Normalized projection of data."}},"_links":{"self":"https://allemannsdata.com/wiki/api/v1/kilder/vinmonopolet/get_product","source":"https://allemannsdata.com/wiki/api/v1/kilder/vinmonopolet","wiki":"https://allemannsdata.com/wiki/kilder/vinmonopolet/get_product/","feedback":"https://allemannsdata.com/wiki/api/v1/feedback"}}},{"name":"get_product_stock","description":"Which Vinmonopolet stores have a product in stock, nearest first. Signature: get_product_stock(product_id: string, required; lat: decimal number, decimal degrees (WGS84), optional, default None; lon: decimal number, decimal degrees (WGS84), optional, default None; limit: integer, items, optional, default 20; offset: integer, items, optional, default 0).","signature":"get_product_stock(product_id: string, required; lat: decimal number, decimal degrees (WGS84), optional, default None; lon: decimal number, decimal degrees (WGS84), optional, default None; limit: integer, items, optional, default 20; offset: integer, items, optional, default 0)","parameters":[{"name":"product_id","type":"string","schema":{"type":"string"},"required":true,"default":null,"description":"The product code (digits only), e.g. \"1206702\".","unit":null,"display_type":"string"},{"name":"lat","type":"number","schema":{"anyOf":[{"type":"number"},{"type":"null"}]},"required":false,"default":null,"description":"Centre coordinate (WGS84) to sort stores by distance from. Unit: decimal degrees (WGS84).","unit":"decimal degrees (WGS84)","display_type":"decimal number"},{"name":"lon","type":"number","schema":{"anyOf":[{"type":"number"},{"type":"null"}]},"required":false,"default":null,"description":"Centre coordinate (WGS84) to sort stores by distance from. Unit: decimal degrees (WGS84).","unit":"decimal degrees (WGS84)","display_type":"decimal number"},{"name":"limit","type":"integer","schema":{"type":"integer"},"required":false,"default":20,"description":"Max stores to return, 1-50 (default 20). Unit: items.","unit":"items","display_type":"integer"},{"name":"offset","type":"integer","schema":{"type":"integer","minimum":0,"default":0},"display_type":"integer","required":false,"default":0,"description":"Number of list items to skip before returning the page.","unit":"items"}],"json_get_url_template":"https://allemannsdata.com/wiki/api/v1/kilder/vinmonopolet/get_product_stock?product_id={product_id}&lat={lat}&lon={lon}&limit=20&offset=0","output_fields":["product_id","total","stores","stores[].store_id","stores[].name","stores[].address","stores[].lat","stores[].lon","stores[].distance_km","stores[].stock"],"output_fields_truncated":false,"canonical_field_aliases":{"name":["stores[].name"],"latitude":["stores[].lat"],"longitude":["stores[].lon"]},"description_language":"en","documentation":"Which Vinmonopolet stores have a product in stock, nearest first.\n\nStock comes from the JSON API behind vinmonopolet.no, which is\nundocumented and may change without notice. Without lat/lon the search is\ncentred on Oslo (59.9139, 10.7522); pass both or neither.\n\nArgs:\n    product_id: The product code (digits only), e.g. \"1206702\".\n    lat, lon: Centre coordinate (WGS84) to sort stores by distance from.\n    limit: Max stores to return, 1-50 (default 20).\n\nReturns `product_id`, `total` (stores with stock upstream) and `stores`\nin upstream order (nearest first). Each store has store_id, name, address,\nlat, lon, distance_km and stock. Empty when nothing is in stock.\n\nSignature: get_product_stock(product_id: string, required; lat: decimal number, decimal degrees (WGS84), optional, default None; lon: decimal number, decimal degrees (WGS84), optional, default None; limit: integer, items, optional, default 20; offset: integer, items, optional, default 0).","documentation_language":"en","wiki_get_endpoint":"https://allemannsdata.com/wiki/kilder/vinmonopolet/get_product_stock/","wiki_get_url_template":"https://allemannsdata.com/wiki/kilder/vinmonopolet/get_product_stock/?product_id={product_id}&lat={lat}&lon={lon}&limit=20&offset=0","json_endpoint":"https://allemannsdata.com/wiki/api/v1/kilder/vinmonopolet/get_product_stock","response_schema":{"type":"object","properties":{"product_id":{"type":["string","null"]},"total":{"type":"integer"},"stores":{"type":"array","items":{"type":"object","properties":{"store_id":{"type":["string","null"]},"name":{"type":["string","null"]},"address":{"type":["string","null"]},"lat":{"type":["number","null"]},"lon":{"type":["number","null"]},"distance_km":{"type":["number","null"]},"stock":{"type":["integer","null"]}},"additionalProperties":false}}},"additionalProperties":false,"required":["product_id","total","stores"]},"response_schema_status":{"status":"declared","codegen_safe":true,"description":"Maintained response contract."},"entity_projection":{"status":"projected","entity_types":["place"],"description":"Recognized records and stable operation identifiers are projected; an empty array means the successful payload contained no recognizable entity."},"response_schema_url":"https://allemannsdata.com/wiki/api/v1/kilder/vinmonopolet/get_product_stock/schema","endpoint":"https://allemannsdata.com/wiki/api/v1/kilder/vinmonopolet/get_product_stock","get_url_template":"https://allemannsdata.com/wiki/api/v1/kilder/vinmonopolet/get_product_stock?product_id={product_id}&lat={lat}&lon={lon}&limit=20&offset=0","response_example":{"source":"vinmonopolet","operation":"get_product_stock","parameters":{"product_id":"example-id","lat":59.91,"lon":10.75,"limit":20},"data":{"product_id":"example-id","total":1,"stores":[{"store_id":"example-id","name":"Example","address":"example value","lat":59.91,"lon":10.75,"distance_km":1.0,"stock":1}]},"entities":[{"type":"place","id":"59.91,10.75","name":"59.91, 10.75","source":"vinmonopolet","description":"Coordinate used as the operation input.","coordinates":{"lat":59.91,"lon":10.75,"crs":"WGS84"}}],"_meta":{"retrieved_at":"2026-01-15T12:00:00Z","language":"en","content_languages":["en"],"sources":[{"id":"vinmonopolet","name":"Vinmonopolet","description":"Products, product details and stock from the undocumented endpoint behind vinmonopolet.no, plus store details and opening hours from the official API.","cache_ttl_seconds":3600,"documentation":"https://api.vinmonopolet.no/"}]},"_provenance":{"data":{"source":"vinmonopolet","source_api":"https://allemannsdata.com/wiki/api/v1/kilder/vinmonopolet"},"entities":{"source":"vinmonopolet","source_api":"https://allemannsdata.com/wiki/api/v1/kilder/vinmonopolet","derived_from":"#/data","description":"Normalized projection of data."}},"_links":{"self":"https://allemannsdata.com/wiki/api/v1/kilder/vinmonopolet/get_product_stock","source":"https://allemannsdata.com/wiki/api/v1/kilder/vinmonopolet","wiki":"https://allemannsdata.com/wiki/kilder/vinmonopolet/get_product_stock/","feedback":"https://allemannsdata.com/wiki/api/v1/feedback"}}},{"name":"find_stores","description":"Find Vinmonopolet stores by name, city, street, postal code or distance. Signature: find_stores(query: string, optional, default None; lat: decimal number, decimal degrees (WGS84), optional, default None; lon: decimal number, decimal degrees (WGS84), optional, default None; limit: integer, items, optional, default 20; offset: integer, items, optional, default 0).","signature":"find_stores(query: string, optional, default None; lat: decimal number, decimal degrees (WGS84), optional, default None; lon: decimal number, decimal degrees (WGS84), optional, default None; limit: integer, items, optional, default 20; offset: integer, items, optional, default 0)","parameters":[{"name":"query","type":"string","schema":{"anyOf":[{"type":"string"},{"type":"null"}]},"required":false,"default":null,"description":"Case-insensitive substring of the store name, city or street, or an exact postal code (e.g. \"Bergen\", \"5015\").","unit":null,"display_type":"string"},{"name":"lat","type":"number","schema":{"anyOf":[{"type":"number"},{"type":"null"}]},"required":false,"default":null,"description":"Centre coordinate (WGS84); adds distance_km to each store and sorts by distance instead of name. Both or neither. Unit: decimal degrees (WGS84).","unit":"decimal degrees (WGS84)","display_type":"decimal number"},{"name":"lon","type":"number","schema":{"anyOf":[{"type":"number"},{"type":"null"}]},"required":false,"default":null,"description":"Centre coordinate (WGS84); adds distance_km to each store and sorts by distance instead of name. Both or neither. Unit: decimal degrees (WGS84).","unit":"decimal degrees (WGS84)","display_type":"decimal number"},{"name":"limit","type":"integer","schema":{"type":"integer"},"required":false,"default":20,"description":"Max stores to return, 1-100 (default 20). Unit: items.","unit":"items","display_type":"integer"},{"name":"offset","type":"integer","schema":{"type":"integer"},"required":false,"default":0,"description":"Results to skip before the first one returned (default 0); with limit, pages through every match. Unit: items.","unit":"items","display_type":"integer"}],"json_get_url_template":"https://allemannsdata.com/wiki/api/v1/kilder/vinmonopolet/find_stores?query={query}&lat={lat}&lon={lon}&limit=20&offset=0","output_fields":["count","stores","stores[].store_id","stores[].name","stores[].status","stores[].street","stores[].postal_code","stores[].city","stores[].lat","stores[].lon","stores[].category","stores[].profile","stores[].distance_km","stores[].open_today"],"output_fields_truncated":false,"canonical_field_aliases":{"name":["stores[].name"],"latitude":["stores[].lat"],"longitude":["stores[].lon"]},"description_language":"en","documentation":"Find Vinmonopolet stores by name, city, street, postal code or distance.\n\nStore details come from Vinmonopolet's official API (a free API key is\nneeded server-side). Give a query, or lat/lon, or both. Opening hours are\nleft out here; use get_store for one store's full opening hours.\n\nArgs:\n    query: Case-insensitive substring of the store name, city or street,\n        or an exact postal code (e.g. \"Bergen\", \"5015\").\n    lat, lon: Centre coordinate (WGS84); adds distance_km to each store\n        and sorts by distance instead of name. Both or neither.\n    limit: Max stores to return, 1-100 (default 20).\n    offset: Results to skip before the first one returned (default 0); with\n        limit, pages through every match.\n\nReturns `count` (stores matching before the cap) and `stores`, each with\nstore_id, name, status, street, postal_code, city, lat, lon, category,\nprofile, distance_km (only for a lat/lon search) and open_today\n(\"HH:MM-HH:MM\" or \"closed\", Europe/Oslo date, an exception winning).\n\nSignature: find_stores(query: string, optional, default None; lat: decimal number, decimal degrees (WGS84), optional, default None; lon: decimal number, decimal degrees (WGS84), optional, default None; limit: integer, items, optional, default 20; offset: integer, items, optional, default 0).","documentation_language":"en","wiki_get_endpoint":"https://allemannsdata.com/wiki/kilder/vinmonopolet/find_stores/","wiki_get_url_template":"https://allemannsdata.com/wiki/kilder/vinmonopolet/find_stores/?query={query}&lat={lat}&lon={lon}&limit=20&offset=0","json_endpoint":"https://allemannsdata.com/wiki/api/v1/kilder/vinmonopolet/find_stores","response_schema":{"type":"object","properties":{"count":{"type":"integer"},"stores":{"type":"array","items":{"type":"object","properties":{"store_id":{"type":["string","null"]},"name":{"type":["string","null"]},"status":{"type":["string","null"]},"street":{"type":["string","null"]},"postal_code":{"type":["string","null"]},"city":{"type":["string","null"]},"lat":{"type":["number","null"]},"lon":{"type":["number","null"]},"category":{"type":["string","null"]},"profile":{"type":["string","null"]},"distance_km":{"type":["number","null"]},"open_today":{"type":["string","null"]}},"additionalProperties":false}}},"additionalProperties":false,"required":["count","stores"]},"response_schema_status":{"status":"declared","codegen_safe":true,"description":"Maintained response contract."},"entity_projection":{"status":"projected","entity_types":["place"],"description":"Recognized records and stable operation identifiers are projected; an empty array means the successful payload contained no recognizable entity."},"response_schema_url":"https://allemannsdata.com/wiki/api/v1/kilder/vinmonopolet/find_stores/schema","endpoint":"https://allemannsdata.com/wiki/api/v1/kilder/vinmonopolet/find_stores","get_url_template":"https://allemannsdata.com/wiki/api/v1/kilder/vinmonopolet/find_stores?query={query}&lat={lat}&lon={lon}&limit=20&offset=0","response_example":{"source":"vinmonopolet","operation":"find_stores","parameters":{"query":"example value","lat":59.91,"lon":10.75,"limit":20,"offset":0},"data":{"count":1,"stores":[{"store_id":"example-id","name":"Example","status":"example value","street":"example value","postal_code":"example value","city":"example value","lat":59.91,"lon":10.75,"category":"example value","profile":"example value","distance_km":1.0,"open_today":"example value"}]},"entities":[{"type":"place","id":"59.91,10.75","name":"59.91, 10.75","source":"vinmonopolet","description":"Coordinate used as the operation input.","coordinates":{"lat":59.91,"lon":10.75,"crs":"WGS84"}}],"_meta":{"retrieved_at":"2026-01-15T12:00:00Z","language":"en","content_languages":["en"],"sources":[{"id":"vinmonopolet","name":"Vinmonopolet","description":"Products, product details and stock from the undocumented endpoint behind vinmonopolet.no, plus store details and opening hours from the official API.","cache_ttl_seconds":3600,"documentation":"https://api.vinmonopolet.no/"}]},"_provenance":{"data":{"source":"vinmonopolet","source_api":"https://allemannsdata.com/wiki/api/v1/kilder/vinmonopolet"},"entities":{"source":"vinmonopolet","source_api":"https://allemannsdata.com/wiki/api/v1/kilder/vinmonopolet","derived_from":"#/data","description":"Normalized projection of data."}},"_links":{"self":"https://allemannsdata.com/wiki/api/v1/kilder/vinmonopolet/find_stores","source":"https://allemannsdata.com/wiki/api/v1/kilder/vinmonopolet","wiki":"https://allemannsdata.com/wiki/kilder/vinmonopolet/find_stores/","feedback":"https://allemannsdata.com/wiki/api/v1/feedback"}}},{"name":"get_store","description":"Full details and opening hours for one Vinmonopolet store. Signature: get_store(store_id: string, required; limit: integer, items, optional, default 25; offset: integer, items, optional, default 0).","signature":"get_store(store_id: string, required; limit: integer, items, optional, default 25; offset: integer, items, optional, default 0)","parameters":[{"name":"store_id","type":"string","schema":{"type":"string"},"required":true,"default":null,"description":"The store number (digits only), e.g. \"346\".","unit":null,"display_type":"string"},{"name":"limit","type":"integer","schema":{"type":"integer","minimum":1,"maximum":100,"default":25},"display_type":"integer","required":false,"default":25,"description":"Maximum list items returned by the gateway (default 25, maximum 100).","unit":"items"},{"name":"offset","type":"integer","schema":{"type":"integer","minimum":0,"default":0},"display_type":"integer","required":false,"default":0,"description":"Number of list items to skip before returning the page.","unit":"items"}],"json_get_url_template":"https://allemannsdata.com/wiki/api/v1/kilder/vinmonopolet/get_store?store_id={store_id}&limit=25&offset=0","output_fields":["store_id","name","status","street","postal_code","city","lat","lon","category","profile","opening_hours","opening_hours[].day","opening_hours[].open","opening_hours[].close","opening_hours[].closed","exceptions","exceptions[].date","exceptions[].open","exceptions[].close","exceptions[].closed","exceptions[].message"],"output_fields_truncated":false,"canonical_field_aliases":{"name":["name"],"latitude":["lat"],"longitude":["lon"],"date":["exceptions[].date"]},"description_language":"en","documentation":"Full details and opening hours for one Vinmonopolet store.\n\nStore details come from Vinmonopolet's official API (a free API key is\nneeded server-side). Contact details of the store are not returned.\n\nArgs:\n    store_id: The store number (digits only), e.g. \"346\".\n\nReturns one dict with store_id, name, status, street, postal_code, city,\nlat, lon, category, profile, opening_hours (list of {\"day\", \"open\",\n\"close\", \"closed\"} from the regular hours) and exceptions (list of\n{\"date\", \"open\", \"close\", \"closed\", \"message\"} for dates from today on).\nAn unknown id raises an error.\n\nSignature: get_store(store_id: string, required; limit: integer, items, optional, default 25; offset: integer, items, optional, default 0).","documentation_language":"en","wiki_get_endpoint":"https://allemannsdata.com/wiki/kilder/vinmonopolet/get_store/","wiki_get_url_template":"https://allemannsdata.com/wiki/kilder/vinmonopolet/get_store/?store_id={store_id}&limit=25&offset=0","json_endpoint":"https://allemannsdata.com/wiki/api/v1/kilder/vinmonopolet/get_store","response_schema":{"type":"object","properties":{"store_id":{"type":["string","null"]},"name":{"type":["string","null"]},"status":{"type":["string","null"]},"street":{"type":["string","null"]},"postal_code":{"type":["string","null"]},"city":{"type":["string","null"]},"lat":{"type":["number","null"]},"lon":{"type":["number","null"]},"category":{"type":["string","null"]},"profile":{"type":["string","null"]},"opening_hours":{"type":"array","items":{"type":"object","properties":{"day":{"type":["string","null"]},"open":{"type":"string"},"close":{"type":"string"},"closed":{"type":"boolean"}},"additionalProperties":false,"required":["day","open","close","closed"]}},"exceptions":{"type":"array","items":{"type":"object","properties":{"date":{"type":["string","null"]},"open":{"type":["string","null"]},"close":{"type":["string","null"]},"closed":{"type":["boolean","null"]},"message":{"type":["string","null"]}},"additionalProperties":false}}},"additionalProperties":false,"required":["opening_hours","exceptions"]},"response_schema_status":{"status":"declared","codegen_safe":true,"description":"Maintained response contract."},"entity_projection":{"status":"intentionally_none","entity_types":[],"description":"No stable cross-source entity projection is defined for this operation; entities is intentionally empty."},"response_schema_url":"https://allemannsdata.com/wiki/api/v1/kilder/vinmonopolet/get_store/schema","endpoint":"https://allemannsdata.com/wiki/api/v1/kilder/vinmonopolet/get_store","get_url_template":"https://allemannsdata.com/wiki/api/v1/kilder/vinmonopolet/get_store?store_id={store_id}&limit=25&offset=0","response_example":{"source":"vinmonopolet","operation":"get_store","parameters":{"store_id":"example-id"},"data":{"store_id":"example-id","name":"Example","status":"example value","street":"example value","postal_code":"example value","city":"example value","lat":59.91,"lon":10.75,"category":"example value","profile":"example value","opening_hours":[{"day":"example value","open":"example value","close":"example value","closed":true}],"exceptions":[{"date":"2026-01-15","open":"example value","close":"example value","closed":true,"message":"example value"}]},"entities":[],"_meta":{"retrieved_at":"2026-01-15T12:00:00Z","language":"en","content_languages":["en"],"sources":[{"id":"vinmonopolet","name":"Vinmonopolet","description":"Products, product details and stock from the undocumented endpoint behind vinmonopolet.no, plus store details and opening hours from the official API.","cache_ttl_seconds":3600,"documentation":"https://api.vinmonopolet.no/"}]},"_provenance":{"data":{"source":"vinmonopolet","source_api":"https://allemannsdata.com/wiki/api/v1/kilder/vinmonopolet"},"entities":{"source":"vinmonopolet","source_api":"https://allemannsdata.com/wiki/api/v1/kilder/vinmonopolet","derived_from":"#/data","description":"Normalized projection of data."}},"_links":{"self":"https://allemannsdata.com/wiki/api/v1/kilder/vinmonopolet/get_store","source":"https://allemannsdata.com/wiki/api/v1/kilder/vinmonopolet","wiki":"https://allemannsdata.com/wiki/kilder/vinmonopolet/get_store/","feedback":"https://allemannsdata.com/wiki/api/v1/feedback"}}}],"operation_schema_url_template":"https://allemannsdata.com/wiki/api/v1/kilder/vinmonopolet/{operation}/schema","related_sources":[{"id":"mattilsynet","name":"Norwegian Food Safety Authority","reason":"Food-safety inspections and Smilefjes for places that serve the products.","api":"https://allemannsdata.com/wiki/api/v1/kilder/mattilsynet","wiki":"https://allemannsdata.com/wiki/kilder/mattilsynet/"},{"id":"brreg","name":"Br\u00f8nn\u00f8ysund Register Centre","reason":"Official entity data for the producers and wholesalers behind the products.","api":"https://allemannsdata.com/wiki/api/v1/kilder/brreg","wiki":"https://allemannsdata.com/wiki/kilder/brreg/"}],"_meta":{"retrieved_at":"2026-10-11T14:49:13Z","language":"en","content_languages":["en"],"sources":[{"id":"vinmonopolet","name":"Vinmonopolet","description":"Products, product details and stock from the undocumented endpoint behind vinmonopolet.no, plus store details and opening hours from the official API.","documentation":"https://api.vinmonopolet.no/","cache_ttl_seconds":3600}]},"_links":{"self":"https://allemannsdata.com/wiki/api/v1/kilder/vinmonopolet","names":"https://allemannsdata.com/wiki/api/v1/kilder/vinmonopolet?view=names","compact":"https://allemannsdata.com/wiki/api/v1/kilder/vinmonopolet?view=compact","full":"https://allemannsdata.com/wiki/api/v1/kilder/vinmonopolet","wiki":"https://allemannsdata.com/wiki/kilder/vinmonopolet/","feedback":"https://allemannsdata.com/wiki/api/v1/feedback"}}
