{"source":"politiloggen","operation":"search_messages","description":"Search the Norwegian police log.","parameters":[{"name":"keyword","schema":{"anyOf":[{"type":"string"},{"type":"null"}]},"required":false,"default":null,"description":"Free-text term, e.g. \"trafikkulykke\", \"knivstikking\". Client-side filter, see above. Combine with districts or a date range to aim the scan window."},{"name":"districts","schema":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]},"required":false,"default":null,"description":"Filter by police district. Use these exact names: Oslo, \u00d8st, Innlandet, S\u00f8r\u00d8st, Agder, S\u00f8rVest, Vest, M\u00f8reOgRomsdal, Tr\u00f8ndelag, Nordland, Troms, Finnmark."},{"name":"municipalities","schema":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]},"required":false,"default":null,"description":"Filter by municipality name (e.g. \"Lier\", \"Bergen\")."},{"name":"categories","schema":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}]},"required":false,"default":null,"description":"Filter by category name (e.g. \"Trafikk\", \"Brann\"). Call list_categories() for the full list."},{"name":"is_active","schema":{"anyOf":[{"type":"boolean"},{"type":"null"}]},"required":false,"default":null,"description":"True for ongoing incidents only, False for closed."},{"name":"date_from","schema":{"anyOf":[{"type":"string"},{"type":"null"}]},"required":false,"default":null,"description":"ISO datetime lower bound, e.g. \"2026-06-01T00:00:00Z\"."},{"name":"date_to","schema":{"anyOf":[{"type":"string"},{"type":"null"}]},"required":false,"default":null,"description":"ISO datetime upper bound."},{"name":"sort_by","schema":{"type":"string"},"required":false,"default":"Date","description":"One of Date, Update, District, Category, Area, Municipality, IsActive, None. Default Date."},{"name":"sort_order","schema":{"type":"string"},"required":false,"default":"Descending","description":"\"Ascending\" or \"Descending\" (default)."},{"name":"skip","schema":{"type":"integer"},"required":false,"default":0,"description":"Offset for paging (default 0)."},{"name":"take","schema":{"type":"integer"},"required":false,"default":10,"description":"How many to return, 1 to 50 (default 10)."},{"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)."},{"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."}],"json_get_url_template":"https://allemannsdata.com/wiki/api/v1/kilder/politiloggen/search_messages?keyword={keyword}&districts={districts}&municipalities={municipalities}&categories={categories}&is_active={is_active}&date_from={date_from}&date_to={date_to}&sort_by=Date&sort_order=Descending&skip=0&take=10&limit=25&offset=0","schema_scope":"#/data in the successful operation envelope","response_schema":{"type":"object","properties":{"total_count":{"type":"null"},"messages":{"type":"object","properties":{"id":{"type":["string","null"]},"category":{"type":["string","null"]},"district":{"type":["string","null"]},"municipality":{"type":["string","null"]},"area":{"type":["string","null"]},"text":{"type":["string","null"]},"is_active":{"type":["boolean","null"]},"created_on":{"type":["string","null"],"format":"date-time"},"updated_on":{"type":["string","null"],"format":"date-time"},"image_url":{"type":["string","null"],"format":"uri"}},"additionalProperties":false}},"additionalProperties":false},"response_schema_status":{"status":"inferred","codegen_safe":true,"description":"Safe for code generation from the currently published fields. The contract is statically inferred rather than independently maintained, so clients should tolerate additional fields."},"entity_projection":{"status":"projected","entity_types":["police_incident"],"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"}},"required":["self","api_index"],"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},"502":{"codes":["SOURCE_UNAVAILABLE"],"retryable":true},"500":{"codes":["INTERNAL_ERROR"],"retryable":true}}},"_links":{"self":"https://allemannsdata.com/wiki/api/v1/kilder/politiloggen/search_messages/schema","operation":"https://allemannsdata.com/wiki/api/v1/kilder/politiloggen/search_messages","source":"https://allemannsdata.com/wiki/api/v1/kilder/politiloggen"},"output_fields":["total_count","messages","messages.id","messages.category","messages.district","messages.municipality","messages.area","messages.text","messages.is_active","messages.created_on","messages.updated_on","messages.image_url"],"output_fields_truncated":false,"canonical_field_aliases":{"identifier":["messages.id"],"timestamp":["messages.created_on","messages.updated_on"]}}
