Bird GBFS Feed

Bird's public General Bikeshare Feed Specification (GBFS) v2.3 auto-discovery feeds. Each city has its own auto-discovery document at https://mds.bird.co/gbfs/v2/public/{city}/gbfs.json that links to nine sub-feeds — system_information, vehicle_types, free_bike_status, station_information, station_status, geofencing_zones, system_pricing_plans, system_regions, and gbfs_versions — with a 60-second TTL. As of this profile Bird publishes feeds for 88 cities across Austria, Belgium, Canada, Switzerland, Germany, Spain, Finland, France, Israel, Italy, Portugal, and the United States. The feeds are free to consume under the GBFS Data License Agreement at https://www.bird.co/wp-content/uploads/2019/03/GBFS-Data-License-Agreement-2018-09-25.pdf, and they expose real-time vehicle locations, battery levels, vehicle types (scooter and electric-assist bicycle), no-ride and no-parking geofencing polygons, pricing plans, and service regions for every Bird market.

Bird GBFS Feed is one of 4 APIs that Bird publishes on the APIs.io network, described by a machine-readable OpenAPI specification.

This API exposes 3 JSON Schema definitions.

Tagged areas include GBFS, Micromobility, Real-time, Geofencing, and Vehicle Locations. The published artifact set on APIs.io includes API documentation, an OpenAPI specification, a JSON-LD context, and 3 JSON Schemas.

Documentation

Specifications

Schemas & Data

Other Resources

OpenAPI Specification

bird-gbfs-openapi.yml Raw ↑
openapi: 3.1.0
info:
  title: Bird GBFS Feed
  version: 2.3.0
  summary: Bird's Public General Bikeshare Feed Specification Feed
  description: >-
    OpenAPI description of Bird's public General Bikeshare Feed Specification
    (GBFS) v2.3 surface hosted at https://mds.bird.co/gbfs/v2/public/{city}.
    Each Bird city exposes the same nine GBFS sub-feeds — gbfs (auto-discovery),
    gbfs_versions, system_information, vehicle_types, free_bike_status,
    station_information, station_status, geofencing_zones, system_pricing_plans,
    and system_regions — with a 60-second TTL. Bird operates 88+ city feeds
    across Austria, Belgium, Canada, Switzerland, Germany, Spain, Finland,
    France, Israel, Italy, Portugal, and the United States. Data is licensed
    under Bird's GBFS Data License Agreement.
  contact:
    name: Bird Government Partnerships
    email: [email protected]
    url: https://www.bird.co/cities
  license:
    name: Bird GBFS Data License Agreement
    url: https://www.bird.co/wp-content/uploads/2019/03/GBFS-Data-License-Agreement-2018-09-25.pdf
servers:
  - url: https://mds.bird.co/gbfs/v2/public/{city}
    description: Bird GBFS public feed for a given city
    variables:
      city:
        default: los-angeles
        description: >-
          City slug for the desired Bird market. Examples include
          los-angeles, madrid, barcelona, helsinki, munich, ulm, calgary,
          edmonton, ottawa, halifax, antwerp, zurich, basel, biel, ulm,
          wienerneustadt. The canonical list lives in the MobilityData
          systems.csv at
          https://github.com/MobilityData/gbfs/blob/master/systems.csv.
