{"openapi":"3.1.0","info":{"title":"Apizie: transport","version":"2.0.0","description":"One API key, one envelope, many public data sources."},"servers":[{"url":"https://apizie.tech"}],"security":[{"ApiKeyAuth":[]}],"paths":{"/v1/transport:opensky/states":{"get":{"operationId":"transport_opensky_states","summary":"Aircraft in an area","description":"State vectors inside a bounding box.","tags":["transport"],"parameters":[{"name":"lamin","in":"query","required":true,"schema":{"type":"number"},"example":45.8},{"name":"lomin","in":"query","required":true,"schema":{"type":"number"},"example":5.9},{"name":"lamax","in":"query","required":true,"schema":{"type":"number"},"example":47.8},{"name":"lomax","in":"query","required":true,"schema":{"type":"number"},"example":10.5}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunEnvelope"}}}},"4XX":{"$ref":"#/components/responses/Error"},"5XX":{"$ref":"#/components/responses/Error"}},"x-apizie-cache-ttl":15,"x-apizie-min-plan":null,"x-apizie-bulk":true,"x-apizie-status":"live"}},"/v1/transport:aviation-weather/metar":{"get":{"operationId":"transport_aviation_weather_metar","summary":"METAR","description":"Latest observations for ICAO station ids.","tags":["transport"],"parameters":[{"name":"ids","in":"query","required":true,"schema":{"type":"string"},"example":"KJFK,EGLL"},{"name":"hours","in":"query","required":false,"schema":{"type":"integer","default":2,"minimum":1,"maximum":72}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunEnvelope"}}}},"4XX":{"$ref":"#/components/responses/Error"},"5XX":{"$ref":"#/components/responses/Error"}},"x-apizie-cache-ttl":300,"x-apizie-min-plan":null,"x-apizie-bulk":true,"x-apizie-status":"live"}},"/v1/transport:aviation-weather/taf":{"get":{"operationId":"transport_aviation_weather_taf","summary":"TAF","description":"Terminal aerodrome forecasts.","tags":["transport"],"parameters":[{"name":"ids","in":"query","required":true,"schema":{"type":"string"},"example":"KJFK"}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunEnvelope"}}}},"4XX":{"$ref":"#/components/responses/Error"},"5XX":{"$ref":"#/components/responses/Error"}},"x-apizie-cache-ttl":600,"x-apizie-min-plan":null,"x-apizie-bulk":true,"x-apizie-status":"live"}},"/v1/transport:citybikes/networks":{"get":{"operationId":"transport_citybikes_networks","summary":"Networks","description":"Every bike-share network with its city and id.","tags":["transport"],"parameters":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunEnvelope"}}}},"4XX":{"$ref":"#/components/responses/Error"},"5XX":{"$ref":"#/components/responses/Error"}},"x-apizie-cache-ttl":86400,"x-apizie-min-plan":null,"x-apizie-bulk":true,"x-apizie-status":"live"}},"/v1/transport:citybikes/network":{"get":{"operationId":"transport_citybikes_network","summary":"Stations","description":"Stations with free bikes and empty slots.","tags":["transport"],"parameters":[{"name":"id","in":"query","required":true,"schema":{"type":"string"},"example":"velib"}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunEnvelope"}}}},"4XX":{"$ref":"#/components/responses/Error"},"5XX":{"$ref":"#/components/responses/Error"}},"x-apizie-cache-ttl":60,"x-apizie-min-plan":null,"x-apizie-bulk":true,"x-apizie-status":"live"}},"/v1/transport:swiss-transport/connections":{"get":{"operationId":"transport_swiss_transport_connections","summary":"Connections","description":"Next connections between two places.","tags":["transport"],"parameters":[{"name":"from","in":"query","required":true,"schema":{"type":"string"},"example":"Zürich HB"},{"name":"to","in":"query","required":true,"schema":{"type":"string"},"example":"Bern"},{"name":"limit","in":"query","required":false,"description":"Number of results","schema":{"type":"integer","default":4,"minimum":1,"maximum":16,"description":"Number of results"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunEnvelope"}}}},"4XX":{"$ref":"#/components/responses/Error"},"5XX":{"$ref":"#/components/responses/Error"}},"x-apizie-cache-ttl":60,"x-apizie-min-plan":null,"x-apizie-bulk":true,"x-apizie-status":"live"}},"/v1/transport:swiss-transport/stationboard":{"get":{"operationId":"transport_swiss_transport_stationboard","summary":"Departures","description":"Departures from a station.","tags":["transport"],"parameters":[{"name":"station","in":"query","required":true,"schema":{"type":"string"},"example":"Luzern"},{"name":"limit","in":"query","required":false,"description":"Number of results","schema":{"type":"integer","default":10,"minimum":1,"maximum":40,"description":"Number of results"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunEnvelope"}}}},"4XX":{"$ref":"#/components/responses/Error"},"5XX":{"$ref":"#/components/responses/Error"}},"x-apizie-cache-ttl":60,"x-apizie-min-plan":null,"x-apizie-bulk":true,"x-apizie-status":"live"}},"/v1/transport:swiss-transport/locations":{"get":{"operationId":"transport_swiss_transport_locations","summary":"Locations","description":"Stations and stops by name.","tags":["transport"],"parameters":[{"name":"query","in":"query","required":true,"schema":{"type":"string"},"example":"Basel"}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunEnvelope"}}}},"4XX":{"$ref":"#/components/responses/Error"},"5XX":{"$ref":"#/components/responses/Error"}},"x-apizie-cache-ttl":86400,"x-apizie-min-plan":null,"x-apizie-bulk":true,"x-apizie-status":"live"}},"/v1/transport:irail/connections":{"get":{"operationId":"transport_irail_connections","summary":"Connections","description":"Routes between two stations.","tags":["transport"],"parameters":[{"name":"from","in":"query","required":true,"schema":{"type":"string"},"example":"Brussels-Central"},{"name":"to","in":"query","required":true,"schema":{"type":"string"},"example":"Ghent-Sint-Pieters"}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunEnvelope"}}}},"4XX":{"$ref":"#/components/responses/Error"},"5XX":{"$ref":"#/components/responses/Error"}},"x-apizie-cache-ttl":60,"x-apizie-min-plan":null,"x-apizie-bulk":true,"x-apizie-status":"live"}},"/v1/transport:irail/liveboard":{"get":{"operationId":"transport_irail_liveboard","summary":"Liveboard","description":"Departures at a station.","tags":["transport"],"parameters":[{"name":"station","in":"query","required":true,"schema":{"type":"string"},"example":"Antwerp-Central"}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunEnvelope"}}}},"4XX":{"$ref":"#/components/responses/Error"},"5XX":{"$ref":"#/components/responses/Error"}},"x-apizie-cache-ttl":60,"x-apizie-min-plan":null,"x-apizie-bulk":true,"x-apizie-status":"live"}},"/v1/transport:adsb-lol/nearby":{"get":{"operationId":"transport_adsb_lol_nearby","summary":"Aircraft nearby","description":"Aircraft within a radius (nautical miles, max 250) of a point.","tags":["transport"],"parameters":[{"name":"lat","in":"query","required":true,"schema":{"type":"number"},"example":51.47},{"name":"lon","in":"query","required":true,"schema":{"type":"number"},"example":-0.45},{"name":"radius","in":"query","required":false,"schema":{"type":"integer","default":25,"minimum":1,"maximum":250}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunEnvelope"}}}},"4XX":{"$ref":"#/components/responses/Error"},"5XX":{"$ref":"#/components/responses/Error"}},"x-apizie-cache-ttl":15,"x-apizie-min-plan":null,"x-apizie-bulk":true,"x-apizie-status":"live"}},"/v1/transport:adsb-lol/callsign":{"get":{"operationId":"transport_adsb_lol_callsign","summary":"By callsign","description":"Aircraft broadcasting a callsign (e.g. a flight number).","tags":["transport"],"parameters":[{"name":"callsign","in":"query","required":true,"schema":{"type":"string"},"example":"BAW123"}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunEnvelope"}}}},"4XX":{"$ref":"#/components/responses/Error"},"5XX":{"$ref":"#/components/responses/Error"}},"x-apizie-cache-ttl":15,"x-apizie-min-plan":null,"x-apizie-bulk":true,"x-apizie-status":"live"}},"/v1/transport:adsb-lol/registration":{"get":{"operationId":"transport_adsb_lol_registration","summary":"By registration","description":"Aircraft by tail number.","tags":["transport"],"parameters":[{"name":"registration","in":"query","required":true,"schema":{"type":"string"},"example":"G-XLEA"}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunEnvelope"}}}},"4XX":{"$ref":"#/components/responses/Error"},"5XX":{"$ref":"#/components/responses/Error"}},"x-apizie-cache-ttl":15,"x-apizie-min-plan":null,"x-apizie-bulk":true,"x-apizie-status":"live"}},"/v1/transport:adsb-lol/hex":{"get":{"operationId":"transport_adsb_lol_hex","summary":"By ICAO hex","description":"Aircraft by 24-bit ICAO address.","tags":["transport"],"parameters":[{"name":"hex","in":"query","required":true,"schema":{"type":"string"},"example":"4ca853"}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunEnvelope"}}}},"4XX":{"$ref":"#/components/responses/Error"},"5XX":{"$ref":"#/components/responses/Error"}},"x-apizie-cache-ttl":15,"x-apizie-min-plan":null,"x-apizie-bulk":true,"x-apizie-status":"live"}},"/v1/transport:tfl-status/line-status":{"get":{"operationId":"transport_tfl_status_line_status","summary":"Line status","description":"Current status of every line for a mode.","tags":["transport"],"parameters":[{"name":"mode","in":"query","required":false,"schema":{"type":"string","enum":["tube","overground","dlr","elizabeth-line","tram","bus","river-bus"],"default":"tube"}}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunEnvelope"}}}},"4XX":{"$ref":"#/components/responses/Error"},"5XX":{"$ref":"#/components/responses/Error"}},"x-apizie-cache-ttl":60,"x-apizie-min-plan":null,"x-apizie-bulk":true,"x-apizie-status":"live"}},"/v1/transport:tfl-status/arrivals":{"get":{"operationId":"transport_tfl_status_arrivals","summary":"Stop arrivals","description":"Next arrivals at a stop point (NaPTAN id).","tags":["transport"],"parameters":[{"name":"stopId","in":"query","required":true,"description":"StopPoint id, e.g. 940GZZLUOXC (Oxford Circus)","schema":{"type":"string","description":"StopPoint id, e.g. 940GZZLUOXC (Oxford Circus)"},"example":"940GZZLUOXC"}],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunEnvelope"}}}},"4XX":{"$ref":"#/components/responses/Error"},"5XX":{"$ref":"#/components/responses/Error"}},"x-apizie-cache-ttl":30,"x-apizie-min-plan":null,"x-apizie-bulk":true,"x-apizie-status":"live"}},"/v1/transport:tfl-status/bike-points":{"get":{"operationId":"transport_tfl_status_bike_points","summary":"Santander bikes","description":"Docking stations with bikes and spaces available.","tags":["transport"],"parameters":[],"responses":{"200":{"description":"Success","content":{"application/json":{"schema":{"$ref":"#/components/schemas/RunEnvelope"}}}},"4XX":{"$ref":"#/components/responses/Error"},"5XX":{"$ref":"#/components/responses/Error"}},"x-apizie-cache-ttl":120,"x-apizie-min-plan":null,"x-apizie-bulk":true,"x-apizie-status":"live"}}},"components":{"securitySchemes":{"ApiKeyAuth":{"type":"apiKey","in":"header","name":"x-api-key"}},"schemas":{"RunEnvelope":{"type":"object","required":["project","data","timestamp"],"properties":{"project":{"type":"string","example":"dev-tools:hash"},"data":{},"timestamp":{"type":"string","format":"date-time"}}},"ErrorEnvelope":{"type":"object","properties":{"content":{},"message":{"type":"string"},"errors":{"type":"array","items":{}},"error":{"type":"object","properties":{"code":{"type":"string"},"message":{"type":"string"}}}}}},"responses":{"Error":{"description":"Invalid key, plan gate, rate limit or upstream failure","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ErrorEnvelope"}}}}}}}