CityBikes API
Free CityBikes API with no key: live bike share station availability across 500+ networks in cities worldwide, with coordinates and free bike counts. Tested.
Endpoint tested and returned HTTP 200 on 2026-08-19
What is the CityBikes API?
CityBikes is a free, key-free API aggregating live bike share data from more than 500 networks worldwide, returning station locations, available bikes and free docks for each system.
CityBikes solves a genuinely annoying problem: every city's bike share scheme publishes data in its own format, if at all. CityBikes normalises hundreds of them into one consistent schema, so the same code works in Barcelona, New York and Taipei.
The API is two-step by design. First fetch `/v2/networks` to find the network id for a city, then request that network to get its stations with live availability. Fetching all networks with full station detail in one call is not supported, and would be enormous.
Quick facts
- Base URL
https://api.citybik.es/v2- Authentication
- No API key required.
- Rate limit
- No published limit; the maintainers ask for reasonable polling.
- Pricing
- Free and open source.
- CORS
- Enabled — callable directly from browser JavaScript
- Official docs
- Read the docs
How to use the CityBikes API
Every request below was executed against the live API on 2026-08-19, and the response shown is the real body it returned — not an illustration.
1. List all bike share networks
GET https://api.citybik.es/v2/networks
curl 'https://api.citybik.es/v2/networks'const res = await fetch("https://api.citybik.es/v2/networks");
if (!res.ok) throw new Error(`Request failed: ${res.status}`);
const data = await res.json();
console.log(data);import requests
res = requests.get("https://api.citybik.es/v2/networks", timeout=20)
res.raise_for_status()
print(res.json()){
"networks": [
{
"id": "abu-dhabi-careem-bike",
"name": "Abu Dhabi Careem BIKE",
"location": {
"latitude": 24.4866,
"longitude": 54.3728,
"city": "Abu Dhabi",
"country": "AE"
},
"href": "/v2/networks/abu-dhabi-careem-bike",
"company": [
"Careem"
],
"gbfs_href": "https://dubai.publicbikesystem.net/customer/gbfs/v2/en/gbfs.json"
},
{
"id": "acces-velo-saguenay",
"name": "Accès Vélo",
"location": {
"latitude": 48.433333,
"longitude": -71.083333,
"city": "Saguenay",
"country": "CA"
},
"href": "/v2/networks/acces-velo-saguenay",
"company": [
"PBSC Urban Solutions"
],
"gbfs_href": "https://saguenay.publicbikesystem.net/customer/gbfs/v2/gbfs.json"
},
{
"id": "aduriz",
"name": "Aduriz en Bici",
"location": {
"latitude": 42.9294,
"longitude": -3.488,
"city": "Medina de Pomar",
"country": "ES"
},
"href": "/v2/networks/aduriz",
"company": [
"Instituto Tecnológico de Castilla y León (ITCL)"
],
"system": "bicicard"
},
{
"id": "aksu",
"name": "Aksu",
"location": {
"latitude": 41.1664,
"longitude": 80.2617,
"city": "阿克苏市 (Aksu City)",
"country": "CN"
},
"href": "/v2/networks/aksu",
"company": [
"阿克苏公共服务"
]
},
{
"id": "alba",
"name": "Alba",
"location": {
"latitude": 44.716667,Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
fields | string | Optional | Restrict returned fields on the networks list. id,name,location |
networks/<id> | path | Optional | Fetch one network including its stations. networks/bicing |
Response fields
networks[].idstring- Network identifier used to fetch station detail.
networks[].namestring- Bike share scheme name.
networks[].locationobject- City, country and centre coordinates.
networks[].companyarray- Operating company or companies.
network.stations[].free_bikesinteger- Bikes currently available at that station.
network.stations[].empty_slotsinteger- Free docks available for returning a bike.
What you can build with the CityBikes API
- Build a bike share availability map for any supported city
- Find the nearest station with available bikes or free docks
- Analyse usage patterns across cities with one consistent schema
- Add multi-city bike hire to a travel or mobility app
Common errors and how to fix them
404
Unknown network id.
Fix: Fetch /v2/networks first and use an id from that list — ids are not city names.
Large networks list
Over 500 networks with full metadata.
Fix: Use the `fields` parameter to request only id, name and location when building a city picker.
Stale availability
Some networks update infrequently.
Fix: Check the station `timestamp` field; not every operator publishes real-time counts.
CityBikes API — frequently asked questions
Is the CityBikes API free?
Yes, completely free and open source with no API key required.
How many cities does it cover?
More than 500 bike share networks worldwide, normalised into a single consistent schema regardless of the local operator's own format.
How do I get stations for a specific city?
Two steps: fetch /v2/networks to find the network id for that city, then request /v2/networks/<id> to get its stations with live availability.
Is the availability data real-time?
It depends on the operator. Most update every minute or two, but some publish less frequently. Check the station timestamp before presenting counts as live.
Tools that pair with this API
JSON Formatter
Format, beautify and minify JSON online with 2-space, 4-space or tab indentation. Sort keys alphabetically and catch syntax errors instantly — free and private.
Unit Converter
Convert between units of length, weight, temperature, area, volume, speed, time and data storage instantly, with a swap button and common conversion tables.
CityBikes is an independent third-party service and is not affiliated with ByteTools or ByteVancer. Details on this page were verified on 2026-08-19; always check the official documentation before relying on this API in production, as terms and limits can change.