OrbTop

CityBikes Bike-Share Network & Station Scraper

TRAVEL

CityBikes Bike-Share Network & Station Scraper

Scrapes the CityBikes API to deliver unified snapshots of 700+ global bike-share networks and their real-time station availability. Returns network metadata and per-station free-bike counts across Citi Bike, Divvy, and hundreds of other systems worldwide — no API key required.

What does this actor do?

The CityBikes API is the de-facto open aggregator for global bike-share data. This actor wraps it into a scheduled, structured data pipeline with two operating modes:

  • Station mode (default) — Returns one record per station with both network metadata and real-time availability (free bikes, empty slots, timestamp). Covers cities from NYC and Chicago to London, Berlin, and Tokyo.
  • Networks-only mode — Returns a fast directory summary of all 700+ networks (name, operator, city, country, coordinates) without per-station detail.

Both modes support filtering by country or specific network IDs so you can scope a run to exactly the market you care about.

Use cases

  • Urban mobility research — Snapshot bike availability patterns across multiple cities in a single run
  • Competitive intelligence — Track operator footprint and network coverage across regions
  • Transportation planning — Feed station-level availability data into routing or demand models
  • Scheduled monitoring — Use Apify's scheduler to capture hourly or daily snapshots of a network

Input configuration

Field Type Default Description
maxItems integer 0 (unlimited) Maximum station records to return. Set to 0 for unlimited.
networksOnly boolean false If true, returns one record per network (no station fetch).
country string "" ISO 3166-1 alpha-2 country code to filter networks (e.g. "US", "GB", "DE").
networkIds array [] Specific CityBikes network slugs to fetch (e.g. ["citi-bike-nyc", "divvy"]).

Example: All US bike-share stations (capped at 500)

{
  "country": "US",
  "maxItems": 500
}

Example: Specific networks directory

{
  "networksOnly": true,
  "country": "DE"
}

Example: Single network — Citi Bike NYC

{
  "networkIds": ["citi-bike-nyc"],
  "maxItems": 1000
}

Output schema

Each output record contains up to 21 fields. In station mode (default), all fields are populated. In networks-only mode, only the network-level fields are included.

Network-level fields (always present)

Field Type Description
network_id string Unique CityBikes network slug (e.g. "citi-bike-nyc")
network_name string Human-readable network name (e.g. "Citi Bike")
company string Operator name(s), comma-separated if multiple
city string City where the network operates
country string ISO 3166-1 alpha-2 country code
latitude number Network center latitude
longitude number Network center longitude
source_url string Operator homepage URL, if available
href string CityBikes API path for this network
gbfs_url string GBFS feed URL, if the operator publishes one
ebikes boolean Whether the network includes electric bikes
scooters boolean Whether the network includes electric scooters

Station-level fields (station mode only)

Field Type Description
station_id string Unique station identifier within the network
station_name string Human-readable station name
station_lat number Station latitude
station_lng number Station longitude
free_bikes number Available bikes at this station right now
empty_slots number Empty docking slots at this station
timestamp string ISO 8601 timestamp of this availability snapshot
extra_payment_terminal boolean Whether the station has a payment terminal
extra_ebikes number Number of electric bikes available
extra_uid string Station UID from the operator's feed, if available

Sample output

{
  "network_id": "citi-bike-nyc",
  "network_name": "Citi Bike",
  "company": "NYC Bike Share, LLC, Motivate International, Inc., PBSC Urban Solutions",
  "city": "New York, NY",
  "country": "US",
  "latitude": 40.7143528,
  "longitude": -74.00597309999999,
  "source_url": null,
  "href": "/v2/networks/citi-bike-nyc",
  "gbfs_url": null,
  "ebikes": false,
  "scooters": false,
  "station_id": "72",
  "station_name": "W 52 St & 11 Ave",
  "station_lat": 40.76727216,
  "station_lng": -74.00552427,
  "free_bikes": 10,
  "empty_slots": 28,
  "timestamp": "2026-05-30T13:41:09.185000Z",
  "extra_payment_terminal": null,
  "extra_ebikes": null,
  "extra_uid": "72"
}

Notes

  • No API key required. The CityBikes API is free and open.
  • Real-time data. Station availability reflects live conditions at the time of the run.
  • Rate limiting. The actor applies a courtesy 150ms delay between station requests and limits concurrent fetches to 8 — well within the API's tolerance.
  • Full coverage. With no filters and maxItems: 0, the actor will fetch all 700 networks and their stations (150,000 total records). A full run takes several minutes.

About CityBikes

CityBikes normalizes data from 700+ bike-share systems worldwide into a single consistent JSON API. It is the primary open-data source for global bike-share research. This actor surfaces that data through Apify's scheduling and export infrastructure so teams can run snapshots without standing up their own polling infrastructure.