openapi: 3.0.0 info: title: Nextbike Maps description: Nextbike realtime bike and station location information version: 2.0.0 servers: - url: https://maps.nextbike.net/ paths: /maps/nextbike-{scope}.{format}: parameters: - in: path name: scope description: Should be "live" for all places or "official" for only official stations (no free floating bikes). schema: type: string required: true - in: path name: format description: Response format. "flatjson" is a flat json array of countries, cities, places with cross-references to parent IDs schema: type: string enum: [json, xml, flatjson] required: true - in: query name: city description: Comma-separated list of Nextbike city UIDs schema: type: array items: type: integer required: false - in: query name: domains description: Comma-separated list of two-digit Nextbike domain codes schema: type: array items: type: string minItems: 1 style: form explode: false - in: query name: countries description: Comma-separated list of two-digit ISO 3166-1 (alpha 2) country codes schema: type: array items: type: string - in: query name: place description: Nextbike place UID schema: type: number - in: query name: station description: Nextbike station number schema: type: string - in: query name: lat description: Latitude of center point schema: type: number - in: query name: lng description: longitude of center point schema: type: number - in: query name: limit description: the limit of returned stations within radius, only valid if (lat, lng) are provided schema: type: integer default: 100 - in: query name: distance description: filter radius [meters], only considered when (lat, lng) are provided schema: type: integer default: 2000 - in: query name: bike_distance description: radius limit [meters] around (lat, lng) for returned free floating bikes schema: type: integer - in: query name: list_cities description: if thruthy, only list cities, omit place nodes from response schema: type: string enum: ["0", "false", "1", "true"] - in: query name: bikes description: if falsy, omit bike nodes from the response schema: type: string enum: ["0", "false"] - in: query name: search description: contains either station-number, station-name, adress or bike number schema: type: string get: operationId: maps summary: Returns a list of map markers for all or only official stations, filtered by the given parameters tags: [maps] responses: '200': description: Ok content: application/json: schema: $ref: '#/components/schemas/markers_json' application/xml: schema: $ref: '#/components/schemas/markers_xml' post: operationId: mapsPost summary: Returns a list of map markers for all or only official stations, filtered by the given parameters (deprecated, only for legacy compatibility) tags: [maps] deprecated: true responses: '200': description: Ok content: application/json: schema: $ref: '#/components/schemas/markers_json' application/xml: schema: $ref: '#/components/schemas/markers_xml' /maps/nextbike.{format}: parameters: - in: path name: format schema: type: string enum: [json, xml] required: true - in: query name: city schema: type: array items: type: integer required: false - in: query name: domains schema: type: array items: type: string minItems: 1 style: form explode: false - in: query name: countries schema: type: array items: type: string - in: query name: place schema: type: number - in: query name: station schema: type: string - in: query name: lat schema: type: number - in: query name: lng schema: type: number - in: query name: limit schema: type: integer default: 100 - in: query name: distance schema: type: integer default: 2000 - in: query name: bike_distance schema: type: integer - in: query name: list_cities schema: type: string enum: ["0", "false", "1", "true"] - in: query name: bikes schema: enum: ["0", "false"] get: operationId: mapsOfficialLegacy summary: Returns a list of map markers for official stations tags: [maps] responses: '200': description: Ok content: application/json: schema: $ref: '#/components/schemas/markers_json' application/xml: schema: $ref: '#/components/schemas/markers_xml' post: operationId: mapsOfficialLegacyPost summary: Returns a list of map markers for official stations (deprecated, only for legacy compatibility) tags: [maps] deprecated: true responses: '200': description: Ok content: application/json: schema: $ref: '#/components/schemas/markers_json' application/xml: schema: $ref: '#/components/schemas/markers_xml' "/office/maps3.php": parameters: - in: query name: loginkey required: true description: loginkey of a user with privileges for respective domains/cities schema: type: string - in: query required: true name: format schema: type: string enum: [json, xml] default: json - in: query name: city schema: type: array items: type: integer required: false - in: query name: domains schema: type: array items: type: string minItems: 1 style: form explode: false - in: query name: countries schema: type: array items: type: string - in: query name: place schema: type: number - in: query name: station schema: type: string - in: query name: lat schema: type: number - in: query name: lng schema: type: number - in: query name: limit schema: type: integer default: 100 - in: query name: distance schema: type: integer default: 2000 - in: query name: bike_distance schema: type: integer - in: query name: list_cities schema: type: string enum: ["0", "false", "1", "true"] - in: query name: bikes schema: enum: ["0", "false", "1", "true"] get: operationId: fetchServiceMapsByGet summary: return an array of places with extended service information tags: [serviceMaps] responses: '200': description: Ok content: application/json: schema: $ref: '#/components/schemas/service_maps_json' application/xml: schema: $ref: '#/components/schemas/service_maps_xml' post: operationId: fetchServiceMapsPost summary: return an array of places with extended service information (deprecated, only for legacy compatibility) tags: [serviceMaps] deprecated: true responses: '200': description: Ok content: application/json: schema: $ref: '#/components/schemas/service_maps_json' application/xml: schema: $ref: '#/components/schemas/service_maps_xml' components: schemas: service_maps_json: type: object properties: countries: type: array items: $ref: '#/components/schemas/service_country' service_maps_xml: type: array items: $ref: '#/components/schemas/service_country' markers_json: type: object properties: countries: type: array items: $ref: '#/components/schemas/country' required: [countries] markers_xml: type: array items: $ref: '#/components/schemas/country' country: allOf: - $ref: '#/components/schemas/base_country' - type: object properties: cities: type: array items: $ref: '#/components/schemas/city' required: [cities] service_country: allOf: - $ref: '#/components/schemas/base_country' - type: object properties: cities: type: array items: $ref: '#/components/schemas/service_city' base_country: type: object properties: lat: type: number xml: attribute: true lng: type: number xml: attribute: true zoom: type: integer xml: attribute: true name: type: string xml: attribute: true hotline: type: string xml: attribute: true domain: type: string xml: attribute: true language: type: string xml: attribute: true email: type: string nullable: true xml: attribute: true timezone: type: string xml: attribute: true currency: type: string xml: attribute: true country_calling_code: type: string xml: attribute: true system_operator_address: type: string xml: attribute: true country: type: string xml: attribute: true country_name: type: string xml: attribute: true terms: type: string xml: attribute: true policy: type: string xml: attribute: true website: type: string xml: attribute: true show_bike_types: type: boolean xml: attribute: true show_bike_type_groups: type: boolean xml: attribute: true show_free_racks: type: boolean xml: attribute: true booked_bikes: type: integer xml: attribute: true set_point_bikes: type: integer xml: attribute: true available_bikes: type: integer xml: attribute: true capped_available_bikes: type: boolean xml: attribute: true pricing: type: string xml: attribute: true city: allOf: - $ref: '#/components/schemas/base_city' - type: object properties: places: type: array items: $ref: '#/components/schemas/place' service_city: allOf: - $ref: '#/components/schemas/base_city' - type: object properties: places: type: array items: $ref: '#/components/schemas/service_place' base_city: type: object properties: uid: type: integer xml: attribute: true lat: type: number xml: attribute: true lng: type: number xml: attribute: true bounds: type: object xml: attribute: true properties: south_west: $ref: '#/components/schemas/latLng' north_east: $ref: '#/components/schemas/latLng' required: [south_west, north_east] zoom: type: integer xml: attribute: true maps_icon: type: string xml: attribute: true alias: type: string xml: attribute: true website: type: string xml: attribute: true break: type: boolean xml: attribute: true name: type: string xml: attribute: true num_places: type: integer xml: attribute: true refresh_rate: type: string xml: attribute: true booked_bikes: type: integer xml: attribute: true set_point_bikes: type: integer xml: attribute: true available_bikes: type: integer xml: attribute: true return_to_official_only: type: boolean xml: attribute: true bike_types: type: object xml: attribute: true places: type: array items: $ref: '#/components/schemas/place' required: [bounds] place: type: object properties: uid: type: integer xml: attribute: true lat: type: number xml: attribute: true lng: type: number xml: attribute: true bike: type: boolean xml: attribute: true name: type: string xml: attribute: true address: type: string nullable: true xml: attribute: true spot: type: boolean xml: attribute: true number: type: integer xml: attribute: true bikes: type: integer xml: attribute: true booked_bikes: type: integer xml: attribute: true bike_racks: type: integer xml: attribute: true free_racks: type: integer xml: attribute: true maintenance: type: boolean xml: attribute: true terminal_type: type: string xml: attribute: true bike_numbers: type: array items: type: string xml: attribute: true bike_types: type: object xml: attribute: true place_type: type: string xml: attribute: true rack_locks: type: boolean xml: attribute: true bike_list: type: array items: $ref: '#/components/schemas/bike' bike: type: object properties: number: type: string xml: attribute: true bike_type: type: integer xml: attribute: true lock_types: type: array items: type: string xml: attribute: true active: type: boolean xml: attribute: true state: type: string xml: attribute: true electric_lock: type: boolean xml: attribute: true boardcomputer: type: integer xml: attribute: true pedelec_battery: type: integer nullable: true xml: attribute: true battery_pack: type: object nullable: true service_bike: type: object properties: active: type: string battery: type: string battery_level_percent: type: number minimum: 0 maximum: 100 battery_state: type: string bike_name: type: string boardcomputer: type: string campaign_end_time: type: string campaign_name: type: string code_new: type: string firmware: type: string formfactor_id: type: string frame_number: type: string hardware_version: type: string internal_comments: type: string is_lent: type: string last_bikecheck: type: string last_communication: type: string last_customer_id: type: string last_customer_name: type: string last_customer_phonenumber: type: string last_lending: type: string last_lending_end: type: string last_rental_uid: type: string locked: type: string pedelec_battery: type: string rfid_uid: type: string signs: type: string snap: type: string street2: type: string uid: type: string service_place: type: object allOf: - $ref: '#/components/schemas/place' - type: object properties: bike_list: type: array items: $ref: '#/components/schemas/service_bike' xml: attribute: true bike_racks: type: number bonus_minutes: type: number check: type: integer enum: [0,1] free_racks: type: number free_special_racks: type: number lent: type: number lowest_batt: type: number move: type: integer num_rentals_last_month: type: number online: type: number recognized: type: boolean set: type: number special_racks: type: number terminal_type: type: string terminal_list: type: array items: type: string visit: type: boolean visits: type: string latLng: type: object properties: lat: type: number lng: type: number required: [lat,lng]