{"openapi":"3.1.0","info":{"title":"contboxx Atlas Customer API","version":"v1","description":"Content for digital signage from contboxx Atlas: news channels and channel mixes as JSON, RSS, JSON Feed and HTML widgets; weather, pollen, civil-protection warnings, departure boards, Autobahn traffic, soccer, basketball, EV charging, canteen menus, sights and horoscope as screens and as data APIs; mini apps, game boxes and infoscreens.\n\n**Authentication.** Every operation takes the API key of your contboxx account, either as the `X-Api-Key` header or as the `key` query parameter. Players that only take a URL need the query parameter; everywhere else prefer the header — a URL with a key in it is a credential.\n\n**Limits.** Each key has a per-minute and a daily limit set by its plan. Above either the API answers `429` with a `Retry-After` header. Which services a key may use also depends on its plan.\n\n**Formats.** HTML endpoints are screens for players (landscape and portrait). JSON endpoints of the data services follow a versioned contract that each response names.\n"},"paths":{"/api/v1/apps/{slug}":{"get":{"tags":["apps"],"summary":"Open App","description":"Open a mini app: check entitlement, meter, redirect to the static build.\n\nAnswers 302 when the caller may run the app, and 200 with the placeholder\npage in every other case (see the module docstring for why).\n\nTwo ways in. ``?key=`` is the player's own API key and is what a\nsingle-game URL uses. ``?s=`` is a Game Box capability: the shell holds one\ninstead of the key, so the customer's key never has to travel into a page\nthat lives inside the CDN. Everything after authentication — entitlement,\nmetering, signing — is identical, on purpose.","operationId":"open_app_api_v1_apps__slug__get","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}},{"name":"lang","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Language tag, e.g. 'de'","title":"Lang"},"description":"Language tag, e.g. 'de'"},{"name":"theme","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Theme variant, e.g. 'dental'","title":"Theme"},"description":"Theme variant, e.g. 'dental'"},{"name":"sound","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Pass '1' to allow sound; anything else stays silent","title":"Sound"},"description":"Pass '1' to allow sound; anything else stays silent"},{"name":"s","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Game Box capability, used instead of ?key= by the shell","title":"S"},"description":"Game Box capability, used instead of ?key= by the shell"},{"name":"content","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Content set of the customer (location games); default set if absent","title":"Content"},"description":"Content set of the customer (location games); default set if absent"},{"name":"key","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API key as URL parameter","title":"Key"},"description":"API key as URL parameter"},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API key for authentication","title":"X-Api-Key"},"description":"API key for authentication"}],"responses":{"307":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/boxes/{box_id}":{"get":{"tags":["apps"],"summary":"Open Box","description":"Open a Game Box: check entitlement, meter, redirect to the shell.\n\n``box_id`` is taken as a string and parsed here rather than declared as a\nUUID path parameter: FastAPI would answer a malformed one with 422, and a\nvalidation error is exactly the kind of page this endpoint exists to keep\noff a screen.","operationId":"open_box_api_v1_boxes__box_id__get","parameters":[{"name":"box_id","in":"path","required":true,"schema":{"type":"string","title":"Box Id"}},{"name":"lang","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Language tag, e.g. 'de'","title":"Lang"},"description":"Language tag, e.g. 'de'"},{"name":"theme","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Theme variant, e.g. 'dental'","title":"Theme"},"description":"Theme variant, e.g. 'dental'"},{"name":"sound","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Pass '1' to allow sound; anything else stays silent","title":"Sound"},"description":"Pass '1' to allow sound; anything else stays silent"},{"name":"key","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API key as URL parameter","title":"Key"},"description":"API key as URL parameter"},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API key for authentication","title":"X-Api-Key"},"description":"API key for authentication"}],"responses":{"307":{"description":"Successful Response"},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/channels":{"get":{"tags":["channels"],"summary":"List Channels","description":"List channels available to this API key.","operationId":"list_channels_api_v1_channels_get","parameters":[{"name":"key","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API key as URL parameter","title":"Key"},"description":"API key as URL parameter"},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API key for authentication","title":"X-Api-Key"},"description":"API key for authentication"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicChannelList"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/channels/{slug}/content":{"get":{"tags":["content"],"summary":"Get Channel Content","description":"Get published content for a channel.\n\nReturns content items sorted by priority (highest first),\nthen by publication date (newest first).\n\nPass ?lang=de to get translated content. The first request subscribes\nthe channel to the language; from then on only items in that language\nare listed — until the first is translated, the originals.","operationId":"get_channel_content_api_v1_channels__slug__content_get","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":20,"title":"Limit"}},{"name":"skip","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0,"title":"Skip"}},{"name":"variant","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Variant"}},{"name":"since","in":"query","required":false,"schema":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Since"}},{"name":"lang","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"BCP-47 language code for translation (e.g. de, fr, es)","title":"Lang"},"description":"BCP-47 language code for translation (e.g. de, fr, es)"},{"name":"key","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API key as URL parameter","title":"Key"},"description":"API key as URL parameter"},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API key for authentication","title":"X-Api-Key"},"description":"API key for authentication"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicContentList"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/content/{item_id}":{"get":{"tags":["content"],"summary":"Get Content Item","description":"Get a single published content item by ID.","operationId":"get_content_item_api_v1_content__item_id__get","parameters":[{"name":"item_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Item Id"}},{"name":"lang","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"BCP-47 language code for translation","title":"Lang"},"description":"BCP-47 language code for translation"},{"name":"key","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API key as URL parameter","title":"Key"},"description":"API key as URL parameter"},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API key for authentication","title":"X-Api-Key"},"description":"API key for authentication"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicContentItem"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/feeds/{slug}/rss":{"get":{"tags":["feeds"],"summary":"Get Rss Feed","description":"Generate an RSS 2.0 feed for a channel.","operationId":"get_rss_feed_api_v1_feeds__slug__rss_get","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}},{"name":"lang","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Lang"}},{"name":"key","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API key as URL parameter","title":"Key"},"description":"API key as URL parameter"},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API key for authentication","title":"X-Api-Key"},"description":"API key for authentication"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/feeds/{slug}/json":{"get":{"tags":["feeds"],"summary":"Get Json Feed","description":"Generate a JSON Feed (v1.1) for a channel.\n\nSee https://jsonfeed.org/version/1.1","operationId":"get_json_feed_api_v1_feeds__slug__json_get","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}},{"name":"lang","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Lang"}},{"name":"key","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API key as URL parameter","title":"Key"},"description":"API key as URL parameter"},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API key for authentication","title":"X-Api-Key"},"description":"API key for authentication"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/mix/{slug}/content":{"get":{"tags":["mix"],"summary":"Get Mix Content","description":"Get blended content from a mix preset.","operationId":"get_mix_content_api_v1_mix__slug__content_get","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}},{"name":"limit","in":"query","required":false,"schema":{"type":"integer","maximum":100,"minimum":1,"default":20,"title":"Limit"}},{"name":"variant","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Variant"}},{"name":"lang","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"BCP-47 language code for translation","title":"Lang"},"description":"BCP-47 language code for translation"},{"name":"key","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API key as URL parameter","title":"Key"},"description":"API key as URL parameter"},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API key for authentication","title":"X-Api-Key"},"description":"API key for authentication"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/mix/{slug}/rss":{"get":{"tags":["mix"],"summary":"Get Mix Rss","description":"Generate an RSS 2.0 feed from a mix preset.","operationId":"get_mix_rss_api_v1_mix__slug__rss_get","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}},{"name":"variant","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Variant"}},{"name":"lang","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Lang"}},{"name":"key","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API key as URL parameter","title":"Key"},"description":"API key as URL parameter"},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API key for authentication","title":"X-Api-Key"},"description":"API key for authentication"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/mix/{slug}/json":{"get":{"tags":["mix"],"summary":"Get Mix Json Feed","description":"Generate a JSON Feed v1.1 from a mix preset.","operationId":"get_mix_json_feed_api_v1_mix__slug__json_get","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}},{"name":"variant","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Variant"}},{"name":"lang","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Lang"}},{"name":"key","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API key as URL parameter","title":"Key"},"description":"API key as URL parameter"},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API key for authentication","title":"X-Api-Key"},"description":"API key for authentication"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/mix/{slug}/widget":{"get":{"tags":["mix"],"summary":"Get Mix Widget","description":"Render mixed content as standalone HTML widget.","operationId":"get_mix_widget_api_v1_mix__slug__widget_get","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}},{"name":"mod","in":"query","required":false,"schema":{"type":"integer","maximum":2,"minimum":0,"description":"0=random, 1=stream, 2=selected","default":0,"title":"Mod"},"description":"0=random, 1=stream, 2=selected"},{"name":"variant","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"card or fullscreen","title":"Variant"},"description":"card or fullscreen"},{"name":"skip","in":"query","required":false,"schema":{"type":"integer","minimum":0,"default":0,"title":"Skip"}},{"name":"t","in":"query","required":false,"schema":{"type":"integer","maximum":120,"minimum":0,"default":0,"title":"T"}},{"name":"key","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API key as URL parameter","title":"Key"},"description":"API key as URL parameter"},{"name":"lang","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"BCP-47 language code for translation","title":"Lang"},"description":"BCP-47 language code for translation"},{"name":"design","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"News design: standard-dunkel | standard-hell | kino | zeitung | studio | bento | glas | bogen | magazin","title":"Design"},"description":"News design: standard-dunkel | standard-hell | kino | zeitung | studio | bento | glas | bogen | magazin"},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API key for authentication","title":"X-Api-Key"},"description":"API key for authentication"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/widgets/soccer/{league_slug}/{view_name}":{"get":{"tags":["soccer"],"summary":"Soccer Widget","description":"Table, matchday or both in turn, for landscape and portrait.","operationId":"soccer_widget_api_v1_widgets_soccer__league_slug___view_name__get","parameters":[{"name":"league_slug","in":"path","required":true,"schema":{"type":"string","title":"League Slug"}},{"name":"view_name","in":"path","required":true,"schema":{"type":"string","title":"View Name"}},{"name":"lang","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":10},{"type":"null"}],"title":"Lang"}},{"name":"tz","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}],"description":"IANA zone of the screen, default Europe/Berlin","title":"Tz"},"description":"IANA zone of the screen, default Europe/Berlin"},{"name":"team","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":10},{"type":"null"}],"description":"API-Sports team id to highlight","title":"Team"},"description":"API-Sports team id to highlight"},{"name":"group","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":2},{"type":"null"}],"description":"Index of one table group","title":"Group"},"description":"Index of one table group"},{"name":"bg","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":6},{"type":"null"}],"description":"Background colour, RRGGBB","title":"Bg"},"description":"Background colour, RRGGBB"},{"name":"accent","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":6},{"type":"null"}],"description":"Accent colour, RRGGBB","title":"Accent"},"description":"Accent colour, RRGGBB"},{"name":"variant","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"auto (default) | quer | hoch","title":"Variant"},"description":"auto (default) | quer | hoch"},{"name":"table_seconds","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":4},{"type":"null"}],"title":"Table Seconds"}},{"name":"matchday_seconds","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":4},{"type":"null"}],"title":"Matchday Seconds"}},{"name":"key","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API key as URL parameter (players)","title":"Key"},"description":"API key as URL parameter (players)"},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API key (server to server)","title":"X-Api-Key"},"description":"API key (server to server)"}],"responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/widgets/basketball/{league_slug}/{view_name}":{"get":{"tags":["basketball"],"summary":"Basketball Widget","description":"Standings, games or both in turn, for landscape and portrait.","operationId":"basketball_widget_api_v1_widgets_basketball__league_slug___view_name__get","parameters":[{"name":"league_slug","in":"path","required":true,"schema":{"type":"string","title":"League Slug"}},{"name":"view_name","in":"path","required":true,"schema":{"type":"string","title":"View Name"}},{"name":"lang","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":10},{"type":"null"}],"title":"Lang"}},{"name":"tz","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}],"description":"IANA zone of the screen, default Europe/Berlin","title":"Tz"},"description":"IANA zone of the screen, default Europe/Berlin"},{"name":"team","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":10},{"type":"null"}],"description":"API-NBA team id to highlight","title":"Team"},"description":"API-NBA team id to highlight"},{"name":"conference","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":10},{"type":"null"}],"description":"east | west: one conference only","title":"Conference"},"description":"east | west: one conference only"},{"name":"bg","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":6},{"type":"null"}],"description":"Background colour, RRGGBB","title":"Bg"},"description":"Background colour, RRGGBB"},{"name":"accent","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":6},{"type":"null"}],"description":"Accent colour, RRGGBB","title":"Accent"},"description":"Accent colour, RRGGBB"},{"name":"variant","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"auto (default) | quer | hoch","title":"Variant"},"description":"auto (default) | quer | hoch"},{"name":"table_seconds","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":4},{"type":"null"}],"title":"Table Seconds"}},{"name":"games_seconds","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":4},{"type":"null"}],"title":"Games Seconds"}},{"name":"key","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API key as URL parameter (players)","title":"Key"},"description":"API key as URL parameter (players)"},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API key (server to server)","title":"X-Api-Key"},"description":"API key (server to server)"}],"responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/widgets/horoscope":{"get":{"tags":["horoscope"],"summary":"Horoscope Widget","description":"HTML: the twelve signs in four packets of three, in one of the nine designs.","operationId":"horoscope_widget_api_v1_widgets_horoscope_get","parameters":[{"name":"lang","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":20},{"type":"null"}],"title":"Lang"}},{"name":"design","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":40},{"type":"null"}],"title":"Design"}},{"name":"icons","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":20},{"type":"null"}],"title":"Icons"}},{"name":"seconds","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":10},{"type":"null"}],"title":"Seconds"}},{"name":"variant","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":10},{"type":"null"}],"title":"Variant"}},{"name":"tz","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}],"title":"Tz"}},{"name":"key","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API key as URL parameter","title":"Key"},"description":"API key as URL parameter"},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API key for authentication","title":"X-Api-Key"},"description":"API key for authentication"}],"responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/widgets/channels/{slug}":{"get":{"tags":["widgets"],"summary":"Get Channel Widget","description":"Render a content item as standalone HTML.\n\nModes:\n  mod=0 (Random): Each request returns a different random published item.\n  mod=1 (Stream): Returns an auto-rotating wrapper page. t=extra seconds.\n  mod=2 (Selected): Returns item at position `skip` (0=top, 1=second, ...).","operationId":"get_channel_widget_api_v1_widgets_channels__slug__get","parameters":[{"name":"slug","in":"path","required":true,"schema":{"type":"string","title":"Slug"}},{"name":"mod","in":"query","required":false,"schema":{"type":"integer","maximum":2,"minimum":0,"description":"0=random, 1=stream, 2=selected","default":0,"title":"Mod"},"description":"0=random, 1=stream, 2=selected"},{"name":"variant","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"card or fullscreen","title":"Variant"},"description":"card or fullscreen"},{"name":"channel_name","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Override channel name","title":"Channel Name"},"description":"Override channel name"},{"name":"skip","in":"query","required":false,"schema":{"type":"integer","minimum":0,"description":"Item offset (mod=2 only)","default":0,"title":"Skip"},"description":"Item offset (mod=2 only)"},{"name":"t","in":"query","required":false,"schema":{"type":"integer","maximum":120,"minimum":0,"description":"Extra seconds per slide (mod=1 only)","default":0,"title":"T"},"description":"Extra seconds per slide (mod=1 only)"},{"name":"key","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API key as URL parameter","title":"Key"},"description":"API key as URL parameter"},{"name":"lang","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"BCP-47 language code for translation","title":"Lang"},"description":"BCP-47 language code for translation"},{"name":"design","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"News design: standard-dunkel | standard-hell | kino | zeitung | studio | bento | glas | bogen | magazin","title":"Design"},"description":"News design: standard-dunkel | standard-hell | kino | zeitung | studio | bento | glas | bogen | magazin"},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API key for authentication","title":"X-Api-Key"},"description":"API key for authentication"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/widgets/content/{item_id}":{"get":{"tags":["widgets"],"summary":"Get Content Widget","description":"Render a specific content item as a standalone HTML page.","operationId":"get_content_widget_api_v1_widgets_content__item_id__get","parameters":[{"name":"item_id","in":"path","required":true,"schema":{"type":"string","format":"uuid","title":"Item Id"}},{"name":"channel_name","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Override channel name","title":"Channel Name"},"description":"Override channel name"},{"name":"lang","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"BCP-47 language code for structured-data labels","title":"Lang"},"description":"BCP-47 language code for structured-data labels"},{"name":"design","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"News design: standard-dunkel | standard-hell | kino | zeitung | studio | bento | glas | bogen | magazin","title":"Design"},"description":"News design: standard-dunkel | standard-hell | kino | zeitung | studio | bento | glas | bogen | magazin"},{"name":"key","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API key as URL parameter","title":"Key"},"description":"API key as URL parameter"},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API key for authentication","title":"X-Api-Key"},"description":"API key for authentication"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/weather/{location_id}":{"get":{"tags":["weather"],"summary":"Weather Widget","description":"HTML weather screen for one location (landscape and portrait).","operationId":"weather_widget_api_v1_weather__location_id__get","parameters":[{"name":"location_id","in":"path","required":true,"schema":{"type":"string","title":"Location Id"}},{"name":"lang","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":10},{"type":"null"}],"description":"Language tag, e.g. 'de'","title":"Lang"},"description":"Language tag, e.g. 'de'"},{"name":"variant","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"auto (default) | quer | hoch","title":"Variant"},"description":"auto (default) | quer | hoch"},{"name":"theme","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"dark (default) | light; druck/verlauf also blue | green","title":"Theme"},"description":"dark (default) | light; druck/verlauf also blue | green"},{"name":"design","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"standard (default) | druck | verlauf | himmel","title":"Design"},"description":"standard (default) | druck | verlauf | himmel"},{"name":"icons","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"kontur | duoton | pop (druck/verlauf; default per design)","title":"Icons"},"description":"kontur | duoton | pop (druck/verlauf; default per design)"},{"name":"key","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API key as URL parameter","title":"Key"},"description":"API key as URL parameter"},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API key for authentication","title":"X-Api-Key"},"description":"API key for authentication"}],"responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/weather/{location_id}/json":{"get":{"tags":["weather"],"summary":"Weather Json","description":"The weather view as JSON; icons as absolute ``icon_url`` under ``/api/v1/weather/icons/``.\n\nAbsolute, because the JSON is read off-site: a viewneo player renders the document\nfrom ``file://``, where a root-relative path resolves to nothing (Kd. 84, 2026-10-30).","operationId":"weather_json_api_v1_weather__location_id__json_get","parameters":[{"name":"location_id","in":"path","required":true,"schema":{"type":"string","title":"Location Id"}},{"name":"lang","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":10},{"type":"null"}],"description":"Language tag, e.g. 'de'","title":"Lang"},"description":"Language tag, e.g. 'de'"},{"name":"key","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API key as URL parameter","title":"Key"},"description":"API key as URL parameter"},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API key for authentication","title":"X-Api-Key"},"description":"API key for authentication"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/pollen/regions":{"get":{"tags":["pollen"],"summary":"Pollen Regions","description":"Every region of the newest issue, one call for every screen.","operationId":"pollen_regions_api_v1_pollen_regions_get","parameters":[{"name":"lang","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":20},{"type":"null"}],"title":"Lang"}},{"name":"plants","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"all (default) | auto | birch,grasses","title":"Plants"},"description":"all (default) | auto | birch,grasses"},{"name":"days","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"2 | 3 (default)","title":"Days"},"description":"2 | 3 (default)"},{"name":"key","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API key as URL parameter (players)","title":"Key"},"description":"API key as URL parameter (players)"},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API key (server to server)","title":"X-Api-Key"},"description":"API key (server to server)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/pollen/regions/{region_id}":{"get":{"tags":["pollen"],"summary":"Pollen Region","description":"One region by id (``partregion_id``, or ``region_id`` for 20 and 50).","operationId":"pollen_region_api_v1_pollen_regions__region_id__get","parameters":[{"name":"region_id","in":"path","required":true,"schema":{"type":"string","title":"Region Id"}},{"name":"lang","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":20},{"type":"null"}],"title":"Lang"}},{"name":"plants","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"all (default) | auto | birch,grasses","title":"Plants"},"description":"all (default) | auto | birch,grasses"},{"name":"days","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"2 | 3 (default)","title":"Days"},"description":"2 | 3 (default)"},{"name":"key","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API key as URL parameter (players)","title":"Key"},"description":"API key as URL parameter (players)"},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API key (server to server)","title":"X-Api-Key"},"description":"API key (server to server)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/pollen/locate":{"get":{"tags":["pollen"],"summary":"Pollen Locate","description":"Coordinates + country → the pollen region by the rules of plan §2.5 (or why there is none).","operationId":"pollen_locate_api_v1_pollen_locate_get","parameters":[{"name":"lat","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Lat"}},{"name":"lon","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Lon"}},{"name":"country","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"ISO 3166 alpha-2; empty = unknown","title":"Country"},"description":"ISO 3166 alpha-2; empty = unknown"},{"name":"key","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API key as URL parameter (players)","title":"Key"},"description":"API key as URL parameter (players)"},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API key (server to server)","title":"X-Api-Key"},"description":"API key (server to server)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/pollen/map":{"get":{"tags":["pollen"],"summary":"Pollen Map","description":"HTML map of the 27 DWD pollen regions, coloured by the level of one plant (or the highest) on one day.","operationId":"pollen_map_api_v1_pollen_map_get","parameters":[{"name":"lang","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":20},{"type":"null"}],"description":"Language tag, e.g. 'de'","title":"Lang"},"description":"Language tag, e.g. 'de'"},{"name":"plant","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"max (default: highest level of all plants) | hazel | … | ragweed","title":"Plant"},"description":"max (default: highest level of all plants) | hazel | … | ragweed"},{"name":"day","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"0 (today, default) | 1 | 2","title":"Day"},"description":"0 (today, default) | 1 | 2"},{"name":"variant","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"auto (default) | quer | hoch","title":"Variant"},"description":"auto (default) | quer | hoch"},{"name":"theme","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"dark (default) | light","title":"Theme"},"description":"dark (default) | light"},{"name":"key","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API key as URL parameter","title":"Key"},"description":"API key as URL parameter"},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API key for authentication","title":"X-Api-Key"},"description":"API key for authentication"}],"responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/pollen/{location_id}":{"get":{"tags":["pollen"],"summary":"Pollen Widget","description":"HTML pollen screen for one location (landscape and portrait).","operationId":"pollen_widget_api_v1_pollen__location_id__get","parameters":[{"name":"location_id","in":"path","required":true,"schema":{"type":"string","title":"Location Id"}},{"name":"lang","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":20},{"type":"null"}],"description":"Language tag, e.g. 'de'","title":"Lang"},"description":"Language tag, e.g. 'de'"},{"name":"variant","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"auto (default) | quer | hoch","title":"Variant"},"description":"auto (default) | quer | hoch"},{"name":"theme","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"dark (default) | light","title":"Theme"},"description":"dark (default) | light"},{"name":"plants","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"auto (default) | all | birch,grasses","title":"Plants"},"description":"auto (default) | all | birch,grasses"},{"name":"days","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"2 | 3 (default)","title":"Days"},"description":"2 | 3 (default)"},{"name":"key","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API key as URL parameter","title":"Key"},"description":"API key as URL parameter"},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API key for authentication","title":"X-Api-Key"},"description":"API key for authentication"}],"responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/pollen/{location_id}/json":{"get":{"tags":["pollen"],"summary":"Pollen Json","description":"The pollen view as JSON (contract ``pollen/v1``) plus ``location``.","operationId":"pollen_json_api_v1_pollen__location_id__json_get","parameters":[{"name":"location_id","in":"path","required":true,"schema":{"type":"string","title":"Location Id"}},{"name":"lang","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":20},{"type":"null"}],"description":"Language tag, e.g. 'de'","title":"Lang"},"description":"Language tag, e.g. 'de'"},{"name":"plants","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"auto (default) | all | birch,grasses","title":"Plants"},"description":"auto (default) | all | birch,grasses"},{"name":"days","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"2 | 3 (default)","title":"Days"},"description":"2 | 3 (default)"},{"name":"key","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API key as URL parameter","title":"Key"},"description":"API key as URL parameter"},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API key for authentication","title":"X-Api-Key"},"description":"API key for authentication"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/warnings/active":{"get":{"tags":["warnings"],"summary":"Warnings Active","description":"Every active warning with a known area, most severe first (polygons left out, ``bbox`` given).","operationId":"warnings_active_api_v1_warnings_active_get","parameters":[{"name":"lang","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":20},{"type":"null"}],"title":"Lang"}},{"name":"provider","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":20},{"type":"null"}],"description":"mowas | katwarn | biwapp | dwd | lhp | police","title":"Provider"},"description":"mowas | katwarn | biwapp | dwd | lhp | police"},{"name":"key","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API key as URL parameter (players)","title":"Key"},"description":"API key as URL parameter (players)"},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API key (server to server)","title":"X-Api-Key"},"description":"API key (server to server)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/warnings/at":{"get":{"tags":["warnings"],"summary":"Warnings At","description":"The warnings whose area holds the point — the same model as a location's ``/json``.","operationId":"warnings_at_api_v1_warnings_at_get","parameters":[{"name":"lat","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Lat"}},{"name":"lon","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Lon"}},{"name":"lang","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":20},{"type":"null"}],"title":"Lang"}},{"name":"key","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API key as URL parameter (players)","title":"Key"},"description":"API key as URL parameter (players)"},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API key (server to server)","title":"X-Api-Key"},"description":"API key (server to server)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/warnings/{location_id}":{"get":{"tags":["warnings"],"summary":"Warnings Widget","description":"HTML warnings screen for one location (landscape and portrait).","operationId":"warnings_widget_api_v1_warnings__location_id__get","parameters":[{"name":"location_id","in":"path","required":true,"schema":{"type":"string","title":"Location Id"}},{"name":"lang","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":20},{"type":"null"}],"title":"Lang"}},{"name":"variant","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"auto (default) | quer | hoch","title":"Variant"},"description":"auto (default) | quer | hoch"},{"name":"theme","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"dark (default) | light","title":"Theme"},"description":"dark (default) | light"},{"name":"page_seconds","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"5–60 (default 12)","title":"Page Seconds"},"description":"5–60 (default 12)"},{"name":"key","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API key as URL parameter","title":"Key"},"description":"API key as URL parameter"},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API key for authentication","title":"X-Api-Key"},"description":"API key for authentication"}],"responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/warnings/{location_id}/json":{"get":{"tags":["warnings"],"summary":"Warnings Json","description":"The warnings view as JSON (contract ``warnings/v1``) plus ``location``.","operationId":"warnings_json_api_v1_warnings__location_id__json_get","parameters":[{"name":"location_id","in":"path","required":true,"schema":{"type":"string","title":"Location Id"}},{"name":"lang","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":20},{"type":"null"}],"title":"Lang"}},{"name":"key","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API key as URL parameter","title":"Key"},"description":"API key as URL parameter"},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API key for authentication","title":"X-Api-Key"},"description":"API key for authentication"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/warnings/{location_id}/live":{"get":{"tags":["warnings"],"summary":"Warnings Live","description":"The page's minute update — not metered, 3 a minute per key and URL.","operationId":"warnings_live_api_v1_warnings__location_id__live_get","parameters":[{"name":"location_id","in":"path","required":true,"schema":{"type":"string","title":"Location Id"}},{"name":"lang","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":20},{"type":"null"}],"title":"Lang"}},{"name":"key","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API key as URL parameter","title":"Key"},"description":"API key as URL parameter"},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API key for authentication","title":"X-Api-Key"},"description":"API key for authentication"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/charging/near":{"get":{"tags":["charging"],"summary":"Charging Near","description":"Register sites with occupancy around a point (the same model as a location's ``/json``).","operationId":"charging_near_api_v1_charging_near_get","parameters":[{"name":"lat","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Lat"}},{"name":"lon","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Lon"}},{"name":"radius_m","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Radius M"}},{"name":"min_kw","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Min Kw"}},{"name":"plugs","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}],"title":"Plugs"}},{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Limit"}},{"name":"lang","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":20},{"type":"null"}],"title":"Lang"}},{"name":"key","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API key as URL parameter (players)","title":"Key"},"description":"API key as URL parameter (players)"},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API key (server to server)","title":"X-Api-Key"},"description":"API key (server to server)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/charging/{location_id}":{"get":{"tags":["charging"],"summary":"Charging Widget","description":"HTML list of the nearest charging stations with their occupancy (landscape and portrait).","operationId":"charging_widget_api_v1_charging__location_id__get","parameters":[{"name":"location_id","in":"path","required":true,"schema":{"type":"string","title":"Location Id"}},{"name":"radius_m","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Radius M"}},{"name":"min_kw","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Min Kw"}},{"name":"plugs","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}],"title":"Plugs"}},{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Limit"}},{"name":"lang","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":20},{"type":"null"}],"title":"Lang"}},{"name":"variant","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Variant"}},{"name":"theme","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Theme"}},{"name":"page_seconds","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Page Seconds"}},{"name":"key","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API key as URL parameter","title":"Key"},"description":"API key as URL parameter"},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API key for authentication","title":"X-Api-Key"},"description":"API key for authentication"}],"responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/charging/{location_id}/json":{"get":{"tags":["charging"],"summary":"Charging Json","operationId":"charging_json_api_v1_charging__location_id__json_get","parameters":[{"name":"location_id","in":"path","required":true,"schema":{"type":"string","title":"Location Id"}},{"name":"radius_m","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Radius M"}},{"name":"min_kw","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Min Kw"}},{"name":"plugs","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}],"title":"Plugs"}},{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Limit"}},{"name":"lang","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":20},{"type":"null"}],"title":"Lang"}},{"name":"key","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API key as URL parameter","title":"Key"},"description":"API key as URL parameter"},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API key for authentication","title":"X-Api-Key"},"description":"API key for authentication"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/charging/{location_id}/live":{"get":{"tags":["charging"],"summary":"Charging Live","operationId":"charging_live_api_v1_charging__location_id__live_get","parameters":[{"name":"location_id","in":"path","required":true,"schema":{"type":"string","title":"Location Id"}},{"name":"radius_m","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Radius M"}},{"name":"min_kw","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Min Kw"}},{"name":"plugs","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}],"title":"Plugs"}},{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Limit"}},{"name":"lang","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":20},{"type":"null"}],"title":"Lang"}},{"name":"key","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API key as URL parameter","title":"Key"},"description":"API key as URL parameter"},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API key for authentication","title":"X-Api-Key"},"description":"API key for authentication"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/mensa/canteens":{"get":{"tags":["mensa"],"summary":"Mensa Canteens","description":"Search the OpenMensa catalogue by words and/or around a point.","operationId":"mensa_canteens_api_v1_mensa_canteens_get","parameters":[{"name":"q","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":100},{"type":"null"}],"title":"Q"}},{"name":"lat","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Lat"}},{"name":"lon","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Lon"}},{"name":"dist_km","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Dist Km"}},{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Limit"}},{"name":"key","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API key as URL parameter (players)","title":"Key"},"description":"API key as URL parameter (players)"},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API key (server to server)","title":"X-Api-Key"},"description":"API key (server to server)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/mensa/canteens/{canteen_id}/menu":{"get":{"tags":["mensa"],"summary":"Mensa Menu Data","operationId":"mensa_menu_data_api_v1_mensa_canteens__canteen_id__menu_get","parameters":[{"name":"canteen_id","in":"path","required":true,"schema":{"type":"string","title":"Canteen Id"}},{"name":"lang","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":20},{"type":"null"}],"title":"Lang"}},{"name":"prices","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Prices"}},{"name":"next","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next"}},{"name":"key","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API key as URL parameter (players)","title":"Key"},"description":"API key as URL parameter (players)"},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API key (server to server)","title":"X-Api-Key"},"description":"API key (server to server)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/mensa/{canteen_id}":{"get":{"tags":["mensa"],"summary":"Mensa Widget","description":"HTML: today's menu of one canteen (landscape and portrait).","operationId":"mensa_widget_api_v1_mensa__canteen_id__get","parameters":[{"name":"canteen_id","in":"path","required":true,"schema":{"type":"string","title":"Canteen Id"}},{"name":"lang","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":20},{"type":"null"}],"title":"Lang"}},{"name":"prices","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Prices"}},{"name":"next","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next"}},{"name":"variant","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Variant"}},{"name":"theme","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Theme"}},{"name":"page_seconds","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Page Seconds"}},{"name":"key","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API key as URL parameter","title":"Key"},"description":"API key as URL parameter"},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API key for authentication","title":"X-Api-Key"},"description":"API key for authentication"}],"responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/mensa/{canteen_id}/json":{"get":{"tags":["mensa"],"summary":"Mensa Json","operationId":"mensa_json_api_v1_mensa__canteen_id__json_get","parameters":[{"name":"canteen_id","in":"path","required":true,"schema":{"type":"string","title":"Canteen Id"}},{"name":"lang","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":20},{"type":"null"}],"title":"Lang"}},{"name":"prices","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Prices"}},{"name":"next","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next"}},{"name":"key","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API key as URL parameter","title":"Key"},"description":"API key as URL parameter"},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API key for authentication","title":"X-Api-Key"},"description":"API key for authentication"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/mensa/{canteen_id}/live":{"get":{"tags":["mensa"],"summary":"Mensa Live","operationId":"mensa_live_api_v1_mensa__canteen_id__live_get","parameters":[{"name":"canteen_id","in":"path","required":true,"schema":{"type":"string","title":"Canteen Id"}},{"name":"lang","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":20},{"type":"null"}],"title":"Lang"}},{"name":"prices","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Prices"}},{"name":"next","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Next"}},{"name":"key","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API key as URL parameter","title":"Key"},"description":"API key as URL parameter"},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API key for authentication","title":"X-Api-Key"},"description":"API key for authentication"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/pois/near":{"get":{"tags":["pois"],"summary":"Pois Near","description":"POIs around a point (the same model as a location's ``/json``).","operationId":"pois_near_api_v1_pois_near_get","parameters":[{"name":"lat","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Lat"}},{"name":"lon","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Lon"}},{"name":"radius_m","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Radius M"}},{"name":"kinds","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}],"title":"Kinds"}},{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Limit"}},{"name":"lang","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":20},{"type":"null"}],"title":"Lang"}},{"name":"key","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API key as URL parameter (players)","title":"Key"},"description":"API key as URL parameter (players)"},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API key (server to server)","title":"X-Api-Key"},"description":"API key (server to server)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/pois/{location_id}":{"get":{"tags":["pois"],"summary":"Pois Widget","description":"HTML list of the nearest sights (landscape and portrait).","operationId":"pois_widget_api_v1_pois__location_id__get","parameters":[{"name":"location_id","in":"path","required":true,"schema":{"type":"string","title":"Location Id"}},{"name":"radius_m","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Radius M"}},{"name":"kinds","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}],"title":"Kinds"}},{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Limit"}},{"name":"lang","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":20},{"type":"null"}],"title":"Lang"}},{"name":"variant","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Variant"}},{"name":"theme","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Theme"}},{"name":"page_seconds","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Page Seconds"}},{"name":"key","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API key as URL parameter","title":"Key"},"description":"API key as URL parameter"},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API key for authentication","title":"X-Api-Key"},"description":"API key for authentication"}],"responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/pois/{location_id}/json":{"get":{"tags":["pois"],"summary":"Pois Json","operationId":"pois_json_api_v1_pois__location_id__json_get","parameters":[{"name":"location_id","in":"path","required":true,"schema":{"type":"string","title":"Location Id"}},{"name":"radius_m","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Radius M"}},{"name":"kinds","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}],"title":"Kinds"}},{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Limit"}},{"name":"lang","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":20},{"type":"null"}],"title":"Lang"}},{"name":"key","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API key as URL parameter","title":"Key"},"description":"API key as URL parameter"},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API key for authentication","title":"X-Api-Key"},"description":"API key for authentication"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/pois/{location_id}/live":{"get":{"tags":["pois"],"summary":"Pois Live","operationId":"pois_live_api_v1_pois__location_id__live_get","parameters":[{"name":"location_id","in":"path","required":true,"schema":{"type":"string","title":"Location Id"}},{"name":"radius_m","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Radius M"}},{"name":"kinds","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":200},{"type":"null"}],"title":"Kinds"}},{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Limit"}},{"name":"lang","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":20},{"type":"null"}],"title":"Lang"}},{"name":"key","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API key as URL parameter","title":"Key"},"description":"API key as URL parameter"},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API key for authentication","title":"X-Api-Key"},"description":"API key for authentication"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/horoscope":{"get":{"tags":["horoscope"],"summary":"Horoscope Data","description":"The twelve signs' ratings for today or tomorrow (contract horoscope/v1).","operationId":"horoscope_data_api_v1_horoscope_get","parameters":[{"name":"lang","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":20},{"type":"null"}],"title":"Lang"}},{"name":"date","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":10},{"type":"null"}],"title":"Date"}},{"name":"tz","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":64},{"type":"null"}],"title":"Tz"}},{"name":"key","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API key as URL parameter (players)","title":"Key"},"description":"API key as URL parameter (players)"},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API key (server to server)","title":"X-Api-Key"},"description":"API key (server to server)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/departures/stations":{"get":{"tags":["departures"],"summary":"Departure Stations","description":"Search the station directory (StaDa, all DB stations; umlauts and \"Hauptbahnhof\" folded).","operationId":"departure_stations_api_v1_departures_stations_get","parameters":[{"name":"q","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"name, place, EVA number or RIL100 code","title":"Q"},"description":"name, place, EVA number or RIL100 code"},{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"1–30, default 10","title":"Limit"},"description":"1–30, default 10"},{"name":"key","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API key as URL parameter (players)","title":"Key"},"description":"API key as URL parameter (players)"},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API key (server to server)","title":"X-Api-Key"},"description":"API key (server to server)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/departures/board/{eva}":{"get":{"tags":["departures"],"summary":"Departure Board Data","description":"One station's board: K1–K12 as on Atlas's own boards, texts in ``lang``, plus raw values.","operationId":"departure_board_data_api_v1_departures_board__eva__get","parameters":[{"name":"eva","in":"path","required":true,"schema":{"type":"string","title":"Eva"}},{"name":"mode","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"dep (default) | arr","title":"Mode"},"description":"dep (default) | arr"},{"name":"lang","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"output language, default de","title":"Lang"},"description":"output language, default de"},{"name":"kinds","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"fern,regio,sbahn,bus","title":"Kinds"},"description":"fern,regio,sbahn,bus"},{"name":"platforms","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"13,14","title":"Platforms"},"description":"13,14"},{"name":"via","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Köln Hbf|Bonn Hbf","title":"Via"},"description":"Köln Hbf|Bonn Hbf"},{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"rows, 1–60, default 20","title":"Limit"},"description":"rows, 1–60, default 20"},{"name":"key","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API key as URL parameter (players)","title":"Key"},"description":"API key as URL parameter (players)"},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API key (server to server)","title":"X-Api-Key"},"description":"API key (server to server)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/departures/stops":{"get":{"tags":["departures"],"summary":"Departure Stops","description":"Search the local transit stops (bus, tram, Stadtbahn, U-Bahn, ferry — gtfs.de / DELFI).","operationId":"departure_stops_api_v1_departures_stops_get","parameters":[{"name":"q","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"stop name and/or town, e.g. 'Hamburg Jungfernstieg'","title":"Q"},"description":"stop name and/or town, e.g. 'Hamburg Jungfernstieg'"},{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"1–30, default 10","title":"Limit"},"description":"1–30, default 10"},{"name":"key","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API key as URL parameter (players)","title":"Key"},"description":"API key as URL parameter (players)"},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API key (server to server)","title":"X-Api-Key"},"description":"API key (server to server)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/departures/stop/{stop_id}":{"get":{"tags":["departures"],"summary":"Departure Stop Board","description":"One stop's board from the timetable (no realtime yet), same body as the station board.","operationId":"departure_stop_board_api_v1_departures_stop__stop_id__get","parameters":[{"name":"stop_id","in":"path","required":true,"schema":{"type":"string","title":"Stop Id"}},{"name":"mode","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"dep (default) | arr","title":"Mode"},"description":"dep (default) | arr"},{"name":"lang","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"output language, default de","title":"Lang"},"description":"output language, default de"},{"name":"kinds","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"ubahn,tram,bus,ferry","title":"Kinds"},"description":"ubahn,tram,bus,ferry"},{"name":"platforms","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"stop/platform codes, where the timetable has them","title":"Platforms"},"description":"stop/platform codes, where the timetable has them"},{"name":"via","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"destinations, e.g. 'Hauptbahnhof/ZOB'","title":"Via"},"description":"destinations, e.g. 'Hauptbahnhof/ZOB'"},{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"rows, 1–60, default 20","title":"Limit"},"description":"rows, 1–60, default 20"},{"name":"key","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API key as URL parameter (players)","title":"Key"},"description":"API key as URL parameter (players)"},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API key (server to server)","title":"X-Api-Key"},"description":"API key (server to server)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/departures/airports":{"get":{"tags":["departures"],"summary":"Departure Airports","description":"Search the US airports with scheduled service (exact code first, then name/city, bigger first).","operationId":"departure_airports_api_v1_departures_airports_get","parameters":[{"name":"q","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"city, airport name or code, e.g. 'new york' or 'JFK'","title":"Q"},"description":"city, airport name or code, e.g. 'new york' or 'JFK'"},{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"1–30, default 10","title":"Limit"},"description":"1–30, default 10"},{"name":"key","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API key as URL parameter (players)","title":"Key"},"description":"API key as URL parameter (players)"},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API key (server to server)","title":"X-Api-Key"},"description":"API key (server to server)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/departures/airport/{code}":{"get":{"tags":["departures"],"summary":"Departure Airport Board","description":"One US airport's flight board: times in the airport's zone, texts in ``lang``, plus raw flight values.","operationId":"departure_airport_board_api_v1_departures_airport__code__get","parameters":[{"name":"code","in":"path","required":true,"schema":{"type":"string","title":"Code"}},{"name":"mode","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"dep (default) | arr","title":"Mode"},"description":"dep (default) | arr"},{"name":"lang","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"output language, default de","title":"Lang"},"description":"output language, default de"},{"name":"via","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"destinations/origins by city or code, e.g. 'ORD,MDW'","title":"Via"},"description":"destinations/origins by city or code, e.g. 'ORD,MDW'"},{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"rows, 1–60, default 20","title":"Limit"},"description":"rows, 1–60, default 20"},{"name":"key","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API key as URL parameter (players)","title":"Key"},"description":"API key as URL parameter (players)"},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API key (server to server)","title":"X-Api-Key"},"description":"API key (server to server)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/departures/{station_id}":{"get":{"tags":["departures"],"summary":"Departure Board","description":"HTML board for one customer station.","operationId":"departure_board_api_v1_departures__station_id__get","parameters":[{"name":"station_id","in":"path","required":true,"schema":{"type":"string","title":"Station Id"}},{"name":"mode","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"dep (default) | arr","title":"Mode"},"description":"dep (default) | arr"},{"name":"size","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"large | normal (default) | compact","title":"Size"},"description":"large | normal (default) | compact"},{"name":"variant","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"auto (default) | quer | hoch","title":"Variant"},"description":"auto (default) | quer | hoch"},{"name":"kinds","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"fern,regio,sbahn,ubahn,tram,bus,ferry","title":"Kinds"},"description":"fern,regio,sbahn,ubahn,tram,bus,ferry"},{"name":"platforms","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"13,14","title":"Platforms"},"description":"13,14"},{"name":"via","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"Köln Hbf|Bonn Hbf","title":"Via"},"description":"Köln Hbf|Bonn Hbf"},{"name":"bg","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Bg"}},{"name":"accent","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Accent"}},{"name":"lang","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Lang"}},{"name":"key","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API key as URL parameter","title":"Key"},"description":"API key as URL parameter"},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API key for authentication","title":"X-Api-Key"},"description":"API key for authentication"}],"responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/departures/{station_id}/live":{"get":{"tags":["departures"],"summary":"Departure Board Live","description":"The board's minute update: the view JSON, not metered (decision D).","operationId":"departure_board_live_api_v1_departures__station_id__live_get","parameters":[{"name":"station_id","in":"path","required":true,"schema":{"type":"string","title":"Station Id"}},{"name":"mode","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mode"}},{"name":"kinds","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Kinds"}},{"name":"platforms","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Platforms"}},{"name":"via","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Via"}},{"name":"lang","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Lang"}},{"name":"key","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API key as URL parameter","title":"Key"},"description":"API key as URL parameter"},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API key for authentication","title":"X-Api-Key"},"description":"API key for authentication"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/departures/{station_id}/json":{"get":{"tags":["departures"],"summary":"Departure Board Json","description":"The view as JSON for own players and CMSs — metered like any request.","operationId":"departure_board_json_api_v1_departures__station_id__json_get","parameters":[{"name":"station_id","in":"path","required":true,"schema":{"type":"string","title":"Station Id"}},{"name":"mode","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mode"}},{"name":"kinds","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Kinds"}},{"name":"platforms","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Platforms"}},{"name":"via","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Via"}},{"name":"lang","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Lang"}},{"name":"key","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API key as URL parameter","title":"Key"},"description":"API key as URL parameter"},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API key for authentication","title":"X-Api-Key"},"description":"API key for authentication"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/soccer/leagues":{"get":{"tags":["soccer"],"summary":"Soccer Leagues","description":"The catalogue: every enabled league, listed or not (``listed`` says which the shop shows).","operationId":"soccer_leagues_api_v1_soccer_leagues_get","parameters":[{"name":"lang","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":10},{"type":"null"}],"title":"Lang"}},{"name":"key","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API key as URL parameter (players)","title":"Key"},"description":"API key as URL parameter (players)"},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API key (server to server)","title":"X-Api-Key"},"description":"API key (server to server)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/soccer/{league_slug}/standings":{"get":{"tags":["soccer"],"summary":"Soccer Standings","operationId":"soccer_standings_api_v1_soccer__league_slug__standings_get","parameters":[{"name":"league_slug","in":"path","required":true,"schema":{"type":"string","title":"League Slug"}},{"name":"key","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API key as URL parameter (players)","title":"Key"},"description":"API key as URL parameter (players)"},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API key (server to server)","title":"X-Api-Key"},"description":"API key (server to server)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/soccer/{league_slug}/matchday":{"get":{"tags":["soccer"],"summary":"Soccer Matchday","operationId":"soccer_matchday_api_v1_soccer__league_slug__matchday_get","parameters":[{"name":"league_slug","in":"path","required":true,"schema":{"type":"string","title":"League Slug"}},{"name":"round","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":80},{"type":"null"}],"title":"Round"}},{"name":"lang","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":10},{"type":"null"}],"description":"Language of ``headline``, default de","title":"Lang"},"description":"Language of ``headline``, default de"},{"name":"key","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API key as URL parameter (players)","title":"Key"},"description":"API key as URL parameter (players)"},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API key (server to server)","title":"X-Api-Key"},"description":"API key (server to server)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/soccer/{league_slug}/teams":{"get":{"tags":["soccer"],"summary":"Soccer Teams","operationId":"soccer_teams_api_v1_soccer__league_slug__teams_get","parameters":[{"name":"league_slug","in":"path","required":true,"schema":{"type":"string","title":"League Slug"}},{"name":"key","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API key as URL parameter (players)","title":"Key"},"description":"API key as URL parameter (players)"},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API key (server to server)","title":"X-Api-Key"},"description":"API key (server to server)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/basketball/leagues":{"get":{"tags":["basketball"],"summary":"Basketball Leagues","description":"The catalogue: every enabled league, listed or not.","operationId":"basketball_leagues_api_v1_basketball_leagues_get","parameters":[{"name":"lang","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":10},{"type":"null"}],"title":"Lang"}},{"name":"key","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API key as URL parameter (players)","title":"Key"},"description":"API key as URL parameter (players)"},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API key (server to server)","title":"X-Api-Key"},"description":"API key (server to server)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/basketball/{league_slug}/standings":{"get":{"tags":["basketball"],"summary":"Basketball Standings","description":"Both conferences — the current table once it has a result, else last season's final one.","operationId":"basketball_standings_api_v1_basketball__league_slug__standings_get","parameters":[{"name":"league_slug","in":"path","required":true,"schema":{"type":"string","title":"League Slug"}},{"name":"key","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API key as URL parameter (players)","title":"Key"},"description":"API key as URL parameter (players)"},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API key (server to server)","title":"X-Api-Key"},"description":"API key (server to server)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/basketball/{league_slug}/games":{"get":{"tags":["basketball"],"summary":"Basketball Games","description":"The screen's nights (live / last results / next), or the night asked for.","operationId":"basketball_games_api_v1_basketball__league_slug__games_get","parameters":[{"name":"league_slug","in":"path","required":true,"schema":{"type":"string","title":"League Slug"}},{"name":"night","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":10},{"type":"null"}],"description":"YYYY-MM-DD (US Eastern date of tip-off)","title":"Night"},"description":"YYYY-MM-DD (US Eastern date of tip-off)"},{"name":"key","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API key as URL parameter (players)","title":"Key"},"description":"API key as URL parameter (players)"},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API key (server to server)","title":"X-Api-Key"},"description":"API key (server to server)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/basketball/{league_slug}/teams":{"get":{"tags":["basketball"],"summary":"Basketball Teams","operationId":"basketball_teams_api_v1_basketball__league_slug__teams_get","parameters":[{"name":"league_slug","in":"path","required":true,"schema":{"type":"string","title":"League Slug"}},{"name":"key","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API key as URL parameter (players)","title":"Key"},"description":"API key as URL parameter (players)"},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API key (server to server)","title":"X-Api-Key"},"description":"API key (server to server)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/traffic/list":{"get":{"tags":["traffic"],"summary":"Traffic List","description":"HTML list of the messages on the chosen roads.","operationId":"traffic_list_api_v1_traffic_list_get","parameters":[{"name":"roads","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"A3,A40,A46","title":"Roads"},"description":"A3,A40,A46"},{"name":"location","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"a weather location id of the key's owner","title":"Location"},"description":"a weather location id of the key's owner"},{"name":"radius_km","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"1–200, with location","title":"Radius Km"},"description":"1–200, with location"},{"name":"categories","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"closure,accident,congestion,ramp_closure,slow_traffic,…","title":"Categories"},"description":"closure,accident,congestion,ramp_closure,slow_traffic,…"},{"name":"when","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"now (default) | next24h | week","title":"When"},"description":"now (default) | next24h | week"},{"name":"lang","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Lang"}},{"name":"variant","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"auto (default) | quer | hoch","title":"Variant"},"description":"auto (default) | quer | hoch"},{"name":"theme","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"dark (default) | light","title":"Theme"},"description":"dark (default) | light"},{"name":"bg","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Bg"}},{"name":"accent","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Accent"}},{"name":"page_seconds","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"5–60, default 12","title":"Page Seconds"},"description":"5–60, default 12"},{"name":"show_project","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Show Project"}},{"name":"key","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API key as URL parameter","title":"Key"},"description":"API key as URL parameter"},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API key for authentication","title":"X-Api-Key"},"description":"API key for authentication"}],"responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/traffic/list/live":{"get":{"tags":["traffic"],"summary":"Traffic List Live","description":"The page's update: the view JSON, not metered.","operationId":"traffic_list_live_api_v1_traffic_list_live_get","parameters":[{"name":"roads","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Roads"}},{"name":"location","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Location"}},{"name":"radius_km","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Radius Km"}},{"name":"categories","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Categories"}},{"name":"when","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"When"}},{"name":"lang","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Lang"}},{"name":"show_project","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Show Project"}},{"name":"key","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API key as URL parameter","title":"Key"},"description":"API key as URL parameter"},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API key for authentication","title":"X-Api-Key"},"description":"API key for authentication"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/traffic/list/json":{"get":{"tags":["traffic"],"summary":"Traffic List Json","description":"The view as JSON for own players and CMSs — metered like any request.","operationId":"traffic_list_json_api_v1_traffic_list_json_get","parameters":[{"name":"roads","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Roads"}},{"name":"location","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Location"}},{"name":"radius_km","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Radius Km"}},{"name":"categories","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Categories"}},{"name":"when","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"When"}},{"name":"lang","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Lang"}},{"name":"show_project","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Show Project"}},{"name":"key","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API key as URL parameter","title":"Key"},"description":"API key as URL parameter"},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API key for authentication","title":"X-Api-Key"},"description":"API key for authentication"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/traffic/map/{extent}":{"get":{"tags":["traffic"],"summary":"Traffic Map","description":"HTML map of an extent with the messages in effect now.","operationId":"traffic_map_api_v1_traffic_map__extent__get","parameters":[{"name":"extent","in":"path","required":true,"schema":{"type":"string","title":"Extent"}},{"name":"layers","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"closure,congestion,… | all; default per extent","title":"Layers"},"description":"closure,congestion,… | all; default per extent"},{"name":"sidebar","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"1 = list of the most important messages beside a landscape map","title":"Sidebar"},"description":"1 = list of the most important messages beside a landscape map"},{"name":"lang","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Lang"}},{"name":"variant","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"auto (default) | quer | hoch","title":"Variant"},"description":"auto (default) | quer | hoch"},{"name":"theme","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"dark (default) | light","title":"Theme"},"description":"dark (default) | light"},{"name":"key","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API key as URL parameter","title":"Key"},"description":"API key as URL parameter"},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API key for authentication","title":"X-Api-Key"},"description":"API key for authentication"}],"responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/traffic/map/{extent}/live":{"get":{"tags":["traffic"],"summary":"Traffic Map Live","operationId":"traffic_map_live_api_v1_traffic_map__extent__live_get","parameters":[{"name":"extent","in":"path","required":true,"schema":{"type":"string","title":"Extent"}},{"name":"layers","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Layers"}},{"name":"sidebar","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sidebar"}},{"name":"lang","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Lang"}},{"name":"theme","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Theme"}},{"name":"key","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API key as URL parameter","title":"Key"},"description":"API key as URL parameter"},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API key for authentication","title":"X-Api-Key"},"description":"API key for authentication"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/traffic/map/{extent}/json":{"get":{"tags":["traffic"],"summary":"Traffic Map Json","operationId":"traffic_map_json_api_v1_traffic_map__extent__json_get","parameters":[{"name":"extent","in":"path","required":true,"schema":{"type":"string","title":"Extent"}},{"name":"layers","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Layers"}},{"name":"sidebar","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sidebar"}},{"name":"lang","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Lang"}},{"name":"theme","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Theme"}},{"name":"key","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API key as URL parameter","title":"Key"},"description":"API key as URL parameter"},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API key for authentication","title":"X-Api-Key"},"description":"API key for authentication"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/traffic/roads":{"get":{"tags":["traffic"],"summary":"Traffic Roads Data","description":"Every motorway the source lists, with its messages in effect now per category.","operationId":"traffic_roads_data_api_v1_traffic_roads_get","parameters":[{"name":"lang","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Lang"}},{"name":"key","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API key as URL parameter (players)","title":"Key"},"description":"API key as URL parameter (players)"},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API key (server to server)","title":"X-Api-Key"},"description":"API key (server to server)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/traffic/events":{"get":{"tags":["traffic"],"summary":"Traffic Events Data","description":"The messages of chosen roads or of a map extent, contract ``traffic/v1``.","operationId":"traffic_events_data_api_v1_traffic_events_get","parameters":[{"name":"roads","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"A3,A40 — or extent","title":"Roads"},"description":"A3,A40 — or extent"},{"name":"extent","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"de | de-nw | … — or roads","title":"Extent"},"description":"de | de-nw | … — or roads"},{"name":"location","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"a weather location id of the key's owner (with roads)","title":"Location"},"description":"a weather location id of the key's owner (with roads)"},{"name":"radius_km","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"1–200, with location","title":"Radius Km"},"description":"1–200, with location"},{"name":"categories","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"closure,congestion,… (default: all)","title":"Categories"},"description":"closure,congestion,… (default: all)"},{"name":"when","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"now (default) | next24h | week","title":"When"},"description":"now (default) | next24h | week"},{"name":"lang","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Lang"}},{"name":"limit","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"1–2000, default 500","title":"Limit"},"description":"1–2000, default 500"},{"name":"geometry","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"0 = leave the geometry out","title":"Geometry"},"description":"0 = leave the geometry out"},{"name":"key","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API key as URL parameter (players)","title":"Key"},"description":"API key as URL parameter (players)"},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API key (server to server)","title":"X-Api-Key"},"description":"API key (server to server)"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/v1/infoscreens/{infoscreen_id}":{"get":{"tags":["infoscreens"],"summary":"Infoscreen Page","description":"The whole infoscreen. Counted once; everything it loads afterwards is not (decision K1).","operationId":"infoscreen_page_api_v1_infoscreens__infoscreen_id__get","parameters":[{"name":"infoscreen_id","in":"path","required":true,"schema":{"type":"string","title":"Infoscreen Id"}},{"name":"variant","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"auto (default) | quer | hoch","title":"Variant"},"description":"auto (default) | quer | hoch"},{"name":"lang","in":"query","required":false,"schema":{"anyOf":[{"type":"string","maxLength":10},{"type":"null"}],"description":"One language instead of the profile's","title":"Lang"},"description":"One language instead of the profile's"},{"name":"key","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API key as URL parameter","title":"Key"},"description":"API key as URL parameter"},{"name":"x-api-key","in":"header","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"description":"API key for authentication","title":"X-Api-Key"},"description":"API key for authentication"}],"responses":{"200":{"description":"Successful Response","content":{"text/html":{"schema":{"type":"string"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}}},"components":{"schemas":{"ChannelInfo":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"name":{"type":"string","title":"Name"},"slug":{"type":"string","title":"Slug"}},"type":"object","required":["id","name","slug"],"title":"ChannelInfo"},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"PublicChannel":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"name":{"type":"string","title":"Name"},"slug":{"type":"string","title":"Slug"},"layer":{"type":"string","title":"Layer"},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description"},"language":{"type":"string","title":"Language"},"geo_scope":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Geo Scope"}},"type":"object","required":["id","name","slug","layer","language"],"title":"PublicChannel"},"PublicChannelList":{"properties":{"items":{"items":{"$ref":"#/components/schemas/PublicChannel"},"type":"array","title":"Items"},"total":{"type":"integer","title":"Total"}},"type":"object","required":["items","total"],"title":"PublicChannelList"},"PublicContentItem":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"title":{"type":"string","title":"Title"},"body":{"type":"string","title":"Body"},"tone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tone"},"variant":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Variant"},"content_format":{"type":"string","title":"Content Format","default":"text"},"structured_data":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Structured Data"},"display_duration_seconds":{"type":"integer","title":"Display Duration Seconds"},"priority":{"type":"number","title":"Priority"},"quality_score":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Quality Score"},"published_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Published At"},"expires_at":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Expires At"},"image":{"anyOf":[{"$ref":"#/components/schemas/PublicImage"},{"type":"null"}]},"language":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Language"},"ai_generated":{"type":"boolean","title":"Ai Generated","default":false},"ai_disclosure":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Ai Disclosure"}},"type":"object","required":["id","title","body","display_duration_seconds","priority"],"title":"PublicContentItem"},"PublicContentList":{"properties":{"items":{"items":{"$ref":"#/components/schemas/PublicContentItem"},"type":"array","title":"Items"},"total":{"type":"integer","title":"Total"},"channel":{"$ref":"#/components/schemas/ChannelInfo"},"translation_status":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Translation Status"}},"type":"object","required":["items","total","channel"],"title":"PublicContentList"},"PublicImage":{"properties":{"id":{"type":"string","format":"uuid","title":"Id"},"thumbnail_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Thumbnail Url"},"preview_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Preview Url"},"full_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Full Url"},"credit":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Credit"},"credit_thumbnail":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Credit Thumbnail"},"license":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"License"},"license_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"License Url"},"source_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Source Url"}},"type":"object","required":["id"],"title":"PublicImage"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"},"input":{"title":"Input"},"ctx":{"type":"object","title":"Context"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"}}}}