{"source":"vinmonopolet","operation":"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},{"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)"},{"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)"},{"name":"limit","type":"integer","schema":{"type":"integer"},"required":false,"default":20,"description":"Max stores to return, 1-100 (default 20). Unit: items.","unit":"items"},{"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"}],"json_get_url_template":"https://allemannsdata.com/wiki/api/v1/kilder/vinmonopolet/find_stores?query={query}&lat={lat}&lon={lon}&limit=20&offset=0","schema_scope":"#/data in the successful operation envelope","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."},"error_contract":{"scope":"top-level HTTP error response; never part of a success payload","schema":{"type":"object","properties":{"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"},"retryable":{"type":"boolean"},"details":{"type":"object"}},"additionalProperties":false,"required":["code","message","retryable"]},"suggestion":{"type":"string"},"_meta":{"type":"object","properties":{"retrieved_at":{"type":"string","format":"date-time"},"language":{"type":"string","const":"en"},"content_languages":{"type":"array","items":{"type":"string"}},"sources":{"type":"array","items":{"type":"object"}}},"required":["retrieved_at","language","content_languages","sources"]},"_links":{"type":"object","properties":{"self":{"type":"string","format":"uri"},"api_index":{"type":"string","format":"uri"},"feedback":{"type":"string","format":"uri"}},"required":["self","api_index","feedback"],"additionalProperties":false}},"additionalProperties":false,"required":["error","suggestion","_meta","_links"]},"statuses":{"400":{"codes":["MISSING_PARAMETER","INVALID_PARAMETER","INVALID_REQUEST"],"retryable":false},"404":{"codes":["SOURCE_NOT_FOUND","OPERATION_NOT_FOUND","ENTITY_NOT_FOUND"],"retryable":false},"429":{"codes":["RATE_LIMITED","GATEWAY_RATE_LIMITED"],"retryable":true},"503":{"codes":["SOURCE_UNAVAILABLE"],"retryable":true},"500":{"codes":["INTERNAL_ERROR"],"retryable":true}}},"_links":{"self":"https://allemannsdata.com/wiki/api/v1/kilder/vinmonopolet/find_stores/schema","operation":"https://allemannsdata.com/wiki/api/v1/kilder/vinmonopolet/find_stores","source":"https://allemannsdata.com/wiki/api/v1/kilder/vinmonopolet","feedback":"https://allemannsdata.com/wiki/api/v1/feedback"},"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"]},"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"}}}