paths:
  /gbfs.json:
    get:
      operationId: getGbfsDiscovery
      summary: Get GBFS Auto-Discovery
      description: >-
        Returns the GBFS auto-discovery document listing every sub-feed
        available for this Bird city, with URLs and feed names. Per GBFS
        v2.3, the response is wrapped in language-keyed feeds objects.
      tags:
        - Discovery
      responses:
        '200':
          description: GBFS auto-discovery payload
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GbfsDiscovery'
  /gbfs_versions.json:
    get:
      operationId: getGbfsVersions
      summary: List GBFS Versions
      description: Lists the GBFS specification versions supported by this Bird city feed.
      tags:
        - Discovery
      responses:
        '200':
          description: Supported GBFS versions
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GbfsVersions'
  /system_information.json:
    get:
      operationId: getSystemInformation
      summary: Get System Information
      description: >-
        Returns identifying information about this Bird city deployment —
        system_id, name, operator, language, timezone, license_url, and the
        rental_apps discovery / store URIs for iOS and Android.
      tags:
        - System
      responses:
        '200':
          description: System information payload
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SystemInformation'
  /vehicle_types.json:
    get:
      operationId: getVehicleTypes
      summary: List Vehicle Types
      description: >-
        Returns every vehicle type operating in this Bird city. Typical
        responses include an `electric` scooter (form_factor=scooter) and an
        `electric_assist` bicycle (form_factor=bicycle), each with a
        max_range_meters value.
      tags:
        - Vehicles
      responses:
        '200':
          description: Vehicle types payload
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/VehicleTypes'
  /free_bike_status.json:
    get:
      operationId: getFreeBikeStatus
      summary: List Free-Floating Vehicles
      description: >-
        Returns the real-time list of available free-floating Bird vehicles
        in this city. Each entry includes bike_id, lat, lon, is_reserved,
        is_disabled, vehicle_type_id, and current_range_meters / battery
        information. Updated every 60 seconds.
      tags:
        - Vehicles
        - Realtime
      responses:
        '200':
          description: Free bike status payload
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/FreeBikeStatus'
  /station_information.json:
    get:
      operationId: getStationInformation
      summary: List Station Information
      description: >-
        Returns any docking or hub stations defined for this Bird city. Most
        Bird markets are free-floating, so the stations array is often empty.
      tags:
        - Stations
      responses:
        '200':
          description: Station information payload
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StationInformation'
  /station_status.json:
    get:
      operationId: getStationStatus
      summary: Get Station Status
      description: >-
        Returns the real-time vehicle counts at each station defined in
        station_information.json. Free-floating Bird markets return an empty
        stations array.
      tags:
        - Stations
        - Realtime
      responses:
        '200':
          description: Station status payload
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StationStatus'
  /geofencing_zones.json:
    get:
      operationId: getGeofencingZones
      summary: Get Geofencing Zones
      description: >-
        Returns the GeoJSON FeatureCollection of no-ride, no-parking, and
        reduced-speed zones enforced by the Bird app for this city.
      tags:
        - Geofencing
      responses:
        '200':
          description: Geofencing zones payload
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/GeofencingZones'
  /system_pricing_plans.json:
    get:
      operationId: getSystemPricingPlans
      summary: List System Pricing Plans
      description: >-
        Returns the rider-facing pricing plans for this Bird city. Many
        Bird feeds return an empty plans array — pricing is set in-app and
        per-market.
      tags:
        - Pricing
      responses:
        '200':
          description: Pricing plans payload
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SystemPricingPlans'
  /system_regions.json:
    get:
      operationId: getSystemRegions
      summary: List System Regions
      description: Returns named regions / service-area subdivisions used by this Bird city deployment.
      tags:
        - System
      responses:
        '200':
          description: System regions payload
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/SystemRegions'
components:
  schemas:
    GbfsEnvelope:
      type: object
      required: [version, data, last_updated, ttl]
      properties:
        version:
          type: string
          description: GBFS spec version (e.g. "2.3")
        last_updated:
          type: integer
          format: int64
          description: POSIX timestamp at which the data was last updated
        ttl:
          type: integer
          description: Seconds before the consumer should re-fetch this feed
        data:
          type: object
    GbfsDiscovery:
      allOf:
        - $ref: '#/components/schemas/GbfsEnvelope'
        - type: object
          properties:
            data:
              type: object
              additionalProperties:
                type: object
                properties:
                  feeds:
                    type: array
                    items:
                      type: object
                      required: [name, url]
                      properties:
                        name:
                          type: string
                        url:
                          type: string
                          format: uri
    GbfsVersions:
      allOf:
        - $ref: '#/components/schemas/GbfsEnvelope'
        - type: object
          properties:
            data:
              type: object
              properties:
                versions:
                  type: array
                  items:
                    type: object
                    required: [version, url]
                    properties:
                      version:
                        type: string
                      url:
                        type: string
                        format: uri
    SystemInformation:
      allOf:
        - $ref: '#/components/schemas/GbfsEnvelope'
        - type: object
          properties:
            data:
              type: object
              required: [system_id, name, language, timezone]
              properties:
                system_id:
                  type: string
                  example: bird-los-angeles
                name:
                  type: string
                operator:
                  type: string
                language:
                  type: string
                timezone:
                  type: string
                license_url:
                  type: string
                  format: uri
                rental_apps:
                  type: object
                  properties:
                    android:
                      $ref: '#/components/schemas/RentalApp'
                    ios:
                      $ref: '#/components/schemas/RentalApp'
    RentalApp:
      type: object
      properties:
        discovery_uri:
          type: string
        store_uri:
          type: string
          format: uri
    VehicleTypes:
      allOf:
        - $ref: '#/components/schemas/GbfsEnvelope'
        - type: object
          properties:
            data:
              type: object
              properties:
                vehicle_types:
                  type: array
                  items:
                    $ref: '#/components/schemas/VehicleType'
    VehicleType:
      type: object
      required: [vehicle_type_id, form_factor, propulsion_type]
      properties:
        vehicle_type_id:
          type: string
        form_factor:
          type: string
          enum: [scooter, bicycle, car, moped, other]
        propulsion_type:
          type: string
          enum: [human, electric_assist, electric, combustion, other]
        max_range_meters:
          type: number
    FreeBikeStatus:
      allOf:
        - $ref: '#/components/schemas/GbfsEnvelope'
        - type: object
          properties:
            data:
              type: object
              properties:
                bikes:
                  type: array
                  items:
                    $ref: '#/components/schemas/Vehicle'
    Vehicle:
      type: object
      required: [bike_id, lat, lon, is_reserved, is_disabled]
      properties:
        bike_id:
          type: string
          description: Anonymized rotating identifier for this vehicle
        lat:
          type: number
        lon:
          type: number
        is_reserved:
          type: boolean
        is_disabled:
          type: boolean
        vehicle_type_id:
          type: string
        current_range_meters:
          type: number
        last_reported:
          type: integer
          format: int64
    StationInformation:
      allOf:
        - $ref: '#/components/schemas/GbfsEnvelope'
        - type: object
          properties:
            data:
              type: object
              properties:
                stations:
                  type: array
                  items:
                    $ref: '#/components/schemas/Station'
    Station:
      type: object
      required: [station_id, name, lat, lon]
      properties:
        station_id:
          type: string
        name:
          type: string
        lat:
          type: number
        lon:
          type: number
        capacity:
          type: integer
    StationStatus:
      allOf:
        - $ref: '#/components/schemas/GbfsEnvelope'
        - type: object
          properties:
            data:
              type: object
              properties:
                stations:
                  type: array
                  items:
                    type: object
                    required: [station_id]
                    properties:
                      station_id:
                        type: string
                      num_bikes_available:
                        type: integer
                      num_docks_available:
                        type: integer
                      is_installed:
                        type: boolean
                      is_renting:
                        type: boolean
                      is_returning:
                        type: boolean
    GeofencingZones:
      allOf:
        - $ref: '#/components/schemas/GbfsEnvelope'
        - type: object
          properties:
            data:
              type: object
              properties:
                geofencing_zones:
                  type: object
                  description: GeoJSON FeatureCollection of geofence polygons
                  properties:
                    type:
                      type: string
                      enum: [FeatureCollection]
                    features:
                      type: array
                      items:
                        $ref: '#/components/schemas/GeofencingFeature'
    GeofencingFeature:
      type: object
      properties:
        type:
          type: string
          enum: [Feature]
        geometry:
          type: object
        properties:
          type: object
          properties:
            name:
              type: string
            start:
              type: integer
              format: int64
            end:
              type: integer
              format: int64
            rules:
              type: array
              items:
                type: object
                properties:
                  vehicle_type_id:
                    type: array
                    items:
                      type: string
                  ride_allowed:
                    type: boolean
                  ride_through_allowed:
                    type: boolean
                  maximum_speed_kph:
                    type: number
    SystemPricingPlans:
      allOf:
        - $ref: '#/components/schemas/GbfsEnvelope'
        - type: object
          properties:
            data:
              type: object
              properties:
                plans:
                  type: array
                  items:
                    type: object
                    properties:
                      plan_id:
                        type: string
                      name:
                        type: string
                      currency:
                        type: string
                      price:
                        type: number
    SystemRegions:
      allOf:
        - $ref: '#/components/schemas/GbfsEnvelope'
        - type: object
          properties:
            data:
              type: object
              properties:
                regions:
                  type: array
                  items:
                    type: object
                    required: [region_id, name]
                    properties:
                      region_id:
                        type: string
                      name:
                        type: string
tags:
  - name: Discovery
    description: GBFS auto-discovery and version metadata
  - name: System
    description: System-level information and regions
  - name: Vehicles
    description: Vehicle inventory and real-time availability
  - name: Stations
    description: Docking-station information (mostly empty for free-floating Bird markets)
  - name: Geofencing
    description: No-ride / no-parking polygon zones
  - name: Pricing
    description: Rider-facing pricing plans
  - name: Realtime
    description: Real-time feeds with 60-second TTL