{"id":"banenor","name":"Bane NOR train data","description":"Real-time station boards, train movements and rail disruptions from the infrastructure manager.","documentation":"https://www.banenor.no/reise-og-trafikk/apne-data/","operations":[{"name":"get_station_board","description":"Live departure/arrival board for one Norwegian railway station, straight\nfrom Bane NOR - the data shown on the physical station screens. Signature: get_station_board(station_id: string, required; direction: string, optional, default 'all'; minutes_ahead: integer, optional, default 120; line: string, optional, default None; destination: string, optional, default None; operator: string, optional, default None; max_trains: integer, optional, default 20; include_formation: yes/no, optional, default False; limit: integer, items, optional, default 25; offset: integer, items, optional, default 0).","signature":"get_station_board(station_id: string, required; direction: string, optional, default 'all'; minutes_ahead: integer, optional, default 120; line: string, optional, default None; destination: string, optional, default None; operator: string, optional, default None; max_trains: integer, optional, default 20; include_formation: yes/no, optional, default False; limit: integer, items, optional, default 25; offset: integer, items, optional, default 0)","parameters":[{"name":"station_id","type":"string","schema":{"type":"string"},"required":true,"default":null,"description":"Bane NOR station code, e.g. \"OSL\" (Oslo S), \"BRG\" (Bergen), \"TND\" (Trondheim S). Use lookup_station to find a code. Unknown codes error.","unit":null,"display_type":"string"},{"name":"direction","type":"string","schema":{"type":"string"},"required":false,"default":"all","description":"\"all\" (default), \"departures\" or \"arrivals\".","unit":null,"display_type":"string"},{"name":"minutes_ahead","type":"integer","schema":{"type":"integer"},"required":false,"default":120,"description":"Window from now, in minutes (default 120).","unit":null,"display_type":"integer"},{"name":"line","type":"string","schema":{"anyOf":[{"type":"string"},{"type":"null"}]},"required":false,"default":null,"description":"Only this line, e.g. \"L2\", \"R12\", \"FLY1\". Exact match.","unit":null,"display_type":"string"},{"name":"destination","type":"string","schema":{"anyOf":[{"type":"string"},{"type":"null"}]},"required":false,"default":null,"description":"Only trains whose final stop is this station NAME (e.g. \"Skien\", not \"SKN\").","unit":null,"display_type":"string"},{"name":"operator","type":"string","schema":{"anyOf":[{"type":"string"},{"type":"null"}]},"required":false,"default":null,"description":"Only this operator code, e.g. \"VY\", \"VYG\", \"FLY\", \"GAG\", \"SJN\".","unit":null,"display_type":"string"},{"name":"max_trains","type":"integer","schema":{"type":"integer"},"required":false,"default":20,"description":"Cap on trains returned (default 20), applied upstream to the trains departing/arriving next.","unit":null,"display_type":"integer"},{"name":"include_formation","type":"boolean","schema":{"type":"boolean"},"required":false,"default":false,"description":"Also return train formation per train where reported: wagon order and types, open/closed state, on-board services (bicycle, quiet, wheelchair, bistro, wlan, ...) and automatic passenger-count occupancy. Verbose; off by default.","unit":null,"display_type":"yes/no"},{"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/banenor/get_station_board?station_id={station_id}&direction=all&minutes_ahead=120&line={line}&destination={destination}&operator={operator}&max_trains=20&include_formation=false&limit=25&offset=0","output_fields":["station","train_count","trains","trains[].train","trains[].line","trains[].operator","trains[].product","trains[].service","trains[].origin","trains[].destination","trains[].via","trains[].aimed_arrival","trains[].expected_arrival","trains[].actual_arrival","trains[].arrival_status","trains[].arrival_platform","trains[].aimed_departure","trains[].expected_departure","trains[].actual_departure","trains[].departure_status","trains[].departure_platform","trains[].at_stop","trains[].prediction_inaccurate","trains[].formation","attribution"],"output_fields_truncated":false,"canonical_field_aliases":{},"description_language":"en","documentation":"Live departure/arrival board for one Norwegian railway station, straight\nfrom Bane NOR - the data shown on the physical station screens.\n\nArgs:\n    station: Bane NOR station code, e.g. \"OSL\" (Oslo S), \"BRG\" (Bergen),\n        \"TND\" (Trondheim S). Use lookup_station to find a code. Unknown\n        codes error.\n    direction: \"all\" (default), \"departures\" or \"arrivals\".\n    minutes_ahead: Window from now, in minutes (default 120).\n    line: Only this line, e.g. \"L2\", \"R12\", \"FLY1\". Exact match.\n    destination: Only trains whose final stop is this station NAME\n        (e.g. \"Skien\", not \"SKN\").\n    operator: Only this operator code, e.g. \"VY\", \"VYG\", \"FLY\", \"GAG\",\n        \"SJN\".\n    max_trains: Cap on trains returned (default 20), applied upstream to\n        the trains departing/arriving next.\n    include_formation: Also return train formation per train where\n        reported: wagon order and types, open/closed state, on-board\n        services (bicycle, quiet, wheelchair, bistro, wlan, ...) and\n        automatic passenger-count occupancy. Verbose; off by default.\n\nEach train has train (the national train number), line, operator,\nproduct, origin, destination, at_stop (physically at the platform now),\nand the known subset of aimed/expected/actual arrival and departure\ntimes (ISO 8601), platform and status (onTime, delayed, arrived,\ndeparted, noReport). Times reflect Bane NOR's business rules: delays\nunder ~3 minutes still count as onTime.\n\nSignature: get_station_board(station_id: string, required; direction: string, optional, default 'all'; minutes_ahead: integer, optional, default 120; line: string, optional, default None; destination: string, optional, default None; operator: string, optional, default None; max_trains: integer, optional, default 20; include_formation: yes/no, optional, default False; limit: integer, items, optional, default 25; offset: integer, items, optional, default 0).","documentation_language":"en","wiki_get_endpoint":"https://allemannsdata.com/wiki/kilder/banenor/get_station_board/","wiki_get_url_template":"https://allemannsdata.com/wiki/kilder/banenor/get_station_board/?station_id={station_id}&direction=all&minutes_ahead=120&line={line}&destination={destination}&operator={operator}&max_trains=20&include_formation=false&limit=25&offset=0","json_endpoint":"https://allemannsdata.com/wiki/api/v1/kilder/banenor/get_station_board","response_schema":{"type":"object","properties":{"station":{"type":"string"},"train_count":{"type":"integer"},"trains":{"type":"array","items":{"type":"object","properties":{"train":{"type":"string"},"line":{"type":"string"},"operator":{"type":"string"},"product":{"type":"string"},"service":{"type":"string"},"origin":{"type":"string"},"destination":{"type":"string"},"via":{"type":"array","items":{"type":"string"}},"aimed_arrival":{"type":"string","format":"date-time"},"expected_arrival":{"type":"string","format":"date-time"},"actual_arrival":{"type":"string","format":"date-time"},"arrival_status":{"type":"string"},"arrival_platform":{"type":"string"},"aimed_departure":{"type":"string","format":"date-time"},"expected_departure":{"type":"string","format":"date-time"},"actual_departure":{"type":"string","format":"date-time"},"departure_status":{"type":"string"},"departure_platform":{"type":"string"},"at_stop":{"type":"boolean"},"prediction_inaccurate":{"type":"boolean"},"formation":{"type":"object"}},"additionalProperties":false}},"attribution":{"type":"string"}},"additionalProperties":false,"required":["station","train_count","trains","attribution"]},"response_schema_status":{"status":"declared","codegen_safe":true,"description":"Maintained response contract."},"entity_projection":{"status":"projected","entity_types":["rail_station"],"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/banenor/get_station_board/schema","endpoint":"https://allemannsdata.com/wiki/api/v1/kilder/banenor/get_station_board","get_url_template":"https://allemannsdata.com/wiki/api/v1/kilder/banenor/get_station_board?station_id={station_id}&direction=all&minutes_ahead=120&line={line}&destination={destination}&operator={operator}&max_trains=20&include_formation=false&limit=25&offset=0","response_example":{"source":"banenor","operation":"get_station_board","parameters":{"station_id":"example-id","direction":"all","minutes_ahead":120,"line":"example value","destination":"example value","operator":"example value","max_trains":20,"include_formation":false},"data":{"station":"example value","train_count":1,"trains":[{"train":"example value","line":"example value","operator":"example value","product":"example value","service":"example value","origin":"example value","destination":"example value","via":["example value"],"aimed_arrival":"2026-01-15T12:00:00Z","expected_arrival":"2026-01-15T12:00:00Z","actual_arrival":"2026-01-15T12:00:00Z","arrival_status":"example value","arrival_platform":"example value","aimed_departure":"2026-01-15T12:00:00Z","expected_departure":"2026-01-15T12:00:00Z","actual_departure":"2026-01-15T12:00:00Z","departure_status":"example value","departure_platform":"example value","at_stop":true,"prediction_inaccurate":true,"formation":{}}],"attribution":"example value"},"entities":[],"_meta":{"retrieved_at":"2026-01-15T12:00:00Z","language":"en","content_languages":["en"],"sources":[{"id":"banenor","name":"Bane NOR train data","description":"Real-time station boards, train movements and rail disruptions from the infrastructure manager.","cache_ttl_seconds":30,"documentation":"https://www.banenor.no/reise-og-trafikk/apne-data/"}]},"_provenance":{"data":{"source":"banenor","source_api":"https://allemannsdata.com/wiki/api/v1/kilder/banenor"},"entities":{"source":"banenor","source_api":"https://allemannsdata.com/wiki/api/v1/kilder/banenor","derived_from":"#/data","description":"Normalized projection of data."}},"_links":{"self":"https://allemannsdata.com/wiki/api/v1/kilder/banenor/get_station_board","source":"https://allemannsdata.com/wiki/api/v1/kilder/banenor","wiki":"https://allemannsdata.com/wiki/kilder/banenor/get_station_board/","feedback":"https://allemannsdata.com/wiki/api/v1/feedback"}}},{"name":"get_train","description":"Current status of one train by its national train number: every stop\nwith planned, expected and actually observed times and platforms. Signature: get_train(train_number: string, required; date: string, optional, default None; limit: integer, items, optional, default 25; offset: integer, items, optional, default 0).","signature":"get_train(train_number: string, required; date: string, optional, default None; limit: integer, items, optional, default 25; offset: integer, items, optional, default 0)","parameters":[{"name":"train_number","type":"string","schema":{"type":"string"},"required":true,"default":null,"description":"The train number, e.g. \"605\" (Oslo S-Bergen), \"43\" (Dovrebanen). This is the number shown on tickets and boards (VY 605 -> \"605\"). Freight trains are included - something neither Entur nor other public APIs offer.","unit":null,"display_type":"string"},{"name":"date","type":"string","schema":{"anyOf":[{"type":"string"},{"type":"null"}]},"required":false,"default":null,"description":"Optional \"YYYY-MM-DD\" to disambiguate when the same number runs on several days inside Bane NOR's data horizon (roughly the current day). Default: all matches.","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/banenor/get_train?train_number={train_number}&date={date}&limit=25&offset=0","output_fields":["train_number","match_count","matches","matches[].train","matches[].line","matches[].operator","matches[].product","matches[].service","matches[].origin","matches[].destination","matches[].date","matches[].calls","matches[].calls[].station","matches[].calls[].name","matches[].calls[].aimed_arrival","matches[].calls[].expected_arrival","matches[].calls[].actual_arrival","matches[].calls[].arrival_status","matches[].calls[].arrival_platform","matches[].calls[].aimed_departure","matches[].calls[].expected_departure","matches[].calls[].actual_departure","matches[].calls[].departure_status","matches[].calls[].departure_platform","attribution"],"output_fields_truncated":false,"canonical_field_aliases":{"date":["matches[].date"],"name":["matches[].calls[].name"]},"description_language":"en","documentation":"Current status of one train by its national train number: every stop\nwith planned, expected and actually observed times and platforms.\n\nArgs:\n    train_number: The train number, e.g. \"605\" (Oslo S-Bergen), \"43\"\n        (Dovrebanen). This is the number shown on tickets and boards\n        (VY 605 -> \"605\"). Freight trains are included - something\n        neither Entur nor other public APIs offer.\n    date: Optional \"YYYY-MM-DD\" to disambiguate when the same number\n        runs on several days inside Bane NOR's data horizon (roughly\n        the current day). Default: all matches.\n\nReturns `matches` (usually one journey). Stops the train has already\nmade carry actual_arrival/actual_departure (observed), upcoming stops\ncarry expected_* and status. The last call with actual times is the\ntrain's last confirmed position. An empty `matches` means Bane NOR's\nfeed has no such train right now - it may run tomorrow, or not at all;\nit does not necessarily mean the number is invalid.\n\nSignature: get_train(train_number: string, required; date: string, optional, default None; limit: integer, items, optional, default 25; offset: integer, items, optional, default 0).","documentation_language":"en","wiki_get_endpoint":"https://allemannsdata.com/wiki/kilder/banenor/get_train/","wiki_get_url_template":"https://allemannsdata.com/wiki/kilder/banenor/get_train/?train_number={train_number}&date={date}&limit=25&offset=0","json_endpoint":"https://allemannsdata.com/wiki/api/v1/kilder/banenor/get_train","response_schema":{"type":"object","properties":{"train_number":{"type":"string"},"match_count":{"type":"integer"},"matches":{"type":"array","items":{"type":"object","properties":{"train":{"type":"string"},"line":{"type":"string"},"operator":{"type":"string"},"product":{"type":"string"},"service":{"type":"string"},"origin":{"type":"string"},"destination":{"type":"string"},"date":{"type":"string"},"calls":{"type":"array","items":{"type":"object","properties":{"station":{"type":"string"},"name":{"type":"string"},"aimed_arrival":{"type":"string","format":"date-time"},"expected_arrival":{"type":"string","format":"date-time"},"actual_arrival":{"type":"string","format":"date-time"},"arrival_status":{"type":"string"},"arrival_platform":{"type":"string"},"aimed_departure":{"type":"string","format":"date-time"},"expected_departure":{"type":"string","format":"date-time"},"actual_departure":{"type":"string","format":"date-time"},"departure_status":{"type":"string"},"departure_platform":{"type":"string"}},"additionalProperties":false}}},"additionalProperties":false}},"attribution":{"type":"string"}},"additionalProperties":false,"required":["train_number","match_count","matches","attribution"]},"response_schema_status":{"status":"declared","codegen_safe":true,"description":"Maintained response contract."},"entity_projection":{"status":"projected","entity_types":["rail_station"],"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/banenor/get_train/schema","endpoint":"https://allemannsdata.com/wiki/api/v1/kilder/banenor/get_train","get_url_template":"https://allemannsdata.com/wiki/api/v1/kilder/banenor/get_train?train_number={train_number}&date={date}&limit=25&offset=0","response_example":{"source":"banenor","operation":"get_train","parameters":{"train_number":"example value","date":"2026-01-15"},"data":{"train_number":"example value","match_count":1,"matches":[{"train":"example value","line":"example value","operator":"example value","product":"example value","service":"example value","origin":"example value","destination":"example value","date":"2026-01-15","calls":[{"station":"example value","name":"Example","aimed_arrival":"2026-01-15T12:00:00Z","expected_arrival":"2026-01-15T12:00:00Z","actual_arrival":"2026-01-15T12:00:00Z","arrival_status":"example value","arrival_platform":"example value","aimed_departure":"2026-01-15T12:00:00Z","expected_departure":"2026-01-15T12:00:00Z","actual_departure":"2026-01-15T12:00:00Z","departure_status":"example value","departure_platform":"example value"}]}],"attribution":"example value"},"entities":[],"_meta":{"retrieved_at":"2026-01-15T12:00:00Z","language":"en","content_languages":["en"],"sources":[{"id":"banenor","name":"Bane NOR train data","description":"Real-time station boards, train movements and rail disruptions from the infrastructure manager.","cache_ttl_seconds":30,"documentation":"https://www.banenor.no/reise-og-trafikk/apne-data/"}]},"_provenance":{"data":{"source":"banenor","source_api":"https://allemannsdata.com/wiki/api/v1/kilder/banenor"},"entities":{"source":"banenor","source_api":"https://allemannsdata.com/wiki/api/v1/kilder/banenor","derived_from":"#/data","description":"Normalized projection of data."}},"_links":{"self":"https://allemannsdata.com/wiki/api/v1/kilder/banenor/get_train","source":"https://allemannsdata.com/wiki/api/v1/kilder/banenor","wiki":"https://allemannsdata.com/wiki/kilder/banenor/get_train/","feedback":"https://allemannsdata.com/wiki/api/v1/feedback"}}},{"name":"get_disruptions","description":"Cancellations and disruptions of individual train journeys, from Bane\nNOR's situation exchange feed. Signature: get_disruptions(hours_ahead: integer, optional, default 24; station_id: string, optional, default None; train_number: string, optional, default None; max_results: integer, optional, default 50; offset: integer, items, optional, default 0; limit: integer, items, optional, default 25).","signature":"get_disruptions(hours_ahead: integer, optional, default 24; station_id: string, optional, default None; train_number: string, optional, default None; max_results: integer, optional, default 50; offset: integer, items, optional, default 0; limit: integer, items, optional, default 25)","parameters":[{"name":"hours_ahead","type":"integer","schema":{"type":"integer"},"required":false,"default":24,"description":"Only situations starting within this many hours from now (default 24). The full feed carries ~a week of planned changes (thousands of records); keep this small unless you really want them all.","unit":null,"display_type":"integer"},{"name":"station_id","type":"string","schema":{"anyOf":[{"type":"string"},{"type":"null"}]},"required":false,"default":null,"description":"Only situations touching this station code (e.g. \"OSL\").","unit":null,"display_type":"string"},{"name":"train_number","type":"string","schema":{"anyOf":[{"type":"string"},{"type":"null"}]},"required":false,"default":null,"description":"Only situations for this train number.","unit":null,"display_type":"string"},{"name":"max_results","type":"integer","schema":{"type":"integer"},"required":false,"default":50,"description":"Page size (default 50). `total_count` is the number matching before paging.","unit":null,"display_type":"integer"},{"name":"offset","type":"integer","schema":{"type":"integer"},"required":false,"default":0,"description":"Skip this many matching situations (default 0). When the response is truncated it carries `next_offset`; pass that back as offset for the next page. Prefer narrowing with station, train_number or hours_ahead over paging through the national feed. Unit: items.","unit":"items","display_type":"integer"},{"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"}],"json_get_url_template":"https://allemannsdata.com/wiki/api/v1/kilder/banenor/get_disruptions?hours_ahead=24&station_id={station_id}&train_number={train_number}&max_results=50&offset=0&limit=25","output_fields":["total_count","offset","disruptions","disruptions[].situation","disruptions[].condition","disruptions[].train","disruptions[].date","disruptions[].valid_from","disruptions[].affected_stops","disruptions[].affected_stops[].code","disruptions[].affected_stops[].name","truncated","next_offset","note","attribution"],"output_fields_truncated":false,"canonical_field_aliases":{"date":["disruptions[].date"],"identifier":["disruptions[].affected_stops[].code"],"name":["disruptions[].affected_stops[].name"]},"description_language":"en","documentation":"Cancellations and disruptions of individual train journeys, from Bane\nNOR's situation exchange feed.\n\nArgs:\n    hours_ahead: Only situations starting within this many hours from\n        now (default 24). The full feed carries ~a week of planned\n        changes (thousands of records); keep this small unless you\n        really want them all.\n    station: Only situations touching this station code (e.g. \"OSL\").\n    train_number: Only situations for this train number.\n    max_results: Page size (default 50). `total_count` is the number\n        matching before paging.\n    offset: Skip this many matching situations (default 0). When the\n        response is truncated it carries `next_offset`; pass that back\n        as offset for the next page. Prefer narrowing with station,\n        train_number or hours_ahead over paging through the national\n        feed.\n\nEach situation has the affected train (number + date), a condition\n(disrupted, altered or diverted), when it starts, and the affected\nstops, sorted by start time (soonest first). These are machine records\nof cancellations/changes per journey - Bane NOR publishes no free-text\nexplanation in this feed.\n\nSignature: get_disruptions(hours_ahead: integer, optional, default 24; station_id: string, optional, default None; train_number: string, optional, default None; max_results: integer, optional, default 50; offset: integer, items, optional, default 0; limit: integer, items, optional, default 25).","documentation_language":"en","wiki_get_endpoint":"https://allemannsdata.com/wiki/kilder/banenor/get_disruptions/","wiki_get_url_template":"https://allemannsdata.com/wiki/kilder/banenor/get_disruptions/?hours_ahead=24&station_id={station_id}&train_number={train_number}&max_results=50&offset=0&limit=25","json_endpoint":"https://allemannsdata.com/wiki/api/v1/kilder/banenor/get_disruptions","response_schema":{"type":"object","properties":{"total_count":{"type":"integer"},"offset":{"type":"integer"},"disruptions":{"type":"array","items":{"type":"object","properties":{"situation":{"type":"string"},"condition":{"type":"string"},"train":{"type":"string"},"date":{"type":"string"},"valid_from":{"type":"string","format":"date-time"},"affected_stops":{"type":"array","items":{"type":"object","properties":{"code":{"type":["string","null"]},"name":{"type":["string","null"]}},"additionalProperties":false}}},"additionalProperties":false}},"truncated":{"type":"boolean"},"next_offset":{"type":"integer"},"note":{"type":["string","null"]},"attribution":{"type":"string"}},"additionalProperties":false,"required":["total_count","offset","disruptions","truncated","attribution"]},"response_schema_status":{"status":"declared","codegen_safe":true,"description":"Maintained response contract."},"entity_projection":{"status":"projected","entity_types":["rail_station"],"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/banenor/get_disruptions/schema","endpoint":"https://allemannsdata.com/wiki/api/v1/kilder/banenor/get_disruptions","get_url_template":"https://allemannsdata.com/wiki/api/v1/kilder/banenor/get_disruptions?hours_ahead=24&station_id={station_id}&train_number={train_number}&max_results=50&offset=0&limit=25","response_example":{"source":"banenor","operation":"get_disruptions","parameters":{"hours_ahead":24,"station_id":"example-id","train_number":"example value","max_results":50,"offset":0},"data":{"total_count":1,"offset":1,"disruptions":[{"situation":"example value","condition":"example value","train":"example value","date":"2026-01-15","valid_from":"2026-01-15T12:00:00Z","affected_stops":[{"code":"example value","name":"Example"}]}],"truncated":true,"next_offset":1,"note":"example value","attribution":"example value"},"entities":[],"_meta":{"retrieved_at":"2026-01-15T12:00:00Z","language":"en","content_languages":["en"],"sources":[{"id":"banenor","name":"Bane NOR train data","description":"Real-time station boards, train movements and rail disruptions from the infrastructure manager.","cache_ttl_seconds":30,"documentation":"https://www.banenor.no/reise-og-trafikk/apne-data/"}]},"_provenance":{"data":{"source":"banenor","source_api":"https://allemannsdata.com/wiki/api/v1/kilder/banenor"},"entities":{"source":"banenor","source_api":"https://allemannsdata.com/wiki/api/v1/kilder/banenor","derived_from":"#/data","description":"Normalized projection of data."}},"_links":{"self":"https://allemannsdata.com/wiki/api/v1/kilder/banenor/get_disruptions","source":"https://allemannsdata.com/wiki/api/v1/kilder/banenor","wiki":"https://allemannsdata.com/wiki/kilder/banenor/get_disruptions/","feedback":"https://allemannsdata.com/wiki/api/v1/feedback"}}},{"name":"lookup_station","description":"Find a station's Bane NOR code by name, or its name by code. Signature: lookup_station(query: string, required; limit: integer, items, optional, default 25; offset: integer, items, optional, default 0).","signature":"lookup_station(query: string, required; limit: integer, items, optional, default 25; offset: integer, items, optional, default 0)","parameters":[{"name":"query","type":"string","schema":{"type":"string"},"required":true,"default":null,"description":"Station code (e.g. \"OSL\") or part of a station name (e.g. \"Lilleham\"). Case-insensitive.","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/banenor/lookup_station?query={query}&limit=25&offset=0","output_fields":["[].code","[].name"],"output_fields_truncated":false,"canonical_field_aliases":{"identifier":["[].code"],"name":["[].name"]},"description_language":"en","documentation":"Find a station's Bane NOR code by name, or its name by code.\n\nArgs:\n    query: Station code (e.g. \"OSL\") or part of a station name (e.g.\n        \"Lilleham\"). Case-insensitive.\n\nReturns up to 25 [{code, name}] matches. The list is built from the\nstations appearing in Bane NOR's live timetable feed (~345 stations),\nso a station with no rail traffic at all in the current data horizon\ncan be missing.\n\nSignature: lookup_station(query: 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/banenor/lookup_station/","wiki_get_url_template":"https://allemannsdata.com/wiki/kilder/banenor/lookup_station/?query={query}&limit=25&offset=0","json_endpoint":"https://allemannsdata.com/wiki/api/v1/kilder/banenor/lookup_station","response_schema":{"type":"array","items":{"type":"object","properties":{"code":{"type":"string"},"name":{"type":"string"}},"additionalProperties":false,"required":["code","name"]}},"response_schema_status":{"status":"declared","codegen_safe":true,"description":"Maintained response contract."},"entity_projection":{"status":"projected","entity_types":["rail_station"],"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/banenor/lookup_station/schema","endpoint":"https://allemannsdata.com/wiki/api/v1/kilder/banenor/lookup_station","get_url_template":"https://allemannsdata.com/wiki/api/v1/kilder/banenor/lookup_station?query={query}&limit=25&offset=0","response_example":{"source":"banenor","operation":"lookup_station","parameters":{"query":"example value"},"data":[{"code":"example value","name":"Example"}],"entities":[],"_meta":{"retrieved_at":"2026-01-15T12:00:00Z","language":"en","content_languages":["en"],"sources":[{"id":"banenor","name":"Bane NOR train data","description":"Real-time station boards, train movements and rail disruptions from the infrastructure manager.","cache_ttl_seconds":30,"documentation":"https://www.banenor.no/reise-og-trafikk/apne-data/"}]},"_provenance":{"data":{"source":"banenor","source_api":"https://allemannsdata.com/wiki/api/v1/kilder/banenor"},"entities":{"source":"banenor","source_api":"https://allemannsdata.com/wiki/api/v1/kilder/banenor","derived_from":"#/data","description":"Normalized projection of data."}},"_links":{"self":"https://allemannsdata.com/wiki/api/v1/kilder/banenor/lookup_station","source":"https://allemannsdata.com/wiki/api/v1/kilder/banenor","wiki":"https://allemannsdata.com/wiki/kilder/banenor/lookup_station/","feedback":"https://allemannsdata.com/wiki/api/v1/feedback"}}}],"operation_schema_url_template":"https://allemannsdata.com/wiki/api/v1/kilder/banenor/{operation}/schema","related_sources":[{"id":"entur","name":"Entur","reason":"National multimodal journey planning and public-transport departures.","api":"https://allemannsdata.com/wiki/api/v1/kilder/entur","wiki":"https://allemannsdata.com/wiki/kilder/entur/"}],"_meta":{"retrieved_at":"2026-09-20T20:03:46Z","language":"en","content_languages":["en"],"sources":[{"id":"banenor","name":"Bane NOR train data","description":"Real-time station boards, train movements and rail disruptions from the infrastructure manager.","documentation":"https://www.banenor.no/reise-og-trafikk/apne-data/","cache_ttl_seconds":30}]},"_links":{"self":"https://allemannsdata.com/wiki/api/v1/kilder/banenor","names":"https://allemannsdata.com/wiki/api/v1/kilder/banenor?view=names","compact":"https://allemannsdata.com/wiki/api/v1/kilder/banenor?view=compact","full":"https://allemannsdata.com/wiki/api/v1/kilder/banenor","wiki":"https://allemannsdata.com/wiki/kilder/banenor/","feedback":"https://allemannsdata.com/wiki/api/v1/feedback"}}
