{"source":"banenor","operation":"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},{"name":"direction","type":"string","schema":{"type":"string"},"required":false,"default":"all","description":"\"all\" (default), \"departures\" or \"arrivals\".","unit":null},{"name":"minutes_ahead","type":"integer","schema":{"type":"integer"},"required":false,"default":120,"description":"Window from now, in minutes (default 120).","unit":null},{"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},{"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},{"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},{"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},{"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},{"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","schema_scope":"#/data in the successful operation envelope","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."},"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/banenor/get_station_board","operation":"https://allemannsdata.com/wiki/api/v1/kilder/banenor/get_station_board","source":"https://allemannsdata.com/wiki/api/v1/kilder/banenor","feedback":"https://allemannsdata.com/wiki/api/v1/feedback"},"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":{},"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"}}}
