Bird Stations API

Docking-station information (mostly empty for free-floating Bird markets)

Operations 2

GET /station_information.json List Station Information #
GET /station_status.json Get Station Status #

Work with this as data

Every API here is available over the APIs.io API and to AI agents over MCP.

MCP server

One button, every client — Claude, Cursor, VS Code and the rest.

https://apis.io/mcp

Tools for apis

7 MCP tools reach this
  • find_apisBrowse and filter every API in the catalog.
  • get_api_artifactsOne API's artifacts, grouped by type.
  • get_openapiThe primary OpenAPI for this API.
  • find_similar_apisAPIs that look like this one.
  • apis_io_searchSTART HERE — APIs, providers and tags for one query, each with its total.
  • resolveTurn a domain, URL or GitHub org into the provider it belongs to.
  • find_cohortsEvery scored population of providers in the catalog.
All 92 tools →

Call it yourself

curl for this page
This API
curl "https://apis.io/api/v1/apis/bird-rides-stations-api"
All apis
curl "https://apis.io/api/v1/apis?limit=25"

Discovery needs no key. Ratings and market analysis are Pro.

Get an API key

Free tier, no form to fill in. Signing in shares your email address with us — we store it to create your key and to recognise you if you sign in with another provider. See our Privacy Policy and Terms.

A second provider on the same verified email joins the account you already have.

OpenAPI Specification

bird-rides-stations-api-openapi.yml Raw ↑
openapi: 3.2.0
info:
  title: Bird GBFS Feed Discovery Stations API
  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: city@bird.co
    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.
tags:
- name: Stations
  description: Docking-station information (mostly empty for free-floating Bird markets)
paths:
  /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
      responses:
        '200':
          description: Station status payload
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/StationStatus'
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
    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