{"openapi":"3.0.3","info":{"title":"Gnist Context — GBFS Bikeshare","description":"Real-time bike and scooter sharing availability across 30+ city systems worldwide — stations, bikes available, docks, and system info via the open GBFS standard.\n\n- **MCP endpoint:** `https://context.gnist.ai/mcp/gbfs/`\n- **Toolkit page:** `/toolkits/gbfs`\n- **Full API spec:** `/api/openapi.json`\n- **Get an API key:** `/signup`","version":"1.0.0","contact":{"name":"GnistAI","url":"https://gnist.ai"}},"servers":[{"url":"https://context.gnist.ai","description":"Production"}],"paths":{"/rest/gbfs/list_systems":{"post":{"tags":["Transport"],"summary":"list_systems","description":"List available bikeshare/scooter systems from the catalog.\n\nReturns a curated list of 30+ major city bike/scooter sharing systems\nworldwide that publish GBFS (General Bikeshare Feed Specification) data.\nFilter by country or search by name/city/operator.\n\nUse this first to discover system_ids, then call get_stations or\nget_system_info with the chosen system_id.\n\nArgs:\n    country: 2-letter ISO country code filter (e.g. \"NO\" for Norway).\n    query: Search text matching name, city, or operator name.\n    limit: Maximum systems to return (1-100).\n\nReturns:\n    List of systems with system_id, name, city, country, operator.","operationId":"gbfs_list_systems","responses":{"200":{"description":"Successful tool call","content":{"application/json":{"schema":{"type":"object"}}}},"404":{"description":"Server or tool not found"},"500":{"description":"Tool execution error"}},"security":[{"ApiKeyHeader":[]},{"ApiKeyQuery":[]}],"requestBody":{"required":false,"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"country":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"ISO 3166-1 alpha-2 country code to filter systems (e.g. \"NO\", \"US\", \"GB\", \"FR\")."},"query":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Text search across system name, city, and operator (e.g. 'Oslo', 'Lime', 'Citi Bike')."},"limit":{"default":50,"description":"Maximum systems to return (1-100, default 50).","type":"integer"}},"type":"object"}}}}}},"/rest/gbfs/get_system_info":{"post":{"tags":["Transport"],"summary":"get_system_info","description":"Get metadata for a specific bikeshare system.\n\nFetches the system_information.json GBFS feed for the system and\nreturns operator details, timezone, contact info, and available feeds.\n\nArgs:\n    system_id: System identifier from list_systems (e.g. \"oslobysykkel\").\n\nReturns:\n    System metadata including name, operator, URL, timezone, and\n    a list of available GBFS feed names.","operationId":"gbfs_get_system_info","responses":{"200":{"description":"Successful tool call","content":{"application/json":{"schema":{"type":"object"}}}},"404":{"description":"Server or tool not found"},"500":{"description":"Tool execution error"}},"security":[{"ApiKeyHeader":[]},{"ApiKeyQuery":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"system_id":{"description":"System identifier from list_systems (e.g. \"oslobysykkel\", \"lyft_nyc\", \"divvy\").","type":"string"}},"required":["system_id"],"type":"object"}}}}}},"/rest/gbfs/get_stations":{"post":{"tags":["Transport"],"summary":"get_stations","description":"Get stations with real-time bike/dock availability for a bikeshare system.\n\nMerges static station info (name, location, capacity) with live status\n(bikes available, docks available, vehicle types). Returns all stations\nor filters by name/address text search.\n\nUse get_station_status for detailed info on a single station.\n\nArgs:\n    system_id: System identifier (e.g. \"oslobysykkel\").\n    query: Optional text filter on station name or address.\n    limit: Maximum stations to return (1-100, default 50).\n\nReturns:\n    Stations with name, lat/lon, capacity, bikes_available, docks_available,\n    is_renting, is_returning, last_reported timestamp.","operationId":"gbfs_get_stations","responses":{"200":{"description":"Successful tool call","content":{"application/json":{"schema":{"type":"object"}}}},"404":{"description":"Server or tool not found"},"500":{"description":"Tool execution error"}},"security":[{"ApiKeyHeader":[]},{"ApiKeyQuery":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"system_id":{"description":"System identifier from list_systems (e.g. \"oslobysykkel\", \"lyft_nyc\").","type":"string"},"query":{"anyOf":[{"type":"string"},{"type":"null"}],"default":null,"description":"Text filter on station name or address (e.g. 'Central Station', 'Main St')."},"limit":{"default":50,"description":"Maximum stations to return (1-100, default 50).","type":"integer"}},"required":["system_id"],"type":"object"}}}}}},"/rest/gbfs/get_station_status":{"post":{"tags":["Transport"],"summary":"get_station_status","description":"Get real-time availability for a specific bikeshare station.\n\nReturns live data including bikes available, docks available,\noperational status (is_renting, is_returning), and last update timestamp.\nAlso includes static info (name, address, coordinates, capacity).\n\nArgs:\n    system_id: System identifier (e.g. \"oslobysykkel\").\n    station_id: Station identifier from get_stations results.\n\nReturns:\n    Station details with name, address, lat/lon, capacity, bikes_available,\n    docks_available, is_installed, is_renting, is_returning, last_reported.","operationId":"gbfs_get_station_status","responses":{"200":{"description":"Successful tool call","content":{"application/json":{"schema":{"type":"object"}}}},"404":{"description":"Server or tool not found"},"500":{"description":"Tool execution error"}},"security":[{"ApiKeyHeader":[]},{"ApiKeyQuery":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"system_id":{"description":"System identifier from list_systems (e.g. \"oslobysykkel\", \"lyft_nyc\").","type":"string"},"station_id":{"description":"Station identifier from get_stations results.","type":"string"}},"required":["system_id","station_id"],"type":"object"}}}}}},"/rest/gbfs/report_feedback":{"post":{"tags":["Transport"],"summary":"report_feedback","description":"Report a bug, feature request, or general feedback for this data source.\n\nUse this when something doesn't work as expected, when you'd like\na new feature, or when you have suggestions for improvement.\n\nArgs:\n    feedback: Describe the issue or suggestion.\n    feedback_type: One of 'bug', 'feature_request', or 'general'.","operationId":"gbfs_report_feedback","responses":{"200":{"description":"Successful tool call","content":{"application/json":{"schema":{"type":"object"}}}},"404":{"description":"Server or tool not found"},"500":{"description":"Tool execution error"}},"security":[{"ApiKeyHeader":[]},{"ApiKeyQuery":[]}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"feedback":{"type":"string"},"feedback_type":{"default":"general","type":"string"}},"required":["feedback"],"type":"object"}}}}}}},"tags":[{"name":"Transport","description":"Data sources: Transport"}],"components":{"securitySchemes":{"ApiKeyHeader":{"type":"apiKey","in":"header","name":"gnist-api-key","description":"API key passed via request header."},"ApiKeyQuery":{"type":"apiKey","in":"query","name":"gnist_api_key","description":"API key passed via query parameter."}}}}