{"source":"vinmonopolet","operation":"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},{"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)"},{"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)"},{"name":"limit","type":"integer","schema":{"type":"integer"},"required":false,"default":20,"description":"Max stores to return, 1-50 (default 20). Unit: items.","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_stock?product_id={product_id}&lat={lat}&lon={lon}&limit=20&offset=0","schema_scope":"#/data in the successful operation envelope","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."},"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/get_product_stock/schema","operation":"https://allemannsdata.com/wiki/api/v1/kilder/vinmonopolet/get_product_stock","source":"https://allemannsdata.com/wiki/api/v1/kilder/vinmonopolet","feedback":"https://allemannsdata.com/wiki/api/v1/feedback"},"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"]},"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"}}}
