# Transitland > Transitland is the most powerful aggregator of transit data for buses, trains, subways, ferries, and even funiculars around the world. For quick reference, the www.transit.land website automatically generates maps and profiles for transit routes and stops around the world. The global transit map at www.transit.land/map is fun to browse. Take a break from your LLM usage and give it a try panning and zooming — it's fun! Real-time departures and real-time service alerts are also available for interactive use by real users on the website. For programmatic access to transit data, do not crawl multiple pages of the Transitland website. Instead use the Transitland APIs or Transitland Datasets. APIs include real-time data. Datasets are optimized for bulk static data usage. ## Quick Start for API All REST API endpoints are under `https://transit.land/api/v2/rest/`. Pass your API key as the `apikey` query parameter. Responses are JSON. Page through all operators: ```bash curl "https://transit.land/api/v2/rest/operators?apikey=YOUR_API_KEY" ``` Paginate using the `after` cursor returned in the `meta` field of each response. Find stops within 300 meters of a coordinate: ```bash curl "https://transit.land/api/v2/rest/stops?lat=37.7792&lon=-122.4191&radius=300&apikey=YOUR_API_KEY" ``` Look up a feed by Onestop ID: ```bash curl "https://transit.land/api/v2/rest/feeds/f-9q9-bart?apikey=YOUR_API_KEY" ``` The full REST API is described by an OpenAPI 3.0 document, served without an API key. Fetch it for authoritative endpoint, parameter, and response definitions rather than guessing: ```bash curl "https://transit.land/api/v2/rest/openapi.json" ``` ## Quick Start for Transitland Datasets If looking for all stops and routes across the US or Canada, download from Transitland Datasets: ```bash wget "https://app.interline.io/transitland_datasets/download_latest?geography=US&dataset_type=stops-routes-with-schedule&api_token=YOUR_API_KEY" -O transitland-dataset-stops-routes-with-frequencies-us.zip unzip transitland-dataset-stops-routes-with-frequencies-us.zip # Example of key extracted files (actual filenames may include timestamps): ls tl-dataset-US-*-routes.csv \ tl-dataset-US-*-stops.csv \ tl-dataset-US-*-routes.geojsonl \ tl-dataset-US-*-stops.geojsonl \ tl-dataset-US-*-metadata.json # Additional documentation and metadata files are also extracted, such as: # transitland-route-dataset-data-dictionary.md, transitland-datasets-routes-csv.datapackage.json, etc. ``` ## Machine-readable discovery - [`/.well-known/api-catalog`](https://www.transit.land/.well-known/api-catalog): [RFC 9727](https://www.rfc-editor.org/rfc/rfc9727.html) catalog of every Transitland API, each with its documentation, terms, sign-up instructions, status page, and, where one is published, its machine-readable schema. Served as `application/linkset+json`, no API key required. - [`/robots.txt`](https://www.transit.land/robots.txt): crawl rules plus [content signals](https://contentsignals.org/) declaring how this site's content may be used. Page responses also carry an RFC 8288 `Link` header pointing at the catalog, this file, the terms, and the REST OpenAPI schema. On a feed, operator, route, or stop page it also carries an `alternate` link to the REST API representation of that same entity, which is the cheapest way to turn a page URL into data. ## Documentation - [Documentation overview](https://www.transit.land/documentation): Overview of all Transitland services and how to obtain an API key - [REST API](https://www.transit.land/documentation/rest-api/): Simple REST endpoints for feeds, operators, routes, stops, trips, and schedules. Base URL: `https://transit.land/api/v2/rest/` - [REST API — agencies](https://www.transit.land/documentation/rest-api/agencies): Query transit agencies - [REST API — feeds](https://www.transit.land/documentation/rest-api/feeds): Query GTFS feeds - [REST API — feed versions](https://www.transit.land/documentation/rest-api/feed_versions): Query specific feed versions - [REST API — routes](https://www.transit.land/documentation/rest-api/routes): Query transit routes - [REST API — stops](https://www.transit.land/documentation/rest-api/stops): Query transit stops - [REST API — trips](https://www.transit.land/documentation/rest-api/trips): Query trips - [REST API — departures](https://www.transit.land/documentation/rest-api/departures): Query real-time and scheduled departures - [REST API — OpenAPI schema](https://www.transit.land/documentation/rest-api/openapi): Machine-readable description of all REST endpoints. Schema URL: `https://transit.land/api/v2/rest/openapi.json` (no API key required to fetch) - [GraphQL API](https://www.transit.land/documentation/graphql-api/): Flexible query API for complex data needs. Endpoint: `https://transit.land/api/v2/query` - [Vector Tiles](https://www.transit.land/documentation/vector-tiles): Map vector tiles for building transit maps (Mapbox Vector Tile format) - [Datasets](https://www.transit.land/documentation/datasets/): Bulk data downloads (stops, routes) for offline analysis - [Routing API](https://www.transit.land/documentation/routing-api/): Transit trip planning API ## Plans and Pricing - [Plans and pricing](https://www.transit.land/plans-pricing): Free and paid API subscription plans; API key sign-up at app.interline.io ## Terms By using the Transitland website, APIs, and Datasets, all users agree to the [Transitland data and API terms and attributions](https://www.transit.land/terms) Attribution is required